Doubly Robust 추정량과 시간변동 G-Estimation

Hernan Ch.21.3~21.4 — DR 결합 + Sequential SNMM, ML 결합의 미래

Hernan & Robins (2020) Ch.21.3~21.4 를 다룬다. 시간변동에서 doubly robust 추정량의 메커니즘 (g-formula + IPW 의 결합), 두 모형 중 한쪽만 옳아도 일치하는 second-order bias 의 시간 차원 일반화, Sequential Structural Nested Mean Models 의 정의, g-test 의 시점별 일반화, 그리고 TMLE (Targeted Maximum Likelihood) 같은 향후 발전 방향을 정리한다.

Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: 시간변동 Doubly Robust 추정량

g-formula + IPW MSM 의 결합:

\[\widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{DR} = \widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{g-formula} + \frac{1}{n} \sum_i \widehat{W}_i^{\bar{A}} \mathbb{1}\{\bar{A}_i = \bar{a}\} \cdot \text{(잔차 보정)}\]

  • 결과 모형 (g-formula 안의) 옳으면 → 일치.
  • 처치 모형 (IPW 안의) 옳으면 → 일치.
  • 둘 중 한쪽만 옳아도 일치 — doubly robust.

→ 시간변동의 misspecification 위험을 두 모형으로 분산.

정의: 시간변동 G-Estimation

Sequential Structural Nested Mean Model (SNMM):

\[\mathrm{E}[Y^{\bar{a}_{k-1}, a_k = 1, \bar{a}_{k+1:K}^g} - Y^{\bar{a}_{k-1}, a_k = 0, \bar{a}_{k+1:K}^g} | \bar{A}_{k-1}, \bar{L}_k] = \beta_k\]

= 시점 \(k\) 의 처치 효과 모형링. 다른 시점은 strategy \(g\) 로 설정.

추정: g-test 의 시점별 일반화. SNMM 모수가 시점별 처치 효과.

직관 — DR 의 시간변동 가치: 단일 시점 DR 은 모형 2 개 결합. 시간변동 DR 은 시점별 모형 2 개 결합 — 시점 수 만큼 robustness 증가. 그러나 구현 복잡성 도 증가.

2 21.3 Doubly Robust 추정량

2.1 Single Time Point DR 의 시간변동 일반화

AIPW 의 시간변동 형태 (Robins, Rotnitzky, Zhao 1994)

단일 시점 AIPW (Ch.13.4): \[\widehat{\mathrm{E}}[Y^a]_\text{AIPW} = \frac{1}{n} \sum_i \left[\widehat{m}(a, X_i) + \frac{\mathbb{1}\{A_i=a\}}{\widehat{\pi}(X_i)} (Y_i - \widehat{m}(A_i, X_i))\right]\]

시간변동 AIPW (단순화): \[\widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{AIPW} = \widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{g-formula} + \frac{1}{n} \sum_i \widehat{W}_i^{\bar{A}} \mathbb{1}\{\bar{A}_i = \bar{a}\} (Y_i - \widehat{Y}_i^{\bar{a}})\]

각 시점의 결과 모형 잔차 를 IPW 가중으로 보정.

→ 첫 항 (g-formula) 이 결과 모형 옳음 시 일치. → 둘째 항 (IPW 잔차 보정) 이 처치 모형 옳음 시 일치.

둘 중 한쪽만 옳아도 일치.

직관 — Second-Order Bias 의 시간변동: 단일 시점에서 두 모형 오차의 이 추정량 편향. 시간변동에서 매 시점의 두 모형 오차의 곱이 으로 누적. 시점이 길수록 robustness 누적 효과 크지만 구현 어려움도 누적.

2.2 Augmented IPW 의 시간변동 형태

Sequential AIPW (Robins 2000)

\(K+1\) 시점 데이터에서 sequential AIPW:

각 시점 \(k\) 에서 잔차 보정: - “Strategy \(\bar{a}\) 의 결과” - “\(k\) 시점 후 strategy 따랐을 때 결과의 conditional 평균”. - IPW 가중으로 보정.

\[\widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{seq AIPW} = \widehat{\mathrm{E}}[Y^{\bar{a}}]_\text{g-formula} + \sum_{k=0}^{K} \widehat{W}_{k,i}^{\bar{A}} \mathbb{1}\{\bar{A}_{k,i} = \bar{a}_k\} \times [\widehat{Q}_{k+1,i}(\bar{a}) - \widehat{Q}_{k,i}(\bar{a})]\]

여기서 \(\widehat{Q}_k(\bar{a})\) 는 “시점 \(k\) 까지 관측 + 시점 \(k+1\) 부터 strategy 따른 가상 결과” 의 conditional 기댓값.

직관 — Sequential AIPW 의 메커니즘: 매 시점 지금까지의 관측 history + 미래의 가상 strategy 결합. 시간 차원에서 점진적 “관측 → 가상 으로 전환”. 단일 시점 AIPW 의 시간변동 일반화.

직관 — TMLE 와의 관계: TMLE (Targeted Maximum Likelihood Estimation, van der Laan) 가 sequential AIPW 의 한 형태. ML 결합 + cross-fitting 으로 Targeted Learning. 2025 년 이후 시간변동 인과 분석의 표준 도구.

2.3 Doubly Robust ML 의 시간변동

DR ML for Time-Varying

Ch.18 의 DR ML (Chernozhukov 2018) 의 시간변동 일반화:

각 시점 \(k\) 의 두 모형: - 처치 모형 \(\Pr(A_k | \bar{A}_{k-1}, \bar{L}_k)\) — gradient boosting, RF, NN 등. - 결과 모형 \(\mathrm{E}[Y | \bar{A}, \bar{L}]\) — sequential 또는 직접 ML 적합.

K-fold cross-fitting: - 각 fold 에 대해 sequential AIPW 추정. - 평균으로 final 추정량.

이론: 두 모형이 \(n^{-1/4}\) 보다 빠르게 수렴 시 95% CI valid.

직관 — 시간변동 DR ML 의 이론적 도전: 단일 시점에서 ML 의 \(n^{-1/4}\) 수렴 + DR 의 second-order bias = \(n^{-1/2}\) valid. 시간변동에서 시점 수가 많아지면 각 시점별 ML 수렴 속도 가 누적되어 더 강한 가정 필요. 활발한 이론 연구 영역.

직관 — 실무적 제약: NHEFS 같은 작은 데이터에서 시간변동 DR ML 은 분산 폭발. 큰 cohort (수만~수십만 명) 에서만 안정적. 고차원 + 큰 표본의 영역.

3 21.4 Sequential G-Estimation of SNMM

3.1 Structural Nested Mean Model 의 시간변동 정의

Sequential SNMM (Robins 1994)

각 시점 \(k\)blip function:

\[\gamma_k(\bar{A}_{k-1}, \bar{L}_k; \beta) = \mathrm{E}[Y^{\bar{A}_{k-1}, a_k=1, \bar{a}_{k+1:K}^g} - Y^{\bar{A}_{k-1}, a_k=0, \bar{a}_{k+1:K}^g} | \bar{A}_{k-1}, \bar{L}_k]\]

= “지금까지 관측 + 시점 \(k\) 처치 1 vs 0 + 미래 strategy \(g\)” 의 잠재 결과 차이.

→ 시점 \(k\)직접 효과 (다른 시점은 fix).

Semiparametric: \(\gamma_k\) 만 모형링, \(\mathrm{E}[Y^{\bar{a}=\bar{0}^g} | \bar{L}, \bar{A}]\) 의 nuisance 부분 비제약.

직관 — Blip Function 의 의미: “한 시점만 처치 변경” 의 효과. SNMM 의 building block. 누적 효과는 blip 함수의 .

직관 — Semiparametric 강점 유지: Nuisance 부분 모형 안 함 → outcome 모형 misspecification 위험 회피. G-formula 와 다른 robustness 형태.

3.2 G-Test 의 시간변동 적용

Sequential G-Test 절차

각 시점 \(k\) 에서:

Step 1: 후보 모수 격자 정의.

Step 2: 각 후보 \(\beta^\dagger\) 에 대해: \[H_{k,i}(\beta^\dagger) = Y_i - \sum_{j \geq k} \widehat{\gamma}_j(\bar{A}_{j-1,i}, \bar{L}_{j,i}; \beta^\dagger)\]

= “처치 효과 빼낸 가상 outcome” — 시점 \(k\) 부터의 효과 제거.

Step 3: Logistic 회귀: \[\mathrm{logit}\, \Pr(A_k = 1 | H_k(\beta^\dagger), \bar{A}_{k-1}, \bar{L}_k) = \alpha_0 + \alpha_1 H_k(\beta^\dagger) + \cdots\]

Step 4: \(\widehat{\alpha}_1 = 0\)\(\beta^\dagger\) 가 시점 \(k\) 의 추정값.

Step 5: 시점별 반복 → 모든 시점의 SNMM 모수 추정.

직관 — Sequential 검증의 누적: 매 시점의 g-test 가 그 시점 처치 효과 추정. 시점 수가 길수록 누적 변동 큼. 격자 검색의 차원도 시점 수만큼 — 계산 비용 폭발. Closed-form 또는 Newton- Raphson 권장.

직관 — SNMM 의 부분 식별: Saturated SNMM 으로 모든 시점 효과 식별 가능. Non-saturated 형태 (e.g., 시점별 동일 효과 가정) 는 단순화 + misspecification 위험.

3.3 G-Estimation 의 시간변동 강점

SNMM 의 시간변동 분석 강점
  1. Semiparametric: Outcome 모형의 nuisance 부분 비제약. Misspecification 분리.

  2. Sensitivity Analysis 자연 통합: \(\alpha_1\) 가설 값을 0 대신 다른 값 → 미관측 confounding sensitivity.

  3. Effect Modification 명시: SNMM 의 product term 이 직접 효과 수정 표현.

  4. 시간변동 자연: Sequential 모수 → 시간 동적 변화 표현.

직관 — SNMM 의 이론적 우아함: Hernan, Robins 의 50+ 년 발전의 정점. 그러나 실무 사용 적음 — g-formula·IPW MSM 이 더 흔한 도구. 이론적 지식 + 실무 도구의 격차.

직관 — 향후 발전: Wang & Tchetgen Tchetgen (2018, 2022) 의 SNMM 일반화. Multiplicative SNMM 의 시간변동 (이항 결과). DR SNMM 의 ML 결합. 활발한 연구 영역.

3.4 G-Estimation 의 NHEFS-like 적용

가상 NHEFS-like 분석

\(K = 60\) 시점, ART 처치, CD4 covariate, 사망 outcome.

SNMM: \[\gamma_k(\bar{A}_{k-1}, L_k; \beta) = \beta_1 + \beta_2 \cdot L_k\]

= 시점 \(k\) 의 처치 효과 = baseline 효과 + CD4 의존 효과 수정.

G-test 절차: - 매 시점 \(H_k(\beta^\dagger)\) 계산. - Logistic 회귀로 \(\alpha_1 = 0\) 검정. - 60 시점의 SNMM 모수 추정.

결과: \(\beta_1 \approx -0.5\) (사망률 감소 — ART 효과), \(\beta_2 \approx -0.001\) (효과 수정 약함).

계산 비용: 격자 60 차원 → Newton-Raphson 또는 closed-form 필수.

직관 — 실무 구현의 어려움: 60 시점 SNMM 의 직접 격자 검색 = \(10^{60}\) 평가 — 불가능. Closed- form (linear SNMM) 또는 효율적 최적화 (Newton-Raphson) 가 유일 실무 옵션. 계산 도구의 발전이 도구 사용에 결정적.

4 DR + SNMM 결합

Doubly Robust SNMM (Robins 2000, Wang et al. 2022)

SNMM 의 모수 추정에 DR 결합:

추가 nuisance 모형 \(\mathrm{E}[Y^{\bar{a}=0^g} | \bar{L}, \bar{A}]\) — 모든 시점 비처치 가상 결과의 conditional 평균.

\[\widehat{\beta}_\text{DR} = \arg\min_\beta \sum_i \left|\sum_k W_{k,i} (H_{k,i}(\beta) - \widehat{\mathrm{E}}[Y^{\bar{a}=0}|...])(A_{k,i} - \widehat{\Pr}(A_k=1|\cdot))\right|^2\]

→ 처치 모형 또는 결과 모형 한쪽만 옳아도 일치.

→ ML 결합 + cross-fitting 으로 robust DR SNMM (활발한 연구).

직관 — DR SNMM 의 정점 형태: 3 도구 (g-formula, IPW MSM, g-estimation) 의 강점을 모두 결합. 결과 모형, 처치 모형, structural model 모두 활용. Hernan & Robins 의 framework 의 정점.

직관 — 실무 software 의 부재: 단일 시점 DR ML 은 EconML, DoubleML 같은 표준 패키지. 시간 변동 DR SNMM 은 표준 software 부재 — 분석가가 직접 구현. 이론과 실무의 격차.

5 도구 종합 비교

측면 G-Formula IPW MSM G-Estimation DR (결합)
Outcome 모형 필요 불필요 부분 (nuisance) 필요
처치 모형 불필요 필요 필요 필요
Misspecification 분리 결과 모형 처치 모형 부분 분리 양쪽 분산
시점별 모형 수 \(2(K+1)\) \(K+1\) \(K+1\) \(3(K+1)\)
분산 폭발 Monte Carlo 가중치 곱 Sequential 변동 종합
구현 비용 매우 큼 매우 큼
Software gfoRmula gee, lme4 직접 구현 직접 구현
Doubly robust No No No Yes
ML 결합 가능 가능 어려움 표준

직관 — 도구 선택 가이드: 표준 분석 — g-formula + IPW MSM. Robust 추구 — DR. SNMM 은 sensitivity 분석 또는 효과 수정 명시 시. 다중 도구 + 결과 일치성 검토 가 표준.

6 응용 분야

  • HIV/AIDS 코호트: ART 시작 시점 + dose 변경의 DR 분석
  • 종양학 SMART: 항암제 sequential 효과의 SNMM
  • 만성 질환: 약물 dose adjustment 의 DR
  • 마케팅 attribution: 캠페인 sequence 의 ML + DR
  • 개인화 의료: 환자 specific 처치 strategy 의 g-formula

7 코드 — Sequential AIPW (DR) 구현

import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier
from sklearn.model_selection import KFold

# === Hernan Table 21.1 ===
data_summary = pd.DataFrame({
    "A0": [0, 0, 0, 0, 1, 1, 1, 1],
    "L1": [0, 0, 1, 1, 0, 0, 1, 1],
    "A1": [0, 1, 0, 1, 0, 1, 0, 1],
    "N":  [2400, 1600, 2400, 9600, 4800, 3200, 1600, 6400],
    "Y":  [84, 84, 52, 52, 76, 76, 44, 44]
})
rows = []
for _, r in data_summary.iterrows():
    for _ in range(int(r["N"])):
        rows.append({"A0": r["A0"], "L1": r["L1"], "A1": r["A1"], "Y": r["Y"]})
df = pd.DataFrame(rows).reset_index(drop=True)

# === Sequential AIPW ===
def sequential_aipw(df, strategy_a0, strategy_a1):
    """2 시점 DR 추정"""

    # 처치 모형
    pa0 = smf.logit("A0 ~ 1", data=df).fit(disp=False).predict(df).iloc[0]
    pa1_model = smf.logit("A1 ~ A0 + L1", data=df).fit(disp=False)
    pa1 = pa1_model.predict(df)

    # 결과 모형 (parametric g-formula 의 일부)
    y_model = smf.ols("Y ~ A0 + A1 + L1 + A0:L1", data=df).fit()

    # 가상 시나리오 데이터
    sim_data = df.copy()
    sim_data["A0"] = strategy_a0
    sim_data["A1"] = strategy_a1

    # G-formula 부분 — 결과 모형 예측의 평균
    g_formula_estimate = y_model.predict(sim_data).mean()

    # IPW 잔차 보정 부분
    indicator = (df.A0 == strategy_a0) & (df.A1 == strategy_a1)
    weights = np.where(df.A0 == strategy_a0, 1/pa0, 1/(1-pa0)) * \
              np.where(df.A1 == strategy_a1, 1/pa1, 1/(1-pa1))

    residual = df.Y - y_model.predict(df)
    correction = (indicator * weights * residual).mean()

    return g_formula_estimate + correction

# DR ATE
e_y_always_dr = sequential_aipw(df, 1, 1)
e_y_never_dr = sequential_aipw(df, 0, 0)
print(f"=== Sequential AIPW (Doubly Robust) ===")
print(f"E[Y^(1,1)] = {e_y_always_dr:.2f}")
print(f"E[Y^(0,0)] = {e_y_never_dr:.2f}")
print(f"DR ATE = {e_y_always_dr - e_y_never_dr:.2f} (진짜 0)")

# === Misspecified 결과 모형으로 DR robustness 검증 ===
# 결과 모형 빠뜨림 (interaction 미포함)
def aipw_misspecified_y(df, strategy_a0, strategy_a1):
    pa0 = 0.5
    pa1_model = smf.logit("A1 ~ A0 + L1", data=df).fit(disp=False)
    pa1 = pa1_model.predict(df)
    # Y 모형 — interaction 없음 (misspecified)
    y_model = smf.ols("Y ~ A0 + A1 + L1", data=df).fit()
    sim_data = df.copy()
    sim_data["A0"] = strategy_a0
    sim_data["A1"] = strategy_a1
    g_est = y_model.predict(sim_data).mean()
    indicator = (df.A0 == strategy_a0) & (df.A1 == strategy_a1)
    weights = np.where(df.A0 == strategy_a0, 1/pa0, 1/(1-pa0)) * \
              np.where(df.A1 == strategy_a1, 1/pa1, 1/(1-pa1))
    residual = df.Y - y_model.predict(df)
    correction = (indicator * weights * residual).mean()
    return g_est + correction

print(f"\n=== Misspecified Y model + correct treatment model ===")
print(f"DR ATE = {aipw_misspecified_y(df, 1, 1) - aipw_misspecified_y(df, 0, 0):.2f}")
print(f"  → 처치 모형 옳아 DR 보정으로 0 근처 유지")

8 한 줄 요약

시간변동 Doubly Robust 추정량은 g-formula + IPW MSM 의 결합으로 두 모형 중 한쪽만 옳아도 일치 — second-order bias 의 시간 차원 일반화. Sequential AIPW (Robins 2000) 가 표준 형태. ML 결합 + cross-fitting 으로 시간변동 DR ML — TMLE, Targeted Learning 의 영역. Sequential SNMM g-estimation 은 semiparametric 이지만 구현 복잡 — sensitivity analysis 자연 통합 강점. DR SNMM 은 3 도구의 통합 정점 — 활발한 연구 영역. 표준 분석은 g-formula + IPW MSM, robust 추구 시 DR 추가.

9 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

Subscribe

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