Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
카테고리 없음

인과 추정량

by 테리는당근을좋아해 2025. 4. 5.

이전 인과 추론의 기본 개념에 대해서 설명하던 중, 인과 추정량 대해 많은 질문이 나왔고,

책에 나온 개념만 공부했기 때문에 설명하기 어려웠다.

 

특히, 각각의 인과 추정량이 어떻게 사용되며, 어떤 경우에 사용되는지, 관측되지 않는 값을 어떻게 계산하는 지,

어떤 사례는 설명한 인과 추정량 중 어떤 것에 해당하는 지 등등..

 

인과 추론을 공부하고, 설명하면서 느낀 점은 이론적인 개념을 실제 세계에 적용하기 위해 수학적인 모델링 방법들을

사용하기 때문에 공부할 때에 큰 개념은 이해가 가지만 누군가에게 설명하다보면 머리 속에 ?????????가 많이 생긴다.

 

다음 스터디 시간에 예정되었던, 편향, 무작위 실험을 설명하기에 앞서서 발표 중에 받았던 질문들에 하나씩 답변해가면서

공부했던 내용들은 더 다듬어보려고 한다.

 

인과 추정량 (Causal Estimand)

인과 추정량은 우리가 인과적으로 알고 싶은 "정확히 어떤 효과를 알고 싶은지"를 수학적으로 정의한 값

 

1. ATE(Average Treatment Effect)

ATE=E[Y(1)Y(0)]

ATE는 전체 집단에서 평균적으로 처치가 미치는 효과로, 정책이나 개입이 전체적으로 얼마나 효과가 있는지를 알고싶을 때 사용한다. 이때,  Y(1)은 처치를 받을 때의 잠재 결과, Y(0)는 처치를 받지 않을 때의 잠재 결과를 의미한다.

 

문제는 어떤 개인에 대해서는 Y(1) 또는 Y(0) 중 하나만 실제 관측된다. 즉, A라는 사람이 어떤 교육을 받았다면 우리는 Y(1)만 알고, Y(0)는 알 수 없다.(Counterfactual)

 

그럼 ATE는 어떻게 추정할까?

 

1) 무작위 실험(RCT, Randomized Controlled Trial)

^ATE=E[Y|T=1]E[Y|T=0]

 

사람들을 무작위로 처치/비처치 집단에 배정(RCT, Randomized Controlled Trial)하고,  집단 간의 차이를 처치 효과로 보는 것이다.

 

예를 들어, 무작위로 전체 집단에 교육 프로그램을 제공하고 교육을 받은 실험군 평균 성적과 교육을 받지 않은 대조군 평균 성적을 처치 효과로 본다. 이는 이상적인 방식이지만, 현실에선 비용, 윤리 등의 이유로 어려운 경우가 많다.

 

2) 관측 데이터(Observational Data) 기반 추정 방법

현실에선 RCT 대신, 이미 존재하는 데이터를 기반으로 추정해야할 때가 많다. 이 경우, 처치 여부가 무작위가 아니기 때문에 Bias가 생길 수 있는데 이를 보정하기 위해 회귀(Regression), PSM(Propensity Score Matching), IPW(Inverse Probability Weighting), Doubly Robust Estimation 등을 사용한다.

 

 

2. ATT(Average Treatment effect on the Treated)

ATT=E[Y(1)Y(0)|T=1]

실제로 처치를 받은 사람들만 대상으로 평균적인 효과로, 어떤 개입이 실제로 적용된 사람들에게 얼마나 효과가 있었는지 알고 싶을 때 사용한다.

 

ATT에서 관측되지 않은 Counterfactual 문제가 여전히 존재한다. 즉, 처치를 받은 사람들(T=1)에 대해서, 처치를 받지 않았다면(Y(0)) 어땠을까?를 추정하는 게 핵심이다.

 

그럼 Y(0)을 어떻게 추정할까?

 

처치를 받은 사람들과 유사한 비처치자를 찾아서, 그들의 Y(0)을 대신 사용하자

 

1) Matching

^ATT=1NTi:Ti=1(Yi^Yi(0))

 

Matching은 처치 받은 사람들과 비슷한 특성을 가진 비처치자를 매칭해서 비처치자의 Y값을 처치자의 Y(0)로 추정하는 것이다.

 

예를 들어, A라는 사람이 교육을 받았는데, A와 성별, 나이, 부서 등이 비슷한 B는 교육을 안 받았다면, B의 성과를 A의 Y(0)으로 사용한다. 위 식에서 ^Yi(0)는 매칭된 비처치자의 성과를 의미한다.

 

 

2) 회귀(Regression adjustment)

XT+X 회귀 모델을 학습해서 처치 받은 사람들(T=1)에 대해 T=0일 때의 예측값을 계산한다.

 

예를 들어, A가 처치를 받았을 때 Y=85, 회귀 모델의 T=0가 ˆY(0)=70 이면 ATT=8570=15가 된다.

 

3) Doubly Robust Estimation (DR)

Y(0)를 Matching과 회귀 모델 두 방식으로 모두 추정해서 보정하는 기법

 

4) Inverse Probability Weighting (IPW)

-

 

그럼 진짜로 Y(0)가 하나도 없으면?

외부에서 비슷한 대상의 비처치 데이터를 확보하거나, 시간이 다르게 측정된 데이터를 사용하는 방법(DID, Differnece-in-Difference), 시뮬레이션 기반 추정(Synthetic Control., Causal Forest 등) 방법 등이 있다.

 

 

3. CATE(Conditional Average Treatment Effect)

 

CATE(x)=E[Y(1)Y(0)|X=x]

 

특정한 특성을 가진 집단에 대한 평균 처치 효과로, 개입 효과가 개인 또는 집단 특성에 따라 어떻게 달라지는지 알고 싶을 때 사용한다.

 

지난 스터디 때 내가 잘못 이해한 부분을 알았다. 위 세가지 인과 추정량은 '데이터의 제약'이 아니라 '우리의 관심사'에 따라 정해지는 것이다.

ATT의 경우, 처치를 받은 대상에 대한 데이터만 존재한다고 생각했는데, 그게 아니라 인과 추정량을 구하고자 하는 대상이 T=1 인거지, T=0인 데이터 또한 존재하는 것이다. 그렇기 때문에 Matching이나 회귀를 사용할 수 있다.

인과 추정량을 질문으로 생각해보자

ATE : 전체적으로 이 처치가 효과가 있었나?
ATT : 실제로 처치를 받은 사람들에게 얼마나 효과가 있었나?
CATE : 특정 조건을 가진 사람들에겐 어떤 효과가 있었나?

예를 들어보자
데이터 : 남녀 500명씩, 총 1000명
처치 : 다이어트 프로그램 수강 여부
결과 : 체중 변화

이 프로그램이 전체적으로 평균 몇 kg 감량시켰나? -> 모든 사람에 대해 E[Y(1)Y(0)] (ATE)
실제로 프로그램을 들은 사람들은 몇 kg 감량되었나? -> 수강자에 한정 E[Y(1)Y(0)] (ATT)
남성에게 이 프로그램은 얼마나 효과가 있었나? -> 조건부 평균 E[Y(1)Y(0)|x=male] (CATE)

그렇다고 데이터의 제약이 인과 추정량을 선택하는데 아무 영향이 없는 것은 아니다. 데이터 제약은 '우리가 궁금한 추정량을 얼마나 추정할 수 있느냐'에 영향을 준다. 예를 들어, 데이터가 적으면 CATE로 세분화된 조건에서 추정이 어려울 수 있다.

질문은 마음대로 하되, 추정은 현실대로 (내가 알고 싶은 걸 추정할 수 있는지는 데이터가 결정한다!)

인과 추정량은 "질문"이고, 추정 가능한지는 "데이터와 방법론"의 문제다.

 

 

Question

진우형이 했던 질문에 대해 해답을 찾아보고 고민해봤다. 질문이 정확하게 기억나지 않지만 어렴풋이 떠올려보면,

 

어떤 도시에 정책을 만들었더니 평균 소득이 줄었다. 그래서 이 정책은 평균 소득을 떨어뜨린다고 생각했는데, 나중에 이 도시와 비슷한 도시에 같은 정책을 했을 때, 평균 소득이 증가했다는 걸 알게 되었다. 이 사례에 대한 결과는 무엇을 의미하고, 이 경우에는 어떤 인과 추정량을 사용한 것인가?

 

문제를 요약해보면,

 

1. 도시 A에서 어떤 정책을 시행 -> 평균 소득 감소 -> 이 정책은 소득을 감소 시킨다고 생각

2. 근데 나중에 도시 B에서도 같은 정책을 시행했더니 -> 평균 소득이 증가

 

여기서 생각해볼 수 있는 건 정책의 효과는 항상 동일하지 않고, 단일 도시에서 관찰된 변화가 인과효과라고 단정할 수 없다는 것이다.

정책 효과는 맥락이나 집단의 특성에 따라 달라질 수 있고, 도시 A에서 소득이 줄어든 건 정책 때문이 아닌 외부 효과 때문일 수도 있다.

 

그럼 인과추정의 관점에서 분석해보자

1. A 도시만 보고 판단한 경우 -> 정책 후 소득이 감소했다.

이건 그냥 처치 집단의 전후 비교일 뿐, 인과 추정이라고 보기 어렵다. 처치 전후 비교만으로는 진짜 인과 효과인지 판단할 수 없다. 왜냐하면 동시에 다른 요인이 영향을 줄 수 있기 때문이다.

 

"정책 전후 평균 변화"만 본 거기 때문에 사실상 =E[YafterYbefore|T=1] 이다.

단순 전후 비교는 추정량이 명확하지 않아(ATE라고 보기도 어렵고, ATT라 보기도 어려움) 인과 추정량이라 보기 오렵다.

 

2. 도시 B와 비교한 경우 -> 유사한 두 도시 A와 B를 비교해서 정책의 효과가 A에서는 감소, B에서는 증가

이건 두 집단 간의 비교를 통해 인과적 설명을 보완하려는 시도로 볼 수 있다.

 

만약 두 도시가 비슷한 특성을 가지고 있다고 가정하면, DID(Difference-in-Difference) 방식에 가깝다.

 

DID=(YA,afterYA,before)(YB,afterYB,before)

 

이건 특정 집단의 처치 효과를 다른 집단의 평균 변화량을 기준으로 상대적으로 보정하는 방식으로 이때 추정량은 ATT에 가깝다고 볼 수 있다. 

 

원인은 Y(0)의 부재?

 

이 인과 추정 방식이 ATE인가? ATT인가? 혼란 스러웠던 근본적인 원인은 Y(0)의 부재이기 때문이 아닐까하고 생각해본다.

 

도시 A에서 정책을 시행했고, 정책 후 소득이 떨어진 Y(1)만 봤다. 그래서 정책 때문일거야라고 추정했지만 도시 B에서는 같은 정책으로 다른 결과(소득이 올라감) Y(1)을 봤기 때문에 혼란에 빠졌다.

 

즉, 도시 A에서 정책이 없었다면 어땠을지를 직접 볼 수 없기 때문에, 정책 효과라고 단정하기 어려운 것이다.

 

그럼 정책의 인과적 효과를 정확하게 추정하려면 어떻게 하면 될까?

 

인과추정에 필요한 기본 조건

조건 설명 왜 필요한가?
Counterfactual 비교군 정책을 시행하지 않았던 도시(들) 정책이 없었을 때 소득이 어땠을지를 알기 위해
공변량 (X) 두 도시의 인구, 산업 구조, 교육 수준 등 도시 간 비교 가능성을 높이기 위해
시간 정보 (전/후) 정책 전과 후의 소득 변화 정책으로 인한 변화량을 보기 위해

 

1. Difference-in-Difference(DID)

DID는 시간축이 있는 경우, 처치 집단과 비교 집단의 변화량 차이를 비교하는 방법이다.

정책을 적용한 도시 A(처치군), 정책을 적용하지 않은 도시 B(비교군) 모두 정책 전/후 소득 데이터가 있다면, DID는 아래와 같이 계산할 수 있다.

 

DID=(YA,afterYA,before)(YB,afterYB,before)

 

2. Synthetic Control (합성 통제법)

여러 도시들을 조합해서 정책을 없었을 경우의 도시 A를 인공적으로 구성하고 A 도시의 Y(0)를 추정한다. 이는 도시 A가 유일한 처치 대상이고, 다른 도시들 중 비슷한 도시들로 구성된 그룹이 존재할 때 가능하다.

 

3. Causal Forest / Uplift Modeling

ML을 사용해 개별 도시나 집단 별로 정책 효과(CATE)를 추정하고 도시 A, B 각각에 대해 정책 효과가 왜 달랐는지를 파악한다.

도시 특성(X), 정책 시행 여부(T), 결과(Y)가 다수 존재할 때 가능하다.

댓글