일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DENSE_RANK()
- 그로스 해킹
- ARIMA
- 분석 패널
- 부트 스트래핑
- pmdarima
- 마케팅 보다는 취준 강연 같다(?)
- 캐글 산탄데르 고객 만족 예측
- sql
- tableau
- 데이터 핸들링
- python
- 스태킹 앙상블
- 3기가 마지막이라니..!
- lightgbm
- XGBoost
- WITH ROLLUP
- 로그 변환
- 인프런
- splitlines
- 캐글 신용카드 사기 검출
- 데이터 정합성
- ImageDateGenerator
- WITH CUBE
- 그룹 연산
- 리프 중심 트리 분할
- 데이터 증식
- Growth hacking
- 컨브넷
- 그로스 마케팅
- Today
- Total
LITTLE BY LITTLE
[1] 실무로 통하는 인과추론 with 파이썬 - 1장. 인과추론 소개 본문
목차
<1장. 인과추론 소개>
1.1 인과추론의 개념
1.2 인과추론의 목적
1.3 머신러닝과 인과추론
1.4 연관관계와 인과관계
1.4.1 처치와 결과
1.4.2 인과추론의 근본적인 문제
1.4.3 인과모델
1.4.4 개입
1.4.5 개별 처치효과
1.4.6 잠재적 결과
1.4.7 일치성 및 SUTVA
1.4.8 인과 추정량
1.4.9 인과 추정량 예시
1.5 편향
1.5.1 편향의 수식적 이해
1.5.2 편향의 시각적 가이드
1.6 인과효과 식별하기
1.6.1 독립성 가정
1.6.2 랜덤화와 식별
1.7 요약
1장. 인과추론 소개
1.1 인과추론의 개념
- 비즈니스에서 연관관계를 인과관계로 착각하면 심각한 결과를 초래할 수 있다.
- ex. 주가가 급등하기 전 매수했거나 폭락하기 전 매도하는 등 자기 직관이 불규칙한 주가의 움직임과 인과적으로 연결되어 있다고 생각하고 속아 넘어간다.
- 연관관계: 두 개의 수치나 확률변수(r.v.)가 같이 움직이는 것
- 인과관계: 한 변수의 변화가 다른 변수의 변화를 일으키는 것
→ 인과추론은 연관관계로부터 인과관계를 추론하고 언제, 그리고 왜 서로 다른지 이해하는 과학이다.
1.2 인과추론의 목적
- 인과추론의 목적은 현실을 이해하는 것
- 현실을 이해하는 데에는 규범적 요소(의사결정의 기준을 제시)가 포함됨
- ex. 과음이 두통을 유발한다고 추론한 이유는, 두통을 피하도록 음주 습관을 바꾸고 싶기 때문
- ex. 마케팅 비용이 매출 증가로 이어지는지 알고 싶은 이유는, 지렛대 삼아 수익을 늘릴 수 있기 때문
- 즉, 원인과 결과의 관계를 앎으로써 원인에 개입하여 원하는 결과를 가져올 수 있음
- 인과추론이 필요한 다섯 가지 실용적인 질문의 예시
- 현재 상품의 권장 가격 대신 다른 가격을 적용한다면 어떻게 될까?
- 저당 식단에서 저지방 식단으로 바꾸면 어떻게 될까?
- 고객의 신용 한도를 늘리면 은행의 이익은 어떻게 될까?
- 읽기 시험 점수를 높이려면 정부가모든 학생에게 테블릿을 지급해야 하는지, 아니면 도서관을 지어야 하는지
- 결혼이 개인 자산 증가에 도움이 될까? 아니면 부유한 사람들이 배우자를 만날 가능성이 높기 때문에 기혼자가 부유한 것일까?
→ 비즈니스나 삶에서 무언가를 변화시켜 더 나은 삶을 살고자 하는 욕구에서 비롯된다.
1.3 머신러닝과 인과추론
- 인과추론으로 답을 얻으려는 질문의 유형은 '만약(what if)' 유형이다. 머신러닝이 취약한 유형
- 머신러닝을 잘 활용하려면 문제를 예측 문제로 구성해야 함
- ex. 영어를 포르투갈어로 번역하고 싶다면 영어 문장에서 포르투갈어 문장을 예측하는 머신러닝 모델을 구축
- ex. 얼굴을 인식하려면 사진의 세부 부분에서 얼굴의 존재를 예측하는 머신러닝 모델을 구축
- 까다롭게 정해진 범주 내에서 엄청난 성능을 발휘할 수 있으나, 데이터가 모델에 적합된 것에서 조금만 달라져도 제대로 작동하지 않음
- 따라서 개입이 동반되는 대부분의 의사결정에서, 예측 모델로 목적을 달성하기란 매우 어려움
- 기업의 주요 목표 중 하나는 제품의 매출이나 사용량의 증대인데, 이러한 목적을 달성하는 데 단순 매출 예측은 쓸모 없는 경우가 더 많음
- 심지어 높은 매출은 높은 요금과 연관이 있다는 의미 없는 결론을 내릴 수도 있다.
- 따라서 머신러닝을 단순 예측 도구가 아닌, 강력한 모델의 도구 상자라는 각도에서 접근해야할 것 (3부)
- 인과추론은 잠재적 결과까지 고려하는 반면, 머신러닝은 관측된 결과만 고려함
1.4 연관관계와 인과관계
- 가격할인이 판매량에 미치는 영향을 파악한다면, 더 많이 판매해 얻는 이익이 더 저렴하게 판매해 얻는 손실을 상쇄할 때, 가격을 할인하면 좋다는 의사결정을 할 수 있음
예제. 어린이 장난감을 판매하는 기업의 크리스마스 이전 기간에 할인하면 판매량이 어떻게 증가할까?
- store: 상점 코드 [분석 단위]
- weeks_to_xmas: 크리스마스까지 남은 기간 (주)
- avg_week_sales: 12월의 각 상점의 주간 판매량
- is_on_sale: 해당 주간, 기업의 가격할인 진행 여부 (진행=1, 미진행=0)
- weekly_amount_sold: 해당 연도의 상점 주간 평균 판매량
※ 분석단위: 만약 "매출이 가장 좋은 시점이 언제일까?"에 대한 답을 구한다면, 이때 분석단위는 '기간'이 됨
1.4.1 처치와 결과
- T1: 실험 대상 i가 처치받은 경우
- T0: 실험 대상 i가 처치 받지 않은 경우
처치: is_on_sale (가격 할인)
결과(Yi): weekly_amount_sold (주간 판매량)
→ 인과추론의 목표 = T가 Y에 미치는 영향을 학습하는 과정 (할인 여부가 주간 판매량에 미치는 효과 파악)
1.4.2 인과추론의 근본적인 문제
- 인과추론의 근본적인 문제는, 동일한 실험 대상이 '처치'를 받은 상태와 받지 않은 상태를 동시에 관측할 수 없다는 점
- 할인하는 주와 할인하지 않는 주의 주간 판매량을 비교해보면, 당연히 할인했을 때 판매량이 더 높게 나온다.
- 연관관계를 인과관계로 착각하고 있음을 알 수 있다.
- 또한, 판매량이 많게 나타난 이유는 상품을 가장 많이 판매하는 대기업들이 더 공격적으로 가격을 낮출 여유가 있기 때문일 수도 있다.
- 또는, 고객들이 가장 많이 구매하는 시기인 크리스마스쯤 할인을 진행한 영향일 수도 있다.
- 즉, 여기에서 중요한 부분은 동일한 회사(실험 대상)에서 할인이 진행되는 상황과 그렇지 않은 상황을 동시에 관측할 수 있어야만 할인의 실제 효과를 확신할 수 있다는 것
- 두 가지 반사실 상황을 비교할 수 없기에, 대신 다른 방법을 찾아야 한다.
1.4.3 인과모델
- 인과모델은 화살표(←)로 표시하는 일련의 할당 메커니즘
- u를 사용해 모델 외부의 변수를 나타냄
- 한 변수를 다른 변수에 매핑하는 함수 f
- 1번 식에서 모델링하지 않는 변수 집합 ut(외부 변수)가 함수 ft를 통해 처치변수 T를 유발하는 원인이 됨
- 2번 식에서 처치변수 T는 다른 변수 집합 uy(모델링하지 않을 또다른 변수)와 함께 결과 Y를 유발함
- 즉, uy는 결과가 단순히 처치변수만으로 결정되지 않음을 나타냄 (모델링하지 않기로 선택한 변수이더라도 결과에 영향을 미침)
※ 화살표(←)를 사용함으로써 인과관계의 비가역성을 분명하게 표시 (T가 Y의 원인인 것과 반대인 Y가 T의 원인인 것은 같지 않다.)
※ 외부변수: 회귀분석에서 오차항에 가까운 설명(=관측되지 않은 모든 요인을 포괄하는 항)으로, 인과모델 내에서 명시적으로 고려하는 변수라 하더라도, 관측되지 않은 다른 변수에 영향을 받지 않는 요인
※ 내생변수: 관측되지 않은 요인에 의해 영향을 받는 변수 (ex. 예제에서 is_on_sales, Business Size가 내생변수에 해당)
예제에 적용하면,
- weekly_amount_sold은 처치에 해당하는 is_on_sale 및 특정되지 않은 요인들 u때문에 발생
- 변수 u의 목적은 모델에 포함된 변수로는 아직 설명되지 않은 변수의 모든 변동을 설명하는 것으로, '내생 변수'라고도 한다.
- 여기에서는 is_on_sale이 모델 내에 없는 요인들(ex. 기업 규모) 때문에 유발된다고 할 수 있음
- 내생 변수(Business Size)를 포함하기 위해, 해당 변수가 생성되었는지 나타내는 첫 번째 수식 추가
- Business Size를 모델 외부 변수로 다루지 않도록 ut에서 제외
- 두 번째 수식은 is_on_sales의 원인이 Business size와 ut(외부 변수)임을 의미
- 즉, 대기업들이 가격을 할인할 가능성이 더 높다는 믿음을 수식으로 표현
- 마지막으로는 Business size를 식에 추가해서 대기업들이 더 많이 판매한다는 생각을 표현
- 정리하자면, BusinessSize는 처치(IsOnSale)와 결과(AmountSold) 모두의 공통 원인이 됨
선형모델과 비교해보면,
- 내생변수 is_on_sales과 Business size가 선형적으로 결합한 결과로 Amount Sold를 만드는 것을 알 수 있다.
- 즉, 해당 선형 모델은 이전 모델보다 더 많은 가정을 하며, 변수 간의 관계에 함수 형태(선형)를 부여한다.
1.4.4 개입
아주 간단한 인과모델로 모든 실험 대상이 처치 t0을 받도록 하는 상황을 가정해보면,
- 처치를 t0으로 설정한다면 결과 Y에 어떤 일이 일어날까?라는 질문에 답하는 사고 실험
- 개입을 do(.) 연산자로 나타낼 수도 있음
- T에 개입해서 어떤 일이 일어날지 추론하고 싶다면 do(T=to)로 표현
- 가격을 할인한 store의 판매량 기댓값 E[AmountSold | IsOnSales = 1]이 높으면, 가격을 할인하도록 개입한 경우의 판매량 기댓값 E[AmountSold | do(IsOnSales = 1)]이 과대 추정될 수 있다.
차이는
- E[AmountSold | IsOnSales = 1] : 가격을 할인하기로 결정한 회사는 대기업일 확률이 높음
- E[AmountSold | do(IsOnSales = 1)] : 모든 회사가 가격을 할인하도록 통제했을 때 어떤 일이 발생했을지
→ 가격을 할인한 회사의 판매량에 대한 조건부 기댓값 ≠ 할인하도록 통제한 회사의 판매량에 대한 조건부 기댓값
1. 할인이 조건으로 주어질 때, 실제로 가격을 할인하기로 선택한 회사들의 하위 표본 판매량 측정
→ 선택은 처치에 따라 표본을 필터링
2. 반면, do(IsOnSale) 개입이 조건으로 주어질 때는, 모든 회사가 가격을 할인하도록 통제한 다음 전체 표본에서 판매량을 측정
→ 개입은 전체 표본의 처치 여부를 통제
식별(identification)
: 모든 기업이 가격을 할인하도록 강제하지 않았으므로, 모든 회사의 do(IsOnSales=1)인 상황을 관측할 수 없다. 즉, do연산자는 관측된 데이터에서 항상 얻을 수 없는 인과 추정량(causal quantity, causal estimand)을 정의하는 데 사용하고, 이 인과 추정량에 대한 이론적 표현에서 직접 관측할 수 없는 부분을 제거하기 위한 일련의 과정을 식별이라 부른다.
※ 기댓값
: 평균이 추정하려는 모집단 값
- E[X] : 확률변수 X의 주변 기댓값, X의 표본 평균으로 근사
- E[Y|X=x] : X = x가 주어졌을 때 Y에 대한 기댓값, X=x일 때 Y의 평균으로 근사될 수 있음
1.4.5 개별 처치효과
개별 처치효과(ITE, individual treatment effect)
= 실험대상 i에 대한 처치가 t0에서 t1으로 바뀔 때의 효과
= t0와 비교하여 t1하에서의 결과 차이
인과추론의 근본적인 문제 때문에 두가지 중 한 가지 항(do(T=t1 or t0))에 대해서만 관측할 수 있다.
1.4.6 잠재적 결과
잠재적 결과
= 처치가 t인 상태일 때, 실험대상 i의 결과는 Y가 될 것이다를 의미
- 관측 가능한 한 가지 잠재적 결과를 사실적 결과로,
- 관측 불가한 다른 한 가지 결과를 반사실적 결과로 지칭
잠재적 결과를 다음과 같이 표현할 수도 있음
※ 인과추론에 대한 가정
: 인과추론에는 항상 가정이 동반됨, 가정은 데이터로 검증할 수 없기 때문에 필요하다.
1.4.7 일치성 및 SUTVA
앞의 식에는 숨겨진 두 가지 가정이 있다.
1. 일치성 가정 [Ti=t일 때, Yi(t) = Y이다]
: T로 지정된 처치 이외에 숨겨진 여러가지 형태의 처치는 존재하지 않는다고 가정한다.
일치성 가정이 위배되는 경우
1. 처치를 여러 번 했는 데 그 중 일부만 고려했을 때
ex. 할인 쿠폰이 매출에 미치는 영향을 알고자 할 때
- 처치=고객이 쿠폰을 받았는지 여부
- 여러 번의 할인을 시도했다면, 일치성 가정을 위배할 수 있다.
2. 처치가 잘못 정의된 경우
ex. 재무 설계사의 도움이 개인 자산에 미치는 영향을 알고자 할 때
- 처치 = 재무설계사의 도움
- 여기에서 '도움'이 의미하는 것이 일회성 상담인지, 장기적인 조언과 목표 추적인지 .. 이러한 모든 종류의 재무 조언을 하나의 범주로 묶으면 일치성 가정에도 위배됨
2. 상호 간섭 없음(no interference) 또는 SUTVA(Stable Unit of Treatment Value Assumption)
: 하나의 실험 대상에 대한 효과는 다른 실험 대상의 영향을 받지 않는다고 가정한다.
- 엄밀히 말하면 일치성 가정과 상호간섭 없음 두 가지 가정을 모두 합한 것이 SUTVA이다.
- 잠재적 결과 프레임워크의 missing values(근본적 문제)를 해결하기 위해서는 4가지를 가정해야 하는데, 그 中 2가지
- exchangeability = unconfoundness = Ignorability = 독립성 가정 = (Y0,Y1)⊥T [1.6.1]
- positivity = overlap
- no interference (상호 간섭 없음)
- consistency (일치성 가정)
- 3,4번을 결합해서 SUTVA라 한다.
위배되는 경우
: 파급효과(spillover effect, 네트워크 효과)가 있는 경우
ex. 백신이 전염성 질환 예방에 미치는 영향을 알고 싶을 때
- 한 사람에게 백신을 접종하면, 그 사람과 가까운 다른 사람들이 처치를 받지 않았더라도 질병에 걸릴 확률이 낮아짐
- 위배 시,실제보다 처치 효과가 작다고 생각하게 됨
- 결국 파급 효과가 없을 때보다 실험군과 대조군간의 차이가 크게 나지 않게 됨
※ 가정 위배
: 위의 두 가정 모두 위배하는 경우를 다룰 수 있다.
- 일치성 가정 위배를 해결하려면 분석 시 처치에 대한 모든 버전을 포함해야 한다.
- 파급 효과를 처리하려면 다른 대상에서 발생하는 효과를 포함하도록 처치효과의 정의를 확장하고, 더 유연한 모델을 사용하여 처치효과를 추정할 수 있다.
1.4.8 인과 추정량
- 인과추론의 근본적인 문제를 다시 한번 강조하자면, 잠재적 결과 중 하나만 관측할 수 있으므로 개별 처치효과를 알 수 없다.
- 개별 효과를 알 수는 없지만, 데이터에서 학습할 수 있는 흥미로운 세 가지 인과 추정량을 알아보자.
1. 평균 처치효과(ATE, Average Treatment Effect)
: 처치 T가 평균적으로 미치는 영향을 나타냄
→ 추정하기 위해 기댓값을 표본평균으로 대체
→ 잠재적 결과 중 하나만 관측되므로 실제로 이와 같이 계산할 수는 없으나, ATE를 추정하는 방법을 배울 예정
- 엄밀히 말하면 통계 추정량(Statistical Estimand)을 구하는 것
- E[Y(1)-Y(0)] = 인과 추정량(Causal Estimand)
- E[Y|T=1] - E[Y|T=0] = 통계 추정량(Statistical Estimand)
- 따라서 인과 추정량으로 통계 추정량을 구하기 위해서는 Selection Bias를 해소할 수 있어야 함(실험-대조군이 비교가능해야 함)
2. 실험군에 대한 평균 처치 효과(ATT, Average Treatment Effect On The Treated)
: 처치 받은 대상에 대한 처치 효과
ex. 한 도시에서 진행한 오프라인 마케팅 캠페인으로 해당 도시에서 얼마나 많은 추가 고객을 모색했는지 알고자 할 때
→ 캠페인이 진행된 도시에 대한 마케팅 효과가 ATT
→ ATT는 처치 받은 대상을 조건으로 하므로 Y0i는 항상 관측되지 않지만, 이론적으로는 잘 정의될 수 있다.
3. 조건부 평균 처치효과(CATE, Conditional Average Treatment Effect)
: 변수 X로 정의된 그룹에서의 처치 효과
ex. 이메일이 45세 이상의 고객과 그보다 젊은 고객에 미치는 영향을 알고 싶을 때
- 어떤 유형의 실험 대상이 개입에 더 잘 반응하는지 알 수 있어 개인화에 매우 유용함
※ 처치 변수가 연속형인 경우, 차이를 편도 함수(partial derivative)로 대체할 수 있다.
- Potential Outcome Framework 하에서 우리가 구하려는 인과 효과는 ATE가 아니라 실험군의 반사실을 추론함으로써 구할 수 있는 ATT이다.
- 따라서 반대로 대조군에 처치를 했을 때 어떻게 되었을지에 대한 잠재적 결과에도 적용할 수 있을지는 미지수
- ATU는 책에 나오지 않으나 처치를 Unreceived한 대조군의 평균 처치 효과
▼
ATT가 ATE와 같아지려면?
- 그러면 우리가 구한 ATT가 ATE와 같아지는 경우는?
- ATT + Selection bias = ATE + (1-π)(ATT-ATU) + Selection bias
- (1-π)(ATT-ATU) 에서 실험-대조군 두 그룹이 모두 존재해야 하니 π=1이 될 수 없다. 따라서 0이 되려면 ATT=ATU 즉, 실험군에 대한 평균 처치효과와 대조군에 대한 처치효과가 같아질 때 ATE를 구할 수 있게 되는 것
- 즉, 실험군과 대조군의 특성이 비슷해서 각 그룹에서의 인과효과가 같아질 때 ATT=ATE가 됨 [Exchangeability]
▼
그렇다면 ATT만으로는 의미가 없는 걸까?
- 무작위 실험을 하면 ATT와 ATE가 같아질 확률이 매우 높다.
- ex. 무작위 실험이 아닐 때, "누가 쿠폰을 받을 확률이 높을까"를 생각해보았을 때, 쿠폰을 써서 할인을 받고 싶은, 즉 구매욕이 있는 사람들이 쿠폰을 받았을 것이다. (=실험군과 대조군의 특성이 다름)
- 따라서 쿠폰을 갖고 있는 집단에서의 인과 효과인 ATT를 구한다고 하더라도, 대조군에 쿠폰을 제공해주었을 때 같은 인과효과를 얻을 가능성은 매우 낮다. (=ATE를 구하지 못함)
- 회사 입장에서는 수익성을 극대화하기 위해서는 쿠폰을 활용해서 쇼핑할 의지가 있는 고객에게만 쿠폰을 주면 되고, 쿠폰을 줄 경우 얻을 수 있는 인과효과만 관심있을 것
- 따라서 ATT만으로 의미가 있는 경우가 많다!
1.4.9 인과 추정량 예시
실제 비즈니스 문제에서 인과 추정량을 정의하는 방법
1. 평균 처치효과(ATE)
2. 실험군에 대한 평균 처치효과(ATT) - 가격을 할인한 회사가 어떻게 판매량을 늘렸는가
3. 조건부 평균 처치효과(CATE) - 크리스마스 주간의 할인 여부가 미치는 영향
현실에서 가능하지 않지만, 총 6개 회사의 할인 여부 데이터 (3개 회사는 할인을 진행, 나머지는 진행하지 않음)를 수집했다고 했을 때,
- i는 실험 대상
- y0, y1은 각각 실험군 및 대조군에 따른 잠재적 결과
- t는 처치(할인) 여부
- x는 크리스마스까지의 시간을 표시하는 공변량
1. ATE
= (20 + 20 + 100 + 50 + 0 + 200) / 6 = 65
→ 가격할인으로 판매량이 평균 65개 증가함
2. ATT (t=1인 경우만)
= (50 + 0 + 200) / 3 = 83.33
→ 가격을 할인한 회사는 가격할인에 따른 판매량이 평균 83.33개 증가함
3. CATE (x=1인 경우만)
CATE(x=1) = (100+200)/2 = 150 [크리스마스 1주일 전]
CATE(x=0) = (20+20+50+0)/4 = 22.5 [크리스마스 주]
→ 회사는 크리스마스 주간에 할인했을 때보다 크리스마스 1주일 전에 할인했을 때 훨씬 더 많은 혜택을 누렸다.
→ 즉, 일찍 할인한 매장이 나중에 할인한 매장보다 더 많은 이득을 보았다.
- 현실에서는 위와 같이 잠재적 결과 중 하나만 볼 수 있으므로, 개별 처치효과를 파악할 수 없다.
- 여기에서 실험군의 평균을 대조군의 평균으로 대체해서 ATE를 계산한다면, 연관관계를 인과관계로 착각하는 오류를 범한 것
- 여기서 문제는 할인한 회사와 그렇지 않은 회사가 다르다는 점
1.5 편향
- 편향은 인과관계와 연관관계를 다르게 만드는 요소
- 실험군이 처치 받지 않았을 경우와 대조군이 처치 받았을 경우를 추정해야 하고, 추정한 값이 일치하지 않는다면, 처치 t를 받은 실험 대상의 평균 결과인 E[Y|T=t]는 추정하고 싶은 E[Yt]의 편향 추정량(biased estimator)이 된다.
- 베타 햇은 추정량, 베타는 추정하려는 모수(estimand)
- 평균 처치 효과에 대한 추정량이 실제 ATE를 시스템적으로 과소 또는 과대평가하는 경우, 편향되었다고 말한다.
- ex. 고객에게 노출된 배너 광고를 고객이 볼지 안 볼지 선택하는 건 선택 편향 문제
1.5.1 편향의 수식적 이해
- 평균의 차이가 ATE와 일반적으로 같지 않은 이유
위의 식에서 처치를 받지 않았더라면, 실험군 결과가 어떠헀을지 알려주는 반사실적 결과 E[Y0|T=1]을 더하고 빼주면,
다음과 같은 식이 된다.
- 이 편향식은 연관관계가 인과관계가 아닌 이유를 알려준다.
- 연관관계 = 실험군에 대한 처치효과(ATT)에 편향을 더한 값과 같음
- 편향 = y0의 차이 = 처치와 관계없는 실험군과 대조군의 차이
- E[Y0|T=0] < E[Y0|T=1]는 가격을 할인할 여력이 있는 기업이 할인 여부와 관계 없이 더 많이 판매하는 경향이 있음을 보여줌 (Y0은 실험군)
- 관측할 수 없는 많은 요소가 처치와 함께 변화하므로 편향이 발생한다. (추후 3장에서 다룰 교란이 주원인)
- 실험군과 대조군은 교환가능(exchangeable)해야 한다. - 가격할인으로 판매량이 얼마나 증가하는지 결정하려면, 할인한 회사와 하지 않는 회사가 평균적으로 서로 비슷해야 함
1.5.2 편향의 시각적 가이드
- 실험군과 대조군이 교환 가능한지 시각화하여 확인할 수 있다.
- x축: 회사 규모 - avg_week_sales(주간 평균매출)
- y축: 처치의 결과 - weekly_amount_sold(주간 판매량)으로 두고,
- 각 점의 색상을 is_on_sales(처치 여부)로 지정
- 가격을 할인한 실험군이 그래프의 오른쪽에 더 집중되어 있는 경향을 보임
- 즉, 일반적으로 할인한 회사가 더 큰 규모의 회사임을 의미한다.
- 실험군과 대조군 간에 균형이 맞지 않음
- E[Y0|T=1] > E[Y0|T=0]이 맞다는 강력한 증거가 된다.
- 가격을 할인한 회사의 수(동그라미)와, 해당 회사의 결과(y축)가 모두 회사의 규모(x축)에 따라 증가하므로 상향 편향이 존재
- 이 편향은 심슨의 역설의 덜 극단적인 버전과같다
※ 심슨의 역설
다시 산점도로 돌아오면, 가격할인과 판매량간의 상관관계가 너무 높아서 세 번째 변수인 '회사 규모'를 통제하면, 해당 상관관계의 크기가 줄어드는 상황부터 시작한다.
실험군과 대조군 간의 판매량 차이에는 두 가지 원인이 있다.
1. 처치효과: 가격할인에 따른 판매량 증가 (알고자 하는 효과)
2. 회사 규모: 규모가큰 기업일수록 더 많이 판매하고 할인할 수 있다. 따라서 할인한 회사와 할인하지 않은 회사 간 차이의 원인은 가격할인때문이 아님.
위 그림에서 반사실적 결과는 삼각형으로 표시되어 있다. 개별 처치효과는 실험 대상의 결과와 동일 대상이 다른 처치를 받았을 때 결과의 차이이고, 동그라미와 세모(반사실)간의 차이 (=개별 대상의 차이)는 그룹간의 차이보다 훨씬 작다.
- 모든 실험 대상이 처치를 받지 않도록 설정하여 편향을 나타낼 수 있다. 이렇게 설정하면 잠재적 결과 Y0만 남음
- 그 다음에, 처치가 없는 상태에서 실험군-대조군의 잠재적 결과 차이를 비교할 수 있음
- 만약 차이가 있다면, 처치 이외에 다른 요인 때문에 실험군과 대조군의 차이가 생긴 것
1.6 인과효과 식별하기
- 앞서 인과추정량에서 직접 관측할 수 없는 부분을 제거하기 위한 과정으로 배웠던 식별에 대해서 살펴보자.
- E[Y1-Y0]과 같은 인과 추정량을 직접 추정할 수 없기에, 관측 가능한 다른 수치를 찾아 인과 추정량을 찾아내는 방법이다.
- E[Y|T=t]가 E[Yt\와 같아지는 데 성공헀다면, (E[Yt]를 식별했다면,) 단순히 E[Y|T=1] - E[Y|T=0]을 추정하여 E[Y1-Y0]를 구할 수 있다.
- 인과적 식별이란, 편향을 없애는 과정으로도 볼 수 있다.
- 만약 E[Y0|T=0] = E[Y0|T=1]이라면(=모두가 처치를 받지 않는다고 가정했을 때의 실험군과, 모두가 처치를 받는다고 가정했을때의 실험군이 동일하여 편향이 존재하지 않음), 연관관계는 인과관계가 된다. 즉, 처치와 관계없이 대조군과 실험군이 비교가능하다.
- 또한, E[Y1-Y0|T=1] = E[Y1-Y0|T=0이면(실험군과 대조군이 처치에 유사하게 반응하면) 평균의 차이가 평균 인과효과가 된다.
1.6.1 독립성 가정
- 독립성 가정: (Y0,Y1)⊥T와 같이 잠재적 결과가 처치와 독립적이라고 가정하는 것
- E[Y0|T=0] = E[Y0|T=1]의 또 다른 표현
- 처치 여부와 관계 없이 실험군과 대조군 모두 서로 비교 가능하고 구별할 수 없다.
- 만약 모든 회사가 할인하지 않았다면, 할인하기로 한 회사와 그렇지 않은 회사를 구분할 수 없어야 함
- 다양한 교란 변수(confounders)가 존재하는 현실 상황에서, 두 그룹이 exchangeable하다고 가정하는 것은 다소 비현실적일 수 있다.
- 관측되지 않는 교란 변수가 많은 상황에서, unconfoundedness는 테스트할 수 없는 가정으로, 위배되기 쉬움
- Adjusted Formula인 Conditional exchangeability 가정을 이용하기도 함
- ex. X(과금 수준)으로 인해 T(프로모션)의 순수한 효과를 알기 어려운 상황에서, X(과금 수준)에 대한 Subgroup(고,중,저)이 주어졌을 때, 프로모션 그룹은 Subgroup 내에서 교환 가능하게 됨.
1.6.2 랜덤화와 식별
인과 추론 문제는 보통 두 단계로 나뉜다.
- 식별(identification): 관측 가능한 데이터로 인과 추정량을 표현하는 방법을 알아내는 단계
- 추정(estimation): 실제로 데이터를 사용하여 앞서 식별한 인과 추정량을 추정하는 단계
그 중 1단계 식별의 예시
- 처치가 랜덤하게 이루어지지 않는다고 했을 때, 무작위로 처치를 배정하는 방법을 찾을 수 있음
- 무작위로 가격할인 여부를 정할 수 있다면, 동전 던지기로 실험 대상에 처치를 배정하는 것과 같다. (랜덤화)
- 처치 배정 메커니즘이 '입점 회사에 가격할인을 하도록 명령하는 권한을 협상하면서 할인으로 발생한 가격의 차액을 내가 지불하는 것'이라면, 그 메커니즘이 알려졌기에(랜덤화) 인과모델에서 외부변수 ut가 사라진 것
- 랜덤화 → 독립성 가정 만족: 처치가 무작위로 이루어지므로 잠재적 결과는 물론이고 어떤 변수와도 독립적이게 된다.
- 식별은 데이터 생성 과정을 알거나 기꺼이 가정할 수 있는 경우에만 가능하다.
- 데이터(처치)가 어떻게 이루어졌는지에 관한 설명도 중요하다. 도메인 지식을 활용하거나 개입을 해서 처치에 영향을 미치고 그에 따라 결과가 어떻게 변하는지 관측할 것
- ex. 멤버십 프로그램: 멤버십 프로그램의 효과를 측정하고자 무작위로 표본을 추출한 뒤, 일부 고객에게만 프로그램을 공개했고, 그들은 참여 여부를 스스로 선택할 수 있었다. → 사내멤버십 프로그램 참여 자격은 무작위로 선정헀지만, 선정된 그룹의 고객 스스로 참여 여부를 선택할 수 있어서, 처치가 무작위로 이루어지지 않음
※ 무작위: 처치가 랜덤으로 이루어졌거나, 처치 배정 메커니즘이 완전히 알려져 있고, 비결정적 데이터에 관해 이야기할 때 사용
※ 관측: 누가 어떤 처치를 받았는지는 알 수 있지만, 처치가 어떻게 배정되어 있는지 알 수 없는 데이터
1.7 요약
"우리의 목적은 Control Group을 Counterfactuals과 최대한 가까워지도록 설계하는 것"
Potential Outcomes 참고 자료
1.
https://pseudolabcausalinference.tistory.com/7
2.
https://youtu.be/e2BzsceHNX8?si=ZeR7gkg6u9PSOWIp
3.
https://playinpap.github.io/randomization-for-the-causalinference/
유용한 사이트
https://github.com/CausalInferenceLab/CausalInferenceLab.github.io?tab=readme-ov-file
'데이터 분석 > 인과추론' 카테고리의 다른 글
[4-2] 실무로 통하는 인과추론 with 파이썬 - 4장. 유용한 선형회귀 (0) | 2024.05.12 |
---|---|
[4-1] 실무로 통하는 인과추론 with 파이썬 - 4장. 유용한 선형회귀 (0) | 2024.05.09 |
[3-2] 실무로 통하는 인과추론 with 파이썬 - 3장. 그래프 인과모델 (0) | 2024.05.05 |
[3-1] 실무로 통하는 인과추론 with 파이썬 - 3장. 그래프 인과모델 (0) | 2024.05.01 |
[2] 실무로 통하는 인과추론 with 파이썬 - 2장. 무작위 실험 및 기초 통계 리뷰 (0) | 2024.04.21 |