1 14.5 단일 모수 SNMM 의 g-estimation
1.1 5 단계 절차
Step 1: 후보 모수 격자 정의 (예: \(\psi^\dagger \in \{2.0, 2.1, \ldots, 5.0\}\)).
Step 2: 각 \(\psi^\dagger\) 에 대해 \(H(\psi^\dagger) = Y - \psi^\dagger A\) 계산.
Step 3: 가중 logistic 회귀 (uncensored 만, \(W^C\) 가중): \[\mathrm{logit}\, \Pr(A=1 | H, L) = \alpha_0 + \alpha_1 H + \alpha_2 L\]
Step 4: \(\widehat{\alpha}_1 \approx 0\) 을 만족하는 \(\psi^\dagger\) 가 추정값 \(\widehat{\psi}_1\).
Step 5: 95% CI 는 \(\alpha_1 = 0\) 검정의 P-value > 0.05 인 \(\psi^\dagger\) 들의 범위 (test inversion).
직관 — \(H(\psi^\dagger)\) 의 의미: 후보 효과 \(\psi^\dagger\) 가 진짜라면 \(H = Y - \psi^\dagger A\) 가 “처치 효과를 빼낸 잠재 결과 \(Y^{a=0}\)”. 이 가상 잠재 결과가 \(A\) 와 독립이면 진짜 \(Y^{a=0}\) 의 성질 만족 → 후보가 진짜에 가깝다.
1.2 NHEFS 단일 모수 결과
격자 검색 결과:
| \(\psi^\dagger\) | \(\widehat{\alpha}_1\) | P-value (α=0 검정) |
|---|---|---|
| 2.0 | -0.012 | 0.018 |
| 2.5 | -0.006 | 0.07 |
| 3.0 | -0.002 | 0.45 |
| 3.446 | 0.0001 | 0.998 |
| 3.5 | 0.0005 | 0.95 |
| 4.0 | 0.005 | 0.31 |
| 4.5 | 0.010 | 0.07 |
| 5.0 | 0.014 | 0.008 |
\(\widehat{\psi}_1 = 3.446\), 95% CI \(\approx (2.5, 4.5)\).
직관 — P-value 패턴의 의미: 격자 후보가 진짜에 가까울수록 \(\alpha_1\) 이 0 에 가까워지고 P-value 가 1 에 가까워진다. 진짜에서 멀어질수록 \(|\alpha_1|\) 이 커지고 P-value 가 작아진다. “\(\alpha_1 = 0\)” 가설 검정의 P-value 가 신뢰구간을 inversion 으로 정의.
직관 — 검색 vs 분석적 해: 1 차원 격자 검색은 직관적이지만 비효율. 선형 SNMM 은 closed form 이 있고, 비선형은 Newton-Raphson 으로 효율적. 격자는 교육 목적 + Score test 같은 빠른 검정이 가능할 때만 사용.
1.3 Score test 의 효율
Wald test 는 각 \(\psi^\dagger\) 마다 logistic 모형 적합 → 격자 크기만큼 회귀 적합. Score test 는 한 번의 회귀 적합 후 모든 \(\psi^\dagger\) 에 대해 빠르게 검정 가능.
직관 — Score vs Wald 의 차이: Wald 는 추정량의 분포를 가정해 검정. Score 는 가설 아래 가능도 함수의 기울기로 검정. 큰 표본에서는 같은 결론을 주지만 Score 가 계산 효율 더 좋다. G-estimation 격자 검색에서 Score test 가 표준.
2 Sensitivity Analysis 의 자연 통합
만약 미관측 교란이 있어 진짜 \(\alpha_1 \neq 0\) 이라면, 가설 값을 0 대신 다른 값으로 변경:
| 가설 | 의미 | NHEFS 추정값 |
|---|---|---|
| \(\alpha_1 = 0\) | 미관측 교란 없음 | 3.446 kg |
| \(\alpha_1 = 0.05\) | 약한 미관측 교란 | (예: 3.2 kg) |
| \(\alpha_1 = 0.1\) | 중간 미관측 교란 | (예: 2.8 kg) |
| \(\alpha_1 = -0.05\) | 반대 방향 약한 교란 | (예: 3.7 kg) |
다양한 가설 값에 대해 g-estimate 를 계산해 그래프로 시각화 — 결과의 robustness 가 직관적.
직관 — Sensitivity 의 자연스러움: 다른 도구는 sensitivity 분석을 별도로 해야 하지만, g-estimation 은 같은 격자 검색 절차에서 가설 값만 바꿈으로써 즉시 가능. 방법론과 진단이 같은 알고리즘 — Hernan 이 이 강점을 강조하는 이유.
3 95% CI 의 Test Inversion 절차
- 모든 \(\psi^\dagger\) 에 대해 \(H_0: \alpha_1 = 0\) 의 P-value 계산.
- P-value > 0.05 인 \(\psi^\dagger\) 들의 집합 = “검정에서 기각되지 않는 영역”.
- 그 영역의 [min, max] 가 95% CI.
NHEFS 사례에서 P-value > 0.05 인 \(\psi^\dagger\) 의 범위가 약 [2.5, 4.5].
직관 — 검정과 신뢰구간의 듀얼: “\(\alpha_1 = 0\) 가설을 기각하지 않는 모수 값들” = “그 모수 값들이 통계적으로 가능” = “신뢰구간”. 정의에 의해 일관된 도출. 신뢰구간은 검정의 부산물이라는 형식적 관점이 inversion.
직관 — 일반 신뢰구간과의 차이: 일반 OLS·logistic 의 95% CI 는 추정량의 점근 정규성 가정. g-estimation 의 inversion CI 는 가정이 더 약함 (검정의 일치성만 필요). 그러나 점근적으로 두 형태가 같은 결과로 수렴.
4 Robust Variance vs Bootstrap
| 도구 | 가정 | 결과 |
|---|---|---|
| Wald CI (robust SE) | 점근 정규 | Conservative (>95% coverage) |
| Test inversion CI | 검정 일치성 | 정확 |
| Bootstrap CI | 가정 적음 | 정확 |
NHEFS 에서 Wald CI 와 inversion CI 가 거의 같음 (~2.5, 4.5).
5 14.6 다중 모수 SNMM
5.1 효과 수정 표현
평균 효과가 baseline 흡연량 \(V\) 에 따라 변한다고 가정:
\[\mathrm{E}[Y^a - Y^{a=0} | A=a, L] = \beta_1 a + \beta_2 a V\]
추정 절차:
- \(H(\beta^\dagger) = Y - \beta_1^\dagger A - \beta_2^\dagger A V\) 계산.
- 가중 logistic 회귀: \[\mathrm{logit}\, \Pr(A=1 | H, V, L) = \alpha_0 + \alpha_1 H + \alpha_2 H V + \alpha_3 L\]
- \(\widehat{\alpha}_1 = 0, \widehat{\alpha}_2 = 0\) 을 만족하는 \((\beta_1^\dagger, \beta_2^\dagger)\).
직관 — 다중 모수의 동시 검색: 1 차원 격자가 2 차원 격자로 확장. 각 \((\beta_1^\dagger, \beta_2^\dagger)\) 후보에 대해 logistic 회귀 적합 → 두 회귀 계수가 동시에 0 인 후보 찾기. 모수 수에 비례하는 차원 폭발이라 격자 검색은 비효율.
5.2 NHEFS 결과
다중 모수 SNMM 의 g-estimate:
- \(\widehat{\beta}_1 = 2.86\) (baseline 비흡연자의 추정 효과 — 사실 baseline 흡연자만 분석)
- \(\widehat{\beta}_2 = 0.03\) (흡연량 1 증가 시 효과 변화)
평균 baseline 흡연량 ~ 21 → 평균 효과 = \(2.86 + 21 \times 0.03 = 3.49\) kg.
단일 모수의 3.45kg 와 거의 일치 — 효과 수정의 통계적 증거 약함.
직관 — \(\beta_2 = 0.03\) 의 작은 의미: 흡연량 30 개비/일 증가 시 효과 변화가 약 0.9kg — 정량적으로는 작은 변화. 흡연량 분포 범위에서 효과가 거의 일정 — 효과 수정 약함.
5.3 Closed-form 추정량 (Technical Point 14.2)
선형 SNMM 의 g-estimate 는 닫힌형으로 표현 가능:
\[\widehat{\beta} = \left(\sum_i \mathbb{1}[C_i=0] W_i^C A_i (A_i - \widehat{\mathrm{E}}[A|L_i]) d(L_i) d(L_i)^\top\right)^{-1} \sum_i \mathbb{1}[C_i=0] W_i^C Y_i (A_i - \widehat{\mathrm{E}}[A|L_i]) d(L_i)\]
여기서 \(d(L)\) 은 SNMM 의 디자인 벡터, \(\widehat{\mathrm{E}}[A|L]\) 은 logistic 회귀에서.
직관 — Closed form 의 의미: 격자 검색이 필요 없이 한 번의 계산으로 추정값. 2SLS (Ch.16) 의 수식과 비슷한 형태 — IV 추정량과 g-estimation 의 형식적 유사성. 둘 다 잔차 형태의 식별 식을 푸는 도구.
직관 — Newton-Raphson 의 위치: 비선형 SNMM 은 closed form 없음. Newton-Raphson 같은 반복 최적화 사용. 격자 검색은 직관적 데모, 실무는 closed form 또는 Newton-Raphson.
6 Doubly Robust G-estimation 의 미리보기
\(H(\beta^\dagger)\) 를 직접 사용하지 않고 \(H(\beta^\dagger) - \mathrm{E}[H(\beta^\dagger)|L]\) 의 잔차 형태를 사용. \(\mathrm{E}[H(\beta^\dagger)|L] = \mathrm{E}[Y^{a=0}|L]\) 의 모형이 추가로 필요.
이 doubly robust g-estimator 는 다음 두 시나리오 중 한쪽만 옳아도 일치:
- \(\mathrm{E}[Y^{a=0}|L]\) 모형이 옳음.
- \(\mathrm{E}[A|L]\) 과 \(\Pr(C=1|A,L)\) 모형이 모두 옳음.
원래 g-estimation 은 (ii) 만 의존. DR 은 위험 분산.
직관 — DR g-estimation 의 두 번의 기회: 결과 모형이 옳거나, 처치+censoring 모형이 옳거나 — 둘 중 하나만 옳아도 답이 진짜로 수렴. Ch.18 의 ML 결합 추정량의 출발점이며, 시간변동 처치 (Part III) 에서 표준 도구.
7 가정의 점검 — 전체 정리
| 가정 | 영향 | 검증 방법 |
|---|---|---|
| 조건부 교환가능성 | 절대적 | 도메인 + DAG + sensitivity |
| 양의 확률 | 강함 | overlap 점검 |
| SNMM 함수 형태 | 강함 | 다른 specification 비교 |
| 처치 모형 | 강함 (DR 시 약함) | propensity 모형 진단 |
| Rank preservation | 없음 | (자동) |
직관 — 가정 robustness 의 비교: g-estimation 은 IPW (처치 모형 의존) 와 표준화 (결과 모형 의존) 의 중간. Single robustness 단계에서는 둘과 비슷한 robustness, DR g-estimation 은 두 도구의 robustness 를 결합.
8 응용 분야
- 개인화 의료의 HTE 추정: SNMM product term 으로 효과 수정 직접 표현
- 시간변동 처치: Part III 의 표준 도구
- 임상 코호트의 robust 분석: nuisance specification 의 영향 감소
- 약물 효과 분석: dichotomous 또는 continuous 결과의 multiplicative SNMM
- 민감도 분석: 미관측 교란 시나리오의 직관적 통합
9 코드 — 다중 모수 g-estimation
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
nhefs = pd.read_csv("nhefs.csv").dropna(subset=["wt82_71"]).reset_index(drop=True)
# 다중 모수 격자 검색 — 2 차원
beta1_grid = np.arange(2.0, 4.0, 0.1)
beta2_grid = np.arange(-0.05, 0.10, 0.005)
best = (np.inf, None, None)
for b1 in beta1_grid:
for b2 in beta2_grid:
nhefs["H"] = nhefs["wt82_71"] - b1 * nhefs["qsmk"] \
- b2 * nhefs["qsmk"] * nhefs["smokeintensity"]
formula = (
"qsmk ~ H + I(H * smokeintensity) "
"+ sex + race + C(education) + age + I(age**2) "
"+ smokeintensity + I(smokeintensity**2) + smokeyrs + I(smokeyrs**2) "
"+ C(exercise) + C(active) + wt71 + I(wt71**2)"
)
m = smf.logit(formula, data=nhefs).fit(disp=False)
# 두 alpha 가 동시에 0 에 가까운지
score = abs(m.params["H"]) + abs(m.params["H:smokeintensity"])
if score < best[0]:
best = (score, b1, b2)
print(f"G-estimate: beta1 = {best[1]:.2f}, beta2 = {best[2]:.3f}")
# beta1 ~ 2.86, beta2 ~ 0.03
# Closed-form 추정 (선형 SNMM)
# 본문 Technical Point 14.2 의 행렬 식 — 코드 schematic
# (실제 구현은 numpy 의 linear algebra 사용)10 한 줄 요약
G-estimation 의 5 단계 절차는 격자 검색 → \(\widehat{\alpha}_1 = 0\) 후보 → test inversion 으로 95% CI. 선형 SNMM 은 closed form, 비선형은 Newton-Raphson. 다중 모수 SNMM 은 효과 수정을 product term 으로 직접 표현 — NHEFS 에서 \(\widehat{\beta}_1 = 2.86, \widehat{\beta}_2 = 0.03\). Doubly robust g-estimation 은 결과·처치 모형 중 한쪽만 옳아도 일치 — Part III 의 시간변동 표준 도구로 확장.
11 관련 주제
선행 지식
후속 주제
다른 카테고리 연결