[인과추론] CATE 예측 평가하기

CATE 예측 평가하는 방법에 대해 알아보자 :)

Apr 21, 2025

Q1. CATE 예측이 무엇일까?

  • CATE의 정의 : 유저의 특성(공변량 변수)에 따른 집단의 평균 처치 효과
    • 공변량 변수의 예) 성별, 나이, 소득 수준 등
      → 질문의 예) 30대 남성의 특정 약물의 치료 효과는?
  • 특징 : 일반 머신러닝 예측과 유사한 방법론 사용
  • 목표 : 처치 효과의 개인별 차이를 추정하는 것
지난 시간에 나왔던 ATE와 함께 CATE를 한 번에 비교해보자!
ATE(Average Treatment Effect) : 평균적인 인과 효과
CATE(Conditional Average Treatment Effect) : 조건부 평균적인 인과효과
추가로, [ATT(Average Treatment effect on the Treated) : 평균 처치 효과]가 이상적인 지표라고 언급하였음!
 

Q2. CATE 예측 평가 프로세스 및 중요한 이유는?

활용 데이터.head()
활용 데이터.head()
  1. 데이터 분할
    1. 훈련 데이터셋 : 2016년과 2017년의 데이터
    2. 테스트 데이터셋 : 2018년 이후의 데이터
    3. 코드 예시
      1. train = data.query("day<'2018-01-01'") test = data.query("day>='2018-01-01'")
  1. CATE 회귀 모델 적합
    1. 추정 : 훈련 데이터셋을 사용하여 회귀 모델 적합
    2. 예측 : 테스트 데이터셋을 사용하여 CATE 예측
    3. 코드 예시
      1. X = ["C(month)", "C(weekday)", "is_holiday", "competitors_price"] regr_model = smf.ols(f"sales ~ discounts*({'+'-join(X)})", data=train).fit() cate_pred = (regr_model.predict(test.assign(discounts=test["discounts"]+1)) - regr_model.predict(test))
  1. 머신러닝 모델과의 비교
    1. 머신러닝 모델의 목적 : 단순 결과 Y인 sales 예측
    2. 코드 예시
      1. from sklearn.ensemble import GradientBoostingRegressor x = ["month", "weekday", "is_holiday", "competitors_price", "discounts"] y = "sales" np.random.seed(1) ml_model = GradientBoostingRegressor(n_estimators=50).fit(train[x], train[y]) # 단순 결과 ml_pred = ml_model.predict(test[x])
  1. 단순 모델(-1 ~ 1 사이의 난수를 출력하는 모델을 지칭)과의 비교
    1. 단순 모델의 목적 : 무작위로 -1과 1 사이의 값을 예측
    2. 코드 예시
      1. np.random.seed(123) test_pred = test.assign( ml_pred=ml_pred, cate_pred=cate_pred, rand_m_pred=np.random.uniform(-1, 1, len(test)) )
  1. 궁극적인 목적
    1. ‘단순 모델처럼 무작위로 처치를 배정할 때보다 CATE 모델을 사용해 처치를 배정할 때가 더 나을까?’를 알고 싶은 것!
      → 그룹 수준의 지표를 활용하여 CATE 모델을 평가해야 함!
      그룹 수준의 지표를 활용한 CATE 모델 평가 프로세스
      1. 그룹화
        1. 테스트 데이터를 특정 그룹으로 나눔
          예) 캠페인 효과를 다르게 나타낼 수 있는 지역별, 연령대별, 또는 특정 판매량 범위별로 그룹화
      1. 그룹 평균 비교
        1. 각 그룹의 실제 판매량과 모델이 예측한 판매량의 차이를 비교
          예) 캠페인을 받은 그룹과 받지 않은 그룹의 평균 판매량을 비교하여 CATE 모델이 예측한 처치 효과와 실제 처치 효과를 비교
      1. 평균 절대 오차(MAE) 또는 평균 제곱 오차(MSE)
        1. CATE 모델의 예측과 실제 판매량의 차이를 그룹별로 계산하여 평균 절대 오차(MAE)나 평균 제곱 오차(MSE)를 구함
      1. 성능 지표 시각화:
        1. 그룹별 예측 성능을 시각화하여 어떤 그룹에서 모델이 잘 작동하고, 어떤 그룹에서 부족한지 파악