Ch.12 Overview — Mixed-Effects Regression Models for Counts

카운트 GLMM · Poisson 회귀 (식 12.1-12.6) · Mean-variance 동등 가정 · Modified Poisson (hurdle, ZAP, ZIP) · Lambert (1992) ZIP 모형 (식 12.7-12.12) · Mixed-effects Poisson (식 12.19-12.27) · Mixed-effects ZIP (식 12.30-12.33) · Empirical Bayes (식 12.28-12.29)

Hedeker & Gibbons (2006) Ch.12 의 종합 overview. 카운트 (count) 응답 — 사건 발생 횟수 (의료 이용 횟수, 자살률, 특허 수 등) — 에 대한 mixed-effects 회귀 모형. Ch.9-11 의 categorical GLMM 의 또 다른 확장. § 12.1 의 표준 Poisson regression (식 12.1-12.6) 의 mean-variance 동등 가정 (\(E(y) = V(y) = \lambda\)). § 12.2-12.3 의 excess zeros 문제 — Poisson 의 한계 + Lambert (1992) 의 zero-inflated Poisson (ZIP) 가 mixture 모형 (logistic + Poisson) 으로 두 종류 zero (perfect state + Poisson state) 처리. § 12.4 의 mixed-effects 확장 — Goldstein (1991), Breslow (1984), Siddiqui (1996) 발전사 + § 12.4.1 의 Mixed-Effects Poisson (식 12.19-12.27, \(\lambda_{ij} = \exp(x'\beta + \sigma\theta_i)\), marginal MLE + Gauss-Hermite), § 12.4.2 의 Empirical Bayes random effects (식 12.28-12.29), § 12.4.3 의 Mixed-Effects ZIP (식 12.30-12.33, 두 random effects \(\sigma_1, \sigma_2\) 로 두 component 별도 이질성 모형화). § 12.5 의 자살률 응용 (Gibbons et al. 2005) 미리보기 + § 12.6 핵심 메시지.

Statistics
저자

Kwangmin Kim

공개

2026년 05월 06일

1 들어가며 — Ch.12 의 자리와 카운트 GLMM 의 동기

Ch.9 (이항)Ch.10 (순서형)Ch.11 (명목) 의 categorical 응답 시리즈에 이어, Ch.12 는 또 다른 형태의 응답 — 사건 발생 횟수 (카운트) — 를 다룬다.

Ch.4-13 안의 자리
Chapter 모형 응답 형태 분포
Ch.4-7 MRM/CPM/MRM-AC 연속 정규
Ch.8 GEE 자유 자유
Ch.9 GLMM 0/1 Bernoulli
Ch.10 GLMM 1, 2, …, C (순서) Multinomial cumulative
Ch.11 GLMM 1, 2, …, C (비순서) Multinomial reference
Ch.12 GLMM 0, 1, 2, … (카운트) Poisson / ZIP
Ch.13 GLMM 다양 3 수준

→ Ch.12 는 categorical 응답이 무한 가능 — 사건 발생 횟수. Categorical 의 다른 확장.

한 줄 요약

“Ch.12 = 사건 발생 횟수 응답 (의료 이용, 자살률, 사고 수, 특허 수 등) 의 mixed-effects GLMM. § 12.1 표준 Poisson 모형은 mean-variance 동등 (\(E(y) = V(y) = \lambda\)) 가정 — 자주 위반. § 12.2-12.3 의 ZIP (zero-inflated Poisson, Lambert 1992) 가 ‘excess zeros’ 처리 — mixture 모형 (perfect state + Poisson state). § 12.4 mixed-effects 확장 — Poisson 에 random effects 추가 (식 12.19-12.27, marginal MLE + Gauss-Hermite, § 9.6 toolkit), ZIP 에 두 random effects (식 12.30-12.33, \(\sigma_1\) Poisson + \(\sigma_2\) logistic). § 12.5 의 자살률 응용 (Gibbons et al. 2005) 으로 mixed-effects Poisson 의 정책 가치 시연.”

본 overview 의 절 구성 (Hedeker §12 의 6 절 → 6 주제로 정리):

  • § 12.1 — Poisson 회귀 기본.
  • § 12.2-12.3 — Excess zeros 문제 + ZIP framework.
  • § 12.4-12.4.3 — Mixed-effects 확장 (Poisson + ZIP).
  • § 12.5 — 자살률 응용 미리보기.
  • § 12.6 — 핵심 메시지.

2 § 12.1 — Poisson Regression 기본

2.1 Poisson 분포의 정의

식 (12.1) — Poisson density

응답 \(y_i\) 가 비음 정수 (\(0, 1, 2, \ldots\)):

\[ f(y_i; \lambda_i) = \frac{\exp(-\lambda_i) \lambda_i^{y_i}}{y_i!}, \quad y_i = 0, 1, 2, \ldots \tag{12.1} \]

여기서 \(\lambda_i = \exp(x_i^\top \beta)\) — log-linear 회귀.

식 (12.2) — Mean-Variance 동등

\[ E(y_i) = V(y_i) = \lambda_i \tag{12.2} \]

→ Poisson 분포의 핵심 성질.

직관 — Mean-Variance 동등의 의미

Poisson 분포의 결정적 특징 — 평균 = 분산. 의미:

  • 평균 (\(\lambda\)) 이 작으면 (예: 1) 분산도 작음 (모든 관측이 평균 근처).
  • 평균이 크면 (예: 100) 분산도 큼 (관측이 더 분산).
  • 정규 분포처럼 평균과 분산이 독립으로 정의되지 않음.

왜 이 가정이 자연스러운가:

  • Poisson 분포는 “단위 시간/공간 안에 일어나는 희귀 사건” 의 자연스러운 모형.
  • 사건이 독립적으로 일어나면 카운트의 평균과 분산이 같아야 함 (수학적 결과).
  • 예: 1 시간 동안 도착하는 손님 수, 한 페이지의 오타 수.

가정 위반의 실무 빈도:

  • Overdispersion (\(V > E\)): 데이터가 모형보다 더 분산. 가장 흔함.
  • Underdispersion (\(V < E\)): 드물지만 가능 (사건 사이 음의 상관, 예: 정해진 schedule).

대응:

  • Overdispersion → Negative Binomial 분포 (\(V = \mu + \mu^2/k\), 추가 모수).
  • Excess zeros → ZIP (§ 12.3, 두 종류의 zero 분리).

2.2 추정 — 식 (12.3-12.6)

표준 Poisson MLE

Likelihood (식 12.3):

\[ L = \prod_{i=1}^N \frac{\exp(-\lambda_i) \lambda_i^{y_i}}{y_i!} \]

Log-likelihood (식 12.4):

\[ \log L = -\sum_{i=1}^N [\lambda_i - y_i \log \lambda_i + \log(y_i!)] \]

Score (식 12.5):

\[ \frac{\partial \log L}{\partial \beta} = \sum_{i=1}^N (y_i - \lambda_i) x_i \]

Hessian (식 12.6):

\[ \frac{\partial^2 \log L}{\partial \beta \partial \beta^\top} = -\sum_{i=1}^N \lambda_i x_i x_i^\top \]

직관 — Score 의 단순한 형태

\(\sum (y_i - \lambda_i) x_i\) — “잔차 × 공변량” 의 합.

이항 logistic (§ 9.2 의 식 9.7) 와 정확히 같은 형태:

\[ \frac{\partial \log L}{\partial \beta} = \sum_i (y_i - p_i) x_i \]

GLM 의 통일성 — exponential family 분포의 모든 모형이 같은 score 형태. Canonical link function 의 결과.

추정 방법: Newton-Raphson 또는 Fisher scoring (이항 모형과 동일).

계산 단순성: Hessian (식 12.6) 이 음정치 보장 — Newton-Raphson 안정 수렴.

3 § 12.2-12.3 — Excess Zeros 와 ZIP

3.1 Excess Zeros 의 문제

Poisson 의 한계 — 너무 많은 zero

실무 카운트 데이터의 흔한 패턴:

  • 응답의 큰 비율이 0.
  • Poisson 모형이 예측하는 0 비율보다 훨씬 많음.
  • 예: “올해 정신과 방문 횟수” — 대부분이 0, 일부만 양수.

전통적 Poisson 모형이 이런 데이터에 적합되면:

  • \(\lambda\) 가 평균에 맞춰 추정 → 0 의 확률 \(e^{-\lambda}\) 가 작게.
  • 실제 0 비율이 모형 예측보다 큼 → 적합 불량.
  • Excess zeros.
직관 — 두 종류의 Zero

저자의 예시 — “올해 정신과 방문 횟수”:

  • Type 1 zero: 정신과 진료 필요 없는 사람 (구조적 zero, “perfect state”). 0 만 가능.
  • Type 2 zero: 정신과 진료 필요한데 안 간 사람 (Poisson zero, “imperfect state”). 0 또는 양수 가능.

표본의 zero 가 두 종류 mix → Poisson 만으로는 표현 못함.

해결 — Mixture 모형:

  • Logistic 부분: “perfect state 인지 (필요 없는지)” 의 확률.
  • Poisson 부분: “imperfect state 라면 몇 번 방문할지” 의 카운트.

ZIP (Zero-Inflated Poisson) 의 발상 (Lambert 1992).

3.2 ZIP 모형 — 식 (12.7-12.12)

식 (12.7) — Lambert (1992) 의 ZIP 정의

\[ y_i = \begin{cases} 0 & \text{with probability } \pi_i \\ \text{Poisson}(\lambda_i) & \text{with probability } 1 - \pi_i \end{cases} \tag{12.7} \]

두 부분의 link 함수:

\[ \text{logit}(\pi_i) = w_i^\top \gamma \tag{12.8} \]

\[ \log(\lambda_i) = x_i^\top \beta \tag{12.9} \]

표기:

  • \(\pi_i\): perfect state 의 확률 (구조적 zero 의 mixing parameter).
  • \(\lambda_i\): Poisson state 의 평균.
  • \(w_i\), \(x_i\): 두 부분의 covariate (같을 수도, 다를 수도).
식 (12.12) — ZIP 의 unified probability

전체 확률 표현:

\[ P(y_i = 0) = \pi_i + (1 - \pi_i) e^{-\lambda_i} \]

\[ P(y_i = k) = (1 - \pi_i) \frac{e^{-\lambda_i} \lambda_i^k}{k!}, \quad k = 1, 2, \ldots \tag{12.12} \]

직관 — ZIP 의 두 부분 분해

식 (12.12) 의 의미:

  • \(P(y = 0)\): perfect zero (\(\pi_i\)) + Poisson zero (\((1-\pi_i) e^{-\lambda_i}\)).
  • \(P(y = k > 0)\): Poisson state 인 환자가 \(k\) 회 방문할 확률.

해석의 풍부함:

  • \(\hat\pi_i\) 추정값: “이 환자가 정신과 진료 필요 없는 사람일 확률”.
  • \(\hat\lambda_i\): “이 환자가 진료 필요한 그룹이라면 몇 회 방문할지의 평균”.

각각 별도 covariate 와 회귀 계수 가능 — “필요성 결정 요인” 과 “방문 빈도 결정 요인” 의 분리 분석.

예시:

  • 보험 종류가 “필요성” 에 큰 영향, “빈도” 에 작은 영향.
  • 거주지가 “빈도” (접근성) 에 큰 영향, “필요성” 에 작은 영향.

→ ZIP 가 정책 분석에 풍부한 정보 제공.

식 (12.10-12.11) — ZIP(τ) 변형

같은 covariate \(x_i\) 를 두 부분에 사용하면서 functional 관계 부여:

\[ \text{logit}(\pi_i) = -\tau x_i^\top \beta \tag{12.10} \]

\[ \log(\lambda_i) = x_i^\top \beta \tag{12.11} \]

추가 모수 \(\tau\) 가 두 부분의 효과를 연결.

직관 — ZIP vs ZIP(τ)

ZIP (식 12.7-12.9): 두 부분이 별도 covariate, 별도 회귀.

  • 가장 유연.
  • 모수 많음 (\(p + s + 2\) 개).
  • 정확한 해석 가능.

ZIP(τ) (식 12.10-12.11): 같은 covariate, \(\tau\) 가 두 부분 비율 조절.

  • 절약적 (모수 \(p + 2\) 개).
  • \(\tau\) 의 부호 — “covariate 가 \(\lambda\) 를 늘리면 \(\pi\) 가 줄어드는가” 의 방향.
  • 해석 단순.

→ 데이터에 맞춰 선택. ZIP 가 더 일반, ZIP(τ) 가 더 절약.

ZIP 모형의 한계 (§ 12.3 끝 부분):

“A major limitation of these models is that they do not accommodate random effects.”

→ Mixed-effects 확장이 필요 (§ 12.4).

4 § 12.4 — Mixed-Effects Models for Counts

4.1 발전사

핵심 문헌

Mixed-effects Poisson 의 발전:

  • Goldstein (1991): Multilevel log-linear 모형.
  • Breslow (1984): Poisson regression with normal random effects.
  • Lawless & Willmot (1989): Poisson with inverse Gaussian random effects.
  • Siddiqui (1996): Normal vs gamma random effects 비교.
  • Thall (1988), Stukel (1993), Albert (1992): 추가 확장.

Mixed-effects ZIP:

  • Hall (2000): Poisson 부분에만 random effects (EM 알고리즘).
  • Hur et al. (2002): 단일 random effect.
  • Hedeker & Gibbons (2006): 두 random effects (Poisson + logistic 별도, 식 12.30-12.33).
직관 — 카운트 mixed-effects 의 동기

카운트 데이터의 longitudinal/clustered 발생 형태:

  • 같은 환자의 반복 측정 (예: 매년 정신과 방문 횟수).
  • 같은 지역의 자살률 (counties).
  • 같은 가족의 의료 이용 횟수.
  • → 관측 사이 상관 → 독립 가정 위반.

Mixed-effects Poisson 의 동기:

  • 환자/지역/클러스터 이질성을 random effects 로 흡수.
  • Marginal vs subject-specific 효과 분리.
  • 환자별 효과 추정 (Empirical Bayes).
  • → § 9-11 의 GLMM framework 의 직접 적용.

5 § 12.4.1 — Mixed-Effects Poisson Regression

5.1 모형 정의 — 식 (12.19-12.21)

Conditional density (식 12.19)

환자 \(i\)\(n_i\) 시점 응답 \(y_i\) 의 conditional density (random effect \(\theta_i\) 조건부):

\[ f(y_i \mid \theta) = \prod_{j=1}^{n_i} \frac{\exp(-\lambda_{ij}) \lambda_{ij}^{y_{ij}}}{y_{ij}!} \tag{12.19} \]

with

\[ \lambda_{ij} = \exp(x_{ij}^\top \beta + \sigma \theta_i) \tag{12.20} \]

표준화 random effect: \(\theta_i = \upsilon_i / \sigma \sim \mathcal{N}(0, 1)\).

Log-likelihood (식 12.21):

\[ \log \ell(y_i \mid \theta) = -\sum_{j=1}^{n_i} [\exp(x_{ij}^\top \beta + \sigma \theta_i) - y_{ij} (x_{ij}^\top \beta + \sigma \theta_i) + \log(y_{ij}!)] \]

직관 — Random Effect 의 multiplicative 효과

식 (12.20) 의 \(\lambda_{ij} = \exp(x'\beta + \sigma\theta_i)\) 의 의미:

  • \(\sigma \theta_i\) 가 환자별 random shift.
  • \(\exp(\sigma \theta_i)\) 가 환자별 multiplicative factor.

해석:

  • \(\theta_i = +1\) (\(+1 \sigma\) 환자): \(\lambda\)\(\exp(\sigma)\) 배 증가.
  • \(\theta_i = -1\): \(\lambda\)\(\exp(-\sigma)\) 배 감소.

임상 예시 (정신과 방문):

  • \(\sigma = 0.5\): 환자별 \(\lambda\) 가 평균 대비 약 \(\exp(0.5) = 1.65\) 배 ~ \(\exp(-0.5) = 0.61\) 배 변동.
  • 즉 어떤 환자는 평균보다 1.65 배 자주, 어떤 환자는 0.61 배 자주 방문.

이 multiplicative 형태가 Poisson 의 자연스러운 random effects 표현 — 카운트가 항상 비음수, 비율 효과가 자연.

§ 9.5 mixed-effects logistic 와의 비교:

  • Logistic: \(\text{logit}(p) = x'\beta + \sigma\theta\) (additive on logit scale).
  • Poisson: \(\log(\lambda) = x'\beta + \sigma\theta\) (additive on log scale, multiplicative on rate).

둘 다 link 함수 척도에서 random effects 추가 — 결과 척도 (probability or rate) 에서는 비선형 효과.

5.2 추정 — 식 (12.22-12.27)

Score (식 12.22)

\(\beta\)\(\sigma\) 에 대한 conditional score:

\[ \frac{\partial \log \ell}{\partial \beta} = \sum_{j=1}^{n_i} (y_{ij} - \lambda_{ij}) x_{ij}, \quad \frac{\partial \log \ell}{\partial \sigma} = \sum_{j=1}^{n_i} (y_{ij} - \lambda_{ij}) \theta_i \]

Marginal likelihood — 식 (12.24)

Random effect \(\theta\) 에 대한 적분 (Gauss-Hermite 근사):

\[ h(y_i) = \int_\theta f(y_i \mid \theta) g(\theta) \, d\theta \approx \sum_{q=1}^Q \left[\prod_j \frac{\exp(-\lambda_{ijq}) \lambda_{ijq}^{y_{ij}}}{y_{ij}!} \right] A(B_q) \tag{12.24} \]

with \(\lambda_{ijq} = \exp(x_{ij}^\top \beta + \sigma B_q)\) (식 12.25).

\(B_q\), \(A(B_q)\): Gauss-Hermite quadrature node 와 weight (§ 9.6.3).

직관 — § 9.6 toolkit 의 직접 적용

식 (12.24) 가 § 9.6 식 (9.40) 의 Poisson 버전. 차이는 conditional likelihood \(\ell\) 의 형태:

  • 이항 (식 9.39): Bernoulli 곱.
  • 순서형 (식 10.16): Multinomial cumulative.
  • 명목 (식 11.8): Multinomial reference.
  • 카운트 (식 12.19): Poisson 곱.

적분, marginal MLE, Gauss-Hermite quadrature, Fisher scoring — 모두 동일 framework.

§ 12.4.1 의 식 (12.26-12.27) — marginal score 의 Gauss-Hermite 근사:

\[ \frac{\partial \log L}{\partial \beta} = \sum_i \frac{1}{h(y_i)} \sum_q \sum_j (y_{ij} - \lambda_{ijq}) x_{ij} \cdot \ell_q \cdot A(B_q) \]

→ § 9.6 식 (9.59) 의 Poisson 버전. 알고리즘 구조 동일.

Software 지원:

  • R lme4::glmer(family = poisson).
  • R glmmTMB: 빠르고 안정.
  • SAS PROC NLMIXED: 직접 코딩.
  • Hedeker MIXPREG: 카운트 mixed-effects 의 표준 도구.

6 § 12.4.2 — Empirical Bayes Random Effects

식 (12.28-12.29)

EAP estimator (식 12.28):

\[ \bar\theta_i = E(\theta_i \mid y_i) = \frac{1}{h(y_i)} \int_\theta \theta_i \, \ell(y_i \mid \theta) \, g(\theta) \, d\theta \]

사후 분산 (식 12.29):

\[ V(\bar\theta_i \mid y_i) = \frac{1}{h(y_i)} \int_\theta (\theta_i - \bar\theta_i)^2 \, \ell(y_i \mid \theta) \, g(\theta) \, d\theta \]

→ § 9.6.1 의 식 (9.48-9.49) 와 동일 형태.

직관 — Empirical Bayes 의 응용

Hedeker 본문 인용:

“In clustered data, the empirical Bayes estimator of cluster-specific effects has been used by Thomas et al. [1992] in hospital mortality rate analysis.”

EB 의 응용:

  1. Hospital mortality rates: 병원별 사망률 — 전국 평균 대비 logit 차이. Quality 평가 토대.
  2. Suicide rates by counties: 지역별 자살률 — § 12.5 의 Gibbons et al. 2005 분석.
  3. Service utilization rates: 환자별 의료 이용 빈도.

Shrinkage 효과 (§ 9.6.1 와 동일):

  • 데이터 많은 환자/지역 → EB 추정이 그 데이터에 가까움.
  • 데이터 적은 환자/지역 → 사전 분포 (모집단 평균) 으로 수축.

이 안정화가 ranking 분석에 결정적 — 작은 표본의 외부치 (outlier) 가 모집단 효과로 잘못 보고되는 것 방지.

7 § 12.4.3 — Mixed-Effects ZIP

7.1 모형 정의 — 식 (12.30-12.33)

두 random effects 로의 확장 (Hedeker-Gibbons 2006)

ZIP 의 두 component 에 별도 random effects:

\[ P(y_{ij}) = (1 - \pi_{ij}) f(y_{ij}) + I(y_{ij}) \pi_{ij} \tag{12.30} \]

\[ f(y_{ij}) = \frac{\exp(-\lambda_{ij}) \lambda_{ij}^{y_{ij}}}{y_{ij}!} \tag{12.31} \]

\[ \text{logit}(\pi_{ij}) = w_{ij}^\top \gamma + \sigma_2 \theta_{2i} \tag{12.32} \]

\[ \log(\lambda_{ij}) = x_{ij}^\top \beta + \sigma_1 \theta_{1i} \tag{12.33} \]

표기:

  • \(\sigma_1 \theta_{1i}\): Poisson part 의 환자별 random effect.
  • \(\sigma_2 \theta_{2i}\): Logistic part 의 환자별 random effect.
  • 두 random effects 가 별도 (또는 결합 분포 가능).
직관 — 두 종류의 환자 이질성

식 (12.30-12.33) 의 두 random effects 의미:

  • \(\theta_{1i}\) (“Poisson frailty”): “이 환자가 진료 필요한 그룹이라면 평균보다 얼마나 자주 방문하는가” 의 환자별 차이.
  • \(\theta_{2i}\) (“Logistic frailty”): “이 환자가 perfect state (진료 필요 없는 사람) 일 가능성” 의 환자별 차이.

두 random effects 가 같은 환자에게 작용 — 두 차원의 환자 segmentation:

  • \(\theta_{1i} > 0, \theta_{2i} < 0\): 진료 필요한 환자 + 자주 방문 → “high utilizer”.
  • \(\theta_{1i} < 0, \theta_{2i} > 0\): 진료 안 필요 환자 + 평균보다 적게 방문 → “non-utilizer”.
  • \(\theta_{1i} \approx 0, \theta_{2i} \approx 0\): 평균 환자.

→ ZIP 가 두 차원의 환자 분류 를 자연스럽게 표현. 정책·임상에 풍부한 정보.

\(\theta_{1i}, \theta_{2i}\) 의 상관:

  • 독립 가정 가능 (단순).
  • 또는 이변량 정규로 상관 모형화 (더 일반).

상관 가정 시 Cholesky factor 사용 (§ 9.5.2 framework).

7.2 ZIP vs Mixed-Effects ZIP

모형 family 의 통합
모형 Random effects 응답 활용
Poisson (식 12.1) 없음 Cross-sectional 카운트 표준 카운트 분석
ZIP (식 12.7) 없음 Excess zeros 카운트 두 종류 zero 분리
Mixed-effects Poisson (식 12.19-12.27) 단일 \(\sigma\) Longitudinal 카운트 환자 이질성 + Poisson
Mixed-effects ZIP (식 12.30-12.33) 두 개 \(\sigma_1, \sigma_2\) Longitudinal excess zeros 두 종류 환자 이질성

→ Mixed-effects ZIP 가 가장 일반적 — 다른 셋의 일반화.

모형 선택 절차:

  1. 평균-분산 동등 검정 → Overdispersion 있으면 Poisson 부적절.
  2. Zero 비율 vs Poisson 예측 비교 → Excess zeros 있으면 ZIP.
  3. Longitudinal/clustered 구조 → Random effects 필요.
  4. 두 component (Poisson vs logistic) 의 환자 차이 다르면 → 두 random effects.

NIMH 의료 이용, MHRP, 자살률 등 흔한 longitudinal 카운트 데이터는 보통 Mixed-effects ZIP 가 적합.

8 후속 절의 미리보기

8.1 § 12.5 — Illustration: 자살률 분석

County-Specific Suicide Rates

Gibbons et al. (2005) 의 분석:

  • 미국 county 별 자살률 데이터.
  • Random effect = county.
  • Covariate: antidepressant 사용률, 인구학적 변수.
  • 핵심 질문: “Antidepressant 사용 증가가 자살률 감소와 연관 있는가”.

Mixed-effects Poisson 의 응용 — county clustering 처리 + antidepressant 효과 추정.

자세한 분석은 후속 sub-post.

9 § 12.6 — Chapter 의 핵심 메시지

Ch.12 의 5 가지 핵심 메시지
  1. 카운트 응답은 categorical 의 또 다른 확장: Bernoulli (\(C=2\)) → multinomial (\(C\) 유한) → Poisson (\(C\) 무한). 같은 GLMM framework.

  2. Mean-variance 동등 가정 자주 위반: Overdispersion (NB), excess zeros (ZIP) 의 흔한 문제. 진단 + 적절 모형 선택 필수.

  3. ZIP 의 mixture 발상: 두 종류 zero (perfect + Poisson) 분리. Logistic + Poisson 의 결합으로 임상·정책 인사이트 추가.

  4. Mixed-effects 확장은 § 9.6 toolkit 의 직접 적용: Marginal MLE + Gauss-Hermite + Fisher scoring + Empirical Bayes — 새로 배울 알고리즘 없음.

  5. Mixed-effects ZIP 의 풍부함: 두 random effects (\(\sigma_1\) Poisson + \(\sigma_2\) logistic) 로 두 차원의 환자 이질성. 정책 분석 (자살률, 의료 이용) 의 정확한 도구.

10 응용 분야

분야 카운트 응답 ZIP 적용 동기
정신 건강 정신과 방문 횟수 진료 필요 vs 미필요 분리
자살 예방 지역별 자살 수 County clustering
보험·의료 청구 횟수 청구 안 한 사람 대 청구 안 일어남
교통 사고 도로별 사고 수 사고 위험 지역 vs 안전 지역
마케팅 제품 구매 횟수 구매 안 할 사람 대 구매 안 일어남
행동 흡연 횟수 비흡연자 대 흡연자가 안 핀 날
동물 행동 행동 빈도 종/개체 차이
산업 안전 공정별 결함 수 품질 관리

11 코드 예시

11.1 Step 1: Poisson 분포의 시각화

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson


# 다양한 lambda 의 Poisson pmf
fig, ax = plt.subplots(figsize=(10, 5))
x = np.arange(0, 20)

for lam in [1, 3, 5, 10]:
    ax.plot(x, poisson.pmf(x, lam), 'o-', label=f'$\\lambda$ = {lam}',
            markersize=8, linewidth=2)

ax.set_xlabel('y (count)')
ax.set_ylabel('P(Y = y)')
ax.set_title('Poisson Distribution: 다양한 $\\lambda$')
ax.legend()
ax.grid(alpha=0.3)
plt.tight_layout()

# Mean-variance 동등 검증
print("Mean-Variance 동등 검증:")
for lam in [1, 3, 5, 10]:
    samples = np.random.poisson(lam, size=10000)
    print(f"  lambda = {lam}: mean = {samples.mean():.2f}, var = {samples.var():.2f}")
시각적 검증

다양한 \(\lambda\) 의 Poisson pmf 모양:

  • \(\lambda = 1\): 0 에 큰 mass, skewed right.
  • \(\lambda = 5\): 평균 5 근처에 peak, less skewed.
  • \(\lambda = 10\): 정규 분포에 가까움 (CLT).

Mean-variance 동등 검증 — 표본 평균과 분산이 거의 같으면 Poisson 적합.

11.2 Step 2: ZIP 시뮬레이션과 적합

import numpy as np
import statsmodels.api as sm


def simulate_zip(n: int, beta: np.ndarray, gamma: np.ndarray,
                  seed: int = 2026) -> dict:
    """ZIP 데이터 시뮬레이션 (식 12.7-12.9)."""
    rng = np.random.default_rng(seed)
    x = rng.normal(size=n)
    X = np.column_stack([np.ones(n), x])

    # Logistic part: P(perfect state)
    pi = 1 / (1 + np.exp(-X @ gamma))
    # Poisson part: lambda
    lam = np.exp(X @ beta)

    # Mixture
    is_perfect = rng.binomial(1, pi)
    y = np.where(is_perfect == 1, 0, rng.poisson(lam))

    return {"x": x, "y": y, "pi": pi, "lambda": lam, "is_perfect": is_perfect}


# 시뮬레이션
beta_true = np.array([1.0, 0.5])  # log lambda intercept + slope
gamma_true = np.array([-0.5, 1.0])  # logit pi intercept + slope

data = simulate_zip(n=2000, beta=beta_true, gamma=gamma_true)
print(f"Zero 비율: {(data['y'] == 0).mean():.3f}")
print(f"  - Perfect state zero: {(data['is_perfect'] == 1).mean():.3f}")
print(f"  - Poisson zero: {((data['is_perfect'] == 0) & (data['y'] == 0)).mean():.3f}")
print(f"평균: {data['y'].mean():.2f}, 분산: {data['y'].var():.2f}")
ZIP 의 두 종류 zero 검증

시뮬레이션 결과에서:

  • 전체 zero 비율 = perfect state + Poisson state 의 zero.
  • Perfect state zero 가 zero 의 대부분 (구조적 zero).
  • Poisson state zero 는 작은 비율.

Excess zeros 검증: 표본 평균 < 분산 (overdispersion). 단순 Poisson 적합 시 zero 예측이 부족할 것.

ZIP 적합 (R pscl::zeroinfl):

library(pscl)
fit_zip <- zeroinfl(y ~ x | x, data = df, dist = "poisson")
summary(fit_zip)

y ~ x | x 의 표기 — | 앞이 Poisson 부분, 뒤가 logistic 부분.

11.3 Step 3: Mixed-Effects Poisson 시뮬레이션 + 적합

library(lme4)


# Random intercept Poisson 시뮬레이션
set.seed(2026)
n_subjects <- 200
n_times <- 4

df <- expand.grid(subject = 1:n_subjects, time = 1:n_times)
df$x <- rnorm(nrow(df))
upsilon <- rep(rnorm(n_subjects, 0, 0.5), each = n_times)

# lambda_ij = exp(x'beta + sigma * theta_i) (식 12.20)
df$lambda <- exp(0.5 + 0.3 * df$x + upsilon)
df$y <- rpois(nrow(df), df$lambda)

# Mixed-effects Poisson 적합
fit_mep <- glmer(y ~ x + (1 | subject), data = df, family = poisson)
summary(fit_mep)

# 추정값 확인
cat("\n추정값:\n")
cat("  Intercept (진짜 0.5): ", round(fixef(fit_mep)["(Intercept)"], 3), "\n")
cat("  beta (진짜 0.3):      ", round(fixef(fit_mep)["x"], 3), "\n")
cat("  sigma (진짜 0.5):     ", round(sqrt(VarCorr(fit_mep)$subject[1, 1]), 3), "\n")
추정 검증

R glmerfamily = poisson — Mixed-effects Poisson 의 표준 도구.

추정값이 진짜 모수와 가까우면 시뮬레이션 + 적합 정확.

대안 패키지:

  • glmmTMB: 더 빠르고 안정 (특히 큰 데이터).
  • MASS::glmmPQL: 옛 표준, PQL 근사.
  • SAS PROC NLMIXED: 직접 코딩.
  • Hedeker MIXPREG: ZIP 까지 포함.

11.4 Step 4: Empirical Bayes Random Effects 추정

# EB random effects 추출 (식 12.28)
ranef_mep <- ranef(fit_mep, condVar = TRUE)$subject

# 처음 5 환자의 EB 추정
print(head(ranef_mep))

# Shrinkage 검증 — EB 분포가 사전 정규 (sd = 0.5) 보다 좁음
sd_eb <- sd(ranef_mep[, 1])
cat("\nEB random effects SD:", round(sd_eb, 3), "(사전 가정: 0.5)\n")
cat("Shrinkage factor:", round(sd_eb / 0.5, 3), "\n")

# 환자별 expected lambda (개인 prediction)
df$lambda_eb <- exp(fixef(fit_mep)["(Intercept)"]
                    + fixef(fit_mep)["x"] * df$x
                    + ranef_mep[df$subject, 1])

# 실제 vs 예측
plot(df$lambda, df$lambda_eb, pch = 16, col = rgb(0, 0, 1, 0.3),
     xlab = "True lambda", ylab = "EB-predicted lambda",
     main = "Empirical Bayes 예측 vs 진짜 lambda")
abline(0, 1, col = "red", lwd = 2)
EB Shrinkage 의 시각화

EB 추정이 사전 분포 (정규 SD 0.5) 보다 좁은 SD — Shrinkage 효과.

해석:

  • 데이터가 많은 환자 (시점 많음): EB 추정이 진짜에 가까움.
  • 데이터가 적은 환자: EB 추정이 0 (사전 평균) 으로 수축.

이 안정화가 mixed-effects 모형의 핵심 가치 — fixed effects 추정의 폭발 방지 + 작은 표본 환자의 합리적 추정.

자살률 분석 (§ 12.5) 의 응용:

  • County 별 자살 수 → EB 로 county-specific 자살률 추정.
  • 작은 county (인구 적음) → 모집단 평균으로 수축 → 안정.
  • 큰 county → 그 county 데이터에 가까운 추정 → 정확.

→ Ranking + 정책 분석의 표준 toolkit.

12 관련 주제

선행 지식

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

  • § 12.5 — Suicide Rate Illustration (Gibbons et al. 2005)
  • § 12.6 — Ch.12 Summary

관련 개념

  • Lambert (1992) — ZIP 모형 원전
  • Mullahy (1986), King (1989) — Hurdle 모형
  • Heilbron (1989, 1994) — ZAP 모형
  • Greene (1994) — Zero-inflated negative binomial
  • Hall (2000), Hur et al. (2002) — Mixed-effects ZIP 발전
  • Goldstein (1991), Breslow (1984) — Mixed-effects Poisson 토대
  • Siddiqui (1996) — Normal vs gamma random effects
  • Gibbons et al. (2005) — Suicide rate analysis
  • Thomas et al. (1992) — Hospital mortality EB ranking
  • McCullagh & Nelder (1989) — GLM canonical link 통일
  • Statistics 음이항 분포 — Overdispersion 처리 대안
  • Statistics 포아송 분포 — Poisson 분포의 기본

Subscribe

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