일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정형데이터
- PGTM
- publicspeaking
- 영어연설
- 대중연설
- 인과추론
- Toastmaster
- 구글#빅쿼리#데이터분석
- 토스트마스터
- SQLD
- 카이제곱분포
- F분포
- 연설
- 데분
- 엘뱌키안
- Public Speaking
- 풀러스
- 제약
- 사이허브
- 평창
- 2018계획
- CC#5
- 취업
- 데이터분석
- 공유경제
- 데이터
- CC#3
- 영화
- 임상통계
- 분석
- Today
- Total
지지플랏의 DataScience
(2) Chapter 2 인과추론을 위한 무작위 실험과 기초 통계 본문
지난 글에서는 인과추론의 개념과 등장하는 지표에 대해서 알아보았다. 또한, 어떤 처치를 주었을 때와 주어지지 않은 경우를 동시에 관측할 수 없는 상황이 있는 것도 이해했다. 이번 단원에는 극복하기 위한 방법 중 하나로 무작위 배정 실험과 함께 유의수준, p-value 등 기초 통계 개념도 정리한다.
1. 글목차
- 온라인 통제 실험(OCE)
- 무작위 통제 실험(RCT)
- 수식으로 알아보는 무작위 배정의 효과
- 불확실성 반영하기 1: 표본오차와 신뢰구간
- 불확실성 반영하기 2 : 가설검정
- 표본 크기 계산
2. 본문
2.1. 온라인 통제 실험(OCE)
이전 글에서 평균처치효과(ATE)를 통해 처지에 대한 추정량을 측정할 수 있으며 이를 위해서 실험군과 대조군이 교환가능성이 존재해야한다는 사실을 획득했다.
이 교환가능성을 확보하기 위하여 온라인 환경에서 적용할 수 있는 방법을 온라인 통제 실험(online controlled experiements, OCE)라고 한다. 흔히 A/B test라고 알려져 있다. 예컨대 제품을 사용하는 사용자들을 무작위로 추출하여 두 그룹에 배치한다. 이를 각각 실험군(treatment group)과 대조군(control group)이라 칭하며 균등 비율 5:5로 나누게 된다.
여담으로 해당 비율을 나누는 방법에 대한 방법은 murmur hash 알고리즘이 일반적이며 이를 설명하는 아티클은 다음을 참고하기 바란다. 따로 서비스를 쓰지 않고 직접 개발하는 경우를 위한 요약 자료가 될 것이다.
A/B testing expreience at Doctrine
2.2. 무작위 통제실험(RCT)
OCE는 무작위 통제 실험(Randomized Controlled Trial)에 기반을 두고 있다.이는 통계학에서 한번쯤 들어봤을 로널드 피셔가 제안한 방법론으로 대표적인 예시가 신약개발을 위한 임상시험에 사용하는 방법이다.
RCT가 강력한 이유는 무작위 할당을 통하여 혼란 변수(cofunder)가 무작위 과정에서 골고루 분포되기 때문에 처치와 결과 간의 관계가 인과적 관계로 해석 할 수 있기 때문이다.
RCT는 이런 장점에도 불구하고 현실세계에서는 적용하기 어려운 점은 ① 비용 ② 윤리적 문제 이다.
예컨대 희귀병을 임상시험한다고 할 때 충분한 결과를 내기위한 최소 모집인원이 존재하기 때문에 무한정으로 비용과 시간을 쓸 수 없다. 특히 이 문제는 임상시험의 비용의 상승과 나아가 희귀약의 비용의 증가로 직결된다. 이번에는 임산부의 흡연 유무에 따른 태아의 영향을 연구를 해보자. 이 경우 임상시험을 위하여 임산부에게 흡연을 권장한다면 윤리적인 문제에 봉착하게 된다. 오프라인은 이렇게 적용되는 제한점이 있다.
하지만 온라인의 경우 다르다. 충분한 웹/앱 트래픽과 기간이 있다면 검증을 하기 위한 n수를 늘릴 수 있으며, 윤리적인 문제도 피해갈 수 있다.(사용자들에게 각각 다른 화면을 보여주었다고 하더라도 큰 문제가 되지 않는다). 때문에 OCE가 현재와 같은 분석분야에 널리 사용되고 있다.
2.3. 수식으로 알아보는 무작위 배정의 효과
실험군과 대조군의 평균의 차이가 ATE와 일반적으로 같지 않는 이유는 간단하게 말하면 "우리가 처치한 변수 말고 영향을 줄 수 있는 원인이 존재하기 때문"이다. 1단원에서 가져온 처치와 결과과의 연관 관계는 다음과 같이 수식으로 표현된다.
$E[Y | T = 1] - E[Y|T=0] $
$ E[Y | T = 1] - E[Y | Y = 0] $ : 실험군과 대조군 간의 관찰된 평균 차이(단순 계산이며 상관관계)
상점의 예시를 들자면 할인(처치)를 실행한 회사의 평균 판매량에서 할인(처치)를 하지 않은 회사의 평균 판매량을 뺀 값이다. 아래 표는 각 상점이 할인을 한 상황과 할인을 하지 않은 상황을 동시에 관찰(평행세계)를 가정하여 작성된 결과이다.
i | y0 | y1 | t | x | y | y1-y0 |
1 | 200 | 220 | 0 | 0 | 200 | 20 |
2 | 120 | 140 | 0 | 0 | 120 | 20 |
3 | 300 | 400 | 0 | 1 | 300 | 100 |
4 | 450 | 500 | 1 | 0 | 500 | 50 |
5 | 600 | 600 | 1 | 0 | 600 | 0 |
6 | 600 | 800 | 1 | 1 | 800 | 200 |
- i: 상점 번호
- y0: 할인(처치)를 적용하지 않은 잠재적 판매량 결과
- y1: 할인(처치)를 적용한 잠재적 판매량 결과
- t: 할인(처치) 여부
- x: 크리스마스 1주일 전이면 1, 크리스마스 주간이면 0
- y: 할인(처치)에 따른 실제 판매량
- y1-y0: 잠재적 판매량 결과의 차
우리는 위 식에서 잠재적 결과 모델(potentail Outcomes)로 표현하면 다음과 같다.
$E[Y | T = 1] - E[Y | Y = 0] = E[Y_{1} | T =1] - E[Y_{0} | T = 0] $
- $ E[Y_{1} | T =1] - E[Y_{0} | T = 0]$: 처치를 받았을 때 잠재적 결과와 처치를 받지 않았을 때의 잠재적 결과
위 식에 $ E[Y_{0} | T=1} $을 더하고 빼서 정리하면 다음과 같이 ATT와 편향으로 나눌 수 있다.
$E[Y | T = 1] - E[Y | Y = 0] = E[Y_{1} - Y_{0}| T = 1] + E[Y_{0} | T = 1] - E[Y_{0} | T = 0] $
- $ E[Y_{1} - Y_{0}| T = 1]$: 처치된 그룹의 평균 처치 효과(ATT), 실제로 처치 를 받은 사람들이 처치를 받았을 때와 받지 않았을 때의 평균 결과의 차이
- $E[Y_{0} | T = 1] - E[Y_{0} | T = 0]$: 편향, 처치 를 받은 사람과 받지 않는 사람 간에 존재하는 처치 이전의 차이. $ E[Y_{0} | T = 1]$ 는 처치 를 받은 사람들이 처치를 받지 않았을 경우의 잠재적 결과(평행세계)
위 식은 상관관계가 인과관계가 될 수 없다는 사실을 편향을 통해서 보여준다. 실제로 규모가 더 큰 상점은 할인을 할 수이쓴 여력이 있었고 할인(처치)를 할 수 있었던 규모가 큰 상점들이 $Y_{0}$이 클 수 밖에없었 다는 것을 보여준다. $E[Y_{0} | T = 0] < E[Y_{0} | T = 1]$
따라서 위 예제에서는 실험군과 대조군이 교환가능성이 없었다는 것이다. 반대로 교환가능성이 있다는 말은 $Y_{0}, Y_{1}$과 할인(처치)와 독립적이라는 말이며 다음과 같이 표현된다.
$Y_{0}, Y_{1} \perp T$
혹은 다음 두 값이 같다는 것으로 표현할 수 있다
$ E[Y_{0} | T = 1} = E[Y_{1} | T = 1} $
이렇게 실험군과 대조군이 교환가능하거나 처치를 무작위로 배정하게 된 경우 실험군과 대조군의 결과를 단순 비교하면 평균처치효과(ATE)를 얻을 수 있다.
$ATE = E[Y_{1} - Y_{0}] = E[Y | T = 1] - E[Y| T=0]$
2.4. 불확실성 반영하기 1: 표본오차와 신뢰구간
2.3을 완벽하게 이해하지 못하여도 괜찮다. 우리는 온라인 통제실험을 통해 실험군과 대조군의 교환가능성을 확보하여 편향을 없앨수 있음을 확인했다. 결국 우리는 평균처치효과(ATE)가 관심있는 소재이다.
여기서 ATE(평균처치효과)가 표본에서 추출된 평균 값이라는 것에 대해서 주목하자. 표본의 평균에 대한 지표이기 때문에 표본오차의 개념의 자연스럽게 나와야한다. 왜냐하면 대부분 모집단 전체에 대한 ATE를 직접 측정할 수 없고 표본을 사용해 추정해야하기 때문이다. 표본을 100개씩 뽑아 10,000번 수행하게 되면 매번 데이터의 분포가 다르게 될 것이며 그에 따라 표본의 평균도 달라질 수 있다. 이때 표본 평균의 표준편차를 표본 오차라 한다.
예컨대 전환률 0.08인 표본 100개를 10,000 뽑아 히스토그램을 그리면 다음과 같다. 베르누이 분포를 따르는 데이터이지만 표본의 평균은 정규분포의 형태를 따라 중심극한정리(CLT)가 적용되는 모습을 볼 수 있다.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(42)
conv_rate = 0.08
size = 100
def run_binomail(conv_rate,size):
return np.random.binomial(1,conv_rate, size = size)
# 100번 샘플 추출을 10,000번 반복하여 추출하여 평균을 expriments에 저장
expriments = [run_binomail(conv_rate,size).mean() for _ in range(10000)]
plt.hist(expriments, edgecolor = 'black')
plt.axvline(x = conv_rate, color = 'red', linestyle = '--')
이 표본평균의 변동성을 설명하기 위한 것이 표본 오차이며 다음과 같이 정의 된다.
$SE(\bar{X}) = \frac{\sigma}{\sqrt{n}}$
- $\sigma$ : 모표준편차
- $\sqrt{n}$: 표본의 크기
위 식을 생각해보자면 표본을 많이 뽑을수록 표본오차는 작아질 것이며, 모표준편차가 크면 클수록 자연스럽게 표본으로 뽑힌 데이터들도 오차가 커질 것임을 알 수 있다. 또한, 모표준편차를 아는 경우가 드물기 때문에 경우 표본의 표준편차 $s$로 대체하게 된다.
하지만 이런 의문을 가질 수 있다. 표본오차를 추정할 수 있다고 하더라도 통계학에서 '절대'라는 것은 없다. 따라서, 하나의 지표를 제시하는 것보다 표본 평균이 모집단 평균을 포함할 수 있는 범위를 제공하는 것이 바람직하다. 이를 신뢰구간(Confidential Interval)이라고 하며 다음과 같이 정의 된다.
$ \bar{X} = Z * SE(\bar{X})$
95%의 신뢰구간을 추정하면 Z 는1.96이지만 2 반올림하여 표본 오차를 대입하면 다음과 같다.
$ \bar{X} = 2 \times \frac{\sigma}{\sqrt{n}} $
해석하자면 실제 평균의 100번 중 95번은 위 신뢰구간에 속함을 의미한다.
2.5. 불확실성 반영하기 2: 가설검정
또한 결과에 통계적 방법을 적용하는 방법은 가설 검정이다. 예컨대 두 그룹의 평균의 차이가 통계적으로 유의한 차이가 있는가에 대한 질문을 답하기 위해서 사용할 수 있다.
가설 검정은 귀무가설과 대립가설 수립이 가장 우선시 된다.
- 귀무가설($H_0$): 기존에 믿고 있던 사실, ex) 약물은 효과가 없다
- 대립가설($H_1$): 주장하려고하는 사실, ex) 약물은 효과가 있다.
통계의 가설 검정은 귀류법으로 진행한다. 귀류법은 어떤 명제를 참이라고 가정한 후 모순이 도출되면 그 명제는 거짓으로 결론내리는 논리적 추론 방법이다. 귀무가설이 우리가 일반적으로 받아들여지는 사실이므로 이를 참이라고 가정하고 유의확률(p-value)를 도출하여 확률적으로 희박하다고 생각되면 귀무가설을 기각하고 대립가설을 선택한다. 이름하야 새로운 주장의 등장이다.해당 기준을 유의수준(Significant level)이라고 하며 일반적으로 5%를 기준으로 잡는다.
그럼 유의확률은 어떻게 도출하는가? 세상에 나온 일반적인 데이터 분포에 빗대어 계산한다. 이때 검정통계량(Test Statstics)이 등장한다. 귀무가설이 참이라고 가정했으므로 이를 통해 관찰값과 기대값의 차이를 표준화하여 계산한다.
예컨데 z-검정 통계량은 표본 평균과 가설로 기대되는 평균의 차이를 표준 편차로 나눈 값이다.
$ z = \frac{\bar{X} - \mu_0}{\frac{\sigma}{\sqrt{n}}} $
그 밖에 검정통계량은 다음 링크를 참고
(8) Khan Academy: 유의성 검정과 절차, 통계방법론 정리
하지만 유의수준을 5%로 관리한다고 해도, 아주 낮은 확률로 실제와 판단한 사실이 다를 수 있다. 이 개념을 이해하기 위해서 다음과 같은 혼동행렬을 작성할 수 있다.
판단 \ 실제 상황 | 귀무가설이 사실 | 대립가설이 사실 |
귀무가설을 기각하지 못함 | 옳은 채택( ($1-\alpha$) | 2종 오류($\beta$) |
귀무가설을 기각함 | 1종 오류($\alpha$) | 옳은 기각($1-\beta$, 검정력) |
우리는 여기서 2가지를 관리한다. 1종 오류(귀무가설이 사실인데도 불구하고 귀무가설을 기각할 확률 $/alpha$), 2종 오류(대립가설이 사실인데도 불구하고 대립가설을 기각할 확률 $\beta$).
유의수준($\alpha$)를 5%로 관리했던 것처럼 일반적으로 검정력($1-\beta$)는 80%로 관리한다.
2.6. 표본 크기 계산
자 그럼 이제 불확실성을 반영하고 해당 실험을 만들기 위한 표본 사이즈를 몇 개를 수집해야하는가가 중요하다. 단순히 나오는 결과에 해석하기 보다 A/B test는 해당 실험을 하기 위해 얼마큼 표본의 크기를 수집해야하는 중대한 결정사항이 있기 때문이다. 각 서비스마다 트래픽이 다르기 때문에 적절한 설계를 위해서는 필요한 표본의 크기(n)를 산정해야한다.
요약하자면 산업의 기준에서 검정력 80%, 유의수준 0.05 에 대하여 필요한 표본의 크기는 다음과 같다.
$n = \frac{16*\sigma^{2}}{\delta^{2}}$
- $\sigma$: 표준편차
- $\delta$: 효과의 크기
해석하자면 효과의 크기를 작게 설정할수록, 1%의 전환률보다 0.1%의 전환율을 측정하고 싶을 경우 더 큰 표본이 필요하다. 또한 과거의 대조군의 표준편차가 클수록 변동성이 크므로 더 많은 표본이 필요하다.
3. 출처와 링크
- 고객 중심 프로덕트 개선에 A/B 테스트가 필수일까?
- Controlled experiments on the web: survey and practical guide
- Korea Summer Workshop on Causal Inference 2022
'Data Science > 실무로 통하는 인과추론 with 파이썬' 카테고리의 다른 글
(6) Chapter 5: 매칭 Part1: 성향 점수(PS), 역확률 가중치(IPW) (3) | 2024.10.07 |
---|---|
(5) Chapter 4: 유용한 선형회귀 Part2: FWL 방법론 (4) | 2024.09.30 |
(4) Chapter 4: 유용한 선형회귀 Part 1 - 온라인 마케팅 (3) | 2024.09.23 |
(3) Chapter 3 그래프 인과모델 (2) | 2024.09.19 |
(1) Chapter: 인과추론 소개 (5) | 2024.09.02 |