1 정의
같은 DAG 에서 strategy 종류에 따라 식별 가능성이 다른 시나리오: - 일부 strategy 는 식별 가능 (static, marginal 등 단순한 종류). - 다른 strategy 는 식별 불가능 (dynamic, \(L_k\)-기반).
원인: 미관측 변수가 strategy 종류별로 다른 영향. 예: \(W_0\) 가 \(A_0, L_1\) 의 공통 원인이면 dynamic strategy (\(L_1\) 기반) 의 잠재 결과 식별 불가, static strategy 는 가능.
해결: SWIG (Single World Intervention Graph) 으로 strategy 별 식별 가능성 검토.
시점 \(k\) 의 covariate \(L_k\) 가 다음 모두 만족:
- 시점 \(k\) 의 처치 \(A_k\) 결정에 영향.
- 미래 결과 \(Y\) 에 영향.
- 과거 처치 \(\bar{A}_{k-1}\) 의 결과.
→ 단일 시점 confounder 와 결정적 차이는 (3) — 처치-confounder feedback.
대표적 예: HIV 의 CD4 cell count — 의사가 처치 결정 + 약물의 결과 + 미래 사망 위험.
직관 — 시간변동 confounder 의 양면성: \(L_k\) 가 confounder 이자 매개자 의 성질을 갖음. 보정해야 confounding 제거되지만, 보정하면 매개 효과 차단. 단일 시점 도구로 풀 수 없는 문제 — Ch.20 의 핵심 메시지.
2 19.5 일부 전략 식별 가능성
2.1 Hernan 의 Figure 19.4 시나리오
Figure 19.4 의 구조:
\[W_0 \to A_0, \quad W_0 \to L_1\]
- \(W_0\): 미관측 변수 (예: 미기록 진료 시점, 환자 동기).
- \(A_0\): 시점 0 처치.
- \(L_1\): 시점 1 의 측정된 covariate (CD4).
\(W_0\) 가 \(A_0\) 와 \(L_1\) 의 공통 원인 — 측정 안 됨.
식별 결과: - Static strategy \(\bar{a}\): 식별 가능 (W_0 가 결과 직접 영향 안 주면). - Dynamic strategy with \(L_1\): 식별 불가.
직관 — \(L_1\) 의 두 가지 의미: \(L_1\) 이 시점 1 의 covariate 면서 \(W_0\) 의 결과 (W_0 가 CD4 측정에 영향). Dynamic strategy 가 \(L_1\) 사용 시 \(W_0\) 정보를 간접 활용 — \(W_0\) 미관측 이라 단순 보정 불가.
직관 — Static 이 식별 가능한 이유: Static \(\bar{a}\) 는 \(L_1\) 무관 — \(W_0\) 의 영향을 우회. Dynamic 은 \(L_1\) 의존 — \(W_0\) 의 영향이 strategy 자체에 embedded. Strategy 의 형태가 식별 가능성 결정.
2.2 SWIG (Single World Intervention Graph)
표준 DAG 가 관측 데이터 분포 를 표현. SWIG 는 반사실 분포 를 표현.
각 노드가 intervention 후 의 잠재 결과: - \(A_k\) 가 \(a_k\) 로 강제 → SWIG 에 \(a_k\) 노드 표시. - \(L_k\), \(Y\) 도 잠재 결과 표기 (e.g., \(L_k^{\bar{a}_{k-1}}\)).
SWIG 의 d-separation 분석 → strategy 별 식별 가능성 직접 검토.
직관 — SWIG 의 강점: 단일 시점 DAG 분석으로 시간변동 strategy 의 식별 가능성 검토. 복잡한 sequential 가정의 시각적 표현. 이론적 도구지만 실무에서도 식별 검증에 활용.
2.3 SWIG 분석 사례 — Figure 19.5, 19.6
Figure 19.5: \(A_0 = a_0\) 강제. \(L_1\) 이 잠재 변수 \(L_1^{a_0}\). - \(L_1^{a_0}\) 가 \(A_1\) 결정. - Dynamic strategy (\(L_1\) 기반) 의 잠재 결과 \(Y^g\) 의 분포 결정 가능.
Figure 19.6: \(A_0 = a_0, A_1 = a_1\) 강제 (모든 시점 fix). - 모든 시간변동 변수가 잠재 결과 표기. - Static strategy 의 잠재 결과 분포 결정 가능.
→ SWIG 의 noniden 잠재 결과 식이 strategy 의 식별 식과 같은지 검토.
직관 — SWIG 의 실무 활용: 데이터 분석 전 SWIG 그리기 → 어떤 strategy 가 식별 가능한지 사전 결정. 분석 가능 vs 불가능 의 명시적 분리. Hernan, Pearl, Robins 의 표준 도구.
2.4 부분 식별의 함의
같은 데이터에서: - Static “always treat vs never treat” — 식별 가능. - Dynamic “treat when CD4 < 200” — 식별 불가능.
→ 연구자는 식별 가능 strategy 만 분석. 식별 불가능 strategy 는 bound (Manski 등) 또는 sensitivity 분석으로 우회.
의학적으로 dynamic 이 더 의미 있어도, 식별 가능성이 허용 하는 분석만 가능.
직관 — 식별 가능성과 의학적 의미의 trade-off: 가장 의미 있는 dynamic strategy 가 식별 불가면 부분적 답만 제공. 환자에 임상 가이드라인 적용에 한계. Sensitivity 또는 bound 분석이 보완.
직관 — 추가 데이터의 가치: \(W_0\) 측정 가능하면 dynamic 도 식별 가능. 데이터 수집 단계 의 신중함 이 분석 가능성 결정. 이미 수집된 데이터 후 분석 시 식별 한계 인정 + sensitivity.
3 19.6 시간변동 Confounder
3.1 단일 시점 vs 시간변동 confounder 의 결정적 차이
단일 시점 confounder \(L\) (Part I-II): - \(L \to A\) (처치 영향). - \(L \to Y\) (결과 영향). - \(L\) 이 \(A\) 전에 결정 — pre-treatment.
시간변동 confounder \(L_k\) (Part III): - \(L_k \to A_k\) (시점 \(k\) 처치 영향). - \(L_k \to Y\) (결과 영향). - \(L_k \leftarrow A_{k-1}\) (이전 처치의 결과).
→ 결정적 차이: 시간변동 confounder 가 과거 처치의 결과 일 수 있음.
직관 — 시간변동의 본질: HIV 환자의 CD4 — 처치 (\(A_{k-1}\)) 가 CD4 (\(L_k\)) 를 회복시킴. CD4 가 다음 처치 (\(A_k\)) 결정에 영향. CD4 가 사망에도 영향. CD4 가 confounder + 매개자 동시. 단순 보정으로 풀 수 없는 양면성.
3.2 처치-Confounder Feedback 의 시각화
시간 → → →
A_0 → L_1 → A_1 → L_2 → A_2 → ...
↘ ↙ ↘ ↙
Y ↘
Y
매 시점 처치 \(A_k\) → 다음 시점 covariate \(L_{k+1}\) → 다음 처치 \(A_{k+1}\) 의 순환적 의존.
직관 — Feedback 의 그래프적 표현: 단순 화살표 sequence 가 아닌 피드백 loop. \(A_{k-1} \to L_k \to A_k\) 의 직접 경로. 이 loop 가 시간변동 분석을 어렵게 만드는 본질.
3.3 단순 회귀가 실패하는 이유
시도 1: \(\mathrm{E}[Y | \bar{A}, \bar{L}]\) 회귀 (모든 시점 covariate 포함).
문제: \(L_k\) 가 과거 처치 \(A_{k-1}\) 의 매개자. 보정 시 \(A_{k-1}\) 의 간접 효과 차단. → ATE 가 아닌 direct effect 추정.
시도 2: 처치 history \(\bar{A}\) 만 회귀, covariate 무시.
문제: \(L_k\) 가 confounder. 보정 안 하면 시점 \(k\) 처치의 effect 가 confounded. → 단순 평균 비교 편향.
→ 두 시도 모두 잘못된 결과. g-method 만이 일관성. Ch.20-21 의 핵심 메시지.
직관 — 보정 vs 비보정의 양쪽 함정: 보정하면 매개 효과 차단 (over-adjustment). 비보정하면 confounding. 둘 다 편향. 회귀의 표준 도구로 풀 수 없는 deadlock — Robins 의 g-method 가 이 deadlock 해결.
직관 — Marginal Structural Model 의 동기: \(\mathrm{E}[Y^{\bar{a}}]\) 의 모형 — 조건부 covariate 보정 없는 marginal. IPW 가중으로 confounding 제거 + 매개자 over-adjustment 회피. MSM 의 시간변동 일반화 (Ch.21).
3.4 처치-Confounder Feedback 의 임상 사례
시점 0: 모든 환자 CD4 = 500 (baseline). - 의사: “CD4 < 200 시 ART 시작”. 모든 환자 처치 안 함 (\(A_0 = 0\)).
시점 1 (3 개월 후): - 일부 환자 자연 진행으로 CD4 < 200 → 의사 ART 처방 (\(A_1 = 1\)). - 일부 환자 안정 → 처치 안 함 (\(A_1 = 0\)).
시점 2 (6 개월 후): - ART 받은 환자: CD4 회복 → 처치 유지. - 안 받은 환자: 일부 CD4 더 낮아짐 → 처치 시작.
→ CD4 (\(L_k\)) 가: 1. 매 시점 처치 결정에 영향. 2. 미래 사망 위험에 영향. 3. 과거 처치의 결과 (ART 가 CD4 회복).
전형적 시간변동 confounder + 매개자.
직관 — 임상의 자연스러움: 의사가 환자 상태에 따라 처치 결정 — 의학적으로 옳음. 그러나 통계적으로 분석 어려움. 임상 자연스러움이 분석 어려움 만듬.
3.5 Ch.20 의 사전 도입
Ch.20 (다음 챕터):
- DAG 분석으로 처치-confounder feedback 의 정확한 구조.
- 전통 방법 (단순 회귀) 의 실패 메커니즘 자세히.
- 왜 어떤 보정도 적절하지 않은지.
- G-method 의 도입 동기 강화.
이 챕터 (Ch.19) 는 개념 frame — Ch.20 이 정량적 실패 사례 보여줌.
직관 — Ch.19 → Ch.20 → Ch.21 의 흐름: Ch.19 (개념) → Ch.20 (전통 도구의 구체적 실패) → Ch.21 (해결 도구 g-method 3 개). 이론에서 문제 정의 → 해결로의 자연 흐름.
4 시간변동 Confounder vs 단일 시점 — 인식 표
| 측면 | 단일 시점 (Part I-II) | 시간변동 (Part III) |
|---|---|---|
| Confounder 의 시점 | Pre-treatment | 매 시점 |
| Confounder 와 처치의 관계 | \(L \to A\) | \(L_k \to A_k\), \(A_{k-1} \to L_k\) |
| 보정 방법 | 표준 회귀 가능 | 단순 회귀 실패 |
| 매개자 가능성 | \(A \to M \to Y\) 따로 분석 | Confounder + 매개자가 같은 변수 |
| 도구 | Outcome regression, IPW, PS | g-formula, IPW MSM, g-estimation |
| 식별 가정 | Conditional exchangeability | Sequential conditional exchangeability |
| 분석 복잡도 | 낮음 | 매우 높음 |
| Software 지원 | Standard (statsmodels, etc.) | Specialized (gfoRmula, dataverse) |
직관 — 시간변동의 패러다임 전환: 단일 시점은 통계 도구 의 영역. 시간변동은 인과 추론 전용 도구 의 영역. 두 영역의 도구가 본질적으로 다름. Part III 가 인과 분석의 정점.
5 응용 분야
- HIV 코호트의 ART: CD4 가 시간변동 confounder
- 종양학 chemotherapy: 종양 크기가 시간변동 confounder
- 만성 질환: HbA1c, 혈압 같은 모니터링 지표
- 정신과: 증상 척도 (depression scale)
- 신부전: eGFR 의 시간 변동
- 마케팅 attribution: 사용자 engagement 의 시간 변동
6 코드 — 시간변동 Confounder 시뮬레이션
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
# === 시간변동 confounder 시뮬레이션 ===
np.random.seed(42)
n = 1000
K = 5
records = []
for i in range(n):
# Baseline
L = [np.random.normal(50, 10)] # CD4 baseline
A = []
for k in range(K):
# 처치 결정 — covariate 의존 (low CD4 면 처치)
prob_A = 1 / (1 + np.exp(-((50 - L[k]) / 5)))
A_k = np.random.binomial(1, prob_A)
A.append(A_k)
# 다음 시점 covariate — 처치에 영향 받음
if k < K - 1:
L_next = L[k] + 5 * A_k - 1 + np.random.normal(0, 3)
L.append(L_next)
# 결과 — 처치 누적 효과 + 마지막 covariate
Y = sum(A) * 0.5 + L[-1] * 0.1 + np.random.normal(0, 1)
records.append({
"id": i,
**{f"L{k}": L[k] for k in range(K)},
**{f"A{k}": A[k] for k in range(K)},
"Y": Y,
"Y_total_A": sum(A)
})
df = pd.DataFrame(records)
# === 잘못된 분석 1: 모든 covariate 보정 (over-adjustment) ===
formula_1 = "Y ~ A0 + A1 + A2 + A3 + A4 + L0 + L1 + L2 + L3 + L4"
m1 = smf.ols(formula_1, data=df).fit()
print("=== 모든 covariate 보정 (over-adjustment) ===")
for k in range(K):
print(f" A{k} 효과: {m1.params[f'A{k}']:.3f} (진짜 0.5)")
# === 잘못된 분석 2: covariate 무시 (confounding) ===
formula_2 = "Y ~ A0 + A1 + A2 + A3 + A4"
m2 = smf.ols(formula_2, data=df).fit()
print("\n=== Covariate 무시 (confounding) ===")
for k in range(K):
print(f" A{k} 효과: {m2.params[f'A{k}']:.3f} (진짜 0.5)")
# 두 분석 모두 진짜 0.5 와 다름 → g-method 필요 (Ch.21)
print("\n→ 두 분석 모두 진짜 효과를 추정 못 함")
print(" → g-method 만이 일관 (Ch.21)")7 한 줄 요약
같은 데이터에서 strategy 종류 (static vs dynamic, marginal vs conditional) 에 따라 식별 가능성이 달라진다 — SWIG 분석으로 검토. 일부 strategy 만 식별 가능한 시나리오 (Figure 19.4 의 미관측 \(W_0\)) 가 흔함. 시간변동 confounder \(L_k\) 는 단일 시점 confounder 와 결정적 차이 — 과거 처치의 결과 일 수 있음. 이로 인한 처치-confounder feedback 이 단순 회귀의 실패 메커니즘 (보정 시 매개 효과 차단, 비보정 시 confounding). 단순 도구로 풀 수 없는 deadlock — g-method 만이 일관.
8 관련 주제
선행 지식
후속 주제 — Part III 본문
- Treatment-Confounder Feedback — Ch.20
- G-methods Time-Varying — Ch.21
- Target Trial Emulation — Ch.22
- Causal Mediation — Ch.23
다른 카테고리 연결