1 개요
Ch.12~17 의 모든 인과 추정 도구는 공통 가정에 의존한다: 보정 변수 \(L\) 이 모든 confounder 를 포함하고 (충분 조건), 충돌자·매개자처럼 새 편향을 만드는 변수는 포함하지 않음 (필요 조건).
실무 질문은 “어떤 변수를 \(L\) 에 포함할 것인가?” 이다. Ch.18 은 이 질문에 인과 분석 specific 가이드라인을 제시한다 — 예측 분석의 변수 선택 절차 (stepwise, lasso, random forest) 가 인과 분석에 그대로 적용되면 위험하다는 점이 핵심 메시지.
직관 — 변수 선택의 두 세계의 분리: ML 엔지니어가 random forest 로 “이 변수가 처치를 강하게 예측” 한다고 자랑할 때, 인과 분석가는 경고해야 한다 — “강한 예측자 ≠ 좋은 confounder 보정”. 같은 데이터에 같은 도구가 다른 목표를 가진다. 목표의 분리가 인식의 첫 단계.
\(L\) 의 선택 기준:
모든 confounder 포함: 처치-결과 backdoor 경로를 모두 차단 → 조건부 교환가능성 보장.
편향 유발 변수 제외: 충돌자, 매개자, 충돌자 후손, 도구 같은 편향 유발 변수 제외 → 새 편향 도입 회피.
이 두 조건은 예측 정확도 와 무관 — DAG 분석으로 결정.
직관 — 두 조건의 충돌 가능성: 한 변수가 confounder 이자 충돌자일 수 있다 (M-bias 의 변수). 이 경우 보정해도, 안 해도 편향 — 진짜 인과 효과 식별 불가능. 변수의 인과적 역할이 양립 불가능하면 데이터로 해결 안 됨.
2 5 개 소챕터의 흐름
| 소챕터 | 핵심 질문 | 답 |
|---|---|---|
| 18.1 | 인과 vs 예측 변수 선택 차이? | 예측 정확도 vs confounder 선택 |
| 18.2 | 어떤 변수가 편향 유발? | 충돌자, 매개자, 도구, M-bias 변수 |
| 18.3 | 고차원에서 ML 적용? | 단순 적용은 위험 — DR 결합 필요 |
| 18.4 | DR ML 의 정확한 절차? | Sample splitting + cross-fitting |
| 18.5 | 그래도 어려운 점? | 도메인 지식 한계, 분산-편향 trade-off |
3 핵심 개념 5 가지
3.1 1. 인과 vs 예측의 본질적 차이 (18.1)
| 측면 | 예측 분석 | 인과 분석 |
|---|---|---|
| 목표 | \(Y\) 의 정확한 예측 | \(Y^a\) 의 평균 추정 |
| 변수 선택 기준 | 예측 정확도 향상 | Confounder 선택 |
| 모수의 의미 | 예측 도구 | 인과 효과 |
| 적용 도구 | Lasso, RF, NN, deep learning | DAG → 도구 (g-method, IV, etc.) |
| 평가 지표 | RMSE, AUC, accuracy | E-value, sensitivity, robustness |
직관 — Heart failure 예측 vs 인과 분석: 환자의 heart failure 예측에서 “prior hospitalization” 변수가 강한 예측자. 그러나 “병원 입원시키지 말라” 는 인과 결론은 nonsense — 입원이 결과를 예측 하지 원인 아님. 예측 알고리즘이 자동으로 인과 변수 선택 안 함.
직관 — Tuning parameter 의 다른 역할: 예측에서 lasso 의 \(\lambda\) 는 cross-validation 으로 예측 정확도 최적화. 인과 분석에서 \(\lambda\) 가 잘못 선택되면 confounder 가 lasso 에 의해 zero 로 shrunk → 보정 안 된 상태. 인과 분석에서 lasso 단독 사용은 위험.
3.2 2. 편향 유발 변수의 종류 (18.2)
(1) 충돌자 (Collider): \(A \to L \leftarrow Y\) — 보정 시 selection bias under the null.
(2) 매개자 (Mediator): \(A \to L \to Y\) — 보정 시 효과 일부 차단 (over-adjustment).
(3) 충돌자의 후손: 충돌자 \(L\) 의 결과 변수도 보정 시 비슷한 편향.
(4) M-bias 변수: \(L\) 이 처치 전에 측정되어도 충돌자 위치 면 보정 시 편향 (Figure 18.6).
(5) 도구 (Instrument): \(Z \to A \to Y\) — 보정 시 미관측 교란 편향 증폭 (Z-bias).
직관 — 충돌자 보정의 메커니즘 (Berkson): \(A\) 와 \(Y\) 가 모두 변수 \(L\) 에 영향. \(L\) 보정 시 \(A \to L \leftarrow Y\) 의 collider path 활성화 → \(A\) 와 \(Y\) 의 가짜 연관 도입. 데이터에서 \(L\) 이 \(A\) 와 \(Y\) 모두와 관련 있어 보여도 보정하면 안 됨.
직관 — 매개자 over-adjustment: 처치 효과의 일부가 매개자 \(L\) 을 통과 (\(A \to L \to Y\)). \(L\) 보정 시 그 경로 차단 → 직접 효과만 추정. ATE 가 아닌 direct effect 가 됨. 연구 질문에 따라 매개자 포함/제외 결정.
직관 — Pre-treatment 도 충돌자 가능 (M-bias): 시간 순서가 \(L \to A \to Y\) 인데도 \(L\) 이 \(A\) 와 \(Y\) 의 두 미관측 원인 (\(U_1, U_2\)) 의 충돌자면 (Figure 18.6) 보정 시 편향. 시간 순서 만으로 변수의 인과적 역할 결정 불가.
3.3 3. Z-Bias (Bias Amplification) (18.2)
도구 \(Z\) (\(Z \to A \to Y\), \(Z\) 는 backdoor 차단에 도움 안 됨) 를 보정하면:
- 미관측 교란 효과 증폭 가능 (Pearl 2011, Ding et al. 2017).
- 일부 시나리오에서는 편향 감소 — 사전 결정 불가.
일반 권장: 도구 변수는 보정에서 제외. 미관측 교란 있으면 IV 추정량으로 별도 분석.
직관 — Z-bias 의 직관: \(Z\) 가 처치 결정의 “외생적” 부분. \(Z\) 보정 시 처치의 내생적 부분 (미관측 교란이 만든 부분) 이 결과와의 연관 강해짐 → 미관측 교란 효과 더 크게 보임. 도구 보정이 confounding 보정 아니라 confounding 증폭.
직관 — Z-bias 의 검증 어려움: 시뮬레이션이나 추가 가정으로만 확인 가능. 실제 데이터에서 Z-bias 의 정도 알 수 없음. DAG 분석으로 도구를 미리 식별 → 보정에서 제외.
3.4 4. Doubly Robust Machine Learning (18.3-18.4)
고차원 \(X\) 에서: - 단순 IPW: 처치 모형 misspecified 면 편향. - 단순 g-formula: 결과 모형 misspecified 면 편향. - ML 만 적용: regularization bias 가 인과 추정량으로 전파.
해결: AIPW 형태의 DR 추정량 + ML + sample splitting + cross-fitting (Chernozhukov et al. 2018). - 처치 모형 또는 결과 모형 둘 중 하나만 옳아도 일치. - ML 의 regularization bias 가 추정량 분산 차원에서 자동 상쇄.
직관 — DR ML 의 마법 메커니즘: 두 모형의 곱 형태 편향 — 한 모형이 정확하면 다른 모형의 오차가 추정량에 영향 안 줌. 두 ML 모형이 각각 \(n^{-1/4}\) 보다 빠르게 수렴하면 추정량 편향이 \(n^{-1/2}\) 보다 작음 → 95% Wald CI valid. ML 의 느린 수렴 속도를 DR 이 가속.
직관 — Sample Splitting 의 필요성: 같은 데이터로 ML 모형 적합 + 추정량 계산 → 모형이 데이터에 과적합 되어 추정량 분산 작아 보임 (실제로는 큼). Sample 을 나누면 모형 적합 sample 과 추정 sample 이 독립 → 정직한 분산. Cross-fitting 은 모든 데이터를 활용하면서도 split 의 정직성 유지.
3.5 5. 변수 선택의 본질적 어려움 (18.5)
(1) 도메인 지식 한계: 모든 confounder 식별 + 편향 유발 변수 제외에는 강한 도메인 지식 필요. 부족하면 DR ML 도 편향.
(2) 시간변동 처치의 고차원: Part III 의 시간변동 처치에서 DR ML 구현 어려움. 대부분 single- robust 추정량 사용.
(3) Variance 폭발: 고차원에서 분산이 너무 커져 CI 유용성 잃음. 분산 줄이려 변수 throw out 하면 통계적 보장 무효.
→ Hernan 의 결론: 단일 분석 결과에 의존하지 말고 다중 sensitivity analysis.
직관 — 분산-편향 trade-off 의 깊은 의미: 모든 가능 confounder 포함 → 편향 적지만 분산 큼. 일부 throw out → 분산 적지만 편향 위험. 통계적 절충 도구로는 풀 수 없는 근본적 trade-off. 인과 분석은 통계가 아닌 추론 + 도메인의 결합.
4 NHEFS 사례에서 변수 선택의 적용
선택된 9 변수: 성별, 인종, 교육, 나이, 흡연량, 흡연 기간, 운동, 활동, baseline 체중.
Confounder 일 가능성: - 나이: 강한 confounder (흡연 결정 + 사망 위험 모두에 영향). - 흡연량·기간: 강한 confounder. - 성별·인종: 약한 ~ 중간 confounder. - 교육·운동·활동: 사회경제·건강 행동 confounder. - Baseline 체중: 결과의 baseline.
충돌자·매개자 가능성: 분석에서 제외 해야 할 변수. - 1971-1982 사이 다른 행동 변화 (식단, 신체활동 변화) — 매개자 가능성. 분석에서 제외 (NHEFS 의 9 변수는 baseline only).
도구 가능성: - “출생 주의 담배 가격” — 도구 (Ch.16). 보정에서 제외, IV 추정에 사용.
직관 — NHEFS 변수 선택의 합리성: 9 변수가 baseline only (1971-75 측정) → 처치-매개자-결과의 시간 순서 명확. Mediator 위험 회피. 그러나 미관측 confounder 가능성은 여전 — 가족력, 정신 건강 등 측정 안 됨.
직관 — Sensitivity 의 필요성: 9 변수가 충분 가정 검증 불가. E-value 같은 sensitivity 도구로 미관측 confounding 의 영향 정량화. NHEFS 사망 분석의 E-value 약 1.1 — 약한 미관측 교란 시나리오에 민감.
5 도구 선택의 의사결정 트리
인과 분석 시작
↓
DAG 그리기 (도메인 지식)
↓
각 변수의 인과적 역할 식별
├─ Confounder → 보정에 포함
├─ Mediator → 보정 안 함 (또는 mediation 분석)
├─ Collider → 보정 안 함
├─ Instrument → IV 분석 또는 제외
└─ Outcome predictor (확실히 비-confounder) → 분산 감소용 포함 검토
↓
Backdoor criterion 확인 (최소 보정 집합)
↓
함수 형태 결정 (linear, spline, ML)
↓
도구 선택
├─ 저차원 + 자신 → outcome regression / IPW
├─ 고차원 + 큰 표본 → DR ML (sample splitting + cross-fitting)
├─ 미관측 교란 의심 → IV
└─ 강건성 우선 → 다중 도구 + sensitivity
↓
결과 + 95% CI + sensitivity bound 보고
직관 — 워크플로우의 첫 단계가 도메인: DAG 가 첫 도구. 통계적 변수 선택 (stepwise, lasso) 은 그 후. 데이터 자체로 인과 변수 선택 불가능.
6 응용 분야
- 임상 코호트 인과 분석: DAG → 9~20 변수 보정
- Genome-wide association: 수천 SNP 의 변수 선택, MR
- 마케팅 attribution: 사용자 행동 features 의 인과적 분류
- 공중보건 정책: 정책 효과의 robust 추정
- A/B 테스트 보정: pre-experiment 변수만 (post 는 mediator/collider 위험)
7 후속 글로 이어지는 다리
| 글 | 다루는 내용 |
|---|---|
| 17-1 | 18.1 + 18.2 — 인과 vs 예측 + 편향 유발 변수 5 종 |
| 17-2 | 18.3 + 18.4 — 인과 ML + Doubly Robust + Sample Splitting + Cross-fitting |
| 17-3 | 18.5 — 변수 선택의 본질적 어려움 + sensitivity 우선 |
8 코드 미리보기
import pandas as pd
import numpy as np
from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier
from sklearn.model_selection import KFold
nhefs = pd.read_csv("nhefs.csv").dropna(subset=["wt82_71"]).reset_index(drop=True)
# DAG 분석으로 confounder 9 변수 선택 (예시)
L_cols = ["sex", "race", "education", "age", "smokeintensity",
"smokeyrs", "exercise", "active", "wt71"]
A_col = "qsmk"
Y_col = "wt82_71"
X = nhefs[L_cols].values
A = nhefs[A_col].values
Y = nhefs[Y_col].values
# === DR ML with K-fold cross-fitting ===
def doubly_robust_ml(X, A, Y, K=5):
n = len(X)
kf = KFold(n_splits=K, shuffle=True, random_state=42)
psi_estimates = []
for train_idx, est_idx in kf.split(X):
X_train, X_est = X[train_idx], X[est_idx]
A_train, A_est = A[train_idx], A[est_idx]
Y_train, Y_est = Y[train_idx], Y[est_idx]
# 처치 모형 ML (Gradient Boosting)
ps_model = GradientBoostingClassifier(n_estimators=200).fit(X_train, A_train)
pi_hat = ps_model.predict_proba(X_est)[:, 1]
pi_hat = np.clip(pi_hat, 0.05, 0.95) # trim
# 결과 모형 ML — 처치군 only 적합
b_model = GradientBoostingRegressor(n_estimators=200).fit(
X_train[A_train == 1], Y_train[A_train == 1]
)
b_hat = b_model.predict(X_est)
# AIPW 추정량 (E[Y^{a=1}])
psi_1 = np.mean(b_hat + (A_est / pi_hat) * (Y_est - b_hat))
psi_estimates.append(psi_1)
return np.mean(psi_estimates)
# E[Y^{a=1}] 과 E[Y^{a=0}] 각각 추정
ate = doubly_robust_ml(X, A, Y) - doubly_robust_ml(X, 1 - A, Y)
print(f"DR ML ATE: {ate:.2f}")9 한 줄 요약
Ch.18 은 인과 분석의 변수 선택이 예측 분석과 본질적으로 다름을 강조. 충돌자·매개자·도구 등 편향 유발 변수의 5 종류와 각각의 메커니즘. 고차원 ML 의 단순 적용은 regularization bias 위험, DR + sample splitting + cross-fitting 결합이 해결책. 그러나 도메인 지식 한계, 시간변동 구현 어려움, 분산-편향 trade-off 가 본질적 도전. Hernan 의 결론은 다중 분석 + sensitivity analysis 의 우선.
10 관련 주제
선행 지식
후속 주제
- 인과 vs 예측 + 편향 유발 변수 — Ch.18.1-18.2
- DR ML + Sample Splitting — Ch.18.3-18.4
- 변수 선택의 어려움 — Ch.18.5
- 시간변동 처치 — Ch.19
다른 카테고리 연결