Over-dispersion in Polytomous GLMs

군집 샘플링·Dirichlet-multinomial·산포 인자 \(\sigma^2\) 추정 (McCullagh & Nelder §5.5, §4.5)

다범주 반응의 과산포 현상을 체계적으로 정리한다. 군집 샘플링 유도로부터 \(\sigma^2\) 의 범위와 의미, 베타-이항·Dirichlet-multinomial 대안, 복제·잔차 기반 \(\sigma^2\) 추정의 비교, 표준오차 보정과 Quasi-likelihood 와의 연결을 수식과 직관으로 함께 전개한다.

Statistics
GLM
저자

Kwangmin Kim

공개

2026년 04월 15일

1 왜 과산포를 따로 다루는가

교재의 §5.5 는 짧다. “다범주 과산포는 이항 과산포(§4.5)와 정확히 같은 방식으로 발생한다” 한 문장으로 시작해, 공분산을 \(\sigma^2 \boldsymbol{\Sigma}\) 로 부풀리는 보정만 제시한다. 그러나 실무에서는 이 한 줄 뒤에 숨은 질문들이 모두 중요하다.

  • \(\sigma^2\) 은 어디서 왔고, 어떤 범위에 있는가?
  • 왜 점추정 \(\hat{\boldsymbol{\beta}}\) 은 영향을 안 받고 표준오차만 부풀리는가?
  • 이탈도 \(D/\text{df}\) vs Pearson \(X^2/\text{df}\) — 어느 쪽이 더 나은 \(\sigma^2\) 추정인가?
  • 베타-이항·Dirichlet-multinomial 같은 명시적 모형quasi-likelihood 간접 보정 중 무엇을 선택하는가?

이 포스트는 McCullagh & Nelder (1989) §4.5 (이항 과산포의 완전한 전개) 와 §5.5 (다항 확장) 를 함께 읽고, 수식의 직관과 실무적 판단 기준까지 정리한다.

한 줄 요약

과산포는 “관측의 분산이 가정 분포가 허용하는 것보다 크다” 는 현상이다. 대부분 군집 구조·숨은 이질성·반복 측정 에서 온다. 대응은 두 방향: (1) 명시적 혼합 분포(베타-이항, Dirichlet-multinomial) 적합, (2) 평균 모형은 유지하고 분산만 스케일 \(\sigma^2\) 으로 부풀리는 quasi-likelihood 보정. 실무에서는 후자가 더 견고하다.


2 정의 — “과산포”란 무엇인가

정의: 과산포 (Over-dispersion)

반응 \(Y\) 의 실제 분산이 명목 분포(이항·다항·포아송)가 예측하는 분산보다 큰 현상을 과산포라 한다. 이항의 경우

\[ \mathrm{Var}(Y) = \sigma^2 \cdot m\pi(1 - \pi), \qquad \sigma^2 > 1 \]

다항의 경우

\[ \mathrm{Cov}(\mathbf{Y}) = \sigma^2 \cdot \boldsymbol{\Sigma}, \quad \boldsymbol{\Sigma} = m\{\mathrm{diag}(\boldsymbol{\pi}) - \boldsymbol{\pi}\boldsymbol{\pi}^\top\} \tag{5.17} \]

으로 쓰며, \(\sigma^2\)산포 모수(dispersion parameter) 또는 산포 인자(dispersion factor) 라 한다. \(\sigma^2 < 1\) 은 과소산포(under-dispersion).

McCullagh 는 “과산포가 예외가 아니라 일반적 이다” 라고 지적한다. 특히 역학·사회조사·생태 데이터에서는 이항·다항 분산이 전체 분산의 작은 부분일 뿐이며, 외부 근거 없이 \(\sigma^2 = 1\) 을 믿는 것은 위험 하다.


3 왜 생기는가 — 군집 샘플링 유도 (Genesis)

3.1 이항의 경우 — 식 (4.20)

가장 흔한 원인은 군집(cluster). 가족, 가구, 새끼(litter), 이웃 등이 자연 군집이다.

\(m\) 명의 표본이 \(m/k\) 개 군집에서 왔다고 하자(군집 크기 \(k\) 고정). 군집 \(i\) 의 성공률 \(\pi_i\) 가 군집마다 다르며

\[ \mathrm{E}(\pi_i) = \pi, \quad \mathrm{Var}(\pi_i) = \tau^2 \pi(1 - \pi), \quad 0 \le \tau^2 \le 1. \]

이때 군집별 성공 수 \(Z_i \sim \text{Bin}(k, \pi_i)\) 이고 총 성공 수 \(Y = \sum_i Z_i\) 에 대해

\[ \begin{aligned} \mathrm{E}(Y) &= m \pi \\ \mathrm{Var}(Y) &= m\pi(1-\pi)\{1 + (k-1)\tau^2\} = \sigma^2 m\pi(1-\pi). \end{aligned} \tag{4.20} \]

여기서 산포 모수

\[ \sigma^2 = 1 + (k - 1)\tau^2 \]

군집 크기 \(k\) 와 군집 간 이질성 \(\tau^2\) 에만 의존 하며, 표본 크기 \(m\) 에 의존하지 않는다. 이 사실이 결정적이다 — \(\sigma^2\) 을 데이터 전체 잔차로 추정할 수 있게 해 주기 때문이다.

3.2 직관 — 왜 분산이 부풀려지는가

독립이 깨진 두 가지 층:

  1. 같은 군집 안의 관측들은 공통 \(\pi_i\) 를 공유 → 양의 상관 이 생긴다
  2. 군집 간 \(\pi_i\) 자체가 랜덤 → 추가 분산 이 쌓인다

총분산 분해 공식 \(\mathrm{Var}(Y) = \mathrm{E}[\mathrm{Var}(Y|\pi_i)] + \mathrm{Var}[\mathrm{E}(Y|\pi_i)]\) 에서, 이항 가정은 첫 항만 잡아낸다. 과산포는 두 번째 항의 크기 를 측정하는 숫자이다.

3.3 \(\sigma^2\) 의 자연적 범위

\(0 \le \tau^2 \le 1\) 이므로 \(1 \le \sigma^2 \le k \le m\). 즉

  • 최소: \(\tau^2 = 0\) (군집 간 동질) → \(\sigma^2 = 1\), 단순 이항
  • 최대: \(\tau^2 = 1\) (군집 내 완벽 동조) → \(\sigma^2 = k\), 모든 \(m\) 명이 사실상 \(m/k\) 개의 독립 관측에 해당

실무에서는 과소산포(\(\sigma^2 < 1\))도 허용하기 위해 \(0 \le \sigma^2\) 로 확장된 정의역을 쓴다. 과소산포는 음의 군집 내 상관(공간 경쟁, 반복 측정의 평균회귀 등) 에서 발생한다.

3.4 중요한 경계 조건 — \(m = 1\) 이면 과산포 없음

\(m = 1\) 인 이항(베르누이)은 평균이 분산을 완전히 결정한다 (\(\pi(1-\pi)\)). 따라서 \(m = 1\) 데이터에서는 과산포 자체가 정의되지 않는다. 이는 중요한 함의:

  • 개별 단위(yes/no) 데이터만 있으면 과산포 진단 불가
  • 각 공변량 클래스에 여러 관측이 묶여 있어야 진단 가능
  • 로지스틱 회귀를 집계되지 않은(ungrouped) 형태 로 적합하면 \(\hat{\sigma}^2\) 추정이 무의미 (\(m_i = 1\) 이면 잔차 구조가 자동적으로 \(\sigma^2 \approx 1\) 을 강제)

3.5 다항으로의 확장 — §5.5

다항 반응의 과산포는 이항과 정확히 같은 군집 메커니즘 으로 발생한다. 군집 내 \(\boldsymbol{\pi}_i\) 가 Dirichlet 분포를 따른다고 가정하면 Dirichlet-multinomial 분포가 나오며, 이항의 베타-이항과 같은 역할을 한다. 공분산은

\[ \mathrm{Cov}(\mathbf{Y}) = \sigma^2\, m\{\mathrm{diag}(\boldsymbol{\pi}) - \boldsymbol{\pi}\boldsymbol{\pi}^\top\} \]

모든 셀이 같은 스케일 \(\sigma^2\) 으로 부풀려진다 는 단순한 구조로 표현된다. 명목/순서 구분 없이 동일하게 적용 가능.


4 명시적 대안 분포 — 베타-이항과 Dirichlet-multinomial

4.1 베타-이항 (이항 \(\to\) 다항 연결고리)

군집별 \(\pi_i \sim \text{Beta}(\alpha, \beta)\) 라고 가정하면 \(Y \sim \text{BetaBin}(m, \alpha, \beta)\).

\[ \mathrm{E}(Y) = m\pi, \qquad \mathrm{Var}(Y) = m\pi(1-\pi)\frac{m + \alpha + \beta}{1 + \alpha + \beta}. \]

핵심 차이점: 분산 비율 \(\mathrm{Var}(Y)/\{m\pi(1-\pi)\}\)\(m\) 에 선형 증가. 식 (4.20) 의 cluster 모형은 이 비율이 \(m\) 에 무관 (상수).

진단 방법: 잔차 \((y_i - \hat{\mu}_i)^2 / \{m_i \hat{\pi}_i(1 - \hat{\pi}_i)\}\)\(m_i\) 에 대해 플롯했을 때

  • 수평선 → cluster 모형 (식 4.20)
  • 우상향 → 베타-이항

McCullagh 의 경험상 실무 데이터 대부분은 cluster 모형(상수 \(\sigma^2\)) 을 지지 한다.

4.2 Dirichlet-multinomial (다항 버전)

군집별 \(\boldsymbol{\pi}_i \sim \text{Dirichlet}(\alpha_1, \ldots, \alpha_k)\) 라 하면 \(\mathbf{Y} \sim \text{DirMult}\). 분산·공분산에 구조적 과산포가 들어간다.

모형 평균 분산 구조 \(\sigma^2\)\(m\) 의존성
다항 \(m\boldsymbol{\pi}\) \(m\{\mathrm{diag}(\boldsymbol{\pi}) - \boldsymbol{\pi}\boldsymbol{\pi}^\top\}\)
Dirichlet-multinomial \(m\boldsymbol{\pi}\) \(\frac{m + \alpha_0}{1 + \alpha_0}\) 배 부풀림 \(m\) 에 선형
Quasi-multinomial (5.17) \(m\boldsymbol{\pi}\) \(\sigma^2\) 배 부풀림 (상수) 없음

왜 실무에서 quasi 보정을 더 자주 쓰는가: DirMult 적합은 추가 모수 \(\alpha_0\) 의 MLE 를 요구하며 수치적으로 불안정할 수 있다. Quasi-multinomial 은 모수 없이 Pearson 잔차로 \(\sigma^2\) 을 자동 추정 하므로 튼튼하다. McCullagh 의 추천도 이 방향.

4.3 Lindsey 의 경고 — 분포 적합의 함정

“특정 분포(베타-이항, DirMult) 를 고르는 것은 수학적 편의 때문이지 과학적 타당성 때문이 아니다. 분포 가정이 틀리면 MLE 자체가 왜곡된다. 반면 quasi-likelihood 는 평균·분산 관계만 가정하므로 분포 오지정에 대한 강건성이 더 높다.” (McCullagh §4.5.2)


5\(\hat{\boldsymbol{\beta}}\) 는 영향받지 않는가

과산포 보정의 핵심 사실:

\(\hat{\boldsymbol{\beta}}\) 의 점추정은 바뀌지 않는다. \(\mathrm{Cov}(\hat{\boldsymbol{\beta}})\)\(\sigma^2\) 배로 부풀린다.

5.1 수학적 이유

다항(또는 이항) 스코어 방정식은

\[ \mathbf{U}(\boldsymbol{\beta}) = \mathbf{X}^\top \mathbf{W}^{-1}(\mathbf{y} - \boldsymbol{\mu}(\boldsymbol{\beta})) = \mathbf{0}. \]

과산포 하에서도 \(\mathrm{E}(\mathbf{y}) = \boldsymbol{\mu}\) 가 그대로 유지 되므로 \(\mathrm{E}[\mathbf{U}(\boldsymbol{\beta}_0)] = 0\). 따라서 MLE (더 정확히는 추정함수의 해) 는 일치 추정량이다.

공분산은

\[ \mathrm{Cov}(\hat{\boldsymbol{\beta}}) \approx (\mathbf{X}^\top \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{W} \cdot \mathrm{Cov}(\mathbf{y}) \cdot \mathbf{W} \mathbf{X} (\mathbf{X}^\top \mathbf{W} \mathbf{X})^{-1}. \]

다항이면 \(\mathrm{Cov}(\mathbf{y}) = \boldsymbol{\Sigma}\) 로 가운데가 정리되어 \((\mathbf{X}^\top \mathbf{W} \mathbf{X})^{-1}\), 과산포면 \(\sigma^2 \boldsymbol{\Sigma}\)정확히 \(\sigma^2\):

\[ \mathrm{Cov}(\hat{\boldsymbol{\beta}}) \approx \sigma^2 (\mathbf{X}^\top \mathbf{W} \mathbf{X})^{-1}. \tag{4.21} \]

5.2 직관

“점추정은 평균만 보고, 분산은 안 본다. 과산포는 분산만 건드리는 현상이므로 점추정은 그대로, 불확실성만 \(\sigma\) 배 퍼진다.”

비유: 활 쏘는 사람의 평균 위치는 그대로인데 손 떨림이 더 심해진 상황. 중심은 맞지만 표적 주변에 화살이 더 흩어져 있다. 평균 위치(\(\hat{\boldsymbol{\beta}}\)) 는 안 바뀌고, 분포 폭(SE) 만 커진다.

5.3 실무적 영향

  • Wald \(z\) 값이 \(1/\sigma\) 배로 축소 → 과신하던 p-value 가 제 위치로
  • 신뢰구간 폭이 \(\sigma\) 배로 확장
  • LRT 통계량도 \(\sigma^2 \chi^2_{\text{df}}\) 에 근사 → 기각역을 \(\sigma^2\) 배로 확장
  • 모수 크기 추정은 그대로, “얼마나 확실한가” 만 조정

6 \(\sigma^2\) 의 추정 — 두 가지 접근

6.1 접근 1: 복제 기반 추정량 — 식 (4.22)

공변량 클래스 \(\mathbf{x}\) 에서 복제(replicate) 관측 \((y_1, m_1), \ldots, (y_r, m_r)\) 이 있다고 하자. 같은 \(\pi\) 를 공유하는 독립 관측이다.

\[ \tilde{\pi} = \frac{\sum_j y_j}{\sum_j m_j}, \qquad s^2 = \frac{1}{r - 1} \sum_{j=1}^r \frac{(y_j - m_j \tilde{\pi})^2}{m_j \tilde{\pi}(1 - \tilde{\pi})}. \tag{4.22} \]

\(s^2\)\(\sigma^2\) 의 거의 불편 추정량 (\(r - 1\) 자유도). 여러 공변량 클래스의 \(s^2\) 을 풀링하면 전체 복제 추정치가 된다.

장점:

  • 적합된 모형에 독립적 — 모형이 틀려도 \(\sigma^2\) 추정이 오염되지 않음
  • \(m_i = 1\) 인 경우에도 \(s^2 \approx 1\) 로 자연스럽게 수렴

단점: 복제가 없거나 복제 자유도가 작으면 사용 불가.

6.2 접근 2: 잔차 기반 추정량 — 식 (4.23) = 식 (5.18)

복제가 없으면 적합된 모형의 Pearson 잔차 로 추정한다.

\[ \hat{\sigma}^2 = \frac{X^2}{n - p} = \frac{1}{n - p} \sum_i \frac{(y_i - m_i \hat{\pi}_i)^2}{m_i \hat{\pi}_i (1 - \hat{\pi}_i)} \tag{4.23} \]

다항에서는

\[ \hat{\sigma}^2 = \frac{X^2}{n(k - 1) - p}. \tag{5.18} \]

장점: 복제 없어도 가능.

단점: 적합된 모형의 정확성에 의존. 모형이 틀리면 “lack of fit” 과 과산포가 혼동된다. 즉 \(\hat{\sigma}^2\) 이 크다는 것이 (a) 진짜 과산포인지 (b) 모형이 틀렸는지 구별할 수 없다.

6.3 왜 Pearson \(X^2\), 이탈도 \(D\) 는 아닌가

이탈도 기반 \(D/(n-p)\) 도 비슷해 보이지만 희소 데이터(sparse data, \(m_i\) 작음) 에서 편향 된다. McCullagh 가 제시한 구체 예: \(Y_i \sim \text{Bin}(1, \pi)\) 이면

\[ \hat{\sigma}^2_{\text{Pearson}} = \frac{n}{n - 1} \to 1 \; (n \to \infty) \]

반면

\[ \frac{D}{n - 1} = -\frac{2n}{n-1}\{\hat{\pi}\log\hat{\pi} + (1 - \hat{\pi})\log(1 - \hat{\pi})\} \]

\(\hat{\pi}\) 에 따라 \(0\) 에서 \(2\log 2 \approx 1.386\) 까지 변한다. 즉 이탈도는 희소 상황에서 참값이 \(1\) 이어도 \(1\) 에 수렴하지 않는다. Pearson \(X^2\)\(\sigma^2\) 추정에 견고하다.

실무 권고
  • 복제가 풍부 → 식 (4.22) 또는 풀링 복제 추정
  • 복제 없음 + 비희소 → 식 (4.23) / (5.18), \(X^2/\text{df}\)
  • 희소 + 복제 없음\(\sigma^2 = 1\) 가정하거나 Dirichlet-multinomial 직접 적합
  • 이탈도 \(D/\text{df}\) 는 비희소에서만 \(X^2/\text{df}\) 와 근사적으로 같다. 희소에서는 \(X^2/\text{df}\) 만 사용

7 Quasi-likelihood 와의 연결

Wedderburn (1974) 의 quasi-likelihood 관점에서 식 (5.17) 은 “분포 전체 가정 없이 평균-분산 관계만 명시” 하는 접근이다.

\[ \mathrm{E}(\mathbf{Y}) = \boldsymbol{\mu}(\boldsymbol{\beta}), \qquad \mathrm{Cov}(\mathbf{Y}) = \sigma^2 V(\boldsymbol{\mu}). \]

다항 과산포는 \(V(\boldsymbol{\mu}) = \mathrm{diag}(\boldsymbol{\pi}) - \boldsymbol{\pi}\boldsymbol{\pi}^\top\).

왜 강건한가:

  • 분포의 모든 고차 모멘트 가정 없이 추론 가능
  • DirMult 같은 특정 분포가 틀렸을 때도 일치성·점근 정규성 유지
  • 표준오차 추정에 샌드위치(sandwich) 추정량 을 쓰면 더 강건

대가: 이차 이상의 효율 손실. 정확한 MLE 보다 SE 추정이 약간 보수적일 수 있다. McCullagh 는 이 트레이드오프를 “강건성이 효율보다 중요한 대부분의 실무 상황에서 quasi 접근이 정답” 이라고 본다.

상세는 Ch.9 (Dispersion models) 에서 다룬다.


8 진단 — 과산포가 있는지 어떻게 아는가

8.1 체크리스트

체크 판단
\(X^2/\text{df} > 1\) 이고 통계적으로 유의 과산포 의심
\(X^2/\text{df} \approx 1\) 과산포 증거 없음
\(X^2/\text{df} < 1\) 과소산포 (드물지만 존재)
잔차 \(\text{vs.}\) \(m_i\) 플롯이 우상향 베타-이항 유형
잔차 \(\text{vs.}\) 적합값 패턴 있음 모형 오지정, 과산포 진단 전 모형 수정
복제 분산 \(s^2 \gg 1\) (모형 무관) 진짜 과산포 (모형 오지정 아님)
\(m_i = 1\) 밖에 없음 과산포 진단 불가능

8.2 핵심 주의

\(\hat{\sigma}^2 \ne 1\) 이면 과산포” 는 너무 단순한 진단이다. 실제로는:

  1. 모형 오지정 — 중요한 공변량·상호작용 누락
  2. 링크 함수 부적절
  3. 이상치(outlier)
  4. 진짜 군집 구조에 의한 과산포

네 가지 모두 \(X^2\) 을 부풀린다. 먼저 (1)~(3)을 배제한 뒤 (4)를 결론 내려야 한다. 잔차 플롯·영향력 진단·모형 확장 실험을 먼저 거친다.


9 코드 예시

9.1 Step 1: 순수 Python — 이항 cluster 메커니즘 시뮬레이션

import numpy as np

rng = np.random.default_rng(42)

def simulate_cluster(n, m, k, pi, tau2):
    """n 개 관측, 각 관측이 m/k 군집 × k 사이즈, 군집별 pi_i ~ Beta(...)
    Var(pi_i) = tau2 * pi(1-pi) 가 되도록 Beta 모수 설정."""
    if tau2 == 0:
        pi_clusters = np.full((n, m // k), pi)
    else:
        # Beta(alpha, beta) 평균 pi, 분산 tau2*pi*(1-pi)
        nu = 1 / tau2 - 1           # 정밀도
        alpha = pi * nu
        beta = (1 - pi) * nu
        pi_clusters = rng.beta(alpha, beta, size=(n, m // k))
    # 각 군집에서 Bin(k, pi_i) 독립 생성 후 합
    Z = rng.binomial(k, pi_clusters)
    Y = Z.sum(axis=1)
    return Y


n, m, k = 10_000, 40, 4
pi_true = 0.3

for tau2 in [0.0, 0.25, 0.5, 1.0]:
    Y = simulate_cluster(n, m, k, pi_true, tau2)
    var_emp = Y.var()
    var_bin = m * pi_true * (1 - pi_true)
    sigma2_theory = 1 + (k - 1) * tau2
    print(f"tau^2 = {tau2:.2f}  |  "
          f"Var_emp = {var_emp:5.2f}  |  "
          f"Var_bin = {var_bin:5.2f}  |  "
          f"sigma^2_emp = {var_emp / var_bin:.3f}  |  "
          f"sigma^2_theory = {sigma2_theory:.3f}")

예상 출력:

tau^2 = 0.00  |  Var_emp ≈ 8.4   |  Var_bin = 8.4   |  sigma^2_emp ≈ 1.00  |  sigma^2_theory = 1.00
tau^2 = 0.25  |  Var_emp ≈ 14    |  Var_bin = 8.4   |  sigma^2_emp ≈ 1.75  |  sigma^2_theory = 1.75
tau^2 = 0.50  |  Var_emp ≈ 21    |  Var_bin = 8.4   |  sigma^2_emp ≈ 2.50  |  sigma^2_theory = 2.50
tau^2 = 1.00  |  Var_emp ≈ 34    |  Var_bin = 8.4   |  sigma^2_emp ≈ 4.00  |  sigma^2_theory = 4.00

식 (4.20) 의 \(\sigma^2 = 1 + (k-1)\tau^2\) 이 정확히 재현된다.

9.2 Step 2: \(\hat{\sigma}^2\) 추정과 SE 보정

import numpy as np
import statsmodels.api as sm

rng = np.random.default_rng(0)
n = 200
x = rng.normal(size=n)
m = np.full(n, 20)
pi_true = 1 / (1 + np.exp(-(0.5 + 1.0 * x)))

# cluster 기반 과산포 시뮬 (k=4, tau^2=0.5 → sigma^2 = 2.5)
k_clust, tau2 = 4, 0.5
nu = 1 / tau2 - 1
alpha = pi_true * nu
beta_ = (1 - pi_true) * nu
pi_clusters = rng.beta(alpha[:, None], beta_[:, None], size=(n, m[0] // k_clust))
Z = rng.binomial(k_clust, pi_clusters)
y = Z.sum(axis=1)

# (1) 기본 이항 GLM — 과산포 무시
X = sm.add_constant(x)
fit = sm.GLM(np.column_stack([y, m - y]), X, family=sm.families.Binomial()).fit()
print("=== 기본 이항 GLM (과산포 무시) ===")
print(f"beta = {fit.params.values.round(3)}")
print(f"SE   = {fit.bse.values.round(3)}")

# (2) Pearson X^2 로 sigma^2 추정
pearson_chi2 = np.sum((y - m * fit.predict(X))**2 / (m * fit.predict(X) * (1 - fit.predict(X))))
df_resid = n - fit.df_model - 1
sigma2_hat = pearson_chi2 / df_resid
print(f"\n=== Pearson 기반 sigma^2 추정 ===")
print(f"X^2 = {pearson_chi2:.2f} on {df_resid} df")
print(f"sigma^2_hat = {sigma2_hat:.3f}  (이론 = {1 + (k_clust - 1) * tau2})")

# (3) quasi-binomial 방식 — scale 파라미터 자동 추정
fit_q = sm.GLM(np.column_stack([y, m - y]), X,
               family=sm.families.Binomial()).fit(scale="X2")
print(f"\n=== Quasi-binomial (scale=X^2/df) ===")
print(f"beta = {fit_q.params.values.round(3)}  (점추정 불변)")
print(f"SE   = {fit_q.bse.values.round(3)}  (기본 대비 sqrt(sigma^2) 배)")
print(f"비율 = {(fit_q.bse / fit.bse).values.round(3)}")

점추정은 완전히 동일하고, SE 만 \(\sqrt{\hat{\sigma}^2} \approx 1.58\) 배 부풀려진다.

9.3 R 대응

# quasi-binomial / quasi-multinomial
fit_q <- glm(cbind(y, m - y) ~ x, family = quasibinomial())
summary(fit_q)  # Dispersion parameter 자동 보고

# VGAM 패키지의 Dirichlet-multinomial
library(VGAM)
fit_dm <- vglm(cbind(y1, y2, y3) ~ x, family = dirmultinomial)

10 자주 걸리는 함정

함정 증상 처방
\(m_i = 1\) 데이터로 과산포 추정 \(\hat{\sigma}^2 \approx 1\) 이 자동으로 나옴 집계(grouping) 후 재시도 또는 DirMult 적합
이탈도 기반 \(D/\text{df}\) 맹신 희소 데이터에서 편향 Pearson \(X^2/\text{df}\) 사용
모형 오지정을 과산포로 오해 \(\hat{\sigma}^2 \gg 1\) 잔차 진단 → 공변량·링크 점검
과산포 보정 후 p-value 그대로 SE 만 부풀리면 효과 희석 Wald z 재계산, LRT 에 \(\sigma^2\) 반영
Dirichlet-multinomial 고집 수치 불안정, 분포 오지정 위험 Quasi 보정을 기본값으로
관측 간 상관(반복측정) 무시 SE 여전히 과소평가 혼합효과 또는 GEE (군집 외 구조도 잡음)
과소산포(\(\hat{\sigma}^2 < 1\)) 무시 공변량 누락/반응의 이산성 모형 확장 또는 확장된 \(\sigma^2\) 정의역 사용

11 관련 주제

선행 지식

후속 주제 (placeholder)

관련 개념


12 참고문헌

  • McCullagh, P. & Nelder, J. A. (1989). Generalized Linear Models (2nd ed.), §4.5, §5.5, Ch.9. Chapman & Hall.
  • Wedderburn, R. W. M. (1974). Quasi-likelihood functions, generalized linear models and the Gauss–Newton method. Biometrika, 61, 439–447.
  • Williams, D. A. (1982). Extra-binomial variation in logistic linear models. Appl. Stat., 31, 144–148.
  • Cox, D. R. (1983). Some remarks on overdispersion. Biometrika, 70, 269–274.
  • Breslow, N. E. (1990). Tests of hypotheses in overdispersed Poisson regression. JASA, 85, 565–571.
  • Engel, J. (1987). The analysis of dependent count data. PhD thesis, Wageningen. — 다항 과산포
  • Agresti, A. (2013). Categorical Data Analysis (3rd ed.), Ch.14. Wiley.

Subscribe

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