이항 자료의 우도함수 — 로그우도·추정·이탈도·편향·희소성·외삽

McCullagh & Nelder §4.4 — Likelihood Functions for Binary Data

McCullagh & Nelder (1989) §4.4 의 이항 우도 이론을 심화한다. 로짓 링크에서 \(\mathbf{X}^\top \mathbf{y}\) 가 충분통계량이 되는 구조, IRLS 유도, 이탈도의 두 용도 (절대 적합도 vs 모형 비교), 충분한 자유도 아래 편향의 3차 cumulant 공식, 이진 자료(\(m=1\))에서 이탈도가 갖는 치명적 축약, 그리고 외삽 시 링크 함수의 엄청난 차이 — 수식과 직관으로 정리한다.

Statistics
GLM
저자

Kwangmin Kim

공개

2026년 04월 14일

1 왜 이항 우도를 따로 다루는가

우도 이론의 일반 결과 (Ch.2) 는 모든 GLM 에 적용된다. 그런데 이항 자료에는 고유한 병리 가 있다.

  1. 정준 링크 (logit) 에서의 구조적 단순성: \(\mathbf{X}^\top\mathbf{y}\)\(\boldsymbol\beta\) 의 충분통계량. 스코어 방정식이 “moments matching” 으로 환원.
  2. 희소성 (sparseness): \(m_i = 1\) 인 개체-수준 이진 자료에서 이탈도 \(D\)\(\hat{\boldsymbol\beta}\) 의 함수로 퇴화 — 적합도 검정 불가.
  3. \(\chi^2\) 근사의 범위: \(D \sim \chi^2_{n-p}\) 근사는 \(m_i \to \infty\) 에서만 성립. 실무에서 자주 위반.
  4. 편향의 비대칭: 로짓 모형의 \(\hat\beta\) 편향이 왜도 cumulant 구조로 드러남.
  5. 외삽의 위험: 관측 범위 내에서 거의 같은 적합 확률을 주는 네 링크가 외삽에서 \(10^{20}\) 배 이상 차이.

§4.4 는 이런 이항 특유의 문제들을 하나씩 다룬다.

직관: 이항 GLM 은 단순하지만 자료 구조 (\(m_i\) 가 크다·작다) 에 따라 통계적 성질이 극적으로 달라진다. 같은 우도 이론이 “큰 \(m_i\)” 에선 잘 작동하다가 “작은 \(m_i\)” 에선 기본 가정이 무너진다. §4.4 의 교훈은 “\(m_i\) 가 작을 때는 다르게 생각하라” 는 것.


2 로그우도와 충분통계량 (§4.4.1)

2.1 \(\pi\) 의 함수로서의 로그우도

\(Y_i \sim \mathrm{Bin}(m_i, \pi_i)\) 의 로그우도 (상수 \(\log\binom{m_i}{y_i}\) 제외):

\[ \ell(\boldsymbol\pi; \mathbf{y}) \;=\; \sum_{i=1}^n\left\{y_i\log\frac{\pi_i}{1-\pi_i} + m_i\log(1-\pi_i)\right\} \]

이 표현은 두 부분으로 깔끔하게 나뉜다.

  • \(y_i\log\{\pi_i/(1-\pi_i)\}\): 관측값 \(y_i\)로짓의 곱.
  • \(m_i\log(1-\pi_i)\): \(m_i\) 와 정규화 항의 곱.

2.2 로짓 링크의 특수한 대수적 단순성

\(\text{logit}(\pi_i) = \eta_i = \mathbf{x}_i^\top\boldsymbol\beta\) 대입:

\[ \ell(\boldsymbol\beta; \mathbf{y}) \;=\; \sum_i \sum_j y_i x_{ij}\beta_j \;-\; \sum_i m_i\log\left(1 + \exp\sum_j x_{ij}\beta_j\right) \]

핵심 관찰: 로그우도가 \(\mathbf{y}\) 에 대해 \(\mathbf{X}^\top\mathbf{y}\) 만을 통해 의존.

\(p\) 개 선형 결합 \(\mathbf{X}^\top\mathbf{y}\)\(\boldsymbol\beta\) 의 충분통계량. 지수족 정준 링크의 일반 결과 (§2.2) 가 이항-logit 에서 구체화된 모습.

2.3 충분통계량의 실무 결과

  1. 스코어 방정식의 단순성: \(\mathbf{X}^\top\mathbf{y} = \mathbf{X}^\top\hat{\boldsymbol{\mu}}\)Moments matching 으로 직접 해석.
  2. 로그우도의 오목성: \(\beta\) 에 대해 엄격 오목 → MLE 유일.
  3. Fisher 정보 = 관측 정보: 정준 링크의 특성. Newton-Raphson = Fisher scoring.

2.4 로그우도를 \(\boldsymbol\pi\)\(\boldsymbol\beta\) 로 분리

McCullagh 의 실용적 조언: “\(\ell(\boldsymbol\pi; \mathbf{y})\) 형태를 유지하고 필요할 때만 \(\boldsymbol\beta\) 로 대입”. 이유:

  • 모형 비교 시 공변량 집합이 바뀌지만 \(\ell(\boldsymbol\pi; \mathbf{y})\) 는 불변.
  • \(\boldsymbol\pi\) 가 “관찰 가능한 양” 에 가까워 해석 편의.
  • 제약 최대화·profile likelihood 계산에 유리.

직관: 로지스틱 회귀의 “단순함” 은 정준 링크가 주는 충분통계량 구조에서 나온다. 선형 예측자·moment matching·충분성이 하나로 묶이는 것이 이항 GLM 의 수학적 아름다움.


3 MLE 추정 — IRLS 의 구체화 (§4.4.2)

3.1 스코어 함수 유도

\(\ell(\boldsymbol\pi; \mathbf{y})\)\(\pi_i\) 에 대해 미분.

\[ \frac{\partial \ell}{\partial \pi_i} \;=\; \frac{y_i - m_i\pi_i}{\pi_i(1-\pi_i)} \]

체인룰:

\[ \frac{\partial \ell}{\partial \beta_r} \;=\; \sum_i \frac{y_i - m_i\pi_i}{\pi_i(1-\pi_i)}\cdot\frac{d\pi_i}{d\eta_i}\cdot x_{ir} \]

3.2 Fisher 정보 행렬

\(-E[\partial^2\ell/\partial\beta_r\partial\beta_s]\) 계산하면

\[ \{\mathbf{X}^\top\mathbf{W}\mathbf{X}\}_{rs},\qquad \mathbf{W} = \mathrm{diag}\left\{m_i\frac{(d\pi_i/d\eta_i)^2}{\pi_i(1-\pi_i)}\right\} \]

\(\mathbf{W}\)“링크에 따라 달라지는 가중치”.

3.3 링크별 가중치

링크 \(d\pi/d\eta\) \(W_{ii}\)
Logit \(\pi(1-\pi)\) \(m_i\,\pi_i(1-\pi_i)\)
Probit \(\phi(\eta)\) \(m_i\,\phi(\eta_i)^2/\{\pi_i(1-\pi_i)\}\)
Cloglog \((1-\pi)\{-\log(1-\pi)\}\) \(m_i\,\{-\log(1-\pi_i)\}^2(1-\pi_i)/\pi_i\)

로짓에서 \(\mathbf{W}\) 가 가장 단순한 이항 분산 \(m_i\pi_i(1-\pi_i)\) — 정준 링크의 또 다른 이점.

3.4 IRLS 업데이트

작업 반응 (adjusted dependent variate)

\[ z_i \;=\; \hat\eta_i + \frac{y_i - m_i\hat\pi_i}{m_i}\cdot\frac{d\eta_i}{d\pi_i} \]

새 추정치

\[ \hat{\boldsymbol\beta}_1 \;=\; (\mathbf{X}^\top\hat{\mathbf{W}}\mathbf{X})^{-1}\mathbf{X}^\top\hat{\mathbf{W}}\mathbf{z} \]

(§2.5 의 일반 IRLS 를 이항에 대입.)

3.5 수렴과 완전 분리

일반적으로 빠른 수렴 — 5–10 회.

예외 — 완전 분리 (complete separation): - 어떤 공변량 선형 결합이 \(y\) 를 완벽히 분리. - 적합된 확률 \(\hat\pi_i\) 가 0 또는 1 로 가는 방향. - \(|\hat\beta_j| \to \infty\), 수렴 실패. - 그러나 \(\hat\pi_i\) 자체는 빠르게 수렴 — 이탈도는 유한값으로 근접.

이 비대칭이 McCullagh 의 실무 경고: 두 수렴 기준 병행. 1. 이탈도 변화 (주 기준): 적합된 확률의 변화. 2. 계수 / 선형 예측자 변화 (보조 기준): 발산 감지.

이탈도만 보면 “수렴한 것처럼 보이지만” 계수는 \(\pm\infty\) 로 발산 중.

3.6 존재·유일성 조건

Wedderburn (1976), Haberman (1977):

  • 링크 함수가 log-concave (4.3 의 네 링크 모두 해당).
  • 모든 \(i\) 에서 \(0 < y_i < m_i\) (경계값 아님).

두 조건 만족 시 MLE 유한하고 유일.

경계값 (\(y_i = 0\) 또는 \(m_i\)) 이 있으면 MLE 가 무한으로 발산 가능. 이때 Firth 벌점 이나 Jeffreys 사전분포 로 정규화 필요.

3.7 시작값 선택

표준 선택: \(\tilde\mu_i = (y_i + 0.5)/(m_i + 1)\).

이는 Laplace 평활 — 경계 회피 + 약한 shrinkage. 발산 방지에 도움.

직관: IRLS 는 빠르고 안정적이지만 “경계 병리” 에 취약. 특히 희귀 결과 (drugs with 0% response) 또는 우위 결과 (100% infected) 에서는 수렴 기준과 시작값을 신중히 설정.


4 이탈도 함수 (§4.4.3)

4.1 정의

포화 모형 (각 \(\pi_i = y_i/m_i\)) 의 로그우도에서 현재 모형 로그우도를 뺀 양의 2 배.

\[ D(\mathbf{y}; \hat{\boldsymbol\pi}) \;=\; 2\sum_i\left\{y_i\log\frac{y_i}{\hat\mu_i} + (m_i - y_i)\log\frac{m_i - y_i}{m_i - \hat\mu_i}\right\} \]

(\(y_i = 0\) 또는 \(m_i\) 인 항은 극한 0.) 분포 자유 (dispersion-free), 모형 복잡도 증가 시 감소.

4.2 두 가지 용도

용도 1 — 절대 적합도 (\(D \sim \chi^2_{n-p}\) 근사 활용):

가정: 1. 관측 독립 이항 (과산포 없음). 2. \(m_i \to \infty\) 모든 \(i\) 에 대해, 특히 \(m_i\pi_i(1-\pi_i) \to \infty\).

이 극한에서 \(D\)\(\hat{\boldsymbol\pi}\) 와 근사 독립이고 \(\chi^2_{n-p}\) 분포.

용도 2 — 모형 비교 (LRT):

\[ D(\mathbf{y}; \hat{\boldsymbol\mu}_0) - D(\mathbf{y}; \hat{\boldsymbol\mu}_A) \;=\; 2\ell(\hat{\boldsymbol\mu}_A; \mathbf{y}) - 2\ell(\hat{\boldsymbol\mu}_0; \mathbf{y}) \]

이탈도 차이 = 우도비 검정 통계량. \(\chi^2_{p_A - p_0}\) 근사가 훨씬 약한 가정 하에서 성립 (\(n\) 크면 충분).

4.3 핵심 구분

이탈도의 두 근사는 다른 요구 수준
  • \(D\) 자체의 \(\chi^2\) 근사: \(m_i \to \infty\) 필요. 희소 자료에서 깨짐.
  • \(\Delta D\)\(\chi^2\) 근사: \(n \to \infty\) 만으로 OK. 널리 유효.

실무 규칙: - 절대 적합도 검정에서 \(D\) 를 직접 쓰는 것은 위험. - 중첩 모형 비교에서는 \(\Delta D\) 신뢰 가능.

4.4 \(D\) vs Pearson \(X^2\)

둘 다 동일한 \(\chi^2_{n-p}\) 극한 분포 (큰 \(m\) 가정), 하지만:

  • \(D\): 모형 비교에 최적 (\(\Delta D\) = LRT).
  • \(X^2\): 과산포 진단에 표준 (\(X^2/(n-p) \approx \phi\)).

직관: 이탈도는 “차이” 에 강하고 “절대값” 에는 약하다. 공통 편향이 차이에서 상쇄되기 때문. 모형 비교는 믿고, 적합도 판정은 조심.


5 편향과 정밀도 (§4.4.4)

5.1 1차 근사 결과

대표본에서 MLE 는

\[ E(\hat{\boldsymbol\beta} - \boldsymbol\beta) \;=\; O(n^{-1}) \]

\[ \mathrm{cov}(\hat{\boldsymbol\beta}) \;=\; (\mathbf{X}^\top\mathbf{W}\mathbf{X})^{-1}\{1 + O(n^{-1})\} \]

점근 정규 + 점근 불편. 표준 결과.

5.2 편향의 3차 cumulant 공식 (로짓)

\(O(n^{-1})\) 편향의 구체 형태:

\[ \kappa_{r,s,t} \;=\; \sum_i x_{ir}x_{is}x_{it}\cdot m_i\pi_i(1-\pi_i)(1-2\pi_i) \]

이것이 스코어의 왜도 3차 배열 (skewness array).

편향 추정:

\[ \mathrm{bias}(\hat\beta_r) \;\approx\; -\frac12\sum_{i,j,k}\kappa^{r,i}\kappa^{j,k}\kappa_{i,j,k} \]

(\(\kappa^{r,s}\) 는 정보 행렬의 역행렬 원소.)

5.3 \((1 - 2\pi)\) 인자의 의미

\(\pi = 0.5\) 에서 \((1 - 2\pi) = 0\)대칭 자료는 편향 0.

\(\pi\) 가 0 이나 1 에 가까우면 \((1-2\pi)\) 가 크고, 편향도 커짐. 극단 확률에서 편향이 심해지는 것.

5.4 왜도 (skewness)

\(\hat{\boldsymbol\beta}\) 의 3차 cumulant:

\[ \mathrm{cum}(\hat\beta_r, \hat\beta_s, \hat\beta_t) \;\approx\; -2\sum_{i,j,k}\kappa^{r,i}\kappa^{s,j}\kappa^{t,k}\kappa_{i,j,k} \]

편향과 동일 구조의 \(\kappa_{i,j,k}\) 를 공유.

5.5 Edgeworth 보정

정규 근사를 \(\kappa_{r,s,t}\) 로 보정 — 고차 근사. 소표본에서 신뢰구간 정확도 개선.

5.6 Firth 벌점의 원리

Firth (1993) 는 \(O(n^{-1})\) 편향을 완전히 제거하는 벌점

\[ \ell^*(\boldsymbol\beta) \;=\; \ell(\boldsymbol\beta) + \tfrac12\log|\mathcal I(\boldsymbol\beta)| \]

이것이 Jeffreys 사전 분포 + MAP 해석. 이항 로지스틱에서 완전 분리에서도 유한 해 보장. 현대 로지스틱 회귀의 표준 대안.

직관: 편향 공식의 \((1-2\pi)\) 인자가 “극단 확률 → 큰 편향” 의 패턴을 정확히 설명한다. Firth 벌점은 이 편향을 자료 한 점을 반 씩 추가 한 것과 같은 효과로 상쇄 — 매우 작은 정규화의 우아한 형태.


6 희소성의 치명적 효과 (§4.4.5)

6.1 극한 사례 — \(m_i = 1\) (개체별 이진)

모든 \(y_i \in \{0, 1\}\) 이므로 \(y\log y = (1-y)\log(1-y) = 0\) (극한). 이탈도 대수 전개:

\[ D \;=\; -2\hat{\boldsymbol\beta}^\top\mathbf{X}^\top\mathbf{y} - 2\sum_i\log(1-\hat\pi_i) \]

스코어 방정식 \(\mathbf{X}^\top\mathbf{y} = \mathbf{X}^\top\hat{\boldsymbol\mu}\) 대입하면

\[ D \;=\; -2\hat{\boldsymbol\eta}^\top\hat{\boldsymbol\pi} - 2\sum_i\log(1-\hat\pi_i) \]

6.2 치명적 결과

\(D\) 가 오직 \(\hat{\boldsymbol\beta}\) 의 함수! 관측 \(\mathbf{y}\) 의 정보가 사라짐. 즉

\[ D \mid \hat{\boldsymbol\beta} \;=\; \text{상수} \]

조건부로 퇴화 (degenerate). 적합도 검정에 쓸 수 없다.

6.3 직관적 이유

이진 자료 (\(m_i = 1\)) 에서 각 관측은 단일 비트. 모든 비트를 “로짓 모형” 이 완벽 적합하지 않더라도, 로짓 모수로 정확히 같은 예측값을 주는 모든 자료 세트는 같은 \(D\) 를 낸다. 즉 \(D\) 가 자료의 “세부 패턴” 을 보지 못함.

6.4 Pearson \(X^2\) 도 마찬가지

공통 \(\pi\) 모형 (\(Y_i \sim \mathrm{Bern}(\pi)\), \(\hat\pi = \bar y\)) 에서

\[ X^2 \;=\; \sum\frac{(y_i - \bar y)^2}{\bar y(1-\bar y)} \;=\; n \]

표본 크기 \(n\) 이 곧 통계량. 적합도 정보 0.

6.5 실무 처방

  1. 집계 (grouping): 공변량을 구간화해 covariate class 만들기. 각 클래스 \(m_i\) 가 커지면 \(\chi^2\) 근사 복원.
  2. Hosmer-Lemeshow 검정: 적합 확률을 10 분위로 구간화. 구간별 관측 vs 기대 비교.
  3. Residual 진단 플롯: 숫자 검정 대신 시각 진단 (Deviance residual vs fitted, Q-Q).
  4. 조건부 moments: 소수 \(m_i\) 에서는 McCullagh (1985) 의 조건부 평균·분산 근사 사용.

6.6 조건부 평균·분산 (McCullagh 1985)

\[ E(X^2 \mid \hat{\boldsymbol\beta}) \;\approx\; n - p - \tfrac12\sum_i\{1 - 6\hat\pi_i(1-\hat\pi_i)\}\hat V_{ii} + \cdots \]

\(\hat V_{ii}\) 는 hat matrix 의 대각 (leverage). 중급 희소 (\(m_i\) 작지만 \(> 1\)) 에서 근사 가능.

직관: 이진 자료의 “적합도 검정 불가” 는 응용 통계의 알려진 함정. “로지스틱 회귀를 돌렸더니 deviance 통계량이 나오네” 하고 믿으면 안 된다. \(m_i = 1\) 이면 의미 없는 숫자. 반드시 집계 후 재검정이거나 Hosmer-Lemeshow 등 대안 사용.


7 외삽의 위험 — 링크 함수의 압도적 영향 (§4.4.6)

7.1 문제 설정

독성학 실험: 고농도에서 반응 관찰 후 저농도에서 안전 여유 추정. 실험실에서는 농도를 높여 반응률을 키우고, 실무에서는 훨씬 낮은 노출의 최대 허용 용량 (maximum safe dose) 을 외삽.

7.2 교재 예시 (Table 4.3, 4.4)

관측 구간 \(x \in \{0, 1, 2\}\) (log 용량) 에서 네 링크 모두 거의 같은 적합.

용량 관측 \(y/m\) Logit Probit Cloglog Loglog
\(x = 0\) 3/10 0.280 0.281 0.288 0.278
\(x = 1\) 5/10 0.540 0.540 0.519 0.558
\(x = 2\) 8/10 0.780 0.782 0.793 0.766

관측 구간 내에서는 적합값 차이 < 0.01 — 링크 선택이 거의 무의미해 보임.

7.3 외삽 결과 (Table 4.4)

\(x_0 = -3.912\) (용량 \(1/50\)) 로 외삽:

링크 \(\hat\pi(x_0)\)
Logit \(5.13 \times 10^{-3}\)
Probit \(6.10 \times 10^{-4}\)
Cloglog \(1.68 \times 10^{-2}\)
Loglog \(1.1 \times 10^{-12}\)

\(10^{10}\) 배 차이. 더 극단 외삽 (\(x_0 = -4.605\)) 에서는 \(10^{21}\) 배까지 벌어진다.

7.4 왜 이렇게 차이 나는가

각 링크의 꼬리 감소 속도가 다르다.

  • Logit: \(\log\pi\) 로 감쇠 → 꼬리 느림.
  • Probit: Gaussian 꼬리 → 더 빠름.
  • Cloglog: \(e^\eta\) 로 감쇠 → 중간.
  • Loglog: \(e^{-\eta}\) 로 이중 지수 감쇠 → 가장 빠름.

관측 구간에서 선형에 가까운 부분을 공유하지만, 외삽은 꼬리 모양에 의존 — 데이터로 결정 불가능.

7.5 Fieller 신뢰구간

용량 \(x_0\) 에서 특정 반응률 \(\pi_0\) 을 얻는 신뢰구간. 선형 결합

\[ \hat\beta_0 + \hat\beta_1 x_0 - g(\pi_0) \]

이 근사 정규. 분산

\[ v^2(x_0) \;=\; \mathrm{var}(\hat\beta_0) + 2x_0\,\mathrm{cov}(\hat\beta_0,\hat\beta_1) + x_0^2\,\mathrm{var}(\hat\beta_1) \]

신뢰구간

\[ \left|\frac{\hat\beta_0 + \hat\beta_1 x_0 - g(\pi_0)}{v(x_0)}\right| < k_{\alpha/2}^* \]

7.6 실무 권장

McCullagh 의 명시적 경고:

외삽 시 복수 링크 점검 필수

여러 링크에서 일치된 결과만 신뢰. 불일치하면 외삽의 본질적 불확실성을 보고에 명시.

단일 링크의 “점 추정” 은 과학적 증거가 되지 못한다. 특히 용량-반응 안전성·희귀 사건 확률 예측에서.

직관: “데이터가 본 적 없는 영역” 에서 확률을 말하려면 링크의 꼬리 모양이 결정적. 관측 구간 내 AIC 가 비슷해 보여도 외삽은 완전히 다른 세계. 극단값 예측은 통계가 아닌 모형 가정의 문제.


8 코드 예시

8.1 Step 1: 충분통계량 검증

import numpy as np
import statsmodels.api as sm

rng = np.random.default_rng(0)
n = 200
X = np.column_stack([np.ones(n), rng.normal(size=n), rng.normal(size=n)])
beta_true = np.array([-0.3, 1.0, 0.5])
eta = X @ beta_true
pi = 1 / (1 + np.exp(-eta))
y = rng.binomial(1, pi)

# 로짓 적합
m = sm.GLM(y, X, family=sm.families.Binomial()).fit()

# 스코어 방정식: X' y == X' mu_hat
lhs = X.T @ y
rhs = X.T @ m.fittedvalues
print(f"X' y - X' μ̂ 최대 차이: {np.abs(lhs - rhs).max():.2e}")
# 0 에 가까우면 moment matching 검증

로짓에서 \(\mathbf{X}^\top\mathbf{y} = \mathbf{X}^\top\hat{\boldsymbol\mu}\) 가 스코어 방정식의 내용. 기계 정밀도 내 성립.

8.2 Step 2: 이탈도 vs \(\Delta D\)\(\chi^2\) 근사 품질

from scipy import stats

# 큰 m (집계된 자료)
n_sim = 2000
D_samples = []
for _ in range(n_sim):
    m_i = 20
    n_obs = 15
    X_sim = np.column_stack([np.ones(n_obs), rng.normal(size=n_obs)])
    beta_sim = np.array([0.0, 0.5])
    pi_sim = 1 / (1 + np.exp(-(X_sim @ beta_sim)))
    y_sim = rng.binomial(m_i, pi_sim)
    ym = np.column_stack([y_sim, m_i - y_sim])
    try:
        fit = sm.GLM(ym, X_sim, family=sm.families.Binomial()).fit(disp=0)
        D_samples.append(fit.deviance)
    except:
        pass

D_samples = np.array(D_samples)
df_resid = n_obs - 2
print(f"큰 m (m_i=20, n_obs=15) 에서 D 의 분포")
print(f"  평균: {D_samples.mean():.2f}  (이론 χ²_{df_resid} 평균: {df_resid})")
print(f"  분산: {D_samples.var():.2f}  (이론 χ²_{df_resid} 분산: {2*df_resid})")

\(m\) 에서 이탈도가 \(\chi^2\) 이론값에 가깝다. 이진 자료 (\(m=1\)) 에서는 이 비교가 무너진다 (다음 Step).

8.3 Step 3: 이진 자료에서 이탈도의 퇴화

# m = 1 인 이진 자료
n = 200
X_bin = np.column_stack([np.ones(n), rng.normal(size=n)])
beta_true = np.array([0.0, 0.8])
y_bin = rng.binomial(1, 1/(1+np.exp(-(X_bin @ beta_true))))

fit_bin = sm.GLM(y_bin, X_bin, family=sm.families.Binomial()).fit(disp=0)
D_bin = fit_bin.deviance

# 이탈도를 공식 -2 eta' pi - 2 sum log(1-pi) 로 재계산
eta_hat = X_bin @ fit_bin.params
pi_hat = 1 / (1 + np.exp(-eta_hat))
D_formula = -2 * (eta_hat @ pi_hat) - 2 * np.sum(np.log(1 - pi_hat))

print(f"statsmodels 이탈도:  {D_bin:.4f}")
print(f"공식 계산 이탈도:     {D_formula:.4f}")
print(f"→ 이탈도가 β̂, π̂ 만의 함수 (y 에 무관) — 적합도 검정 불가")

# 같은 β 를 주는 다른 y 로도 같은 D? — 불가능하지만 D 의 예측력 없음 확인
from scipy.stats import chi2
p_value = 1 - chi2.cdf(D_bin, df=n - 2)
print(f"\n(잘못된) χ² 검정 p-value: {p_value:.4f}")
print("이 p-value 는 의미 없음 (이탈도가 자료 정보를 담지 않음)")

\(m=1\) 이진 자료에서 이탈도가 “유도된 공식” 으로만 결정되어 자료 세부와 무관. \(\chi^2\) 검정은 무의미.

8.4 Step 4: Hosmer-Lemeshow 적합도 검정

import pandas as pd

def hosmer_lemeshow(y, pi_hat, groups=10):
    """HL 검정 — 적합 확률 분위수로 구간 후 관측 vs 기대"""
    df = pd.DataFrame({"y": y, "pi": pi_hat})
    df["decile"] = pd.qcut(df["pi"], q=groups, duplicates="drop", labels=False)
    obs = df.groupby("decile")["y"].agg(["sum", "count"])
    exp = df.groupby("decile")["pi"].sum()
    # HL 통계
    stat = ((obs["sum"] - exp) ** 2 / (exp * (1 - exp/obs["count"]))).sum()
    df_hl = groups - 2
    p = 1 - chi2.cdf(stat, df_hl)
    return stat, p, df_hl

stat, p, df_hl = hosmer_lemeshow(y_bin, pi_hat)
print(f"Hosmer-Lemeshow 통계: {stat:.3f}, df={df_hl}, p={p:.4f}")
print("→ 이 검정은 m=1 자료에서도 유효한 적합도 진단")

HL 검정은 구간화로 \(\chi^2\) 근사를 복원 — 이진 자료의 \(D\) 퇴화를 우회.

8.5 Step 5: 네 링크에서 외삽의 극단 차이

# McCullagh Table 4.3 의 교재 자료 재현
x_obs = np.array([0, 1, 2])
y_obs = np.array([3, 5, 8])
m_obs = np.array([10, 10, 10])
X_obs = np.column_stack([np.ones(3), x_obs])
Y_obs = np.column_stack([y_obs, m_obs - y_obs])

# 네 링크 적합
links = {
    "logit":   sm.families.links.Logit(),
    "probit":  sm.families.links.Probit(),
    "cloglog": sm.families.links.CLogLog(),
}

print("관측 구간 내 적합값:")
for name, link in links.items():
    m = sm.GLM(Y_obs, X_obs, family=sm.families.Binomial(link)).fit()
    eta = X_obs @ m.params
    pi_fit = link.inverse(eta)
    print(f"  {name:8s}: {pi_fit}")

# 외삽: x = -3.912 (용량 1/50)
print(f"\n외삽 π̂ at x = -3.912:")
for name, link in links.items():
    m = sm.GLM(Y_obs, X_obs, family=sm.families.Binomial(link)).fit()
    eta_extra = m.params[0] + m.params[1] * (-3.912)
    pi_extra = link.inverse(np.array([eta_extra]))[0]
    print(f"  {name:8s}: {pi_extra:.3e}")

관측 구간 내 <0.01 차이가 외삽에서 \(10^5 \sim 10^{10}\) 배로 확대.


9 흔한 실수

실수 처방
\(m=1\) 자료에서 이탈도 \(\chi^2\) 검정으로 적합도 판정 퇴화 — 무의미. Hosmer-Lemeshow 등 대안 사용
절대 이탈도 값 검정과 이탈도 차이 검정을 같이 취급 전자는 큰 \(m\) 필요, 후자는 큰 \(n\) 만 필요
완전 분리 자료에서 계수 그대로 보고 Firth 또는 Jeffreys 정규화로 유한 해
극단 확률 예측 외삽을 단일 링크로 복수 링크 병행. 불일치 시 외삽 신뢰구간 확장
편향 보정 없이 소표본 로지스틱 보고 Firth 기본값 또는 bias-corrected 추정
희귀 결과 로지스틱에서 MLE 시작값 \(\pi = 0\) \(\tilde\mu = (y+0.5)/(m+1)\) 로 경계 회피

10 요약

  • 로그우도 구조: \(\ell(\boldsymbol\pi; \mathbf{y})\) 형태 유지 권장. 로짓에서 \(\mathbf{X}^\top\mathbf{y}\) 가 충분통계량, 스코어 방정식 = moment matching.
  • MLE 계산: IRLS. 가중치 \(\mathbf{W}\) 는 링크 의존 (로짓은 \(m_i\pi_i(1-\pi_i)\)). 완전 분리 시 수렴 기준 이원화.
  • 이탈도의 두 용도: (1) 절대 적합도 — 큰 \(m_i\) 필요. (2) 모형 비교 \(\Delta D\)\(n\) 크면 OK, 훨씬 견고.
  • 편향 구조: \(\hat\beta\) 편향이 \(\kappa_{r,s,t} \propto (1-2\pi)\) 에 비례. \(\pi\) 극단에서 악화. Firth 벌점이 \(O(n^{-1})\) 편향 제거.
  • 희소성의 치명성: \(m_i = 1\) 에서 이탈도가 \(\hat\beta\) 의 함수로 퇴화. 적합도 검정 불가. 집계·HL·잔차 진단으로 대응.
  • 외삽의 위험: 관측 내 유사 적합의 네 링크가 외삽에서 \(10^{10}\) 배 이상 차이. 복수 링크 점검 필수.
  • Fieller 신뢰구간: 목표 확률을 주는 공변량 값의 신뢰집합. 선형 결합의 분산 공식 사용.

한 줄 요약: §4.4 는 이항 우도의 일반 성질 + 고유 병리 를 모두 정리한다. 이론적 단순성 (충분통계량·moment matching) 의 이면에 실무 함정 (희소성·외삽·완전 분리) 이 공존한다. “로지스틱 회귀는 쉽다” 는 일반 인식이 어떻게 무너지는지 — 그리고 어떻게 지켜야 하는지 — 가 이 절의 핵심 가르침이다.


11 관련 주제

선행 지식

관련 개념

후속 주제

  • Over-dispersion (McCullagh §4.5) — \(\phi > 1\) 처리
  • Firth logistic — 완전 분리 대응
  • Hosmer-Lemeshow 검정 — 희소 자료 적합도
  • Model checking (Ch.12) — 잔차 진단 플롯

Subscribe

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