Treatment-Confounder Feedback — Ch.20 개관

Hernan Ch.20 — 전통 도구의 정량적 실패, 32,000 명 사례, g-method 의 필연성

Hernan & Robins (2020) Ch.20 의 5 개 소챕터를 한 흐름으로 정리한다. Treatment-confounder feedback 의 정의와 Figure 20.3 의 단순 DAG, 32,000 명 가상 sequentially randomized 시험에서 전통 stratification·outcome regression·matching 모두 실패하는 메커니즘 (sharp null 인데도 -8 이라는 비영 추정), 그리고 g-method 의 도입 필연성을 압축한다.

Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 08일

1 개요

Ch.19 가 시간변동 처치의 개념 frame 을 제시했다. Ch.20 은 그 frame 위에서 구체적 실패 사례 를 보여준다 — Hernan 의 Table 20.1 의 32,000 명 가상 sequentially randomized 시험에서 처치 효과가 정확히 0 인데도 stratification 으로 -8 의 추정값이 나오는 메커니즘.

이 챕터는 Part III 에서 가장 교육적인 부분 — 추상적 g-method 도입 전에 필요한지를 정량적으로 보여준다. Robins (1986) 의 g-formula 가 이 deadlock 의 해결책으로 1986 년에 발명된 배경이다.

직관 — Ch.20 의 메시지: “이론은 단순할 수 있다. 실패는 구체적이어야 한다.” Ch.19 의 추상적 sequential exchangeability → Ch.20 의 32,000 명 표 사례. 분석가가 직접 실패를 경험 후 g-method 의 가치를 인식.

정의: Treatment-Confounder Feedback

다음 두 조건이 동시 성립:

  1. Confounder 가 처치에 영향: \(L_k \to A_k\) — covariate 이 처치 결정.
  2. 처치가 Confounder 에 영향: \(A_{k-1} \to L_k\) — 이전 처치가 다음 covariate 에 영향.

→ Confounder 와 처치의 순환적 의존. 단일 시점 confounder 에 없는 피드백 loop.

대표 예: HIV 의 CD4 cell count \(L_k\) — 의사가 처치 결정에 사용 + ART 처치가 CD4 회복 + CD4 가 사망 위험 결정.

직관 — Feedback 의 시각화:

A_0 → L_1 → A_1 → L_2 → A_2 → ... → Y
          ↘   ↙ ↘   ↙
            Y           Y

매 시점의 처치가 다음 시점의 covariate, 매 covariate 이 다음 처치 + 결과. 순환 그래프 처럼 보이지만 시간 방향은 단방향 — 시간 차원으로 분리되어 acyclic.

2 5 개 소챕터의 흐름

소챕터 핵심 질문
20.1 TC feedback 의 elements? DAG Figure 20.3, 처치-confounder 순환
20.2 전통 도구의 결과? Table 20.1, sharp null 인데 -8 추정
20.3 왜 실패? \(L_1\) 보정 = collider conditioning
20.4 도구 개선 가능? 회귀, 매칭 모두 실패 — 본질적 문제
20.5 과거 처치 보정은? 항상 필요, mismeasured 시 편향 강화

3 Hernan 의 Table 20.1 — 분석의 출발점

3.1 데이터 구조

NHEFS-like HIV 가상 시험 (Hernan, Table 20.1)

32,000 명 sequentially randomized 시험, 2 시점: - \(A_0\): 시점 0 처치 (50:50 무작위). - \(L_1\): 시점 1 의 CD4 — 0=high, 1=low. - \(A_1\): 시점 1 처치 (조건부 무작위 — \(L_1=0\) 이면 40%, \(L_1=1\) 이면 80%). - \(Y\): 결과 (높을수록 좋음).

가정: 처치는 \(Y\) 에 효과 0 (sharp null).

\(A_0\) \(L_1\) \(A_1\) \(N\) \(\mathrm{E}[Y]\)
0 0 0 2,400 84
0 0 1 1,600 84
0 1 0 2,400 52
0 1 1 9,600 52
1 0 0 4,800 76
1 0 1 3,200 76
1 1 0 1,600 44
1 1 1 6,400 44

직관 — 데이터의 메시지: 같은 \(A_0, L_1\) 에서 \(A_1\) 따라 \(Y\) 평균 동일 (84, 84). \(A_1\) 의 conditional effect = 0. \(A_0\) 의 marginal effect 도 0 (\(\mathrm{E}[Y|A_0=1] = \mathrm{E}[Y|A_0=0] = 60\)). 모든 시점의 처치가 효과 없음 — 진짜 ATE = 0.

3.2 전통 도구의 분석 결과

4 가지 분석 시도, 모두 실패

(1) 비보정 비교: \(\mathrm{E}[Y | A_0=A_1=1] - \mathrm{E}[Y | A_0=A_1=0] = 54.7 - 68 = -13.3\). (2) \(L_1\) 층화: 두 stratum 모두 \(-8\). (3) 회귀 (cumulative treatment \(cum(\bar{A})\) + \(L_1\)): \(\theta_1 \times 2 = -16\). (4) Matching on \(L_1\): 비슷한 결과.

진짜 ATE = 0.

→ 4 도구 모두 비영 결과. 전통 도구 모두 실패.

직관 — 충격적 결과: 단순 회귀 한 줄로 분석하는 분석가가 진짜 ATE 0 을 -8 또는 -16 으로 추정. 임상에서 이런 분석이 발표되면 처치가 해롭다는 결론 → 잘못된 정책. 실제 사례: 1990 년대 HIV ART 의 해롭다 결과가 나오던 시기 — 회귀 분석의 함정.

직관 — Hernan 의 충격 요법: 책의 가장 반직관적 결과. 분석가들의 표준 도구가 완전히 실패 하는 사례. 이로 인해 g-method 가 옵션이 아니라 필수 라는 인식 형성. 충격 후 도구 학습 의 교육적 효과.

4 핵심 개념 5 가지

4.1 1. TC Feedback 의 정확한 정의 (20.1)

DAG Figure 20.3 의 단순화:

A_0 → L_1 → A_1
              ↘   ↙
                Y
                ↑
                U_1 → L_1 (Y 의 unmeasured cause)

핵심 화살표: - \(A_0 \to L_1\) (처치가 confounder 에 영향). - \(L_1 \to A_1\) (confounder 가 처치에 영향). - \(U_1 \to L_1\) (미관측 변수가 covariate 에 영향). - \(U_1 \to Y\) (미관측 변수가 결과에 영향).

중요: \(A_0 \to Y\), \(A_1 \to Y\), \(L_1 \to Y\) 화살표 없음 (sharp null).

직관 — Feedback 의 핵심: \(A_0 \to L_1 \to A_1\) 의 connection. Confounder 가 처치 sequence 안에 끼어 있음. 단일 시점에 없는 구조.

직관 — \(U_1\) 의 역할: \(U_1\)\(L_1\)\(Y\) 의 공통 원인. \(L_1\) 이 collider — \(A_0\)\(U_1\) 의 결과. \(L_1\) 보정 시 collider conditioning\(A_0\)\(U_1\) 의 가짜 연관.

4.2 2. 단순 회귀가 실패하는 메커니즘 (20.3)

Stratification 의 collider 효과

\(L_1\) 층 안에서 비교: - \(\mathrm{E}[Y | A_0=1, L_1=0, A_1=1] - \mathrm{E}[Y | A_0=0, L_1=0, A_1=0] = 76 - 84 = -8\).

이 차이가 0 이 아닌 이유: - \(L_1=0\) 인 사람들 중 \(A_0=1\) 그룹: 처치 받았는데 CD4 가 high. 건강한 사람 일 가능성 (낮은 \(U_1\)). - \(L_1=0\) 인 사람들 중 \(A_0=0\) 그룹: 처치 안 받았는데 CD4 가 high. 원래 건강 한 사람 (낮은 \(U_1\)).

두 그룹 다 낮은 \(U_1\) — 비슷해 보이지만 조금 다른 분포. \(A_0=0\) 그룹이 더 낮은 \(U_1\).

\(A_0=1\) 의 평균 \(Y\)\(A_0=0\) 보다 낮음 — collider conditioning 으로 가짜 연관.

Sharp null 인데도 비영 추정 = collider 의 잔존 영향.

직관 — 직관적 설명: \(L_1=0\) (CD4 high) 라는 같은 조건이지만, \(A_0=1\) (처치 받음) 인 그룹은 “처치 덕분에 CD4 회복된 사람들” — 원래 건강 함. \(A_0=0\) 인 그룹은 “처치 안 받았는데도 CD4 high” — 원래 건강. 두 그룹의 기저 건강 상태 가 다름. 이 차이가 \(-8\) 로 나타남.

직관 — 같은 \(L_1\) 의 두 의미: “\(L_1=0\)” 이 의미하는 것이 두 그룹에서 다름. \(A_0=1\) 그룹 에서는 “처치 효과로 회복된 CD4”, \(A_0=0\) 그룹에서는 “원래 좋은 CD4”. 같은 측정값이 다른 의학적 의미. Conditioning on a collider distorts the meaning.

4.3 3. 회귀 모형도 실패 (20.4)

Outcome Regression 의 실패

\(\mathrm{E}[Y | \bar{A}, L_1] = \theta_0 + \theta_1 cum(\bar{A}) + \theta_2 L_1\) 회귀:

  • \(cum(\bar{A}) = A_0 + A_1\) (누적 처치).
  • \(\theta_1\) 추정: \(-4\) → “always treat” vs “never treat” = \(\theta_1 \times 2 = -8\).

이 결과가 비영 인 이유: - 회귀가 층화의 모수 형태. 같은 collider conditioning 메커니즘. - 더 유연한 함수 형태 (spline, interaction) 도 같은 함정 — 회귀의 본질적 한계.

결론: 회귀, 층화, 매칭 모두 동일 실패 메커니즘. 파라메트릭 vs 비파라메트릭의 문제 아님.

직관 — 도구 box 전체가 실패: 더 정교한 회귀, 더 유연한 함수, 더 큰 데이터 — 모두 같은 함정. 함정의 본질은 collider conditioning, 도구의 비유연성 아님. 새 도구 (g-method) 가 본질적으로 필요.

4.4 4. 회귀 모형 fix 시도의 실패 (20.4)

시도 1: \(L_1\) 빼기

\(L_1\) 보정 안 함 → \(L_1\) 이 confounder 라 confounding bias.

NHEFS Table 20.1 에서 \(\mathrm{E}[Y | A_0=A_1=1] - \mathrm{E}[Y | A_0=A_1=0] = -13.3\) — 큰 편향.

5 시도 2: \(L_1\) 보정

→ Collider conditioning, \(-8\) 편향.

6 시도 3: 일부 환자만 보정

→ Sample selection 편향, 결과 동일하게 부정확.

모든 시도 실패 — 본질적 deadlock.

직관 — 어디로 가도 막혀 있음: 보정하면 collider 편향, 안 하면 confounding 편향. 일부만 보정 시 양쪽 편향 혼재. 표준 통계 도구 전체 가 작동 안 함.

6.1 5. 과거 처치 보정의 필요성 (20.5)

\(A_0\) 보정의 필수성

Sequential exchangeability 는 과거 처치 \(\bar{A}_{k-1}\) 도 보정 요구.

\(A_1\) 의 효과 추정 시: - \(L_1\) 만 보정 → \(A_0 \to L_1 \to A_1\) 경로가 backdoor → 편향. - \(L_1 + A_0\) 모두 보정 → backdoor 차단.

→ 시간변동 분석에서 항상 과거 처치 보정 필수.

Mismeasured \(A_0\): 측정 오차 시 보정 불완전 → 편향 잔존. Independent mismeasurement 도 bias under null — 단일 시점과 다른 결과.

직관 — 과거의 누적 보정: 시점 \(k\) 분석 시 모든 이전 처치 + covariate 보정 필요. 시간이 길수록 보정해야 할 변수 증가. 분석의 차원 폭발 + 모형 specification 어려움.

직관 — Mismeasurement 의 미묘한 위험: 단일 시점에서는 mismeasurement 가 효과를 null 방향 으로. 시간변동에서는 bias under null 도 가능 — 진짜 효과 0 인데 비영 추정. Hernan 의 Robins (1987) 인용.

7 NHEFS 와 Ch.20 의 연결

NHEFS 의 단순 시점 처치는 TC Feedback 안 됨

NHEFS 는 baseline 흡연자가 1982 까지 금연 여부 — single time-point treatment. TC feedback 없음.

만약 매 월 흡연 행동 측정 했다면: - 매 월 흡연 상태 (\(A_k\)). - 매 월 폐 기능 (FEV1) 같은 covariate (\(L_k\)). - 흡연 → 폐 기능 악화 → 미래 흡연 결정에 영향 → TC feedback.

→ 진짜 TC feedback 분석은 시간변동 데이터 필요. NHEFS 는 단순화된 사례.

직관 — Ch.20 의 사례가 가상인 이유: 실제 진짜 TC feedback 데이터는 매우 드뭄. Hernan 이 Table 20.1 의 가상 시험 사용 — 메커니즘 명확히 보여주기 위해. 교육적 가치 > 실제 데이터 사용.

8 도구 비교 — 왜 g-method 만 작동하는가

도구 단일 시점 TC Feedback
Stratification OK 실패
Outcome regression OK 실패
Matching OK 실패
Propensity score OK 실패
g-formula OK OK
IPW MSM OK OK
g-estimation (SNMM) OK OK

직관 — g-method 의 공통 특징: 시점별 covariate 분포를 명시적 모형링. 단순 보정 안 함. Time-varying confounder 를 매개자/confounder 양면성에 동시 대응. Robins 의 1986 년 발명 의 본질적 가치.

9 응용 분야

  • HIV/AIDS 코호트: ART 처치의 시간변동 효과
  • 종양학: 항암제 sequential 효과
  • 만성 질환 관리: 약물 dose 변경의 효과
  • 흡연·음주 패턴: 라이프스타일 변화의 누적 효과
  • 환경 노출: 누적 노출의 시간변동 효과
  • A/B 테스트 sequential rollout: 단계별 처치 변경의 효과

10 후속 글로 이어지는 다리

다루는 내용
19-1 20.1 + 20.2 — Feedback 정의 + Table 20.1 의 4 도구 실패
19-2 20.3 + 20.4 — 실패 메커니즘 + 도구 fix 시도의 실패
19-3 20.5 — 과거 처치 보정의 필요성 + mismeasurement 위험

11 코드 미리보기 — Table 20.1 재현

import pandas as pd
import numpy as np
import statsmodels.formula.api as smf

# Hernan Table 20.1 데이터 재현
data = 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]
})

# Person-level 으로 expand
df_expanded = pd.DataFrame()
for _, row in data.iterrows():
    n = int(row["N"])
    df_row = pd.DataFrame({
        "A0": [row["A0"]] * n,
        "L1": [row["L1"]] * n,
        "A1": [row["A1"]] * n,
        "Y": [row["Y"]] * n
    })
    df_expanded = pd.concat([df_expanded, df_row])

df_expanded["cum_A"] = df_expanded["A0"] + df_expanded["A1"]
df_expanded.reset_index(drop=True, inplace=True)

# === 분석 1: 비보정 비교 ===
treated_both = df_expanded[(df_expanded.A0 == 1) & (df_expanded.A1 == 1)]
untreated_both = df_expanded[(df_expanded.A0 == 0) & (df_expanded.A1 == 0)]
diff_unadj = treated_both.Y.mean() - untreated_both.Y.mean()
print(f"분석 1 — 비보정: {diff_unadj:.1f}")
print(f"  진짜 효과: 0")

# === 분석 2: L1 층화 ===
for l1 in [0, 1]:
    sub = df_expanded[df_expanded.L1 == l1]
    t = sub[(sub.A0 == 1) & (sub.A1 == 1)].Y.mean()
    u = sub[(sub.A0 == 0) & (sub.A1 == 0)].Y.mean()
    print(f"  L1={l1} 층: {t - u:.1f}")

# === 분석 3: 회귀 ===
m = smf.ols("Y ~ cum_A + L1", data=df_expanded).fit()
print(f"분석 3 — 회귀 (cum_A + L1): theta_cum_A = {m.params['cum_A']:.2f}")
print(f"  Always vs Never: {m.params['cum_A'] * 2:.1f}")

print("\n→ 모든 전통 분석이 진짜 0 을 *비영* 으로 추정 → g-method 필요 (Ch.21)")

12 한 줄 요약

Treatment-confounder feedback 은 confounder 와 처치의 순환적 의존 — 단일 시점에 없는 본질적 구조. Hernan 의 Table 20.1 의 32,000 명 가상 시험에서 sharp null 인데도 stratification (-8), 회귀 (-16) 모두 비영 추정 — 전통 도구의 정량적 실패. 실패 메커니즘은 \(L_1\) 층화 = collider conditioning. 도구 fix 시도 (다른 모형 specification) 도 실패 — 본질적 deadlock. 과거 처치 보정도 필수 + mismeasurement 시 추가 편향. g-method 만이 일관 — Ch.21 의 본격 도구.

13 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

Subscribe

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