지난 번 ch. 1 정리에 이어, 일명 하마책이라고 불리는 <A/B 테스트 - 신뢰할 수 있는 온라인 종합 대조 실험>의 ch. 2 를 정리해본다. ch. 2에서도 ABT에 대한 기본적인 개념 설명이 이어진다.
<A/B 테스트 - 신뢰할 수 있는 온라인 종합 대조 실험> - 챕터별 정리 포스팅 읽기
Ch.2 주요 내용:
실험 설계, 실행 및 분석의 기본 원리
Setting up the Example
•
할인코드 필드를 체크아웃 페이지에 추가하는 변경에 대한 AB 테스트
(실제 쿠폰 시스템 추가가 아니라 아니라 단순히 필드 추가의 효과를 보기 위함)
•
가설: 쿠폰 필드 추가는 매출을 저해할 것이다
◦
아래를 고려했을 때 정확히는 체크아웃을 시작한 유저들의 유저당 매출
•
성공 지표: 샘플 크기에 대해 표준화된 지표를 사용하는 것이 권장됨 (유저 당 ~ )
•
어떤 사용자를 대상으로 할 것인가
◦
사이트를 방문하는 모든 사용자: 체크아웃을 전혀 하지 않은 유저는 노이즈. 이들을 제외해야 더 민감한 ABT가 됨
◦
구매 프로세스를 완료한 사용자: 구매 완료 사용자 ‘수’에도 영향을 줄 수 있기 때문에 잘못된 선택
◦
구매 프로세스를 시작한 사용자: 최적의 선택. 처치로 영향을 받는 사용자는 모두 포함하고, 영향을 받지 않는 사용자(who dilute our result)를 포함하지 않음
Hypothesis Testing: Establishing Statistical Significance
•
통계적 가설검정 기본 개념
◦
baseline mean value & standard error of the mean(평균의 표준오차)
▪
지표의 추정치가 어느 정도로 변동성이 큰지 이해함으로써 지표의 기능 파악
▪
실험 크기를 적절하게 조정하고 분석 중 통계적 유의성을 계산하기 위해 변동성을 알아야 함
◦
sensitivity(민감도): 통계적으로 유의미한 차이를 탐지하는 능력. 평균의 표준오차가 낮을수록 개선됨. 일반적으로 각 변형군에 더 많은 트래픽을 할당하거나 실험을 오래 진행해서 달성 가능.
◦
statistical test
▪
평균이 같다는 귀무가설 하에 한 쌍의 실험군 - 대조군 샘플 간의 평균이 같을 가능성이 낮다면, 귀무가설을 기각하고 그 차이가 통계적으로 유의하다고 주장
◦
p-value
▪
귀무가설이 참이라고 가정할 때, 관찰된 결과 이상의 극단적인 경우를 얻을 확률
→ 연구, 실험의 결과, 발견이 우연에 의한 것일 확률을 나타내는 숫자
▪
p값이 충분히 작은 경우 귀무가설을 기각하고 결과가 충분히 유의하다고 결론지음
▪
과학적 표준은 임계값으로 0.05 사용 → 효과가 실제로 없다면(귀무가설이 참이라면) 100번 중 95번은 효과가 없다는 것을 정확하게 추론할 수 있음을 의미함
▪
신뢰구간이 0과 겹치는지를 확인하는 방법과 동일한 결과
•
95% 신뢰구간: 95%의 경우 실제의 차이를 포함하는 범위
◦
statistical power(통계적 검정력)
▪
변형군 간에 실제로 차이가 있을 때, 이 차이를 유의미하다고 판별할 확률
(귀무가설이 거짓일 때 이를 기각할 확률)
▪
낮은 통계적 검정력은 제2종오류 위험을 증가시킴 (실험 효과를 감지하지 못함)
▪
일반적으로 표본 크기가 클수록 검정력이 커짐
▪
일반적으로 80~90%의 검정력을 가지는 실험을 설계
◦
statistical significance(통계적 유의성)
▪
우연히 관찰한 결과 또는 더 극단적인 결과가 발생할 수 있는 가능성을 측정
▪
통계적 유의도 있는 결과 ≠ 실질적 유의도 있는 결과
•
실질적(실무적) 유의도 경계를 설정하는 것이 해당 차이가 투자할 가치가 있는지 이해하는 데에 중요
빅테크의 0.2% 변화는 실질적으로 중요할 수 있지만, 스타트업에서 2% 변화는 너무 작게 생각할 수 있음
Designing the Experiment
•
실험 설계를 위한 질문
1.
Randomization unit은 무엇인가?
•
일반적으로 유저
2.
Randomization unit의 모집단을 어느 정도 타겟으로 하고 싶은가?
•
어떤 속성을 가진 실험 대상을 지정할 것인가 (interface locale, 지역, 플랫폼 및 장치 유형 등)
3.
어느 정도 규모의 실험이 필요한가?
•
유저 수. 결과의 정밀도에 직접적인 영향을 미침
◦
작은 변화를 감지하거나 결론에 좀 더 충실해지려면 실험의 크기가 커야 함 (참여 유저 수가 많아야 함)
•
고려할 점
◦
실험은 얼마나 안전한가? (대규모 변경의 경우 작게 시작)
◦
다른 실험과 트래픽 공유
4.
실험을 얼마나 오래 진행할 것인가?
•
고려할 점
◦
많은 사용자들이 실험에 참여할수록 일반적으로 통계적 검정력을 증가시킴
◦
요일효과를 확인하려면 최소 1주는 실험 진행하기를 권장
◦
계절성: external validity 고려
◦
primary effect(초두 효과)와 novelty effect(신기성 효과)
Running the Experiment and Getting Data
•
실험을 실행하기 위해 필요한 것
◦
로그 데이터를 얻기 위한 instrumentation
◦
실험 구성부터 변형 할당에 이르기까지 실험을 수행할 수 있는 infrastructure
Interpreting the Results
•
적절성 검사: 가드레일 지표 또는 불변 지표를 체크
•
Trust-related guardrail metrics
•
Organizational guardrail metrics: latency
◦
여기서는 가드레일 지표를 실험군-대조군 사이에서 변하면 ‘안되는’ 지표로 설정하고, 실험 결과 분석과 의사결정이 아니라 그 전 단계인 sanity check에 사용하는데, 현재 회사에서는 가드레일을 실험에서 테스트하고자하는 피쳐로 인해 악영향을 받지 말아야 하는 회사의 핵심적인 지표의 의미로 사용하고 있어 조금 다른 것 같아 헷갈렸다.
From Results to Decisions
•
ABT의 목표는 의사결정을 유도하기 위한 데이터를 수집하는 것. 올바른 결정을 내릴 수 있도록 결과가 반복 가능하고 신뢰할 수 있게 하는 데 많은 노력이 필요
•
통계적, 실무적 유의도 임계값 구축시 실험 결과와 함께 고려해야하는 맥락
◦
여러 지표들 간에 절충이 필요한가?
◦
launch 에 드는 비용은? (출시전 구축 비용. 출시 후 유지보수 비용)
예상되는 이득이 그것을 커버할 수 있는가?
◦
잘못된 의사결정의 downside는 무엇인가?
•
설정한 임계값을 사용한 의사결정: 발생 가능한 결과 예시
1.
통계적 유의성 X. 실질적 유의성 X → iterate or abandon
2.
통계적 유의성 O. 실질적 유의성 O → launch!
3.
통계적 유의성 O. 실질적 유의성 X → launch할 가치가 적음
4.
통계적 유의성 X. 실질적 유의성 ?? → 중립적 결과. 결정 근거 부족. 후속 테스트 권장
5.
통계적 유의성 X. 실질적 유의성 O → 재실험으로 검정력, 정밀도 확보
6.
통계적 유의성 O. 실질적 유의성 가능성 있음 → 변화가 두드러지지 않을 수 있음. iterate 권장 but 출시/미출시 결정에서는 출시 선택이 합리적
•
명확한 답이 없는 결정을 내려야 할 때는 어떤 요소를 고려하고 있는지, 특히 이러한 요소가 실무적, 통계적 유의도 경계에 반영될 것인지를 명확히 해야 함
Chloe’s Comment
통계적 유의성과 실질적 유의성을 함께 고려하여 실험 결과에 따라 의사결정을 어떻게 해야하는지 가이드를 주는 부분이 좋았다. 다만 실무적 유의도의 경계를 현실에서는 어떻게 정해야하는지는 아무래도 어려운 문제라고 생각하는데, 이 부분에 대한 가이드도 있을지 궁금하다.