순서형 데이터에서 GOL과 부분비례오즈 모델 선택하기

순서형 로지스틱 회귀의 비례오즈 가정을 진단하고 Generalized Ordered Logit과 Partial Proportional Odds 모델을 선택·해석하는 방법

2026-08-14 · 최초 발행 2024-04-29

비례오즈 제약이 맞지 않을 때의 선택지

순서형 로지스틱 회귀의 기본 형태인 비례오즈(Proportional Odds, PO) 모델은 누적 로그오즈를 logit[P(Y > k)] = θ_k − xβ로 표현한다. 임계점 k가 달라도 계수 β는 동일하다는 전제를 둔다. 이 Parallel Lines, 즉 비례오즈 가정이 모델을 간결하고 안정적으로 만들지만 데이터와 맞지 않을 수 있다.

Generalized Ordered Logit(GOL)은 임계점마다 서로 다른 계수 β_k를 허용한다. 비례오즈 가정을 전면적으로 풀어 더 유연하게 반응하지만, 추정할 파라미터가 늘어나 해석과 안정성 측면의 부담도 커진다.

Partial Proportional Odds(PPO)는 두 모델 사이에 놓인다. 비례오즈 가정을 충족하는 변수는 공통 계수로 남기고, 위반하는 변수에만 임계점별 계수를 허용한다. 필요한 곳에만 제약을 완화해 편향과 분산 사이의 균형을 맞추는 방식이다.

컷포인트와 계수가 보여주는 차이

절편은 임계점별 컷포인트 θ_k로 해석하며, 범주 경계가 어디에 놓이는지 나타낸다. 계수는 PO에서는 모든 임계점에 공통으로 추정되고, GOL에서는 임계점별로 추정된다. PPO는 변수마다 이 두 방식을 섞어 적용한다.

공통 계수는 모든 임계점에서 같은 오즈비로 해석할 수 있다. 반대로 비례오즈 가정을 위반한 변수는 임계점별 오즈비를 따로 제시해야 한다. 실무 보고에서는 계수만 나열하기보다 예측확률과 한계효과를 함께 제시하는 편이 적합하다.

가정 점검에는 Brant 검정과 Score 검정을 활용할 수 있으며, 범주 단위의 잔차 진단도 함께 필요하다. 위반이 확인되면 GOL로 전면 완화하거나 PPO로 부분 완화할 수 있다. 과적합을 줄이기 위한 제약과 정규화도 검토 대상이다.

추정은 최대우도추정(MLE) 기반 최적화로 이뤄진다. 희소 빈도나 완전분리가 있으면 수렴 문제가 생길 수 있으므로, 범주 병합, 페널티(리지), 편향보정(Firth)을 고려한다.

진단 결과에 따라 모델을 좁혀가는 흐름

만족위반우수열위/불안정희소/완전분리입력: 순서형 종속변수,설명변수, 가중치(선택)탐색: 빈도 분포, 희소 확인기본 PO 적합: Ordered Logit비례오즈 가정 점검(Brant/Score 검정)PO 유지 보정진단: 잔차/적합도/AIC-BIC부분 완화 설계비례 위반 변수 식별모델 적합: PPO 또는 GOL모형 비교AIC/BIC, LRT, CV출력: 컷포인트,변수별(공통/임계점별) 계수,예측확률, 한계효과대안: 변수 축소, 범주 병합,정규화, 링크 재검토예외 처리: 범주 병합, 페널티,표본 확대

등급과 중증도를 다룰 때의 해석

고객 만족도 3~5점 척도에서는 배송지연처럼 비례오즈 가정을 위반한 변수만 완화할 수 있다. 그러면 다른 변수의 해석 가능성을 유지하면서 예측확률을 기준으로 등급 상향 개입 대상을 찾을 수 있다.

임상 중증도(경증/중등도/중증)를 판정할 때는 치료 반응이 임계점마다 다르게 나타날 수 있다. GOL 또는 PPO는 경증에서 중등도로 이동하는 효과와 중등도에서 중증으로 이동하는 효과를 구분해 의사결정을 지원한다.

신용등급 전이 위험에서는 거시 변수를 공통 효과로, 차주 특성을 비례오즈 위반 변수로 모델링할 수 있다. 스트레스 시나리오별 등급 전이 확률을 예측하는 데 활용할 수 있다.

R에서 PO 진단 후 PPO를 적합하는 방법

전제조건: R 4.3+, 패키지 MASS, brant, ordinal 설치.

# install.packages(c("MASS", "brant", "ordinal"))
library(MASS)
library(brant)
library(ordinal)

data("housing")  # MASS 내장 데이터
housing$Sat <- ordered(housing$Sat, levels = c("Low","Medium","High"))

# 1) 기본 PO 모델 적합
m_po <- polr(Sat ~ Infl + Type + Cont, data = housing, weights = Freq, Hess = TRUE)

# 2) 비례오즈 가정 점검
br <- brant(m_po)
print(br)  # 변수별/전체 가정 위반 여부 확인

# 3) PPO: 비례 위반 변수만 비례 완화 (예: Infl가 위반이라 가정)
m_ppo <- clm(Sat ~ Infl + Type + Cont,
             nominal = ~ Infl,  # Infl에 임계점별 효과 허용
             data = housing, weights = Freq, link = "logit")

summary(m_ppo)

# 4) 예측확률 산출
newdat <- data.frame(Infl = factor("Low", levels(housing$Infl)),
                     Type = factor("A", levels(housing$Type)),
                     Cont = factor("Low", levels(housing$Cont)))
predict(m_ppo, newdata = newdat, type = "prob")

clm에서 nominal에 넣은 변수는 임계점별 계수로 추정된다. 출력의 Threshold는 컷포인트이며, 공통 효과 변수는 단일 계수로 보고한다.

VGAM으로 GOL과 PPO를 나란히 적합하기

# install.packages("VGAM")
library(VGAM)

# GOL: 모든 변수 비례 완화
m_gol <- vglm(Sat ~ Infl + Type + Cont,
              cumulative(parallel = FALSE, link = "logit"),
              data = housing, weights = Freq)

# PPO: Type, Cont는 비례(공통), Infl만 비례 완화
m_vgam_ppo <- vglm(Sat ~ Infl + Type + Cont,
                   cumulative(parallel = ~ Type + Cont, link = "logit"),
                   data = housing, weights = Freq)

summary(m_gol)
summary(m_vgam_ppo)

희소 셀이 있으면 수렴 경고가 발생할 수 있다. 범주 병합이나 ridge 정규화를 고려하고, logit, probit, cloglog 링크 선택에 따른 민감도도 데이터 특성에 맞춰 검토한다.

Stata에서 autofit으로 PPO 제약을 찾는 방법

전제조건: Stata 16+, gologit2 설치(ssc install gologit2).

* 예시: 건강 상태 순서형 변수 health(1=Poor ... 5=Excellent) 가정
gologit2 health age i.sex i.income, autofit vce(robust)
margins, at(age=(30(10)70)) predict(outcome(#1 #2 #3 #4 #5))
marginsplot

autofit은 변수별 비례오즈 위반을 자동 탐색해 PPO 제약을 설정한다. margins를 사용하면 예측확률과 한계효과 중심의 보고가 가능하다.

제약 수준에 따른 모델 비교

모델 성능(적합도) 확장성(파라미터) 일관성(가정) 안정성(수렴/분산) 운영 편의
Proportional Odds(PO) 가정 충족 시 우수 파라미터 적음 강한 비례오즈 가정 안정성 높음 해석·배포 용이
Partial Proportional Odds(PPO) 개선 기대(가정 위반 변수 있을 때) 중간 부분 비례오즈 중간(적절한 제약 시) 해석 수월
Generalized Ordered Logit(GOL) 최고 유연성 파라미터 많음 비례 가정 없음 과적합 위험 해석 난이도 상승
Multinomial Logit 유연하나 순서 무시 파라미터 매우 많음 순서 정보 미사용 불안정 가능 해석·정책 연계 약화

실무에서는 먼저 PO를 적합하고 비례오즈 가정을 진단한다. 위반 변수가 확인되면 PPO를 시도해 과적합과 안정성을 점검한다. 그래도 충분하지 않을 때 GOL을 검토하며, 정규화와 교차검증을 함께 적용한다.

PPO 또는 GOL 적용 시 AIC/BIC는 520% 개선 가능하며, 캘리브레이션 지표인 ECE/Brier도 515% 개선 가능하다. 비례오즈 가정을 위반하는 변수를 식별하면 정책과 개입 대상을 더 분명히 할 수 있고, 임계점별 효과 해석은 단계적 의사결정의 정밀도를 높인다.

순서형 로지스틱부분비례오즈일반화 순서형 로짓통계 모델링