§ 10.2 ~ 10.2.1 — Proportional Odds 와 Partial Proportional Odds 깊이 분석

Cumulative logit 의 부호 관행 (식 10.1 vs 10.6) · 절단점 식별 가능성 · Proportional odds 의 시각적 풀이 (Figure 10.2) · Peterson-Harrell 위반 사례 · Partial proportional odds (식 10.7) · Hedeker-Mermelstein 1998 mixed 확장 · Figure 10.3 비례 위반 · Figure 10.4 연속 공변량의 회귀선 교차 caveat

Hedeker & Gibbons (2006) Ch.10 §10.2 본문의 깊이 분석 + §10.2.1 partial proportional odds 의 자세한 풀이. Ch.10 overview (10-0) 가 chapter 의 큰 그림을 제시했다면 본 sub-post 는 §10.2 의 핵심 두 가정 — (1) cumulative logit 표기의 부호 관행과 절단점 식별 가능성 (식 10.1 의 \(\gamma_c - x^\top\beta\) 표기 정당화), (2) proportional odds 가정의 시각적·수학적 풀이 (Figure 10.2 의 \(\beta_1 = -0.5\), \(\gamma_1 = -1\), \(\gamma_2 = 1\) 사례) — 를 정량적으로 다룬다. §10.2.1 은 비례 오즈 위반 시 처리: Peterson & Harrell (1990) 의 fixed-effects partial proportional odds, Terza (1985) 의 ordinal probit 확장, Hedeker & Mermelstein (1998, 2000) 의 mixed-effects 일반화. 식 (10.7) 의 모형 정의, \(h\) 개 비례 위반 공변량의 분리 전략, Figure 10.3 의 임상적 해석, 그리고 가장 중요한 caveat (Figure 10.4) — 연속 공변량의 비례 위반 효과는 회귀선을 교차시켜 음의 확률 또는 절단점 순서 위반을 야기하므로 실무에서 이항 dummy 로 변환하거나 비선형 response function (Kauermann & Tutz 2003) 을 사용해야 한다는 점까지 정리한다.

Statistics
저자

Kwangmin Kim

공개

2026년 05월 06일

1 들어가며 — 10-0 overview 의 두 핵심 식의 깊이

Ch.10 Overview (10-0) 에서 cumulative logit (식 10.1) 과 비례 오즈 가정 (Figure 10.2) 의 큰 그림을 제시했다. 본 sub-post 는 같은 두 식을 정량적·시각적으로 깊이 있게 분석하고, 비례 오즈 가정이 깨질 때의 처리 (§ 10.2.1 partial proportional odds) 를 다룬다.

한 줄 요약

“§ 10.2 = cumulative logit (식 10.1) 의 두 핵심 — 부호 관행 (양의 \(\beta\) = 응답 ↑) + 비례 오즈 가정 (회귀 계수가 \(c\) 무관). Figure 10.2 의 수치 풀이로 두 그룹의 logit 평행 이동 (\(x = 0\): -1, 1 / \(x = 1\): -0.5, 1.5) 시연. § 10.2.1 = Peterson-Harrell 의 비례 위반에 대한 처리. 식 (10.7) 의 partial proportional odds 모형으로 일부 공변량 (\(u\)) 만 범주 가변 효과 (\(\alpha_c\)) 허용. 결정적 caveat: 연속 공변량의 \(\alpha_c\) 가 다르면 회귀선이 데이터 범위 안에서 교차 → 음의 확률·절단점 순서 위반. 실무에서 이항 변수만 비례 위반 허용, 연속은 dummy 로 분할 또는 비선형 response.”

2 § 10.2 — Cumulative Logit 모형의 깊이

2.1 부호 관행 — 식 (10.1) vs 식 (10.6)

두 가지 등가 표기

식 (10.1) — 의학·심리 관행:

\[ \log \left[ \frac{P_{ijc}}{1 - P_{ijc}} \right] = \gamma_c - [x_{ij}^\top \beta + z_{ij}^\top T \theta_i] \tag{10.1} \]

식 (10.6) — 생존분석 관행:

\[ \log \left[ \frac{P_{ijc}}{1 - P_{ijc}} \right] = \gamma_c + x_{ij}^\top \beta + z_{ij}^\top T \theta_i \tag{10.6} \]

직관 — 왜 식 (10.1) 의 부호 관행이 자연스러운가

식 (10.1) 의 \(-[x^\top \beta]\) 부호 선택의 직관:

cumulative logit 의 정의 — \(P_{ijc} = P(Y \leq c)\) 의 logit. \(P(Y \leq c)\) 가 줄어든다 = \(P(Y > c)\) 가 늘어난다 = 응답이 더 큰 범주로 이동.

\(\beta > 0\) 일 때 식 (10.1):

  • \(x^\top \beta\) 증가 → \(\gamma_c - x^\top \beta\) 감소 → cumulative logit 감소.
  • \(P(Y \leq c)\) 감소 → \(P(Y > c)\) 증가.
  • 응답이 위로 이동.

즉 “\(\beta > 0\) = 양의 효과 = 응답 위로”. 직관적이고 다른 GLM (이항 logistic, 정규 회귀) 의 부호 관행과 일치.

식 (10.6) 의 \(+x^\top \beta\) 부호 선택:

  • \(\beta > 0\) → cumulative logit 증가 → \(P(Y \leq c)\) 증가 → 응답이 아래로 이동.
  • \(\beta > 0\) = 응답 아래로” — 직관 반대.

왜 생존 분석에서는 식 (10.6) 을 쓰는가: 생존 시점이 응답일 때 “사건 발생 빨라짐” 이 임상적으로 중요. cumulative 방향 (\(Y \leq c\) = 시점 \(c\) 까지 사건 발생) 으로 양의 효과 정의가 직관적.

분야별 관행 차이. 본 sub-post 와 Ch.10 본문은 식 (10.1) 사용.

2.2 절단점 식별 가능성

자유 모수의 과잉 — Identification 문제

식 (10.1) 에서 모든 \(\gamma_c\) + 절편 \(\beta_0\) 를 자유 추정하면 잠재 변수의 위치 식별 불가능:

  • \(\gamma_c \to \gamma_c + \delta\) + \(\beta_0 \to \beta_0 + \delta\) 의 평행 이동이 모든 \(P(Y = c)\) 를 똑같이 유지.
  • → 모형이 비식별 (non-identified).

§ 9.4 에서 본 잠재 변수 분산의 식별 불가능성과 평행. 위치도 같은 종류의 문제.

두 가지 표준 해결 — Reparameterization 두 선택

선택 1 — \(\gamma_1 = 0\) 으로 고정, 절편 \(\beta_0\) 자유 추정:

  • 첫 절단점을 0 으로 고정.
  • 다른 절단점 \(\gamma_2, \ldots, \gamma_{C-1}\) 자유 추정.
  • 자유 모수 = 절편 1 + 절단점 (\(C-2\)) = \(C-1\) 개.

3 범주 사례 (\(\gamma_1 = 0\) 고정, \(\gamma_2 = 2\) 추정, $_0 = $ 자유):

  • \(-\beta_0\) = 첫 범주에 응답 odds 의 log.
  • \(\gamma_2 - \beta_0\) = 첫 두 범주 합 vs 셋째 범주 odds 의 log.

선택 2 — \(\beta_0 = 0\) 으로 고정, 모든 절단점 \(\gamma_c^*\) 자유 추정:

  • 절편 0 으로 고정 (회귀 부분에서 절편 제거).
  • 모든 절단점 \(\gamma_1^*, \ldots, \gamma_{C-1}^*\) 자유 추정.
  • 자유 모수 = 절단점 \(C-1\) 개. 같음.

두 표기의 일대일 대응:

\[ \gamma_c^* = \gamma_c - \beta_0 \]

→ 같은 모형의 다른 표기. R ordinal::clmm, Stata meologit 등은 보통 선택 2 사용 (Threshold coefficients 라벨).

2.3 Threshold Concept — Figure 10.1 의 깊이

Figure 10.1 의 잠재 변수 framework (3 범주)

3 범주 응답 + 2 절단점 (\(\gamma_1, \gamma_2\)):

  • 잠재 변수 \(y\): 직접 관찰 불가, 연속.
  • 관측 규칙: \(Y = c \iff \gamma_{c-1} \leq y < \gamma_c\) (단, \(\gamma_0 = -\infty\), \(\gamma_C = \infty\)).
  • 잠재 변수의 분포 — 표준 logistic (logit 모형) 또는 표준 정규 (probit 모형).
직관 — 같은 잠재 분포, 같은 절단점, 다른 그룹

Figure 10.1 의 핵심 메시지: 두 잠재 분포 (정규 vs logistic) 가 거의 동일. 평균 0, 분산 다름 (정규 = 1, logistic = \(\pi^2/3 \approx 3.29\)). 표준화하면 거의 구분 불가.

이 사실이 logit vs probit ordinal 모형의 결론이 거의 같은 이유 — 잠재 변수 분포의 형태 차이가 미미. § 9.5.5 의 logit-probit 비교 (식 9.12 의 \(\beta_L \approx 1.81 \beta_P\)) 가 ordinal 에도 적용.

범주 확률의 산출:

각 범주 확률 = 잠재 분포의 절단점 사이 면적:

\[ P(Y = c) = P(\gamma_{c-1} \leq y < \gamma_c) = \Psi(\gamma_c - x^\top \beta) - \Psi(\gamma_{c-1} - x^\top \beta) \]

3 범주 + 표준 logistic + \(x^\top \beta = 0\) + \(\gamma_1 = -1, \gamma_2 = 1\):

\[ P(Y = 1) = \Psi(-1) - 0 = 0.269 \] \[ P(Y = 2) = \Psi(1) - \Psi(-1) = 0.731 - 0.269 = 0.462 \] \[ P(Y = 3) = 1 - \Psi(1) = 0.269 \]

→ 3 범주의 확률이 (0.27, 0.46, 0.27) — 절단점이 대칭이라 양 끝 범주 확률이 같음.

\(x^\top \beta = 0.5\) 가 추가되면 잠재 분포가 오른쪽으로 0.5 이동:

\[ P(Y = 1) = \Psi(-1 - 0.5) = \Psi(-1.5) = 0.182 \] \[ P(Y = 2) = \Psi(1 - 0.5) - \Psi(-1.5) = \Psi(0.5) - 0.182 = 0.622 - 0.182 = 0.440 \] \[ P(Y = 3) = 1 - \Psi(0.5) = 1 - 0.622 = 0.378 \]

→ 양의 효과로 더 큰 범주 (3) 에 확률 이동. 식 (10.1) 의 부호 관행 직접 확인.

2.4 Proportional Odds 가정의 시각화 — Figure 10.2

Figure 10.2 의 수치 사례

3 범주 + 단일 이항 공변량 (\(x \in \{0, 1\}\)) + \(\gamma_1 = -1, \gamma_2 = 1, \beta_1 = -0.5\) (식 10.1 의 부호로 \(-(-0.5) = +0.5\) 효과).

두 cumulative logit:

\[ \log[P(Y \leq 1) / P(Y \geq 2)] = \gamma_1 - x \beta_1 \] \[ \log[P(Y \leq 2) / P(Y = 3)] = \gamma_2 - x \beta_1 \]

그룹 \(\text{logit}_1 = \gamma_1 - x\beta_1\) \(\text{logit}_2 = \gamma_2 - x\beta_1\)
\(x=0\) \(-1 - 0 = -1\) \(1 - 0 = 1\)
\(x=1\) \(-1 - (-0.5) = -0.5\) \(1 - (-0.5) = 1.5\)
직관 — “두 logit 이 같은 양만큼 평행 이동”

표의 두 행 (그룹 \(x = 0, 1\)) 비교:

  • 첫 cumulative logit (\(P(Y \leq 1)\)): -1 → -0.5 (+0.5 변화).
  • 둘째 cumulative logit (\(P(Y \leq 2)\)): 1 → 1.5 (+0.5 변화).
  • 두 logit 이 같은 +0.5 만큼 평행 이동.

이것이 비례 오즈의 시각적 정의. logit 척도에서 두 그룹의 회귀선이 평행.

확률 척도에서는 평행 아님 (Figure 10.2 의 위쪽 그림):

범주 \(x = 0\) 의 확률 \(x = 1\) 의 확률
\(Y = 1\) \(\Psi(-1) = 0.269\) \(\Psi(-0.5) = 0.378\)
\(Y = 2\) \(\Psi(1) - \Psi(-1) = 0.462\) \(\Psi(1.5) - \Psi(-0.5) = 0.440\)
\(Y = 3\) \(1 - \Psi(1) = 0.269\) \(1 - \Psi(1.5) = 0.182\)

각 범주의 확률 변화가 다름:

  • \(Y = 1\): 0.269 → 0.378 (+0.109).
  • \(Y = 2\): 0.462 → 0.440 (-0.022).
  • \(Y = 3\): 0.269 → 0.182 (-0.087).

확률 척도의 비대칭이 logit 척도의 평행성과 양립하는 이유 — logit cdf 가 비선형이라 같은 logit 변화가 다른 확률 변화를 만들어냄. 양 끝에서 변화가 크고 중간에서 작음.

OR 의 절단점 무관성 검증:

\(P(Y \leq 1)\) 의 OR (\(x=1\) vs \(x=0\)):

\[ OR_1 = \frac{0.378 / 0.622}{0.269 / 0.731} = \frac{0.608}{0.368} = 1.65 \]

\(P(Y \leq 2)\) 의 OR:

\[ OR_2 = \frac{0.818 / 0.182}{0.731 / 0.269} = \frac{4.495}{2.717} = 1.65 \]

두 OR 가 정확히 같음! (\(1.65 = e^{0.5} = e^{-(-0.5)}\).) 비례 오즈의 가장 강력한 검증 — odds ratio 가 절단점 선택과 무관.

2.5 Multilevel Form 의 Cross-Level Interaction

식 (10.4) + 식 (10.5) 를 reduced form 으로 정리

Level-1: \(\log[P_{ijc}/(1-P_{ijc})] = \gamma_c - [b_{0i} + b_{1i} x_{ij}]\)

Level-2: \(b_{0i} = \beta_0 + \beta_2 x_i + \upsilon_{0i}\), \(b_{1i} = \beta_1 + \beta_3 x_i + \upsilon_{1i}\)

대입:

\[ \log[P_{ijc}/(1-P_{ijc})] = \gamma_c - [\beta_0 + \beta_2 x_i + \beta_1 x_{ij} + \beta_3 (x_i \cdot x_{ij}) + \upsilon_{0i} + \upsilon_{1i} x_{ij}] \]

직관 — 4 개 고정효과의 임상적 의미

NIMH 같은 RCT 맥락에서:

  • \(\beta_0\): 평균 환자 (\(x_i = 0\), placebo) 의 baseline (\(x_{ij} = 0\)) 잠재 중증도. 절단점과 함께 baseline 응답 비율 결정.
  • \(\beta_1\): placebo 환자의 시간 추세 (\(x_{ij}\) = 시간).
  • \(\beta_2\): drug (\(x_i = 1\)) 의 baseline 절편 차이 — RCT randomization 이 잘 됐으면 0.
  • \(\beta_3\): drug × time cross-level interaction — 약효의 차등 효과. 임상적 핵심.

→ Ch.9 의 NIMH 분석과 동일한 해석 framework. 차이는 응답이 0/1 → 1, 2, 3, 4 로 더 풍부.

비례 오즈의 의미 — 같은 \(\beta\) 가 모든 절단점에 작용:

  • Drug × Time 효과 \(\beta_3\) 가 “moderate or worse” vs “mild or better” 절단점에서도, “severe” vs “less severe” 절단점에서도 같은 크기.
  • 즉 약효가 모든 중증도에 일관되게 작용.

이 가정이 깨지면? — 약효가 가벼운 환자에게는 큰 효과, 심한 환자에게는 작은 효과 (또는 반대) 같은 비대칭. → § 10.2.1 partial proportional odds 가 처리.

3 § 10.2.1 — Partial Proportional Odds

3.1 동기 — Peterson-Harrell 의 위반 사례

비례 오즈 가정의 흔한 위반

Peterson & Harrell (1990) 의 핵심 관찰:

“examples of nonproportional odds are not difficult to find.”

(비례 오즈 가정 위반 사례를 찾기 어렵지 않다.)

흔한 위반 패턴:

  1. 약물 효과의 비대칭: “가벼운 증상은 잘 듣지만 심한 증상에는 효과 없음” (또는 반대).
  2. 인구학적 변수의 범주 가변 효과: 성별이 만족도 (“불만족-중립-만족”) 의 절단점 1 (“매우 불만족 vs 그 외”) 에는 큰 효과, 절단점 2 (“매우 만족 vs 그 외”) 에는 작은 효과.
  3. 시간 효과의 비례 위반: 호전이 가벼운 단계에는 빠르고 심한 단계에는 느림.
  4. Section 8 certificate (§ 10.4 NIMH 노숙자 데이터): independent housing 으로의 진행에는 유의 효과, community vs street 비교에는 효과 없음.
직관 — 왜 위반이 흔한가

비례 오즈는 매우 강한 가정 — “공변량 효과가 모든 절단점에서 정확히 같다”. 임상·사회 현실에서:

  • 효과 크기가 응답 척도의 어느 부분에서 더 크냐는 응답 변수의 본질적 특성.
  • “약효가 어떤 환자군에 더 잘 듣는가” 는 거의 모든 약물에 적용되는 질문.
  • → 비례 가정이 정확히 성립하는 경우가 오히려 드물다.

그러나 비례 가정이 근사적으로 성립 하는 경우는 흔하다 — 위반 정도가 작으면 모형의 해석은 살아있고 추정 안정성도 좋음. 강한 위반만 partial proportional odds 가 필요.

검정 권고:

  • LR test: proportional vs partial proportional 모형의 deviance 비교.
  • Brant test (R MASS 패키지): 각 공변량별 비례 오즈 검정.
  • 시각적: 절단점별로 별도 이항 logit 적합 후 OR 비교 (10-0 의 코드 Step 3 참조).

3.2 모형 정의 — 식 (10.7)

Hedeker & Mermelstein (1998, 2000) 의 mixed-effects 확장

\[ \log \left[ \frac{P_{ijc}}{1 - P_{ijc}} \right] = \gamma_c - (x_{ij}^\top \beta + u_{ij}^\top \alpha_c + z_{ij}^\top T \theta_i) \quad (c = 1, \ldots, C-1) \tag{10.7} \]

표기:

  • \(x_{ij}\): \((p+1) \times 1\) 공변량 — 비례 오즈 가정 유지 (회귀 계수 \(\beta\)\(c\) 무관).
  • \(u_{ij}\): \(h \times 1\) 공변량 — 비례 오즈 가정 위반 허용.
  • \(\alpha_c\): \(h \times 1\) 회귀 계수 — \(c\) subscript 가짐, 절단점별 다른 효과.
  • \(z_{ij}\): \(r \times 1\) 랜덤 효과 design 벡터.
  • \(T\): Cholesky factor.

추정 모수의 수:

  • \(\beta\): \(p+1\) 개 (단일 셋).
  • \(\alpha_c\): \(h \times (C-1)\) 개 (범주별).
  • \(\gamma_c\): \(C-2\) 개 (\(\gamma_1 = 0\) 고정).
  • Cholesky: \(r(r+1)/2\) 개.
직관 — “두 종류 공변량의 분리”

식 (10.7) 의 표기적 가치 — 공변량을 두 그룹으로 분류:

\(x\) 그룹 (비례 오즈 유지):

  • 비례 가정이 (적어도 근사적으로) 성립하는 공변량.
  • 단일 셋 \(\beta\) 추정 — 모수 절약.
  • 해석: “이 공변량의 OR 가 모든 절단점에서 동일”.

\(u\) 그룹 (비례 위반 허용):

  • 비례 가정이 명백히 깨진 공변량.
  • \(C-1\) 개 셋 \(\alpha_c\) 추정 — 모수 증가.
  • 해석: “이 공변량의 효과가 절단점에 따라 다름”.

모형의 절약성과 유연성의 균형. 모든 공변량을 비례 위반 허용으로 두면 모수 폭발, 모두 비례 가정으로 두면 부정확. 검정 결과를 토대로 일부만 \(u\) 로 분류.

모형 선택 절차 (실무):

  1. 모든 공변량을 \(x\) 로 두고 표준 proportional odds 모형 적합.
  2. 각 공변량의 비례 오즈 검정 (Brant test 또는 절단점별 별도 이항 logit + OR 비교).
  3. 위반이 명백한 공변량을 \(u\) 로 옮김.
  4. 식 (10.7) 의 partial proportional odds 모형 적합.
  5. LR test 로 두 모형 비교 → partial 모형이 통계적으로 우세하면 채택.

추가 인용: Wakefield et al. (2001), Xie et al. (2001), Freels et al. (2002) 의 응용 + Ishwaran (2000) 의 Bayesian 버전.

3.3 Figure 10.3 — 비례 위반의 시각화

Figure 10.3 의 수치 사례

3 범주 + 단일 이항 공변량 (\(u \in \{0, 1\}\)) + \(\gamma_1 = -1, \gamma_2 = 1\) + 비례 위반 (\(\alpha_1 = -0.05\), \(\alpha_2 = -1\)).

두 cumulative logit:

\[ \log[P(Y \leq 1) / P(Y \geq 2)] = \gamma_1 - u \alpha_1 \] \[ \log[P(Y \leq 2) / P(Y = 3)] = \gamma_2 - u \alpha_2 \]

그룹 \(\text{logit}_1 = \gamma_1 - u\alpha_1\) \(\text{logit}_2 = \gamma_2 - u\alpha_2\)
\(u=0\) \(-1\) \(1\)
\(u=1\) \(-1 - (-0.05) = -0.95\) \(1 - (-1) = 2\)
직관 — 두 logit 이 다른 양만큼 이동

비례 가정 (Figure 10.2) 과의 결정적 차이:

  • 첫 cumulative logit: -1 → -0.95 (+0.05 변화, 거의 무시 가능).
  • 둘째 cumulative logit: 1 → 2 (+1 변화, 매우 큼).

공변량 \(u\) 가 두 cumulative logit 에 매우 다른 효과. 비례 위반의 시각적 정의.

확률 척도 결과:

범주 \(u = 0\) 의 확률 \(u = 1\) 의 확률 변화
\(Y = 1\) \(\Psi(-1) = 0.269\) \(\Psi(-0.95) = 0.279\) +0.010
\(Y = 2\) \(0.462\) \(\Psi(2) - \Psi(-0.95) = 0.881 - 0.279 = 0.602\) +0.140
\(Y = 3\) \(0.269\) \(1 - \Psi(2) = 0.119\) -0.150

해석:

  • 범주 1 (가장 가벼운) 응답률은 두 그룹이 거의 같음 (0.269 vs 0.279).
  • 범주 2 (중간) 응답률은 \(u = 1\) 그룹에서 크게 증가.
  • 범주 3 (가장 심한) 응답률은 \(u = 1\) 그룹에서 크게 감소.

임상 시나리오 적용:

이 모형이 실제 의미할 수 있는 것 — “어떤 처치 (\(u = 1\)) 가 환자를 가벼운 범주에 머물게 하는 효과는 거의 없지만, 심한 범주로 가는 것을 막는 효과는 큼”. 즉 처치가 극단 (severe) 으로의 진행을 차단 하지만 가벼운 단계에서의 회복은 못 도움.

이런 패턴이 비례 오즈로는 표현 못함 — 비례 모형은 모든 절단점에서 같은 OR 강요. Partial proportional odds 가 비대칭 효과를 정확히 모형화.

3.4 결정적 Caveat — Figure 10.4 의 회귀선 교차 위험

Partial Proportional Odds 의 본질적 한계

식 (10.7) 은 절단점별 다른 회귀 계수 \(\alpha_c\) 를 허용 → cumulative logit 회귀선이 평행 아님.

문제: 두 cumulative logit 이 어떤 \(u\) 값에서 교차 가능.

교차의 의미:

  • \(\text{logit}_1(u^*) = \text{logit}_2(u^*)\)\(u^*\) 가 존재.
  • 그 점에서 \(P(Y \leq 1) = P(Y \leq 2)\).
  • \(P(Y = 2) = 0\) → 가능 (경계 사례).

교차 너머 (\(u > u^*\)):

  • \(\text{logit}_1 > \text{logit}_2\).
  • \(P(Y \leq 1) > P(Y \leq 2)\).
  • \(P(Y = 2) < 0\)불가능, 모형 무효.
직관 — Figure 10.4 의 사례

식 (10.7) 의 단순화 ($x = $ 절편만) + 연속 공변량 \(u \in [-4, 5]\) + \(\alpha_1 = -0.75, \alpha_2 = -0.25\) + \(\gamma_1 = -1, \gamma_2 = 1\).

\(u\) \(\text{logit}_1 = -1 - u(-0.75)\) \(\text{logit}_2 = 1 - u(-0.25)\) 비교
\(u = 0\) \(-1\) \(1\) \(\text{logit}_1 < \text{logit}_2\) (정상)
\(u = 1\) \(-0.25\) \(1.25\) \(\text{logit}_1 < \text{logit}_2\) (정상)
\(u = 2\) \(0.5\) \(1.5\) \(\text{logit}_1 < \text{logit}_2\) (정상)
\(u = 4\) \(2.0\) \(2.0\) 교차점 (\(\text{logit}_1 = \text{logit}_2\))
\(u = 5\) \(2.75\) \(2.25\) \(\text{logit}_1 > \text{logit}_2\) 위반

\(u = 5\) 에서:

  • \(P(Y \leq 1 \mid u=5) = \Psi(2.75) = 0.940\).
  • \(P(Y \leq 2 \mid u=5) = \Psi(2.25) = 0.905\).
  • \(P(Y = 2 \mid u=5) = 0.905 - 0.940 = -0.035\)음의 확률.

이 결과는 “범주 2 와 3 의 합” 이 “범주 3 단독” 보다 작음 을 의미 — 수학적으로 불가능. 누적 확률의 정의 (\(P(Y \leq c)\)\(c\) 에 대해 단조 증가) 위반.

위험 영역:

  • 이항 공변량 (\(u \in \{0, 1\}\)): 교차점이 보통 데이터 범위 밖 (예: \(u = 4\)). 안전.
  • 연속 공변량: 교차점이 데이터 범위 안에 들어갈 수 있음 → 위험.
실무 권고 — 연속 공변량은 비례 오즈 유지 또는 변환

Figure 10.4 의 caveat 가 시사하는 partial proportional odds 의 사용 규칙:

  1. 이항 공변량 (\(u \in \{0, 1\}\)): 비례 위반 허용 안전. 교차점이 0-1 범위 밖.
  2. 다범주 공변량 (\(u \in \{1, 2, \ldots, m\}\)): dummy code 로 변환 후 사용. 각 dummy 가 이항이라 안전.
  3. 연속 공변량: 비례 오즈 가정 유지를 우선. 위반이 명백하면 다음 두 길:
    • 범주화: \(m\) 분위수로 dummy 변수 만들고 partial proportional odds 적용. ad-hoc 이지만 작동.
    • 비선형 response function (Kauermann & Tutz 2003): 더 정교한 대안. 회귀선이 평행 아니지만 교차하지 않도록 제약.

실무 빈도: 대부분의 partial proportional odds 응용은 이항 공변량 (성별, 처치 그룹) 에 한정. 연속 공변량은 특별한 이유가 없으면 비례 가정 유지.

소프트웨어 지원:

  • R VGAM::vglm(family = cumulative(parallel = FALSE ~ var1)): 단일 수준 partial proportional odds.
  • R ordinal::clm(..., nominal = ~ var1): 단일 수준.
  • Mixed-effects 는 Hedeker 의 MIXOR 가 가장 일반적. R ordinal::clmm 는 nominal 효과 직접 지원 안 됨 — Bayesian (brms) 우회.

4 응용 분야

분야 활용 비례 오즈 위반 가능성
정신과 RCT 중증도 ordinal 분석 중간 — 약효의 일부 비대칭
만성 통증 NRS 0-10 → 5 범주 낮음 — 처치 효과 균등
노숙자 보건 거주 형태 (street/community/independent) 높음 — 정책 효과 비대칭 (§ 10.4)
교육 평가 학업 등급 (A/B/C/D/F) 중간 — 중재가 특정 등급에만 효과
종양 임상 CR/PR/SD/PD 중간 — 약효가 PR 에 집중 가능
마케팅 Likert 5/7 점 만족도 낮음 — 보통 비례 가정 작동

5 코드 예시

5.1 Step 1: Proportional Odds 적합 + Brant 검정

library(MASS)
library(brant)


# 데이터 시뮬레이션 (proportional odds 가 진짜 성립)
set.seed(2026)
n <- 500
x <- rbinom(n, 1, 0.5)  # 이항 공변량
y_latent <- 0.6 * x + rlogis(n)
gamma <- c(-1, 1)
y <- cut(y_latent, breaks = c(-Inf, gamma, Inf), labels = 1:3, ordered = TRUE)

df <- data.frame(y = y, x = x)

# Proportional odds 적합
fit_po <- polr(y ~ x, data = df, Hess = TRUE)
summary(fit_po)

# Brant 검정 — 각 공변량의 비례 오즈 가정 검정
brant(fit_po)
# Omnibus p-value 가 크면 (> .05) 비례 가정 만족
# 작으면 partial proportional odds 검토 필요
Brant 검정의 해석
  • Omnibus: 모든 공변량의 결합 검정.
  • 각 공변량별 행: 개별 검정.
  • p > .05: 비례 가정 만족 (귀무가설 거부 못함).
  • p < .05: 비례 가정 위반 → partial proportional odds 검토.

주의: Brant 검정은 표본 크기에 매우 민감. 큰 표본에서는 작은 위반도 검정 통과 못함. 작은 표본에서는 명백한 위반도 못 잡음.

권고: Brant + 시각적 검토 (절단점별 OR 비교, 10-0 의 Step 3 코드) + 임상적 판단 결합.

5.2 Step 2: Partial Proportional Odds 적합 (R VGAM)

library(VGAM)


# 비례 위반 공변량 시뮬레이션 (Figure 10.3 와 유사)
set.seed(2026)
n <- 800
u <- rbinom(n, 1, 0.5)

# 잠재 변수 계산이 어려우므로 cumulative probability 직접 정의
gamma1 <- -1
gamma2 <- 1
alpha1 <- -0.05  # 첫 cumulative logit 효과 (거의 0)
alpha2 <- -1.0   # 둘째 cumulative logit 효과 (큼)

# 각 관측의 두 cumulative logit
logit1 <- gamma1 - u * alpha1
logit2 <- gamma2 - u * alpha2

# Cumulative probabilities
P_le1 <- plogis(logit1)
P_le2 <- plogis(logit2)

# 범주 확률
P1 <- P_le1
P2 <- P_le2 - P_le1
P3 <- 1 - P_le2

# 응답 생성
y <- numeric(n)
for (i in 1:n) {
  y[i] <- sample(1:3, 1, prob = c(P1[i], P2[i], P3[i]))
}
y <- factor(y, levels = 1:3, ordered = TRUE)

df <- data.frame(y = y, u = u)

# Partial proportional odds (u 의 비례 가정 해제)
fit_ppo <- vglm(y ~ u, family = cumulative(parallel = FALSE ~ u, link = "logitlink"),
                data = df)
summary(fit_ppo)

# 비교: 표준 proportional odds
fit_po <- vglm(y ~ u, family = cumulative(parallel = TRUE, link = "logitlink"),
               data = df)

# LR test
lrtest(fit_ppo, fit_po)
VGAM 의 parallel 인수

cumulative(parallel = ...) 의 의미:

  • TRUE: 표준 proportional odds (모든 공변량이 절단점 무관).
  • FALSE: 모든 공변량이 절단점 가변.
  • FALSE ~ u: \(u\) 만 절단점 가변, 다른 공변량은 비례 유지.
  • ~ u: 같은 의미 (간단 표기).

식 (10.7) 의 직접 구현. \(x\)\(u\) 의 분리가 parallel 공식으로 표현.

LR test 결과:

  • p < .05: partial 모형이 유의하게 우세 → 비례 위반 입증.
  • p ≥ .05: 표준 proportional 모형으로 충분.

5.3 Step 3: Mixed-effects Partial Proportional Odds (R brms)

library(brms)


# Mixed-effects partial proportional odds 는 frequentist 패키지 지원이 약함
# Bayesian 우회 — brms 의 `cs()` (category-specific) 활용

# 종단 ordinal 데이터 시뮬레이션 (random intercept + 비례 위반)
set.seed(2026)
n_subjects <- 100
n_times <- 4

df <- expand.grid(subject = 1:n_subjects, time = 0:(n_times-1))
df$drug <- rep(rbinom(n_subjects, 1, 0.5), each = n_times)

# 환자 random intercept
upsilon <- rep(rnorm(n_subjects, 0, 1.0), each = n_times)

# 비례 위반: drug 효과가 절단점별 다름
# 이 시뮬레이션은 단순화 — brms 는 적합 후 결과 시연
gamma <- c(-1, 0, 1)
alpha_drug <- c(-0.3, -0.8, -1.2)  # 절단점 1, 2, 3 에 대한 drug 효과

y <- numeric(nrow(df))
for (i in 1:nrow(df)) {
  drug <- df$drug[i]
  time <- df$time[i]
  base <- 0.3 * time + upsilon[i]
  P_le <- numeric(3)
  for (c in 1:3) {
    P_le[c] <- plogis(gamma[c] - (base + alpha_drug[c] * drug))
  }
  P_cat <- c(P_le[1], P_le[2] - P_le[1], P_le[3] - P_le[2], 1 - P_le[3])
  y[i] <- sample(1:4, 1, prob = P_cat)
}
df$y <- factor(y, levels = 1:4, ordered = TRUE)

# Mixed-effects partial proportional odds (cs() = category-specific)
# fit <- brm(y ~ time + cs(drug) + (1 | subject),
#            data = df, family = cumulative("logit"),
#            chains = 2, cores = 2, iter = 2000)
# summary(fit)

# 결과: drug 의 절단점별 별도 효과 추정 (식 10.7 의 alpha_c)
brms 의 cs() (category-specific) 인수
  • ~ time + cs(drug): time 은 비례 가정, drug 는 범주별 효과.
  • 추정 결과에 cs(drug)[1], cs(drug)[2], cs(drug)[3] 으로 절단점별 계수 출력.
  • Bayesian 이라 prior 지정 가능 — 약한 위반은 prior 로 정규화 (Hedeker-Mermelstein 1998 의 frequentist 추정보다 안정).

frequentist 대안:

  • SAS PROC NLMIXED: partial proportional odds + random effects 직접 적합 가능 (코드 복잡).
  • MIXOR (Hedeker 의 자체 소프트웨어): partial proportional odds 명시 지원.

결론: Mixed-effects + partial proportional odds 의 frequentist 표준 도구가 빈약. 실무에서는 brms (Stan) 가 가장 안정적인 길.

5.4 Step 4: 회귀선 교차 시각화 (Figure 10.4 재현)

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import expit


# Figure 10.4 의 두 모형 비교

# 공통 파라미터
gamma_1, gamma_2 = -1.0, 1.0
x_range = np.linspace(-4, 5, 200)

# 모형 1: Proportional odds (β = -0.5)
beta_po = -0.5
logit1_po = gamma_1 - x_range * beta_po
logit2_po = gamma_2 - x_range * beta_po

# 모형 2: Nonproportional odds (α_1 = -0.75, α_2 = -0.25)
alpha_1, alpha_2 = -0.75, -0.25
logit1_npo = gamma_1 - x_range * alpha_1
logit2_npo = gamma_2 - x_range * alpha_2

# 누적 확률
P_le1_po = expit(logit1_po)
P_le2_po = expit(logit2_po)
P_le1_npo = expit(logit1_npo)
P_le2_npo = expit(logit2_npo)

# Plot
fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# 위 - proportional
axes[0, 0].plot(x_range, P_le1_po, "b-", linewidth=2, label="P(Y<=1)")
axes[0, 0].plot(x_range, P_le2_po, "r--", linewidth=2, label="P(Y<=2)")
axes[0, 0].fill_between(x_range, P_le1_po, P_le2_po, alpha=0.2, color="orange",
                         label="P(Y=2)")
axes[0, 0].set_title("Proportional Odds (top): P(Y<=1) and P(Y<=2)")
axes[0, 0].set_xlabel("Continuous covariate x")
axes[0, 0].set_ylabel("Cumulative probability")
axes[0, 0].legend()
axes[0, 0].set_ylim(0, 1)

# 위 우측 - 절단점 차이
axes[0, 1].plot(x_range, P_le2_po - P_le1_po, "g-", linewidth=2)
axes[0, 1].set_title("P(Y=2) under Proportional — 항상 양수")
axes[0, 1].set_xlabel("x")
axes[0, 1].set_ylabel("P(Y=2)")
axes[0, 1].axhline(0, color="black", linestyle=":")

# 아래 - nonproportional
axes[1, 0].plot(x_range, P_le1_npo, "b-", linewidth=2, label="P(Y<=1)")
axes[1, 0].plot(x_range, P_le2_npo, "r--", linewidth=2, label="P(Y<=2)")
axes[1, 0].fill_between(x_range, P_le1_npo, P_le2_npo,
                         where=(P_le2_npo >= P_le1_npo),
                         alpha=0.2, color="orange", label="P(Y=2) >= 0")
axes[1, 0].fill_between(x_range, P_le1_npo, P_le2_npo,
                         where=(P_le2_npo < P_le1_npo),
                         alpha=0.4, color="red", label="P(Y=2) < 0 (위반)")
axes[1, 0].set_title("Nonproportional Odds: 회귀선 교차 위험")
axes[1, 0].set_xlabel("Continuous covariate u")
axes[1, 0].set_ylabel("Cumulative probability")
axes[1, 0].legend()
axes[1, 0].set_ylim(0, 1)

# 아래 우측 - P(Y=2) 가 음수가 되는 영역
axes[1, 1].plot(x_range, P_le2_npo - P_le1_npo, "g-", linewidth=2)
axes[1, 1].fill_between(x_range, 0, P_le2_npo - P_le1_npo,
                         where=(P_le2_npo - P_le1_npo < 0),
                         alpha=0.4, color="red", label="음의 확률 (불가능)")
axes[1, 1].set_title("P(Y=2) under Nonproportional — 큰 u 에서 음수")
axes[1, 1].set_xlabel("u")
axes[1, 1].set_ylabel("P(Y=2)")
axes[1, 1].axhline(0, color="black", linestyle=":")
axes[1, 1].legend()

plt.tight_layout()

# 교차점 계산
crossing_x = (gamma_2 - gamma_1) / (alpha_2 - alpha_1)
print(f"교차점: x = {crossing_x:.2f}")
print(f"   x < {crossing_x:.2f} 에서는 모형이 유효")
print(f"   x > {crossing_x:.2f} 에서 P(Y=2) < 0 → 모형 무효")
시각화의 메시지

위쪽 (proportional odds): 두 cumulative logit 회귀선이 평행. P(Y=2) = \(P_{le2} - P_{le1}\) 가 모든 \(x\) 에서 양수 → 모형 항상 유효.

아래쪽 (nonproportional odds): 두 회귀선이 다른 기울기 → 어떤 \(x^*\) 에서 교차. 교차점 너머에서 \(P_{le2} < P_{le1}\) → P(Y=2) 음수 → 모형 무효.

교차점 공식:

\[ x^* = \frac{\gamma_2 - \gamma_1}{\alpha_2 - \alpha_1} = \frac{1 - (-1)}{-0.25 - (-0.75)} = \frac{2}{0.5} = 4 \]

\(x = 4\) 에서 교차, \(x > 4\) 면 모형 위반.

실무 적용: 데이터의 \(x\) 범위가 교차점 안 (\(x < x^*\)) 이면 안전하지만, 그것을 미리 보장하기 어렵다. 이항 변수만 비례 위반 허용이 안전한 이유 — 이항이면 두 점 (0, 1) 만 사용, 교차점이 그 사이에 들어올 가능성이 거의 없음.

6 관련 주제

선행 지식

후속 주제 (Ch.10 sub-posts)

  • § 10.2.2 — Models with Scaling Terms (위치-척도 cumulative odds 모형, Cox 1995)
  • § 10.2.3 — Survival Analysis Models (이산 시간 비례 위험)
  • § 10.2.4 — Estimation (cumulative logit 의 marginal MLE 세부)
  • § 10.3 — NIMH 4 범주 ordinal 분석 (Ch.9 이항 분석과 비교, partial proportional odds 응용 가능)
  • § 10.4 — 노숙자 보건서비스 (section 8 certificate 의 비례 위반)

관련 개념

  • McCullagh (1980) — Proportional odds 모형 원전
  • Peterson & Harrell (1990) — Partial proportional odds (fixed-effects) 도입
  • Terza (1985) — Ordinal probit 의 비슷한 확장
  • Hedeker & Mermelstein (1998, 2000) — Mixed-effects partial proportional odds
  • Wakefield et al. (2001), Xie et al. (2001), Freels et al. (2002) — 응용
  • Ishwaran (2000) — Bayesian 계층 모형 버전
  • Kauermann & Tutz (2003) — 비선형 response function 으로 교차 회피
  • Ch.11 GLMM 명목 — Partial proportional odds 가 명목 모형에 가까워질 때

Subscribe

Enjoy this blog? Get notified of new posts by email: