1 들어가며 — Ch.9 NIMH 이항 분석의 ordinal 확장
§ 9.7 ~ 9.7.3 (NIMH 이항 분석, 09-6 ~ 09-7) 에서 IMPS 79 점수를 mildly ill (3) 과 moderately ill (4) 사이에서 이항화해 분석했다. § 10.3 는 같은 데이터의 원래 7 범주를 4 범주 ordinal 로 사용 — 정보 손실 없이 더 풍부한 분석.
| 항목 | Ch.9 (이항) | § 10.3 (4 범주 ordinal) |
|---|---|---|
| 응답 변수 | \(Y \in \{0, 1\}\) (“moderately ill 이상” 여부) | \(Y \in \{1, 2, 3, 4\}\) (4 단계 중증도) |
| 절단점 | 0 자동 (logistic 표준) | 3 개 자유 추정 (\(\gamma_1 = 0\) 고정, \(\gamma_2, \gamma_3\) 추정) |
| 정보 활용 | 부분 (이항화 손실) | 완전 |
| 추가 분석 | — | 비례 오즈 가정 검정 |
| 모수 수 | 4 고정 + random | 4 고정 + 2 절단점 + random |
“§ 10.3 = Ch.9 의 NIMH 데이터를 7 → 4 범주 ordinal 로 분석. 같은 패턴 발견 — Drug × Time 강하게 유의 (random intercept p<.001, random intercept + trend p<.001), 환자 이질성 매우 큼 (ICC = 0.53), random trend 추가 강하게 유의 (LR χ²₂ = 77.90). 절편-기울기 상관 -0.41 의 두 해석 (regression to mean vs IMPS79 floor effect). 비례 오즈 가정은 데이터에 적합 (LR χ²₆ = 3.71, df = 6, p > .05). 결론: 같은 임상적 결론을 더 풍부한 모수 정보로 도출. ordinal 모형이 이항보다 정보가 많지만 결론은 일관.”
2 § 10.3 — 데이터 재범주화
2.1 IMPS 79 의 4 범주 ordinal
원래 IMPS 79 척도 (Inpatient Multidimensional Psychiatric Scale, Item 79 “Severity of Illness”): 0 ~ 7 점 (8 단계).
§ 10.3 의 재범주화:
| 새 범주 | 원래 점수 범위 | 임상 해석 |
|---|---|---|
| 1 | 0-2 | normal or borderline mentally ill |
| 2 | 3-4 | mildly or moderately ill |
| 3 | 5 | markedly ill |
| 4 | 6-7 | severely or 가장 extremely ill |
Ch.9 의 이항화 (mildly vs moderately) 가 본 4 범주의 1-2 vs 3-4 절단점에 해당.
7 범주를 4 범주로 줄이는 이유:
- 표본 분산: 7 범주에 환자가 골고루 분포하지 않음. 일부 범주에 sparse → 추정 불안정.
- 임상적 의미 단위: 임상에서는 보통 4 단계 (normal / mild-moderate / marked / severe) 가 의사결정 단위.
- 비례 오즈 가정의 작동성: 범주가 너무 많으면 비례 가정이 모든 절단점에서 깨질 가능성 ↑. 4 범주가 절약과 정보의 균형.
Ch.9 이항화와의 비교:
- 이항화: 1-2 vs 3-4 (mildly vs moderately) 한 절단점만 사용. 다른 절단점 (normal vs mild, marked vs severe) 정보 손실.
- 4 범주: 1-2-3 절단점 모두 활용. 정보 풍부.
→ § 10.3 의 결과가 Ch.9 결과와 비슷하지만 더 정확한 표준오차 + 추가적 임상 정보 (각 범주에서의 처치 효과).
2.2 Figure 10.6-10.7 — 그룹별 4 범주 비율 추이
Placebo (Figure 10.6) 와 Drug (Figure 10.7) 그룹의 4 범주 비율 추이 (4 primary timepoints: 0, 1, 3, 6 weeks):
Placebo 그룹:
- “Normal” (범주 1): 시간 따라 증가 (느리게).
- “Mild/mod” (범주 2): 시간 따라 약간 증가.
- “Marked” (범주 3): 시간 따라 약간 감소.
- “Severe” (범주 4): 시간 따라 감소.
Drug 그룹:
- “Normal” (범주 1): 시간 따라 빠르게 증가.
- “Mild/mod”: 약간 증가.
- “Marked”: 감소.
- “Severe”: 빠르게 감소.
→ 두 그룹 모두 호전 패턴 (severe ↓, normal ↑) 이지만 drug 그룹의 변화가 더 빠르고 큼.
이항 분석에서는 한 그래프 (P(moderately ill) 추이) 만 봤지만, ordinal 분석에서는 4 개 범주 모두의 추이:
- “Severe → normal 로 가는 경로” 전체가 보임.
- 약효가 어떤 단계에 집중되는지 (예: severe → marked, 또는 marked → mild) 파악 가능.
- 임상적 시사: 약효가 가장 심한 환자에게 더 집중되는지, 모든 단계에 균등한지.
이 정보가 약물의 임상적 가치 평가에 직접 활용 — 단순 “약효 있음/없음” 판정 너머의 mechanism 이해.
2.3 Figure 10.8 — 3 Cumulative Logits 의 시각화
4 범주에서는 3 개 cumulative logit:
- 첫 cumulative logit (top plot): \(\log[P(Y=4) / P(Y \in \{1,2,3\})]\) = “severe” vs “non-severe” 의 odds.
- 둘째 cumulative logit (middle): \(\log[P(Y \in \{3,4\}) / P(Y \in \{1,2\})]\) = “marked or severe” vs “normal/mild” 의 odds.
- 셋째 cumulative logit (bottom): \(\log[P(Y \in \{2,3,4\}) / P(Y=1)]\) = “mild or worse” vs “normal” 의 odds.
각 그룹 (placebo, drug) 별로 시간에 따른 추이.
비례 오즈가 성립하면 그룹 간 차이 (drug - placebo) 가 세 cumulative logit 모두 동일 — 세 그래프에서 두 그룹 trend line 의 세로 간격이 동일.
비례 오즈 위반의 시각적 신호:
- 한 cumulative logit 에서는 차이 큼, 다른 곳에서는 작음 → location 변동 (§ 10.2.1 partial PO).
- 트렌드 모양 자체가 다름 → 분산 차이 (§ 10.2.2 scaling).
저자의 결론: “visual inspection of the proportional odds assumption is inconclusive” — 시각적 검토만으로 결론 내기 어려움. 통계적 검정 필요 (§ 10.3 끝부분).
셋째 cumulative logit 의 baseline 결측: “off the map for the first timepoint because very few subjects were classified as normals at the baseline visit” — week 0 에 normal 범주 환자가 거의 없어 logit 계산 불가능. 초기 환자가 모두 심한 상태로 시작했다는 사실의 시각적 표현.
3 Random Intercept Ordinal Logistic Regression
3.1 모형 정의 — 식 (10.23-10.24)
3 cumulative logit (\(c = 1, 2, 3\)) 모두에 대해:
\[ \log \left[ \frac{P_{ijc}}{1 - P_{ijc}} \right] = \gamma_c - \left[ b_{0i} + b_{1i} \sqrt{\text{Week}_j} \right] \tag{10.23} \]
\[ b_{0i} = \beta_0 + \beta_2 \text{Drug}_i + \upsilon_{0i} \] \[ b_{1i} = \beta_1 + \beta_3 \text{Drug}_i \tag{10.24} \]
랜덤 효과: \(\upsilon_{0i} \sim \mathcal{N}(0, \sigma_v^2)\) — 환자별 baseline 잠재 변수 차이.
식 (10.23-10.24) 의 4 고정 효과 + 2 절단점 + 1 random:
- \(\beta_0\): placebo (Drug = 0) 환자의 week 0 기준 logit (절편). 첫 cumulative logit 의 평균.
- \(\beta_1\): placebo 환자의 sqrt(week) 1 단위당 logit 변화 — 자연 회복 + 입원 효과.
- \(\beta_2\): drug 의 baseline logit 차이 — RCT 잘 됐으면 0.
- \(\beta_3\): drug × time cross-level interaction — 약효의 차등 시간 효과. 임상적 핵심.
- \(\gamma_2, \gamma_3\): 절단점 (\(\gamma_1 = 0\) 고정). 4 범주의 상대적 분포.
- \(\upsilon_{0i}\): 환자 random intercept (4 cumulative logit 모두에 동일하게 적용 — proportional odds).
식 (10.23) 의 \(\beta_1, \beta_3\) 가 모든 cumulative logit 에 같은 값 — proportional odds 가정의 직접 표현.
3.2 Table 10.2 — Random Intercept 결과
| 모수 | Estimate | SE | \(Z\) | \(p <\) |
|---|---|---|---|---|
| Intercept (\(\beta_0\)) | 5.858 | 0.343 | 17.08 | .001 |
| Threshold 2 (\(\gamma_2\)) | 3.033 | 0.132 | 22.91 | .001 |
| Threshold 3 (\(\gamma_3\)) | 5.152 | 0.179 | 28.74 | .001 |
| Drug (\(\beta_2\)) | -0.055 | 0.311 | -0.18 | .86 |
| Time (\(\beta_1\)) | -0.766 | 0.120 | -6.39 | .001 |
| Drug × Time (\(\beta_3\)) | -1.206 | 0.133 | -9.06 | .001 |
| Intercept SD (\(\sigma_v\)) | 1.944 | 0.128 |
\(-2 \log L = 3402.72\)
Ch.9 NIMH random intercept (Table 9.4) 와 비교:
| 모수 | Ch.9 이항 (Table 9.4) | § 10.3 ordinal (Table 10.2) | 변화 |
|---|---|---|---|
| Drug | -0.025 (p=.97) | -0.055 (p=.86) | 거의 동일 (둘 다 비유의) |
| Time | -1.500 (p<.001) | -0.766 (p<.001) | 약간 작음 |
| Drug × Time | -1.015 (p<.001) | -1.206 (p<.001) | 약간 큼 |
| Intercept SD | 2.116 | 1.944 | 약간 작음 |
임상적 결론 동일:
- Drug 주효과 비유의 (RCT 정합).
- Time 효과 강한 음수 (호전).
- Drug × Time 강한 음수 (약효의 차등 효과).
효과 크기 차이의 원인:
- 잠재 분산 척도가 다름 (cumulative logit 의 분포 가정).
- Ordinal 의 정보 풍부함이 표준오차에 반영 → z-statistic 더 크거나 비슷.
ICC 계산:
\[ \widehat\rho = \frac{1.944^2}{1.944^2 + \pi^2/3} = \frac{3.779}{3.779 + 3.290} = 0.53 \]
→ Ch.9 의 0.58 와 비슷. 환자 이질성이 매우 큼 (잠재 변동의 53 % 가 환자 간 차이).
시간 측정 간격의 영향: 본문 인용 — “measurement schedules with intervals closer in time (e.g., weeks) yield higher ICCs than those with distal time intervals (e.g., months)”. NIMH 의 매주 측정이 ICC 를 높임.
3.3 절단점 (\(\gamma_2, \gamma_3\)) 의 해석
\(\gamma_1 = 0\) (고정), \(\gamma_2 = 3.033\), \(\gamma_3 = 5.152\), intercept \(\beta_0 = 5.858\) 로 placebo 환자의 week 0 cumulative logit:
- 첫 cumulative logit (\(P(Y=1)\) 의 logit): \(0 - 5.858 = -5.858\) → \(P(Y=1) = \Psi(-5.858) \approx 0.003\).
- 둘째 cumulative logit (\(P(Y \leq 2)\) 의 logit): \(3.033 - 5.858 = -2.825\) → \(P(Y \leq 2) = \Psi(-2.825) \approx 0.056\).
- 셋째 cumulative logit (\(P(Y \leq 3)\) 의 logit): \(5.152 - 5.858 = -0.706\) → \(P(Y \leq 3) = \Psi(-0.706) \approx 0.331\).
- \(P(Y = 4)\) = \(1 - 0.331 = 0.669\).
→ Placebo 환자의 week 0 분포 (P=1, 2, 3, 4) ≈ (0.003, 0.053, 0.275, 0.669).
임상적 해석:
- Week 0 에 환자의 67 % 가 “severe” (범주 4).
- 28 % 가 “marked” (범주 3).
- 5 % 정도 가 “mild/moderate” (범주 2).
- 거의 없는 (0.3 %) 환자 만 “normal” (범주 1).
→ baseline 표본이 거의 모두 심한 상태. RCT 의 정합성 + 약효 검출의 sensitivity 보장.
4 Random Intercept and Trend Ordinal Model
4.1 모형 정의 — 식 (10.25-10.27)
기울기까지 random:
\[ b_{0i} = \beta_0 + \beta_2 \text{Drug}_i + \upsilon_{0i} \] \[ b_{1i} = \beta_1 + \beta_3 \text{Drug}_i + \upsilon_{1i} \tag{10.25} \]
\(\upsilon_i = (\upsilon_{0i}, \upsilon_{1i})^\top \sim \mathcal{N}_2(0, \Sigma_v)\). \(\Sigma_v = TT^\top\) 의 Cholesky.
Level-1 + Level-2 결합:
\[ \log \left[ \frac{P_{ijc}}{1 - P_{ijc}} \right] = \gamma_c - \left[ \beta_0 + \beta_1 \sqrt{W_j} + \beta_2 D_i + \beta_3 (D_i \sqrt{W_j}) + \upsilon_{0i} + \upsilon_{1i} \sqrt{W_j} \right] \]
\[ T = \begin{bmatrix} \sigma_{\upsilon_0} & 0 \\ \frac{\sigma_{\upsilon_{01}}}{\sigma_{\upsilon_0}} & \left( \sigma_{\upsilon_1}^2 - \frac{\sigma_{\upsilon_{01}}^2}{\sigma_{\upsilon_0}^2} \right)^{1/2} \end{bmatrix} \]
비표준화 ↔︎ 표준화 변환 (식 10.26-10.27):
\[ \upsilon_{0i} = \sigma_{\upsilon_0} \theta_{0i} \]
\[ \upsilon_{1i} = \frac{\sigma_{\upsilon_{01}}}{\sigma_{\upsilon_0}} \theta_{0i} + \left( \sigma_{\upsilon_1}^2 - \frac{\sigma_{\upsilon_{01}}^2}{\sigma_{\upsilon_0}^2} \right)^{1/2} \theta_{1i} \]
\(\theta_{0i}, \theta_{1i} \sim \mathcal{N}(0, 1)\) 독립.
Cholesky factor \(T\) 의 \(2 \times 2\) 사례:
- \(T_{11} = \sigma_{\upsilon_0}\) (절편 SD).
- \(T_{21} = \sigma_{\upsilon_{01}} / \sigma_{\upsilon_0}\) (상관 정보 + 절편 SD).
- \(T_{22} = \sqrt{\sigma_{\upsilon_1}^2 - \sigma_{\upsilon_{01}}^2 / \sigma_{\upsilon_0}^2}\) (기울기의 절편-독립 부분).
식 (10.27) 의 의미:
- \(\upsilon_{1i}\) 가 두 부분으로 분해 — 절편과 상관된 부분 + 절편-독립 부분.
- 첫째 부분 = \((\sigma_{\upsilon_{01}}/\sigma_{\upsilon_0}) \theta_{0i}\) — 절편 effect 와 같은 \(\theta_{0i}\) 사용 → 상관 발생.
- 둘째 부분 = \((\cdot) \theta_{1i}\) — 독립 \(\theta_{1i}\).
이 표현이 상관 구조의 자연스러운 분해 — 회귀 분석의 partial 효과 개념과 일관.
4.2 Table 10.3 — Random Intercept + Trend 결과
| 모수 | Estimate | SE | \(Z\) | \(p <\) |
|---|---|---|---|---|
| Intercept | 7.309 | 0.484 | 15.10 | .001 |
| Threshold 2 (\(\gamma_2\)) | 3.912 | 0.214 | 18.29 | .001 |
| Threshold 3 (\(\gamma_3\)) | 6.528 | 0.291 | 22.43 | .001 |
| Drug | 0.111 | 0.402 | 0.28 | .78 |
| Time | -0.875 | 0.236 | -3.71 | .001 |
| Drug × Time | -1.724 | 0.270 | -6.40 | .001 |
| Cholesky | ||||
| Intercept SD (\(T_{11}\)) | 2.669 | 0.256 | \(\widehat\sigma_{\upsilon_0}^2 = 7.13\) | |
| Intercept-time covariance (\(T_{21}\)) | -0.588 | 0.159 | \(r = -0.41\) | |
| Time SD (\(T_{22}\)) | 1.308 | 0.126 | \(\widehat\sigma_{\upsilon_1}^2 = 2.06\) |
\(-2 \log L = 3324.82\)
| 모수 | Random Intercept | Random Intercept + Trend |
|---|---|---|
| Drug | -0.055 (p=.86) | +0.111 (p=.78) |
| Time | -0.766 (p<.001) | -0.875 (p<.001) |
| Drug × Time | -1.206 (p<.001) | -1.724 (p<.001) |
Drug × Time 효과가 -1.206 → -1.724 로 더 큼 (약 43 % 증가). 이미 강하게 유의했지만 더 정확한 추정.
Ch.9 이항 분석과의 비교 (Table 9.6):
| 모수 | Ch.9 이항 | § 10.3 Ordinal | 차이 |
|---|---|---|---|
| Drug × Time | -1.587 (p<.001) | -1.724 (p<.001) | 비슷 |
| Intercept SD | 2.726 | 2.669 | 비슷 |
| Time SD | 1.561 | 1.308 | 약간 작음 |
| Cor | -0.47 | -0.41 | 비슷 |
→ Ordinal 분석이 이항 분석과 매우 일관된 결과. 정보가 풍부해도 결론 동일.
4.3 LR 검정 — Random Trend 의 가치
\[ \chi^2_2 = -2\log L_{\text{int}} - (-2\log L_{\text{int+trend}}) = 3402.72 - 3324.82 = 77.90 \]
자유도 2, \(p < .001\) — 강한 유의.
\(\chi^2_2 = 77.90\) 은 매우 큰 값 (자유도 2 의 .001 quantile ≈ 13.82). 압도적 유의.
해석:
- 환자별 시간 추세 (호전 속도) 가 통계적으로 유의하게 다름.
- Random intercept 만으로는 시간 추세의 환자 차이를 흡수 못함.
- → Random intercept + trend 모형이 데이터에 더 적합.
Ch.9 와의 비교:
- Ch.9 이항: \(\chi^2_2 = 22.31\) (Table 9.6).
- § 10.3 ordinal: \(\chi^2_2 = 77.90\).
Ordinal 분석에서 random trend 의 증거가 훨씬 강함 — 정보가 풍부하면 변동 검출 능력 ↑. 이것이 ordinal 분석의 또 다른 강점.
Boundary 보정: \(\sigma_{\upsilon_1}^2 = 0\) 이 boundary. Self-Liang (1987) 보정 후에도 강한 유의 (검정 통계량이 너무 큼).
4.4 분산의 임상적 해석
추정 모수에서:
- 평균 placebo 기울기: \(\beta_1 = -0.875\).
- 평균 drug 기울기: \(\beta_1 + \beta_3 = -0.875 - 1.724 = -2.599\).
- 기울기 SD: \(\sqrt{2.06} = 1.435\).
95 % CI of individual slopes:
- Placebo 환자 95 %: \(-0.875 \pm 1.96 \times 1.435 = (-3.69, 1.94)\).
- Drug 환자 95 %: \(-2.599 \pm 1.96 \times 1.435 = (-5.42, 0.21)\).
임상적 함의:
- Placebo 환자의 5 % 정도가 양의 기울기 (악화) — 자연 호전 안 되고 더 심해지는 환자.
- Drug 환자의 5 % 정도가 양의 기울기 — 약효 안 받는 환자.
- Placebo 환자의 일부 (CI 의 좌측) 가 매우 가파른 음의 기울기 — 약물 없이도 빠르게 호전.
→ “그룹 평균” 효과 너머의 광범위한 환자 trajectory. Personalized medicine 의 정량적 토대.
4.5 절편-기울기 음의 상관 -0.41 의 두 가지 해석
상관 \(r_{\upsilon_0 \upsilon_1} = -0.41\) — “절편이 큰 환자 (baseline 가 심함) 가 더 음의 기울기 (빠르게 호전)”.
저자 본문의 두 해석:
해석 1 — Regression to the Mean:
- Baseline 가 매우 심한 환자가 시간이 지남에 따라 평균으로 돌아옴 (regression to the mean).
- 통계적 인공물 — 극단값에서 시작한 측정이 다음 시점에는 평균으로 수렴.
- 약효의 진짜 효과가 아니라 측정의 본질적 패턴.
해석 2 — IMPS 79 의 Floor Effect:
- IMPS 79 척도가 upper bound (가장 심한 상태) 가 있음.
- baseline 가 이미 “near the floor (가장 가벼운)” 인 환자는 더 호전될 여지가 적음 → 양의 기울기.
- baseline 가 “near the ceiling (가장 심한)” 인 환자는 호전 여지가 많음 → 음의 기울기.
- 측정 척도의 한계가 만드는 인공물.
두 해석이 같은 데이터 패턴을 만든다:
- 둘 다 “심한 환자의 빠른 호전” 패턴.
- 통계적으로 구분 불가능.
추가 정보 활용:
- 임상적 메커니즘: 정신분열증의 자연사가 regression to mean 에 가까운지, 아니면 측정 척도 한계인지.
- IMPS 79 의 분포 특성: 척도의 ceiling/floor 가 명확한지.
- 다른 측정 도구와의 비교: HAMD 같은 다른 척도에서도 같은 상관이 나타나는지.
Hedeker 본문의 결론: 두 해석을 모두 가능성으로 제시하고 임상적 판단에 맡김.
정확한 답은 데이터로부터 못 찾음 — 모형이 data-generating mechanism 의 ambiguity 를 정확히 반영. 이것이 좋은 통계적 분석의 자세 — 가능한 해석을 모두 제시 + 한계 명시.
5 Empirical Bayes Trajectories — Figure 10.9-10.10
5.1 환자별 “normal” 확률 추이
Random effects EB 추정 (\(\widehat\upsilon_{0i}, \widehat\upsilon_{1i}\)) 대입:
\[ \widehat P(Y_{ij} = 1) = \frac{1}{1 + \exp[7.31 + 0.11 D_i - 0.88 \sqrt{W_j} - 1.72 D_i \sqrt{W_j} + \widehat\upsilon_{0i} + \widehat\upsilon_{1i} \sqrt{W_j}]} \]
다른 범주 확률은 인접 cumulative 의 차이:
\[ \widehat P(Y_{ij} = 2) = \widehat\Psi(\widehat\gamma_2 - (\cdots)) - \widehat P(Y_{ij} = 1) \] \[ \widehat P(Y_{ij} = 3) = \widehat\Psi(\widehat\gamma_3 - (\cdots)) - \widehat P(Y_{ij} = 2) \] \[ \widehat P(Y_{ij} = 4) = 1 - \widehat\Psi(\widehat\gamma_3 - (\cdots)) \]
→ 한 모형에서 4 개 범주 확률 모두 산출. 이항 분석의 한계 (한 절단점 정보만) 를 넘어선다.
저자의 본문 인용:
“though some placebo patients do improve across time, not many have too great a probability of being in the normal category by the end of the study. For the drug group there is considerable heterogeneity, though many subjects have a good chance of being normal by the last timepoint.”
해석:
- Placebo 환자들: 대부분 “normal” 확률이 낮은 trajectory. 일부만 빠르게 호전 (Figure 10.9 의 가파른 곡선).
- Drug 환자들: 광범위한 trajectory. 많은 환자가 마지막 시점에 “normal” 확률이 높음 (Figure 10.10).
이 시각화의 임상적 가치:
- Treatment success 의 정의: 단순 “약효 받음/안 받음” 이 아닌, “마지막 시점에 normal 까지 갈 확률” 같은 구체적 outcome.
- Treatment failure 식별: Drug 그룹 중 끝까지 “normal” 확률 낮은 환자 — 다른 약물 또는 추가 처치 필요.
- Spontaneous recovery 인지: Placebo 그룹 중 일부 빠르게 호전 — 자연 회복 가능 환자군.
6 Marginalization — Figure 10.11
6.1 Marginal Probabilities 의 산출
§ 9.7.2 / 10-2 의 절차와 같음:
- Step 1: 절단점과 회귀 부분 분리 — \(\widehat y_i = X_i \widehat \beta\).
- Step 2: Marginalization vector \(\widehat s = \sqrt{\widehat\sigma_v^2 / \sigma^2 + 1}\) (또는 random effects 차원에 따라 일반화).
- Step 3: 각 절단점별 standardized cumulative logit — 4 범주이면 3 개.
- Step 4: Cumulative probability 차이로 cell probability 4 개 산출.
본문 Table 10.4-10.5 의 SAS 코드가 이 절차의 직접 구현 (Random intercept + trend 모형 기준).
Figure 10.11 의 4 panel — normal, mild, marked, severe 각각의 marginal probability 추이:
- 모든 4 panel 에서 marginal curve 와 관측 비율 일치도 좋음.
- → 모형이 marginal 패턴을 잘 포착.
Ch.9 이항 분석과의 비교 (Figure 9.13, 9.17):
- 이항: 한 panel (P(“moderately ill”) 추이) 만 평가 가능.
- Ordinal: 4 panel 모두 평가 — 각 범주별 적합 품질 검토.
Ordinal 분석의 추가 진단 가치:
- 어떤 범주에서 적합이 잘 안 되는지 식별 가능.
- 특정 범주의 적합 부족 → 비례 오즈 가정 위반 의심 → § 10.2.1 partial PO 검토.
- 4 panel 중 적합 잘 되면 모형 선택의 강한 증거.
7 비례 오즈 가정 검정
Nonproportional odds 모형 — 3 covariate (Drug, Time, Drug × Time) 가 3 cumulative logit 에 별도 효과 = 9 covariate parameter.
\(-2 \log L_{\text{nonproportional}} = 3321.11\).
LR 검정:
\[ \chi^2 = -2\log L_{\text{proportional}} - (-2\log L_{\text{nonproportional}}) = 3324.82 - 3321.11 = 3.71 \]
자유도 = 9 - 3 = 6 (nonproportional 의 추가 모수).
p > .05 (자유도 6 의 .05 quantile ≈ 12.59).
결론: 비례 오즈 가정이 데이터에 적절. § 10.2.1 의 partial PO 모형 불필요.
NIMH 데이터에서 비례 오즈 가정이 만족된다는 것:
- Drug 효과의 OR (drug vs placebo) 가 3 cumulative logit 모두 동일.
- 즉 약효가 “severe → marked”, “marked → mild”, “mild → normal” 모든 단계에서 같은 비율로 작용.
- 약물이 어느 특정 단계에 집중되지 않고 균등하게 호전 효과.
Partial PO 모형이 필요한 사례 (§ 10.4):
- 노숙자 보건서비스 (§ 10.4) 에서는 section 8 certificate 가 비례 위반 — independent housing 진행에는 효과 큼, community vs street 비교에는 미미.
- 그런 경우 partial PO 모형이 필수.
NIMH 데이터의 비례 가정 만족은 약효의 균등성 이라는 임상적 정보. 이것 자체가 약효 메커니즘에 대한 단서.
8 Ch.9 이항 vs § 10.3 Ordinal 분석의 종합 비교
| 항목 | Ch.9 이항 | § 10.3 Ordinal | 차이 |
|---|---|---|---|
| 응답 정보 | 부분 (이항화) | 완전 (4 범주) | Ordinal 풍부 |
| Drug × Time (random int) | -1.015 | -1.206 | 비슷 |
| Drug × Time (random int+trend) | -1.587 | -1.724 | Ordinal 약간 큼 |
| ICC (random int) | 0.58 | 0.53 | 비슷 |
| LR (random int+trend vs random int) | 22.31 | 77.90 | Ordinal 강함 |
| 절편-기울기 cor (random int+trend) | -0.47 | -0.41 | 비슷 |
| 비례 오즈 가정 검정 | — | \(\chi^2_6 = 3.71\) (만족) | Ordinal 의 추가 분석 |
같은 데이터, 두 분석의 결론이 일관:
- 이항 분석의 결론 (Drug × Time 강한 효과, 환자 이질성 큼) 이 ordinal 분석에서 그대로 확인.
- Ordinal 분석이 추가 정보 제공 (각 범주별 효과, 비례 오즈 가정 검정, 더 강한 random trend 증거).
실무 권고 — 응답이 ordinal 이면 ordinal 모형 우선:
- 정보 손실 회피: 이항화로 정보 잃음. Ordinal 이 자연.
- 표본 효율: 같은 sample size 에서 ordinal 이 더 정확.
- 추가 진단: 비례 오즈 가정 검정 등 모형 적합 평가의 추가 도구.
- 임상적 해석: 각 범주의 처치 효과를 별도로 평가 가능 (partial PO 로 확장 시).
이항 분석의 자리:
- 응답이 본질적으로 이항 (Y/N 결정).
- 이항화 후의 임상 해석이 명확 (예: “회복 vs 회복 안 함”).
- Ordinal 모형의 추정이 sparse 데이터로 어려운 경우.
NIMH 같은 임상 RCT 에서는 ordinal 분석이 기본, 이항화는 secondary analysis 또는 시각화 용도.
9 응용 분야
| 분야 | Ordinal 응답 | NIMH 와의 평행 |
|---|---|---|
| 정신과 RCT | IMPS, HAMD, BPRS 의 4-5 단계 | 본 시연 |
| 종양 임상 | RECIST (CR/PR/SD/PD) | Drug × Time 의 ordinal |
| 통증 관리 | NRS 0-10 → 4 범주화 | Random trend 환자 차이 |
| 기능 평가 | ADL, IADL 의 다단계 | 절편-기울기 음의 상관 |
| 만족도 조사 | Likert 5/7 점 | 비례 오즈 가정 검정 |
| 교육 평가 | 학기말 등급 (A/B/C/D/F) | Marginal 적합 평가 |
10 코드 예시
10.1 Step 1: 4 범주 NIMH-like 데이터 시뮬레이션
import numpy as np
import pandas as pd
def simulate_nimh_ordinal(seed: int = 2026) -> pd.DataFrame:
"""Table 10.3 의 추정값을 사용한 NIMH-like 4 범주 ordinal 시뮬레이션."""
rng = np.random.default_rng(seed)
# 표 9.1 의 attrition pattern (간략화)
n_placebo = 108
n_drug = 329
n_times = 4 # week 0, 1, 3, 6
sqrt_weeks = [0.0, 1.0, np.sqrt(3), np.sqrt(6)]
# 추정값 (Table 10.3)
intercept = 7.309
threshold2 = 3.912
threshold3 = 6.528
beta_drug = 0.111
beta_time = -0.875
beta_drug_time = -1.724
sigma_v0 = 2.669
sigma_v01_per_v0 = -0.588 / 2.669 # = T_21
sigma_v1_indep = np.sqrt(1.308**2 - (sigma_v01_per_v0 * 2.669)**2 / 2.669**2)
rows = []
subject_id = 0
for group, N in [("placebo", n_placebo), ("drug", n_drug)]:
drug = 1 if group == "drug" else 0
for i in range(N):
# 환자 random effects (식 10.26-10.27)
theta_0 = rng.normal()
theta_1 = rng.normal()
v_0i = sigma_v0 * theta_0
v_1i = sigma_v01_per_v0 * theta_0 + sigma_v1_indep * theta_1
for j, sw in enumerate(sqrt_weeks):
# 잠재 변수 위치 (식 reduced form)
eta = -(intercept + beta_drug * drug + beta_time * sw +
beta_drug_time * drug * sw + v_0i + v_1i * sw)
# 잠재 변수
y_latent = eta + rng.logistic()
# 4 범주 분류
if y_latent < 0:
y = 1
elif y_latent < threshold2:
y = 2
elif y_latent < threshold3:
y = 3
else:
y = 4
rows.append({"subject": subject_id, "drug": drug,
"sqrt_week": sw, "y": y})
subject_id += 1
return pd.DataFrame(rows)
df = simulate_nimh_ordinal()
print(f"전체: {len(df)} 행, {df['subject'].nunique()} 환자")
print(f"\n그룹·시점별 응답 분포 (placebo):")
print(df[df['drug'] == 0].groupby(['sqrt_week', 'y']).size().unstack(fill_value=0))논문의 Table 10.3 추정값으로 데이터 생성 → 다시 적합하면 추정값 회복 가능. 본 코드는 mixed-effects 의 random intercept + trend 의 정확한 시뮬레이션.
식 (10.27) 의 \(\upsilon_{1i} = (\sigma_{v_{01}}/\sigma_{v_0}) \theta_{0i} + (\sigma_{v_1}^2 - \sigma_{v_{01}}^2/\sigma_{v_0}^2)^{1/2} \theta_{1i}\) 가 절편-기울기 음의 상관을 만들어냄.
10.2 Step 2: Random Intercept Ordinal 적합 (R)
library(ordinal)
# Random intercept ordinal proportional odds (식 10.23-10.24)
fit_int <- clmm(factor(y, ordered = TRUE) ~ drug + sqrt_week + drug:sqrt_week
+ (1 | subject),
data = df, link = "logit")
summary(fit_int)
# 표 10.2 와 비교
# - threshold (γ_2, γ_3): clmm 의 "Threshold coefficients"
# - β_2 (drug): clmm 의 "drug" coefficient
# - β_1 (sqrt_week)
# - β_3 (drug:sqrt_week)
# - σ_v: VarCorr() 로 추출
# ICC (식 §10.3 의 0.53 와 비교)
sigma_v_sq <- VarCorr(fit_int)$subject[1, 1]
icc <- sigma_v_sq / (sigma_v_sq + pi^2 / 3)
cat("\nICC =", round(icc, 3), "(논문: 0.53)\n")clmm 의 출력 해석
clmm 의 summary() 에서:
- Threshold coefficients: 식 (10.23) 의 \(\gamma_c\) — 단조 증가.
- Coefficients: \(\beta_1, \beta_2, \beta_3\) — 식 (10.23-10.24) 의 부호 관행 따름.
- Random effects: \(\sigma_v\) 의 분산.
모수 부호의 주의: clmm 은 식 (10.1) 의 \(\gamma_c - x^\top\beta\) 표기 사용. R 의 polr 와 같은 부호. SAS PROC LOGISTIC 의 부호와 다를 수 있음 (식 10.6 형태) — 출력 해석 시 표기 확인 필수.
10.3 Step 3: Random Intercept + Trend 적합 + LR 검정
# Random intercept + trend (식 10.25)
fit_int_trend <- clmm(factor(y, ordered = TRUE) ~ drug + sqrt_week + drug:sqrt_week
+ (sqrt_week | subject),
data = df, link = "logit")
summary(fit_int_trend)
# Cholesky 추출 후 Sigma_v 복원
VarCorr(fit_int_trend)$subject # 직접 행렬 형태
attr(VarCorr(fit_int_trend)$subject, "correlation") # 상관계수
# LR test vs random intercept (논문: chi^2_2 = 77.90, p<.001)
anova(fit_int, fit_int_trend)clmm 의 random slope 적합 한계
clmm 은 random intercept + slope 의 다중 random effects 적합 가능하지만, nAGQ > 1 (adaptive Gauss-Hermite) 옵션이 random slope 가 있으면 작동 안 함 — Laplace approximation 만 사용.
→ 정확도 약간 손실. 정확한 추정은 SAS PROC NLMIXED 또는 brms (Bayesian) 권고.
LR test 결과 검증:
anova(fit_int, fit_int_trend)의 \(\chi^2\) 값이 ~77 근처면 시뮬레이션이 논문 데이터와 비슷.- p-value < .001 이면 random trend 의 유의성 확인.
10.4 Step 4: 비례 오즈 가정 검정
library(VGAM)
# Proportional odds 모형 (single-level, mixed-effects 검정은 어려움)
fit_po <- vglm(factor(y, ordered = TRUE) ~ drug + sqrt_week + drug:sqrt_week,
family = cumulative(parallel = TRUE, link = "logitlink"),
data = df)
# Nonproportional odds (모든 covariate 가 절단점 가변)
fit_npo <- vglm(factor(y, ordered = TRUE) ~ drug + sqrt_week + drug:sqrt_week,
family = cumulative(parallel = FALSE, link = "logitlink"),
data = df)
# LR test (자유도 = 추가 covariate 수 = 2 * 3 = 6, 논문과 일치)
lrtest(fit_po, fit_npo)
# 논문: chi^2 = 3.71, df = 6, not significant본 코드는 single-level 비례 오즈 검정 (random effects 무시). Mixed-effects 모형의 비례 오즈 검정은:
- frequentist: SAS
PROC NLMIXED직접 코딩. - Bayesian:
brms의cs()인수로 partial proportional odds 모형 적합 후 비교.
Single-level 검정의 근사적 활용:
- 비례 오즈 가정은 보통 covariate 수준에서 결정 — random effects 의 영향 작음.
- 단일 수준 검정 결과가 일반적으로 mixed-effects 검정과 일치.
- → 본 코드의 single-level 검정 결과 (\(\chi^2_6 \approx 3.71\)) 가 논문 결과의 근사.
결과 해석: p > .05 면 비례 오즈 가정 채택 → 단순 proportional odds 모형 사용. p < .05 면 partial proportional odds (§ 10.2.1) 필요.
11 관련 주제
선행 지식
- Ch.10 Overview — Cumulative ordinal framework
- § 10.2 ~ 10.2.1 — Proportional + partial proportional odds
- § 10.2.4 추정 — Cumulative ordinal MLE
- § 9.7 — NIMH 이항 분석 (직접 비교)
- § 9.7.2-9.7.3 — NIMH random intercept/trend 이항
후속 주제 (Ch.10 sub-posts)
- § 10.4 — 노숙자 보건서비스 (section 8 certificate, partial PO 응용)
- § 10.5 — Ch.10 Summary
관련 개념
- McCullagh (1980) — Proportional odds 의 원전 (NIMH 검정의 토대)
- Hedeker & Gibbons (1994) — NIMH 데이터의 ordinal probit 분석
- Self & Liang (1987) — LR 검정의 boundary 분포
- McKelvey & Zavoina (1975), Winship & Mare (1984) — Ordinal 을 연속으로 처리할 때 편향
- Lorr & Klett (1966) — IMPS 척도 원전
- Ch.14 결측 데이터 — NIMH attrition 패턴 분석