Skip to content

Conversation

@MinSeok1o28
Copy link
Contributor

@MinSeok1o28 MinSeok1o28 commented Oct 2, 2025

AIPW Robustness Check Flow 관련 Reference 및 코드 추가

IPW, AIPW, Doubly Robust Estimator에 대한 코드 작성은 이번으로 마무리하고 CATE쪽 내용에 대한 책 작성 예정

@MinSeok1o28 MinSeok1o28 closed this Oct 2, 2025
@MinSeok1o28 MinSeok1o28 reopened this Oct 2, 2025
@Funbucket
Copy link
Contributor

코드 작성하느라 고생하셨습니다 🙌
덕분에 AIPW & DR 추정기의 강건성 검증 플로우를 쉽게 이해할 수 있었습니다.

흐름 요약

  1. 부트스트랩 신뢰구간 → 추정치의 불확실성을 정량적으로 확인
  2. DR 스트레스 테스트 → Outcome/PS 모형을 각각 교체해도 결과가 안정적인지 검증
  3. TMLE 교차확인 → 같은 DR 계열 추정치끼리 일관성을 보이는지 비교

좋은 추석 연휴 보내세요!

@Funbucket Funbucket self-requested a review October 3, 2025 15:07
@siuunni siuunni self-requested a review October 12, 2025 06:33
@Funbucket Funbucket removed their request for review October 12, 2025 08:55
@MinSeok1o28
Copy link
Contributor Author

[Week 6]
Double/Debiased Machine Learning부분 내용 추가

  • Frisch-Waugh-Lovell 응용 DML

@siuunni
Copy link

siuunni commented Oct 19, 2025

좋은 코드를 작성해주셔서 감사합니다! 많은 공부가 되었습니다ㅎㅎ

다만 코드 실행시 LGBMRegressor와 cross_val_predict이 import가 안 되어 있는것 같습니다..!

해당 부분만 수정해주시면 감사하겠습니다!!ㅎㅎ

@siuunni
Copy link

siuunni commented Oct 19, 2025

FWL 정리와 직교화

가장 먼저 사용할 수 있는 편향 제거 방법으로 처치 T와 결과 Y사이의 관계를 추정하고 싶지만 교란 요인 X가 있는 경우
먼저 처치에서 교란 요인이 설명하는 부분을 제거하여 순수 처치를 얻고 결과 Y에서 교란 요인이 설명하는 부분을 제거함.
최종적으로 편향이 제거된 순수한 처치와 잡음이 제거된 순수한 결과를 통해 처치와 결과의 관계를 볼 수 있음.

  1. 편향 제거 단계 : 처치 T를 교란 요인 X에 대해 머신러닝을 통해 예측하여 처치 잔차 $T - M_t( = \tilde{T})$($T_i - \mathbb{E}[T_i\mid X_i]$) 구함
  2. 잡음 제거 단계 : 결과 Y를 교란 요인 X에 대해 머신러닝을 통해 예측하여 결과 잔차 $Y - M_y(= \tilde{Y})$($Y_i - \mathbb{E}[Y_i\mid X_i]$)를 구함
결과 y = "sales"
처치 T = "price"
교란 요인 X = ["temp", "weekday", "cost"]
train_pred = train.assign(price_res =  train[T] - cross_val_predict(debias_m, train[X], train[T], cv=5),
                          sales_res =  train[y] - cross_val_predict(denoise_m, train[X], train[y], cv=5))

-> 위 과정을 회귀 모델이 아닌 머신러닝 모델을 사용하여 비선형성을 학습할 수 있음

  1. 결과 모델 단계 : 결과 잔차 $\tilde Y$를 처치 잔차 $\tilde T$에 대해 회귀하여 T가 Y에 미치는 인과 효과 추정값 구하기
import statsmodels.formula.api as smf
final_model = smf.ols(formula='sales_res ~ price_res', data=train_pred).fit()
final_model.summary().tables[1]
  • 출처: 실무로 통하는 인과추론 with python

@MinSeok1o28
Copy link
Contributor Author

[Week 7]
Double/Debiased Machine Learning

  • DML 응용 CATE 계산
  • Non Parametric Double/Debiased ML
    내용 추가

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants