AB 테스팅 (온라인 실험)

[책 A/B 테스트] (Ch02) "실험 수행과 분석" Trustworthy Online Controlled Experiments

W[더블유] 2022. 4. 29. 10:08

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. 추가적으로 더 읽어볼만한 내용 ]

 

[Reference]

(Optimizely) A/B test sample size calculator

 

(Evan Miller) Sample Size Calculator

 

(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 글) 샘플 사이즈 계산기에 숨어있는 통계 이야기

 

(Paulynn Yu) Understanding Power Analysis in AB Testing