Ch 02 Running and Analyzing Experiments
- 요약
주요 측정 지표를 설정한 후 통계적 가설 검정을 시행합니다. 일반적으로 실무에서는 80~90% 이상의 statistical power 을 얻을 수 있는 샘플 크기를 선정합니다. 실험 결과를 해석할 때, 통계적인 유의성 뿐만 아니라 practical 한 유의성도 평가해야 합니다.
- 어려운 개념이나 궁금했던 내용?
(p.32) practical significance level 을 증가시킬 때, 큰 변화는 찾기가 쉽기 때문에, sample size 를 줄여도 된다
-> 수식으로 확인해보고 싶다...
- 실무 적용?
실험에 드는 비용 (컴퓨팅 + 개발자의 시간?) 새로운 환경으로 변경하는데 드는 비용은 무엇인가?
(연습) 아래 그림에서 점선은 practical significance 입니다. (1), (2), (3) 번 케이스에 대해서 평가해보세요. (교재 예시 설명은 그림 아래에 있습니다)
(1) 은 통계적으로 유의하나, practically significant 하지는 않습니다. 효과가 나타나는 것은 알게 되었으나, 효과가 비용보다 큰 지는 알 수 없습니다.
(2) 통계적으로 유의하고 practically significant 하기도 합니다. 이 경우, 새로운 프로덕트를 런칭합니다.
(3) 신뢰구간이 practical significance 의 바깥에 있습니다. 이 경우 샘플 사이즈를 늘려 정확도를 높일 필요가 있습니다.
+++++++++++++++++++++++++++++++++++++++++++++++++
+ 추가 요약
+++++++++++++++++++++++++++++++++++++++++++++++++
[Part 1. Ch02 요약]
Example - Funnel (퍼널)
- 퍼널: 웹사이트 접속 -> 사이트 둘러보기 / 위젯(상품) 찾기 -> 위젯을 장바구니에 담기 -> 구매 절차 시작 -> 구매 완료 -> 수익
- 테스트하고 싶은 가설: (구매 절차 중) 쿠폰 코드 항목을 추가하는 것이 수익 감소를 가져오는가?
- 유저 당 수익에 관한 지표 (revenue-per-user metric) 을 어떻게 정의할 것인가?
(1) 사이트를 방문한 모든 유저들
(2) 구매를 완료한 유저들
(3) 구매 절차를 시작한 유저들
Hypothesis Testing: Statistical Significance (가설 검정: 통계적 유의성)
- 실험에 필요한 샘플 사이즈를 계산하고 통계적 유의성을 검증하기 위해서 baseline 의 평균과 표준편차가 필요하다. [정원혁: 구매 절차를 시작한 유저들 중 구매 완료까지 이어진 비율의 평균과 표준편차? ]
- 가설검정
- 귀무가설 (null-hypothesis): 통제집단과 처치집단 (쿠폰 항목 추가 UI) 의 평균이 동일할 것이다.
- 대립가설 (alternative hypothesis): 통제집단과 처치집단 (쿠폰 항목 추가 UI) 의 평균이 다를 것이다.
- p-value: 두 집단 사이가 동일하다는 가설 (귀무 가설) 하에서 극단값이 나올 확률 (즉, 귀무 가설을 기각할 확률)
- 예를 들어, p-value 가 0.03 라면, (엄밀한 표현은 아니나 러프하게 결과적으로 이야기하면) 두 집단 사이가 동일할 확률이 0.03 이다. [정원혁: 양측검정/단측검정이 엄밀히는 살짝 다르지만, 보통은 양측검정으로 생각하는듯 합니다]
- 이러한 경우, 귀무 가설이 나올 확률이 매우 희박하므로, 귀무가설을 기각한다. (러프하게 말하면, 두 집단의 평균이 다르다는 의미)
Designing the Experiment (실험 설계)
- 실험 설계를 위해 결정해야 하는것:
(1) 무작위화 (randomization) 하는 단위가 무엇인가 [정원혁: 책에서는 거의 ‘유저 단위'를 쓰는 듯 합니다. 무작위화란 통제집단과 처치집단으로 유저를 임의로 배정하는 행위를 말하는 것 같습니다.]
(2) randomization 하는 유저의 특성은 무엇인가? [정원혁: 예를 들어서, 웹 환경에서만 실험을 한다면, 모바일 환경에서는 작동하지 않을 수도 있지 않을까 이러한 생각이 드네요]
(3) 실험의 샘플 사이즈는 얼마가 되어야 하는가? [정원혁: 샘플 사이즈가 커지면, 특히, 처치 집단의 사이즈가 커질수록 실험의 리스크는 커집니다. 새로운 실험적인 제품을 테스트받는 유저들이 많아지므로]
(4) 실험의 기간을 얼마나 되어야 하는가?
Running the Experiment and Getting Data (실험 데이터를 얻기 위해 필요한 것들)
- Instrumentation (more on Ch13)
- 실험 후 (실험 목적에 맞는) 유저의 행동 변화를 살펴볼 로그 데이터가 있어야 한다.
[정원혁: 각 퍼널 단계에서 클릭에 따른 유저들의 클릭 정보를 DB 에 저장해두어야 할 것 같네요]
- Infrastructure (more on Ch04)
- 유저를 통제 집단과 처치집단으로 배정할 수 있어야 한다. [정원혁: 일종의 실험 플랫폼 같은 것을 의미하는듯]
Interpreting the Results
- 가설 검정 이전에 “sanity check” 이 필요합니다. 통제집단과 처치집단 간에 변하지 않아야 하는 지표 (invariant metrics) 가 변하지 않아야 한다. 두 개의 주요 지표는 다음과 같다 [정원혁: 일종의 ‘balance-check’ 를 말하는듯합니다]
- 캐시 히트 비율 (cache-hit rate) [정원혁: CPU 에 대한 이해가 필요한가…]
- 가드레일 지표 [정원혁: 이것도 좀 더 공부해야할 듯…]
- 앞의 sanity check 를 통과하면, 통제집단과 처치 집단의 차이의 p-value 를 확인합니다. 0.05 이하이면, 두 집단 간의 통계적 차이가 있는 것으로 판단합니다.
From Results to Decision
- 분석 결과를 바탕으로 새로운 상품을 런칭할 것인지 그렇지 않을 것인지 판단해야 합니다.
- 이때, 통계적 유의성 뿐만 아니라, practical significance 도 판단해야 합니다. 런칭에 드는 비용을 넘는 효과가 나타나야 합니다.
- Figure 2.4 의 예시의 각 경우 (1) ~ (6) 에 따라서 신상품 런칭 여부를 판단해볼 수 있습니다.
Fig.2.4. 런칭 여부 판단을 위한 통계적 유의성과 practical significance 를 표현. 점선 (dashed line) 은 practical significance 를 의미. 검은색 박스와 신뢰구간이 함께 표기됨.
(1) 통계적 유의 (x), practical significance (x) → 해당 정책(런칭)을 폐기
(2) 통계적 유의 (o), practical significance (o) → 해당 정책(런칭)을 시행
(3) 통계적 유의 (o), practical significance (x) → 해당 정책(런칭)을 시행할 만큼 가치가 없을 수 있음.
(4) 신뢰구간이 practical significance 바깥에 걸쳐있음 → 런칭 여부를 판단하기에 (statistical) power 가 충분하지 않음. 샘플 사이즈를 더 늘려서 다시 테스트해볼 필요가 있음.
(5) 통계적 유의 (x), practical significance (o) → 해당 정책이 (비즈니스) 임팩트가 있을 것으로도 보이고 효과가 없을 것으로도 보임. 샘플 사이즈를 더 늘려서 다시 테스트해볼 필요가 있음.
(6) 통계적 유의 (o), practical significance (o) 이나, 통계적으로 유의하지 않을 수도 있다 (??). 샘플 사이즈를 더 늘려서 다시 테스트해볼 필요가 있음. 물론, 런칭하는 것도 타당한 판단임.
[정원혁:
- (6) 은 통계적으로 유의하고, (5) 의 경우에는 그림의 신뢰구간의 95% 신뢰구간이라면, 90% 수준에서는 통계적으로 유의하지 않을까 생각이 든다.
- 책에서 배치되는 것으로 보이는 구절이 있다. (5) 에서는 “likely practically significant” 라고 했는데, (6)에서는 “Like 5, it is possible that the change is not practically significant”. 라고 적혀 있다]
[Part 2. 실무 적용 - Discussion Time! ]
실무 적용?
- 정원혁: 실험에 드는 비용을 어떻게 측정하는가? (실험 후 런칭하기로 결정한다면) 런칭에드는 추가적인 비용을 어떻게 측정하는가?
- 예를 들어, 실험에 드는 비용을 계산할 때, 개발자들의 개발 비용이나 DB 관련 비용은 어떻게 측정하는가?
[Part 3. 추가적으로 더 읽어볼만한 내용 ]
- (by 정원혁) [PAP 김민주님 글, 퍼널 관련] 우리 서비스 뭐가 문제일까? - 퍼널을 개선하는 6가지 방법
- 스터디의 책의 예시처럼, PAP 글의 예시에 우리가 배운 내용을 적용한다면 어떨까 궁금해지네요.
- 링크: https://playinpap.github.io/funnel-analysis-basic/
- (by 정원혁) [최보경님 미디엄 블로그 글] A/B 테스트 결과 해석에서 자주 발생하는 12가지 함정들
- Metric 관련 내용이 많습니다.
- 링크: https://medium.com/bondata/a-b-테스트-결과-해석에서-자주-발생하는-12가지-함정들-2fe273b76a2d
[Reference]
(Optimizely) A/B test sample size calculator
(Evan Miller) Sample Size Calculator
- Link: https://www.evanmiller.org/ab-testing/sample-size.html#!5;80;5;10;1
- Optimizely 와 결과가 거의 유사
(Evan Miller) How Not To Run an A/B Test
(List et al. 2011, Experimental Economics 의 NBER Woking Paper version)
- Title: “So you want to run an experiment, now what? Some Simple Rules of Thumb for Optimal Experimental Design”
- Evan Miller 의 reference 중 하나
- Link: https://www.nber.org/papers/w15701
(채환님 PAP 글) 샘플 사이즈 계산기에 숨어있는 통계 이야기
- Optimizely 소개
- Link: https://playinpap.github.io/sample-size-calculator-statistics/
(Paulynn Yu) Understanding Power Analysis in AB Testing
- Sample size 계산하는 공식이 List et al. 2011 의 결과와 동일
- Link: https://towardsdatascience.com/understanding-power-analysis-in-ab-testing-14808e8a1554
'AB 테스팅 (온라인 실험)' 카테고리의 다른 글
[책 A/B 테스트] (Ch04) "실험 플랫폼과 문화" Trustworthy Online Controlled Experiments (0) | 2022.05.24 |
---|---|
Peeking at p-values 문제 (AB 테스팅) (0) | 2022.05.24 |
[책 A/B 테스트] (Ch03) "실험 중 통계적 오류" Trustworthy Online Controlled Experiments (0) | 2022.05.23 |
샘플 사이즈 계산기의 공식 이해와 응용 (0) | 2022.05.09 |
[책 A/B 테스트] (Ch01) "책 시작하기" Trustworthy Online Controlled Experiments (0) | 2022.04.26 |