1 정의
표준화 식별식의 시간-사건 확장:
\[\Pr(D_k^a = 0) = \mathrm{E}_L\left[\prod_{m=1}^{k} \Pr(D_m = 0 | D_{m-1}=0, A=a, L)\right]\]
= 모든 \(L\) 값에서 시점별 conditional survival 곱의 평균.
추정 절차: 결과 (hazard) 모형 적합 → 가상 시나리오 데이터에 대입 → 시점별 hazard 예측 → 곱셈으로 conditional survival → \(L\) 분포로 평균.
생존 분석의 SNMM 형태. 처치 효과를 누적 위험비 (cumulative incidence ratio) 로 표현:
\[\frac{\Pr(D_k^a = 1 | A = a, L)}{\Pr(D_k^{a=0} = 1 | A = a, L)} = \exp(\gamma_k a)\]
또는 hazard ratio 형태.
G-estimation 으로 모수 \(\gamma\) 추정.
직관 — 시간-사건 g-formula 의 본질: 단일 시점 g-formula 는 한 평균. 시간-사건은 시점마다 평균 → 시점별 survival 곡선. 같은 절차의 시간 차원 일반화. 확장의 자연스러움이 g-method 의 강점.
2 17.5 Parametric g-formula
2.1 절차의 5 단계
Step 1: Person-time 데이터 + 결과 (hazard) 모형 적합:
\[\mathrm{logit}\, \Pr(D_{k+1} = 1 | D_k = 0, A, L) = \alpha_{0,k} + \alpha_1 A + \alpha_2 A k + \alpha_3 L + \cdots\]
(보통 \(A \times L\) product term 포함하여 효과 수정 표현.)
Step 2: 가상 시나리오 데이터 생성 — 모든 환자에게 \(A := 1\) 적용한 person-time 복사본, \(A := 0\) 적용한 복사본.
Step 3: 적합된 hazard 모형으로 두 가상 데이터의 시점별 hazard 예측.
Step 4: 환자별 + 시점별 conditional survival 계산: \(\widehat{S}_i(k | A=a) = \prod_{m=1}^{k} (1 - \widehat{h}_i(m | A=a, L_i))\).
Step 5: 환자별 survival 의 표본 평균 → marginal survival: \(\widehat{\Pr}(D_k^a = 0) = \frac{1}{n} \sum_i \widehat{S}_i(k | A=a)\).
직관 — 가상 시나리오 데이터의 의미: Ch.13 의 표준화의 4 단계 알고리즘과 같음. 차이는 생존 분석에서는 시점별로 hazard 예측 + survival 누적 곱. 반사실의 시점별 추정.
직관 — 환자별 survival 의 평균: 각 환자의 \(L\) 에 따른 conditional survival 다름. 평균하면 \(L\) 의 표본 분포로 적분 → marginal survival. 표준화의 본질.
2.2 NHEFS g-formula 결과 (Hernan, Program 17.4)
| 측정 | g-formula | IPW MSM (Ch.17.4) |
|---|---|---|
| 120 month \(\widehat{\Pr}(D^{a=1}=0)\) | 80.4% | 80.7% |
| 120 month \(\widehat{\Pr}(D^{a=0}=0)\) | 80.1% | 80.5% |
| 차이 | +0.3% | +0.2% |
| 95% CI | \((-3.9\%, +4.1\%)\) | \((-4.1\%, +3.7\%)\) |
직관 — 두 도구의 일치: g-formula 0.3% vs IPW MSM 0.2% — 거의 같음. 두 도구가 다른 모형 가정에 의존하는데 결과 일치 → 결과의 robust 신호. 단순 비교 -5.8% 와 매우 다른 결론.
직관 — 차이의 의미: 두 도구의 0.1% 차이는 모형 misspecification 의 흔적. 같은 방향의 작은 오차 가능. 의사결정에는 무관 — 둘 다 효과 거의 0.
2.3 Doubly Robust 추정량
처치 모형 + 결과 모형 모두 적합 → 한쪽만 옳아도 일치 추정.
대표 형태 — Bang & Robins (2005) 의 시간-사건 확장:
각 시점 \(k\) 의 hazard 모형에 IP 가중치 \(W^A\) 를 추가 변수로 포함 후 표준화.
NHEFS DR 결과: 0.2~0.3% 차이 (95% CI 비슷). 세 도구 모두 거의 같은 결론.
직관 — DR 의 가치는 모형 위반 시: 두 모형 모두 잘 specify 되면 IPW, g-formula, DR 모두 비슷한 결과. 한 모형 misspecified 면 그 도구만 편향, DR 은 다른 모형이 옳으면 보정. NHEFS 사례는 두 모형 합리적이라 DR 의 추가 가치 작음.
3 17.6 G-estimation 의 생존 확장
3.1 Structural Nested Mean Model 의 한계
단일 시점 SNMM (Ch.14):
\[\mathrm{E}[Y^a - Y^{a=0} | A = a, L] = \beta_1 a + \beta_2 a L\]
생존 분석에서는 결과가 시점별 binary \(D_k\) 라 평균 차이 모형이 부자연스럽다. 두 가지 대안:
- Cumulative Failure Time SNMM: \(\Pr(T^a < k) - \Pr(T^{a=0} < k)\) 의 모형.
- Hazard SNMM: \(\log \frac{h^a(k|L)}{h^{a=0}(k|L)} = \gamma_k a\) 형태.
두 모형 모두 g-estimation 으로 추정 가능 (Robins 1992, 1994).
직관 — 생존 SNMM 의 어려움: 단일 시점 SNMM 보다 복잡 — 시점별 모수, hazard ratio 의 함정. 단일 시점 도구만큼 표준화 안 됨. 이론적 도구지만 실무에서는 g-formula 또는 IPW MSM 이 흔함.
3.2 Multiplicative Hazard SNMM
\[\frac{h^a(k | A=a, L)}{h^{a=0}(k | A=a, L)} = \exp(\beta_1 a + \beta_2 a L)\]
처치-non-treated hazard ratio 의 모형. \(\exp(\beta_1)\) 은 baseline group 의 HR.
G-estimation 으로 추정 — counterfactual hazard 의 conditional 형태.
직관 — Multiplicative 가 자연스러운 이유: Hazard 는 양수, 비율 비교가 자연. Logistic hazard 의 odds ratio 와 비슷한 multiplicative 형태. 분석적 편의 + 생물학적 해석 자연.
직관 — Hazard ratio 의 함정 재등장: SNMM 이 hazard 비율 모형이라 Ch.17.1 의 두 함정 (시점 의존 + built-in selection bias) 동일하게 적용. 결과 보고는 survival 차이로 변환 권장.
3.3 G-estimation 절차의 생존 확장
Ch.14 의 5 단계 절차의 시간-사건 확장:
Step 1: 후보 모수 격자 정의. Step 2: 각 후보 \(\psi^\dagger\) 에 대해 $H_k(^) = $ “처치 효과를 빼낸 가상 hazard” 계산 — multiplicative SNMM 형태. Step 3: 각 시점의 가중 logistic 회귀 — \(\Pr(A=1 | H_k(\psi^\dagger), L)\). Step 4: 모든 시점의 회귀 계수 합이 0 인 \(\psi^\dagger\) 찾기. Step 5: Test inversion 으로 95% CI.
직관 — 시점별 logistic 회귀의 합: 단일 시점 g-estimation 은 1 회 logistic. 생존은 시점마다 logistic — 시점 수만큼 적합. 모수 검색의 차원 수도 늘어 계산 부담 큼. 닫힌형 또는 Newton- Raphson 권장.
3.4 NHEFS G-estimation 결과
이론적으로 가능하지만 본문에서 자세한 결과 제시 안 함. IPW MSM·g-formula 와 일치할 것으로 예상.
세 도구 모두 흡연 중단의 사망 효과 약함이라는 robust 결론.
4 도구 선택 가이드
| 도구 | 강점 | 약점 |
|---|---|---|
| IPW MSM | 처치 모형만 specification, 시간변동 자연 확장 | weak IPW 시 분산 폭발 |
| Parametric g-formula | 결과 모형만 specification, robust to positivity | 결과 함수 형태 가정 |
| SNMM g-estimation | semiparametric, sensitivity 자연 통합 | 절차 복잡, 격자 검색 비용 |
| Doubly Robust | 두 모형 중 한쪽만 옳아도 | 두 모형 적합 비용 |
실무 권장: 가능하면 세 도구 모두 사용. 결과 일치 → robust. 차이 → 모형 misspecification 의 신호 → sensitivity analysis.
5 NHEFS 의 종합 결론
체중 효과 (Ch.12-15): IPW 3.4kg, 표준화 3.5kg, g-est 3.4kg, PS 3.5kg, IV 2.4kg (weak). → Robust 약 +3.5kg 체중 증가. 다섯 도구 일치.
사망 효과 (Ch.17): IPW MSM 0.2%, g-formula 0.3%. → 10 년 내 사망 영향 거의 없음. 두 도구 일치.
메커니즘 추론: 흡연 중단이 체중 증가시키지만 (직접) 사망에는 단기 영향 약함. 흡연으로 인한 만성 질환은 더 긴 추적 기간 필요. NHEFS 의 1992 년 종료가 추적 한계.
직관 — 모든 도구의 종합 결론이 결정: 단일 도구의 점추정은 가정 위반에 취약. 5+ 도구의 일치 결과는 robust. 인과 분석의 황금 표준은 다중 도구 + sensitivity.
6 결과 보고 템플릿
연구 질문: 1971-75 흡연자의 1982 까지 금연이 1992 까지 사망에 미치는 평균 인과 효과는?
데이터: NHEFS 1629 명 (1971-1992 추적). 318 명 사망, 1311 명 행정 censoring.
식별 가정: - 조건부 교환가능성: 9 baseline 변수가 모든 처치-사망 confounder 포함. - 양의 확률: PS 분포 [0.05, 0.95] 양호. - 일관성: 금연 정의 명확. - 행정 censoring 외생적 (모든 사람 동일 시점).
방법: KM (no adjustment) + IPW MSM + g-formula. Bootstrap 500 반복.
결과: - KM: -5.8% (95% CI -10.1, -1.4) — 단순 비교, 연관. - IPW MSM: +0.2% (95% CI -4.1, +3.7) — 인과 추정. - g-formula: +0.3% (95% CI -3.9, +4.1) — 인과 추정. - 두 인과 도구 일치 → 결과 robust.
Sensitivity: - 단순 비교의 -5.8% 는 나이 confounding 으로 설명 가능. - 추적 기간 10 년 — 흡연 만성 효과 발현에 짧음. - 미관측 교란 sensitivity (E-value): 약 1.1 — 약한 미관측 교란에 민감 가능.
결론: 측정된 9 변수 보정 + 결과·처치 모형 가정 + 약한 미관측 교란 가정 아래, 흡연 중단이 1992 사망에 미치는 평균 인과 효과 거의 0 (CI ±4%). 그러나 추적 기간 한계 + sensitivity 1.1 때문에 장기 효과나 미관측 교란 시나리오에서는 다른 결론 가능.
직관 — 보고의 풍부함: 점추정 + CI 만으로 부족. 가정 명시 + sensitivity + 한계 인식까지 포함하면 사용자가 도메인 판단으로 결과 신뢰성 평가 가능. 인과 분석은 계산이 아닌 추론의 조합.
7 응용 분야
- 임상 코호트 사망 분석: g-formula 가 표준 도구
- 종양학: 진행·생존의 g-formula 분석
- HIV/AIDS 코호트: ART 의 시간변동 처치 + 사망 결과
- 공중보건 정책: 정책 효과의 장기 결과 분석
- 신뢰성 공학: 부품 수명의 처치 효과
8 코드 — Parametric g-formula Survival
import pandas as pd
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
# 이전 person-time 데이터 (Ch.17.4 코드)
nhefs = pd.read_csv("nhefs.csv").reset_index(drop=True)
nhefs["death"] = nhefs["death"].fillna(0).astype(int)
nhefs["survtime"] = np.where(
nhefs["death"] == 1,
(nhefs["yrdth"] - 1983) * 12 + nhefs["modth"],
120
)
def to_person_time_with_L(df, L_cols):
rows = []
for _, r in df.iterrows():
n = int(r["survtime"])
for k in range(n):
row = {"id": r["seqn"], "k": k, "qsmk": r["qsmk"]}
for col in L_cols:
row[col] = r[col]
row["D_k1"] = 1 if (k == n - 1 and r["death"] == 1) else 0
rows.append(row)
return pd.DataFrame(rows)
L_cols = ["sex", "race", "education", "age", "smokeintensity",
"smokeyrs", "exercise", "active", "wt71"]
person_time = to_person_time_with_L(nhefs, L_cols)
# === Step 1: 결과 (hazard) 모형 적합 with L ===
hazard_formula = (
"D_k1 ~ qsmk * (k + I(k**2)) "
"+ qsmk * 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) "
"+ k + I(k**2)"
)
hazard_model = smf.glm(
hazard_formula,
data=person_time,
family=sm.families.Binomial()
).fit()
# === Step 2: 가상 시나리오 데이터 생성 ===
def make_counterfactual_pt(df, L_cols, A_value, k_max=120):
rows = []
for _, r in df.iterrows():
for k in range(k_max):
row = {"k": k, "qsmk": A_value}
for col in L_cols:
row[col] = r[col]
rows.append(row)
return pd.DataFrame(rows)
cf_treated = make_counterfactual_pt(nhefs, L_cols, 1)
cf_untreated = make_counterfactual_pt(nhefs, L_cols, 0)
# === Step 3-4: 환자별 + 시점별 conditional survival ===
cf_treated["h"] = hazard_model.predict(cf_treated)
cf_untreated["h"] = hazard_model.predict(cf_untreated)
# 환자별 cumulative survival
def cumulative_survival(df, n_individuals, k_max=120):
df["S"] = (1 - df["h"]).groupby(df.index // k_max).cumprod()
# 시점별 marginal survival
marginal_S = df.groupby("k")["S"].mean().values
return marginal_S
n_ind = len(nhefs)
S1 = cumulative_survival(cf_treated, n_ind)
S0 = cumulative_survival(cf_untreated, n_ind)
print(f"g-formula Survival:")
print(f" S(120 | A=1) = {S1[-1]:.3f}")
print(f" S(120 | A=0) = {S0[-1]:.3f}")
print(f" Difference = {S1[-1] - S0[-1]:.3f}")
# Bootstrap CI 는 IPW MSM 과 동일 절차로9 한 줄 요약
Parametric g-formula 는 hazard 모형 + 가상 시나리오 데이터 + 시점별 survival 곱셈으로 인과 생존 추정. NHEFS 흡연 중단의 사망 효과 약 0.3% — IPW MSM 의 0.2% 와 일치, robust 결론. SNMM g-estimation 은 multiplicative hazard 형태로 시간-사건 확장 — 이론적 도구지만 실무에서는 g-formula·IPW MSM 이 흔함. 세 도구 일치성으로 결과의 robust 검증. NHEFS 종합: 흡연 중단이 체중 증가시키지만 10 년 내 사망 영향 거의 없음 — 추적 기간 한계 + 만성 효과 발현 시간.
10 관련 주제
선행 지식
후속 주제
다른 카테고리 연결
- Cox 모형
- Bootstrap
- Parametric Survival 모형 — Weibull, exponential