Search
🧪

⟪A/B 테스트⟫ Ch 2. Running and Analyzing Experiment - An End-to-End Example

Created at
2025/03/13
Updated at
2025/03/13
Tags
Keywords
AB Test
3 more properties
지난 번 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

통계적 유의성과 실질적 유의성을 함께 고려하여 실험 결과에 따라 의사결정을 어떻게 해야하는지 가이드를 주는 부분이 좋았다. 다만 실무적 유의도의 경계를 현실에서는 어떻게 정해야하는지는 아무래도 어려운 문제라고 생각하는데, 이 부분에 대한 가이드도 있을지 궁금하다.