1 개관 — 네 예제의 구조
§8.3에서 감마 GLM의 이론적 틀(분산 함수, 이탈도, 세 연결 함수, 산포 추정)을 완성했다. 이 절은 네 예제를 통해 이론이 실제 자료에 어떻게 적용되는지 보여준다.
| 예제 | 연결 | 자료 유형 | 핵심 쟁점 |
|---|---|---|---|
| 자동차 보험 (§8.4.1) | 역수 | 3원 요인 설계 | 주효과 적합도, 교호작용 검정, 수준 융합 |
| 혈액 응고 (§8.4.2) | 역수 | 연속 공변량 | 두 로트 별도 직선 vs 비례 모형 |
| 강수량 (§8.4.3) | 로짓 + 로그 | 2단계 (이항 + 감마) | 마르코프 체인, 푸리에 조화항 |
| 초파리 발생 (§8.4.4) | 역수 | 온도 반응곡선 | CV 일정 검증, 이상 관측 진단 |
2 예제: 자동차 보험 청구금
2.1 데이터 구조
Baxter et al. (1980)의 데이터이다. 개인 소유 종합보험 차량의 평균 자기 손해 청구금(인플레이션 보정, 파운드 스털링)이 세 요인에 대해 분류되어 있다.
| 요인 | 기호 | 수준 수 | 수준 |
|---|---|---|---|
| 보험 가입자 연령 | PA | 8 | 17-20, 21-24, 25-29, 30-34, 35-39, 40-49, 50-59, 60+ |
| 차량 그룹 | CG | 4 | A, B, C, D |
| 차량 연식 | VA | 4 | 0-3, 4-7, 8-9, 10+ |
\(8 \times 4 \times 4 = 128\) 셀이지만, 각 셀의 청구 건수 \(m_{ijk}\) 가 0(5개 셀)부터 434까지 크게 변한다.
직관. 평균 청구금 \(Y_{ijk}\) 의 정밀도는 그것이 기반하는 청구 건수 \(m_{ijk}\) 에 비례한다. 434건의 평균과 1건의 “평균”은 정보량이 전혀 다르다. 이것이 가중치 \(w_{ijk} = m_{ijk}\) 를 쓰는 이유이다. 빈 셀(\(m = 0\))은 가중치가 0이므로 우도에 기여하지 않는다.
2.2 모형: 역수 연결 + 감마 오차
Baxter et al.은 정규-항등 모형(등분산 가정, \(w = m\))으로 분석했지만, McCullagh & Nelder는 두 가지를 변경한다.
- 분산 가정: 등분산 \(\to\) 일정 변동계수 (감마 오차)
- 연결 함수: 항등 \(\to\) 역수
\[ \mu_{ijk} = E(Y_{ijk}) = (\mu_0 + \alpha_i + \beta_j + \gamma_k)^{-1}, \qquad \operatorname{var}(Y_{ijk}) = \sigma^2\mu_{ijk}^2 / m_{ijk}. \]
직관. 역수 스케일에서 \(\eta_{ijk} = 1/\mu_{ijk}\) 를 “평균 청구금 1파운드를 서비스하는 데 필요한 시간(또는 1파운드 할부금으로 구매할 수 있는 보상 단위)”으로 해석하면, 주효과가 가법적이라는 가정은 “각 요인이 독립적으로 서비스 비용을 변화시킨다”는 의미이다.
2.3 Analysis of Deviance
순차적 모형 적합 결과:
| 모형 | 이탈도 | 차분 | d.f. | 평균 이탈도 |
|---|---|---|---|---|
| 1 (절편만) | 649.9 | |||
| PA | 567.7 | 82.2 | 7 | 11.7 |
| PA + CG | 339.4 | 228.3 | 3 | 76.1 |
| PA + CG + VA | 124.8 | 214.7 | 3 | 71.6 |
| + PA.CG | 90.7 | 34.0 | 21 | 1.62 |
| + PA.VA | 71.0 | 19.7 | 21 | 0.94 |
| + CG.VA | 65.6 | 5.4 | 9 | 0.60 |
| 포화 | 0.0 | 65.6 | 58 | 1.13 |
직관. 이탈도의 첫째 차분은 적절한 귀무가설 하에서 근사 축척 카이제곱 분포를 따른다. CG와 VA의 주효과가 각각 228.3/3, 214.7/3으로 압도적으로 크다. 이원 교호작용은 평균 이탈도가 0.60-1.62로, 포화 모형의 평균 이탈도 1.13과 비교해 추가 설명력이 거의 없다. 따라서 주효과 모형(PA + CG + VA)이 적합하다.
정량 해석. 예를 들어 PA.CG 교호작용의 차분 34.0 (자유도 21) 은 \(\chi^2_{21}\) 의 기대값 21보다 크지만, 평균 이탈도 \(34.0/21 = 1.62\) 는 잔차의 평균 이탈도 1.13 과 거의 같다. 산포 비율 \(F = (34.0/21)/1.13 \approx 1.43\) 은 \(F_{21, 58}\) 의 95% 임계값 \(\approx 1.75\) 미만 — 통계적으로 유의하지 않다. CG.VA (\(0.60\)) 와 PA.VA (\(0.94\)) 는 귀무 기대값 1 에도 미치지 못해 명백히 무의미. 세 이원 교호작용을 모두 버리고 주효과 모형을 선택해도 자료 설명력에서 실질 손실이 없다는 결론이다.
2.4 산포 추정
주효과 모형의 잔차로부터
\[ \tilde\sigma^2 = \frac{1}{109}\sum m\,(y - \hat\mu)^2/\hat\mu^2 = 1.21, \qquad \tilde\sigma = 1.1. \]
직관. 개별 청구금의 추정 변동계수가 110%이다. 이는 매우 높은 변동성으로, 보험 자료의 특성을 반영한다. 평균 200파운드인 셀에서 개별 청구금은 0에서 400+ 파운드까지 넓게 퍼져 있다. 이 높은 CV가 오히려 감마 모형(일정 CV 가정)의 적절성을 뒷받침한다 – 등분산 가정이라면 큰 평균의 셀에서 잔차가 체계적으로 커질 것이다.
2.5 잔차 진단
표준화 Pearson 잔차 \(\sqrt{m}(y - \hat\mu)/(\tilde\sigma\hat\mu)\) 의 여섯 극값:
| 셀 (PA, CG, VA) | Pearson 잔차 | 이탈도 잔차 |
|---|---|---|
| (2,2,1) | 3.4 | 3.0 |
| (3,2,4) | 3.2 | 2.4 |
| (3,4,4) | 2.8 | 1.8 |
| (5,1,2) | -2.6 | -3.0 |
| (5,4,1) | -2.2 | -2.3 |
| (7,2,1) | -2.5 | -2.7 |
직관. 유효 표본 크기 109에서 정규 표본의 최극값은 약 \(\pm 2.5\) 이다. 극값 잔차의 위치(셀)에 체계적 패턴이 없으므로 모형 적합은 만족스럽다.
2.6 모수 해석
모수 추정치 (\(\times 10^6\), 역수 스케일, 표준오차 괄호) – 절편(모든 요인 최저 수준) = \(3410 \times 10^{-6}\):
| 수준 | PA | CG | VA |
|---|---|---|---|
| 1 | 0 (기준) | 0 (기준) | 0 (기준) |
| 2 | 101 (436) | 38 (169) | 336 (101) |
| 3 | 350 (412) | -614 (170) | 1651 (227) |
| 4 | 462 (410) | -1421 (181) | 4154 (442) |
| 5 | 1370 (419) | ||
| 6 | 970 (405) | ||
| 7 | 916 (408) | ||
| 8 | 920 (416) |
직관. 역수 스케일이므로 양의 큰 모수 = 작은 청구금이다.
- 연령(PA): 35-39세(수준 5, 모수 1370)가 가장 작은 청구금. 17-34세(수준 1-4, 모수 0-462)가 가장 큰 청구금. 40세 이상(수준 6-8, 모수 916-970)은 중간.
- 차량 그룹(CG): D(수준 4, 모수 -1421)가 가장 비싼 청구금. A와 B(수준 1-2)는 유의 차이 없음.
- 차량 연식(VA): 오래된 차량일수록 양의 모수 증가 \(\to\) 청구금 감소.
2.7 수준 융합 검정
PA 수준 1-4, 6-8, CG 수준 1-2를 각각 융합하면 이탈도가 124.8 \(\to\) 129.8 (116 d.f.)로 증가하지만 통계적으로 유의하지 않다. 이는 위의 정성적 해석을 정량적으로 뒷받침한다.
2.8 로그 연결과의 비교
곱셈적 모형(로그 연결)도 질적으로 유사한 결론을 낸다. Ch.10에서 보이듯 자료가 역수 모형을 약간 더 지지하지만, 양적 결론의 해석 용이성을 고려하면 로그 연결도 합리적이다.
3 예제: 혈액 응고 시간
3.1 데이터
Hurn et al. (1945)의 데이터이다. 정상 혈장을 프로트롬빈 결핍 혈장으로 9단계 농도(\(u\)%)로 희석한 뒤, 두 로트(lot)의 트롬보플라스틴으로 응고를 유도하여 응고 시간(초)을 측정했다.
| \(u\) (%) | Lot 1 (\(y\)) | Lot 2 (\(y\)) |
|---|---|---|
| 5 | 118 | 69 |
| 10 | 58 | 35 |
| 15 | 42 | 26 |
| 20 | 35 | 21 |
| 30 | 27 | 18 |
| 40 | 25 | 16 |
| 60 | 21 | 13 |
| 80 | 19 | 12 |
| 100 | 18 | 12 |
직관. 혈장 농도가 높을수록 응고가 빨라진다(시간이 줄어든다). 관계는 비선형이며, 높은 농도에서 포화(saturation)가 관찰된다. 이것이 쌍곡선 모형(역수 연결)을 시사한다.
3.2 모형 적합: 순차적 이탈도
초기 탐색에서 \(u\) 의 로그 스케일(\(x = \log u\))이 역 선형성을 만족함을 확인했다.
| 모형 | 이탈도 | d.f. |
|---|---|---|
| 1 (절편만) | 7.709 | 17 |
| \(x = \log u\) | 1.018 | 16 |
| \(L + x\) (로트 주효과) | 0.300 | 15 |
| \(L + L \cdot x\) (별도 직선) | 0.0294 | 14 |
직관. 각 항의 추가가 극적으로 이탈도를 줄인다: \(x\) 추가 시 \(7.709 \to 1.018\) (91% 감소), 로트별 별도 기울기 시 \(0.300 \to 0.0294\) (90% 감소). 모든 항이 필요하다.
최종 모형의 평균 이탈도는 \(0.0294/14 = 0.0021\) 이다. \(\sqrt{0.0021} = 0.046\) 이므로 \(y\) 스케일에서 약 4.6%의 표준오차에 해당한다.
3.3 적합된 직선
표준오차를 괄호에 표시하면:
\[ \begin{aligned} \text{Lot 1:}\quad \hat\mu^{-1} &= -0.01655\;(\pm 0.00086) + 0.01534\;(\pm 0.00143)\,x, \\ \text{Lot 2:}\quad \hat\mu^{-1} &= -0.02391\;(\pm 0.00038) + 0.02360\;(\pm 0.00062)\,x. \end{aligned} \]
직관. Lot 2의 절편과 기울기가 Lot 1의 약 1.4-1.6배이다. 이것은 \(\mu_2 = k\mu_1\) 이라는 비례 모형을 시사한다.
3.4 잔차를 통한 분산 구조 확인
Pearson 잔차 \((y - \hat\mu)/\hat\mu\) 를 \(\hat\eta\) 에 대해 그리면 범위가 일정하여 감마 오차 가정이 적합하다.
세 가지 분산 가정의 비교:
| 가정 | \(\operatorname{var}(Y)\) | 잔차 범위 vs \(\hat\eta\) | 판정 |
|---|---|---|---|
| 등분산 (\(Y\)) | 상수 | \(\hat\eta\) 증가 시 감소 | 부적합 |
| 감마 | \(\propto \mu^2\) | 일정 | 적합 |
| 등분산 (\(1/Y\)) | \(\propto \mu^4\) | \(\hat\mu\) 증가 시 증가 | 부적합 |
직관. 감마 오차(\(\operatorname{var}(Y) \propto \mu^2\))는 \(Y\) 의 등분산(\(\propto \mu^0\))과 \(1/Y\) 의 등분산(\(\propto \mu^4\)) 사이의 “중간”에 위치한다. 역수 스케일에서 분석할 때 잔차의 균일성이 감마 가정의 적절성을 확인해 준다.
3.5 비례 모형: \(\mu_2 = k\mu_1\)
두 로트의 모수가 상수 배수라는 관찰에서 비례 모형을 고려한다.
\[ \eta_1 = \alpha + \beta x, \quad \mu_1 = 1/\eta_1, \quad \mu_2 = k\mu_1. \]
이 모형은 엄밀히 GLM이 아니지만, MLE 방정식이 단순하다. \(\alpha\) 와 \(\beta\) 는 \(y_1\) 과 \(y_2/k\) 를 합친 자료에 적합하고, \(k\) 는 조건
\[ \sum(y_2/\mu_1 - k) = 0 \]
에서 구한다.
직관. 비례 모형은 “두 로트의 트롬보플라스틴이 응고 속도를 동일한 메커니즘으로 가속하되, 효능이 상수 배수만큼 다르다”는 생물학적 가설을 반영한다.
적합 결과:
| 별도 직선 | 비례 모형 | |
|---|---|---|
| 이탈도 | 0.0294 | 0.0332 |
| d.f. | 14 | 15 |
| 차분 | 0.0038 (1 d.f.) | |
| 평균 이탈도 | 0.0021 |
이탈도 차분 0.0038이 평균 이탈도 0.0021에 비해 약 1.8배로, 유의하지 않다. 따라서 비례 모형이 기각되지 않으며, Lot 2의 응고 시간은 Lot 1의 약 5/8 배 (\(k = 0.625\))라는 간결한 결론이 도출된다.
4 예제: 강수량 모형화 — 두 GLM의 조합
4.1 문제 구조
일일 강수량 히스토그램은 원점에 “스파이크”(비 안 오는 날)가 있고 양의 값은 오른쪽으로 치우친 형태이다.
McCullagh & Nelder와 Coe & Stern (1982, 1984)은 이를 두 단계로 나눈다.
| 단계 | 반응 | 분포 | 연결 | 모형 |
|---|---|---|---|---|
| 비 발생 패턴 | 오늘 비 여부 (이항) | 이항 | 로짓 | 1차 마르코프 체인 |
| 비 온 날의 강수량 | 양의 연속 (\(y > 0\)) | 감마 | 로그 | 곱셈적 푸리에 모형 |
직관. “비가 올지 말지”와 “올 때 얼마나 올지”는 다른 메커니즘이다. 전자는 기상 패턴(전선, 기압)에, 후자는 대기 수분량에 더 의존한다. 이 분리는 두 독립적 GLM으로 자연스럽게 구현된다.
4.2 단계 1: 비 발생의 1차 마르코프 체인
\(n\) 년간 365일의 강수 자료에서, 각 일 \(t\) 에 대해 어제 비/건조 \(\times\) 오늘 비/건조의 \(2 \times 2\) 빈도표를 만든다.
| 오늘 비 | 오늘 건조 | 합계 | |
|---|---|---|---|
| 어제 비 | \(y_0\) | \(n_0 - y_0\) | \(n_0\) |
| 어제 건조 | \(y_1\) | \(n_1 - y_1\) | \(n_1\) |
전이 확률:
- \(\pi_0(t)\): 어제 비 \(\to\) 오늘 비
- \(\pi_1(t)\): 어제 건조 \(\to\) 오늘 비
우도는 행 합계를 고정한 두 독립 이항 관측의 곱이다.
\[ \prod_t \pi_0(t)^{y_0}[1-\pi_0(t)]^{n_0-y_0} \pi_1(t)^{y_1}[1-\pi_1(t)]^{n_1-y_1}. \]
시간 의존성은 로짓 연결 + 푸리에 조화항으로 모형화한다.
\[ \begin{aligned} \operatorname{logit}\pi_0(t) &= \alpha_0 + \alpha_{01}\sin(2\pi t/365) + \beta_{01}\cos(2\pi t/365), \\ \operatorname{logit}\pi_1(t) &= \alpha_1 + \alpha_{11}\sin(2\pi t/365) + \beta_{11}\cos(2\pi t/365). \end{aligned} \]
직관. 비 확률은 계절에 따라 주기적으로 변한다. 사인/코사인 조합은 이 주기성을 자연스럽게 포착하며, 조화항의 수를 늘리면 더 세밀한 계절 패턴을 표현할 수 있다. 조화항의 계수가 \(\pi_0\) 와 \(\pi_1\) 에서 같으면 교차비(odds ratio)가 \(t\) 에 무관 – 즉, 마르코프 의존도가 계절에 불변이다.
4.2.1 니제르(Niger) 강수 자료 적합 결과
Zinder(니제르) 30년 자료, 우기 120일로 제한:
| 모형 | 이탈도 | 차분 | d.f. | 평균 이탈도 |
|---|---|---|---|---|
| 절편만 | 483.1 | - | 238 | |
| +1차 조화항 | 260.9 | 222.2 | 4 | 55.6 |
| +2차 조화항 | 235.6 | 25.3 | 4 | 6.3 |
| +3차 조화항 | 231.4 | 4.2 | 4 | 1.05 |
| +4차 조화항 | 227.7 | 3.7 | 4 | 0.9 |
3차 이상 조화항의 감소가 유의하지 않으므로, 2차 조화항까지의 10-모수 모형이 충분하다.
4.3 단계 2: 비 온 날의 강수량 — 감마 로그 연결
비 온 날의 평균 강수량 \(\mu(t)\) 를 곱셈적 모형(감마 오차, 로그 연결)으로 표현한다.
\[ \log[\mu(t)] = \gamma_0 + \gamma_1\sin(2\pi t/365) + \delta_1\cos(2\pi t/365) + \cdots \]
4.3.1 적합 결과
| 모형 | 이탈도 | d.f. | 평균 이탈도 |
|---|---|---|---|
| 상수 | 224.6 | 119 | |
| +1차 조화항 | 154.5 | 117 | |
| +2차 조화항 | 147.0 | 115 | 1.28 |
| 일내(within-day) | 1205.0 | 946 | 1.27 |
직관. 2차 조화항을 포함하면 일간(between-day) 이탈도의 평균 이탈도 1.28이 일내(within-day) 이탈도의 평균 이탈도 1.27과 거의 같아진다. 이는 모형이 일간 변동을 충분히 설명함을 의미한다.
일내 평균 이탈도가 1.27(1보다 약간 큰 정도)이므로, 비 온 날의 강수량 분포는 거의 지수 분포(\(\nu \approx 1\))에 가깝다.
4.4 2단계 분해의 전제와 한계
이 분석은 “비 발생 확률이 전날 비 여부에만 의존하고, 전날 강수량에는 의존하지 않는다”는 가정에 기반한다. 이 가정이 위반되면(예: 전날 폭우 후 오늘도 비 확률이 높다면) 두 GLM의 독립성이 깨진다. 검정 방법: \(\pi_0(t)\) 의 로짓 모형에 전날 강수량(\(\log\) 단위)을 공변량으로 추가하여 유의성을 확인한다.
5 예제: 초파리 배아 발생 기간
5.1 데이터
Powsner (1935)의 데이터이다. 초파리(Drosophila melanogaster)의 배아기(embryonic period) 지속 시간을 다양한 온도에서 측정했다. 알은 약 25도C에서 산란 후 20-30분 내에 실험 온도로 이동하였다.
핵심 변수: 온도(\(x\)), 평균 지속 시간(\(y\), 시간), 배치 크기(\(n\)), 표본 표준편차(\(s\)).
| 온도 (C) | \(y\) (시간) | \(n\) | \(s\) |
|---|---|---|---|
| 14.95 | 67.5 | 54 | 2.41 |
| 16.16 | 57.1 | 182 | 2.28 |
| 16.19 | 56.0 | 153 | 1.46 |
| 17.15 | 48.4 | 129 | 1.40 |
| 18.20 | 41.2 | 64 | 1.30 |
| 19.08 | 37.80 | 94 | 0.57 |
| 20.07 | 33.33 | 82 | 0.73 |
| 22.14 | 26.50 | 57 | 0.63 |
| 23.27 | 24.24 | 135 | 0.44 |
| 24.09 | 22.44 | 188 | 0.40 |
| 24.81 | 21.13 | 217 | 0.36 |
| 24.84 | 21.05 | 141 | 0.46 |
| 25.06 | 20.39 | 37 | 0.38 |
| 25.06 | 20.41 | 84 | 0.34 |
| 25.80 | 19.45 | 196 | 0.36 |
| 26.92 | 18.77 | 104 | 0.30 |
| 27.68 | 17.79 | 148 | 0.49 |
| 28.89 | 17.38 | 83 | 0.39 |
| 28.96 | 17.26 | 95 | 0.43 |
| 29.00 | 17.18 | 232 | 0.50 |
| 30.05 | 16.81 | 148 | 0.39 |
| 30.80 | 16.97 | 195 | 0.39 |
| 32.00 | 18.20 | 58 | 2.23 |
직관. 온도가 높을수록 발생이 빨라진다(지속 시간 감소). 그러나 32도C에서 갑자기 반전(시간 증가)과 표준편차 폭발(\(s = 2.23\), 다른 배치의 3-6배)이 관찰된다.
5.2 일정 변동계수 검증
배치 표준편차를 배치 평균에 대해 산점도로 그리면, 32도C를 제외하고 표준편차가 평균에 대략 비례한다.
\[ \log(\text{sample variance}) \simeq -9.29 + 2.58\log(\text{sample mean}). \]
멱지수 2.58은 \(V(\mu) = \mu^p\) 에서 \(p \approx 2.6\) 을 시사한다. McCullagh & Nelder는 \(p = 2\) (일정 CV)를 가정하고 진행한다.
32도C를 제외하면 개별 알 지속 시간의 추정 변동계수는 약 2.67%이다.
직관. 2.67%의 CV는 매우 정밀한 생물학적 과정을 반영한다. 알의 발생 타이밍이 온도에 의해 엄격히 제어되며, 개체 간 변이가 작다. 32도C에서의 이상 행동은 아마 고온 스트레스(열 변성, 탈수)로 인해 발생 메커니즘 자체가 달라진 것이다.
5.3 모형: 발생 속도의 역수 연결
생물학적으로 “발생 속도” \(r = 1/\mu\) 가 온도의 함수인 것이 자연스럽다.
\[ \eta = \frac{1}{\mu} = f(\text{temperature}), \]
가중치는 \(w_i = n_i\) (배치 크기)이다.
고온(약 30도C 이상)에서 속도가 감소하는 비단조 행동은 §8.3.3의 역 이차 모형
\[ \eta = \frac{\beta_1}{x} + \beta_0 + \gamma_1 x \]
으로 포착할 수 있다. 여기서 \(x\) 는 온도이고, 최적 온도 \(x^* = \sqrt{\beta_1/\gamma_1}\) 에서 발생 속도가 최대(지속 시간 최소)가 된다.
직관. 낮은 온도에서는 생화학 반응이 느려서 발생이 지연되고, 최적 온도를 넘으면 단백질 변성 등으로 오히려 발생이 느려진다. 역 이차 모형은 이 “뒤집힌 U자형 속도-온도 관계”를 역수 스케일의 선형 모형으로 자연스럽게 표현한다.
6 Python 코드 예시
6.1 자동차 보험 분석
import numpy as np
import statsmodels.api as sm
import pandas as pd
# 데이터 구성 (Table 8.1 일부 — 25-29세 그룹)
data = {
'PA': [3]*16, 'CG': [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4],
'VA': [1,2,3,4]*4,
'y': [268,285,181,110, 275,243,179,264, 334,274,208,150, 383,305,116,636],
'm': [56,55,17,12, 125,172,36,10, 163,129,18,8, 72,50,6,1]
}
df = pd.DataFrame(data)
# 빈 셀(m=0) 제거
df = df[df['m'] > 0]
# 전체 데이터에 대한 분석은 128개 셀 전체 필요
# 여기서는 구조만 시연6.2 혈액 응고 분석
import numpy as np
import statsmodels.api as sm
# Table 8.4 데이터
u = np.array([5, 10, 15, 20, 30, 40, 60, 80, 100], dtype=float)
lot1 = np.array([118, 58, 42, 35, 27, 25, 21, 19, 18], dtype=float)
lot2 = np.array([69, 35, 26, 21, 18, 16, 13, 12, 12], dtype=float)
x = np.log(u)
# 두 로트 합침
y = np.concatenate([lot1, lot2])
x_all = np.concatenate([x, x])
lot = np.concatenate([np.zeros(9), np.ones(9)]) # 0=lot1, 1=lot2
# 모형 1: 공통 기울기 (L + x)
X1 = sm.add_constant(np.column_stack([lot, x_all]))
m1 = sm.GLM(y, X1, family=sm.families.Gamma(sm.families.links.InversePower()))
r1 = m1.fit()
print(f"L+x: deviance = {r1.deviance:.4f}, df = {r1.df_resid}")
# 모형 2: 별도 직선 (L + L.x)
X2 = sm.add_constant(np.column_stack([lot, x_all, lot * x_all]))
m2 = sm.GLM(y, X2, family=sm.families.Gamma(sm.families.links.InversePower()))
r2 = m2.fit()
print(f"L+L.x: deviance = {r2.deviance:.4f}, df = {r2.df_resid}")
print(f"\nLot 1: intercept = {r2.params[0]:.5f}, slope = {r2.params[2]:.5f}")
print(f"Lot 2: intercept = {r2.params[0]+r2.params[1]:.5f}, "
f"slope = {r2.params[2]+r2.params[3]:.5f}")
# 비례 상수 k 추정 (근사)
k_approx = np.mean(lot2 / lot1)
print(f"\n근사 k (lot2/lot1 평균) = {k_approx:.3f}")6.3 R 코드 참고
# 혈액 응고 데이터
u <- c(5,10,15,20,30,40,60,80,100)
lot1 <- c(118,58,42,35,27,25,21,19,18)
lot2 <- c(69,35,26,21,18,16,13,12,12)
y <- c(lot1, lot2)
x <- rep(log(u), 2)
lot <- factor(rep(c("1","2"), each=9))
# 별도 직선 모형
fit <- glm(y ~ lot * x, family = Gamma(link = "inverse"))
summary(fit)
# 이탈도 기반 모형 비교
fit0 <- glm(y ~ x, family = Gamma(link = "inverse"))
fit1 <- glm(y ~ lot + x, family = Gamma(link = "inverse"))
anova(fit0, fit1, fit, test = "F")7 네 예제의 통합 교훈
| 교훈 | 해당 예제 |
|---|---|
| 역수 스케일의 가법성은 속도·비율 해석과 자연스럽게 연결된다 | 보험(서비스 비용 속도), 응고(응고 속도), 초파리(발생 속도) |
| Analysis of deviance는 ANOVA의 감마 버전으로, 교호작용과 수준 융합의 검정에 직접 적용된다 | 보험(3원 교호작용 불필요), 응고(별도 직선 vs 비례), 강수(조화항 수) |
| 2단계 분해(이산 + 연속)는 혼합 분포 자료에 강력한 도구이다 | 강수(마르코프 이항 + 감마 강수량) |
| 잔차의 범위 일정성이 감마 가정의 진단 기준이다 | 응고(\(\operatorname{var} \propto \mu^2\) 확인), 초파리(SD \(\propto\) mean 확인) |
| 이상 관측은 모형 가정의 국소적 위반을 신호한다 | 초파리(32도C), 보험(극값 잔차 6개) |
| 비례 모형 같은 비표준 GLM 확장도 MLE 방정식이 단순하게 풀리는 경우가 있다 | 응고(\(\mu_2 = k\mu_1\)) |