해당 글은 “A/B 테스트 신뢰할 수 있는 온라인 종합 대조 실험 (론 코하비, 다이앤 탕, 야 쉬. 2022)” 책 내용 일부를 정리 및 재구성한 내용이다.
예제 설정.
위젯을 판매하는 가상의 온라인 상점 사이트를 대상으로 예를 들어 보자.
마케팅 부서는 위젯의 할인 쿠폰 코드가 포함된 프로모션 이메일을 보내 판매를 늘리고자 한다. 우리의 가설은 아래와 같다.
가설 : “쿠폰 코드 필드를 체크아웃 페이지에 더하는 것은 매출을 저하할 것이다”
하나의 성공지표만 있다면, 그 지표를 우리의 OEC(Overall Evaluation Criterion)로 사용할 수 있다. 각 그룹 간 사용자 수는 다를 수 있으므로 “매출의 합” 보다는 “사용자당 매출”이 좋은 OEC이다.
다음은 사용자당 매출 지표의 분모로 어떤 사용자들을 고려할 것인가이다.
- 사이트를 방문하는 모든 사용자
- 이는 유효하다. 그러나 체크아웃을 개시하지 않은 사용자를 포함하므로 노이즈가 추가된다.
- 노이즈를 제외하면 더 민감한 A/B Test가 될 수있다.
- 구매 프로세스를 완료한 사용자
- 대조군과 실험군간 변화가 구매를 완료하는 사용자 수에도 영향을 줄 수 있으므로 잘못된 선택이다. → 쿠폰 코드 필드의 유무가 구매 프로세스의 완료율 자체에 영향을 줄 수도 있다.
- 구매 프로세스를 시작한 사용자
- 대조군과 실험군간 변화가 구매 퍼널 내에 있다는 전제하에 이것은 최선의 선택이다.
위 가설을 더 정교하게 보면 다음과 같다.
정교한 가설 : “쿠폰 코드 필드를 체크아웃 페이지에 더하면, 구매 프로세스를 시작하는 사용자에 대한 사용자당 수입이 저하된다.”
가설 검정.
실험을 설계, 실행 또는 분석하기 전에 다음과 같은 부분은 살펴 보아야 한다.
- 통계적 민감도는 평균의 표준오차(Standard Error)가 낮을수록 높아진다. SE을 줄이려면 트래픽을 늘리거나 실험 기간을 연장하는 방법이 일반적이다. 하지만, 일부 지표는 시간이 지남에 따라 분산이 커지는 반면 순 사용자 증가는 반복 방문 사용자로 인해 저선형적일 수 있다. (ex. 유저당 플레이 타임, 사용자당 매출 등)
저선형성 (Sub-linear Growth)
- 선형 증가 : f(x)=c⋅t 처럼 시간 t에 따라 양이 일정 비율로 늘어 나는 것
- 저선형 증가 : f(x)=c⋅tα,(0<α<1) 처럼 시간 t에 비해 점점 더 작아지는 것을 뜻한다.
t→∞limtf(t)=0
- p값은 귀무가설이 참이라고 가정할때 그러한 차이 또는 더 극단적인 경우를 관찰할 확률이다. 과학적 표준은 0.05 미만의 p값을 사용하는 것이다.
- 모든 통계적으로 유의한 결과가 실질적으로 의미있는 것은 아니다. 사용자당 매출은 비즈니스적 관점에서 얼마나 큰 차이를 보이는가? 구글과 빙과 같은 서비스는 0.2%의 변화로 수십억 달러를 창출하지만, 스타트업은 10% 이상의 개선된 변화를 추구한다.
실험 설계.
설계를 정의하기 위해 다음과 같은 일련의 결정을 사용할 것이다.
- 무작위 추출 단위는 무엇인가?
- 가장 일반적인 방법은 사용자 단위로 추출하는 것이다.
- 무작위 추출 단위의 모집단을 어느 정도 대상으로 하고 싶은가?
- 어느 정도 규모의 실험이 필요한가?
- OEC 결정에 유의해야 한다.OEC로 사용자당 수익 보다 구매 전환율 사용하면 SE가 작아져 동일한 민감도를 얻기 위해 많은 사용자를 실험에서 사용할 필요가 없게 된다.
- 실질적 유의도를 높여 감지할 변화 폭을 키우면 표본 크기를 줄일 수 있으나, p-값 임계치를 0.01처럼 낮추면 검정력을 유지하기 위해 오히려 더 많은 표본이 필요하다.
- 사용자의 반응을 모르는 대규모 변경의 경우, 더 적은 비율의 사용자로 시작하는 것이 좋다.
- 다른 실험과 트래픽을 공유할 필요가 있는지 검토해야 한다.
- 실험을 얼마나 오래 진행할 것인가?
- 실험이 더 오래 진행될수록 사용자는 늘어나고, 이는 일반적으로 통계적 검정력을 증가시킨다. (시간이 지남에 따라 분산을 증가시키는 자표는 유의해야 한다.)
- 평일과 주말에 사용자 분포는 다를수 있으며, 같은 사용자라도 다르게 행동할 수 있다. 그러므로 최소 1주일 동안의 실험을 추천한다.
- 계절성을 고려해야 한다. 공휴일, 크리스마스 시즌 등의 외적 요인은 해당 기간의 결과를 일반화할 수 없을 수 있다.
- 초두 효과(Primacy Effect), 신기성 효과(Novelty Effect)를 고려해야 한다.
초두 효과(Primacy Effect), 신기성 효과(Novelty Effect)
- 초두 효과(Primacy Effect)
변경 사항이 도입 되었을 때 사용자들은 작동방식에 익숙해지기 까지 시간이 필요할 수 있다.
- 신기성 효과(Novelty Effect)
새로움 효과는 지속되지 않는 효과이다. 새로운 기능, 특히 쉽게 눈에 띄는 기능은 사용자들의 눈길을 끌어서 그 기능을 시도해 보게한다. 하지만, 그 기능에 대해 알아가고 유용하지 않다면, 반복 사용량은 작아질 것이다.
이런 부분을 고려할 때, 우리의 실험 설계는 다음과 같다.
1. 무작위 추출은 사용자 단위다.
2. 모든 사용자를 대상으로 체크아웃 페이지를 방문하는 사용자를 분석한다.
3. 사용자당 수익의 1% 이상의 변화를 감지할 수 있는 80%의 통계적 검정력을 갖기 위해 검정력 분석을 실시해 실험의 크기를 결정한다.
4. 이들 조건은 대조군/실험군1/실험군2 각 34%/33%/33%로 분할되어 일주일 내내 실험을 실행하며, 신기성이나 초두효과를 감지하면 더 오래 진행한다.
결과 해석.
실험에는 실험 결과를 무효로 할 수 있는 버그가 숨어들어올 수 있는 방법이 많다. 이들을 포착하기 위해 가드레일 지표 또는 불변성 지표들을 살펴본다.
중요하고 많은 실험에서 불변할 것으로 예상되는 지연 시간과 같은 조직 가드레일 지표가 변화된다면, 측정된 차이는 테스트된 기능에 의한 것이 아닐 수 있다.
다음 표는 해당 실험으로 얻은 결과라 가정한다.
| 사용자당 수입 (실험군) | 사용자당 수입 (대조군) | 차이 | p값 | 신뢰구간 |
|---|
| 실험군 1 vs 대조군 | $3.12 | $3.21 | -$0.09 (-2.8%) | 0.0003 | [-4.3%. -1.3%] |
| 실험군 2 vs 대조군 | $2.96 | $3.21 | -$0.25 (-7.8%) | 1.5e-23 | [-9.3%, -6.3%] |
두 가지 실험군에 대한 p값이 0.05보다 작기 때문에, 실험군과 대조군의 평균이 같다는 귀무가설을 기각한다. → UI에 쿠폰 코드를 추가하면 수익이 감소한다는 패턴을 확인했다는 뜻이다.
결과에서 의사결정으로.
A/B 테스트의 실행 목표는 의사결정을 유도하기 위한 데이터를 수집하는 것이다. 결과에서 명확한 답이 나오지 않을 수도 있지만 결정을 내려야 할 때가 있다.
- 여러 지표들간의 트레이드오프를 고려해야 한다. 예를들어, 사용자 참여가 증가하지만, 수익은 감소할 수 있다. 또는 CPU 사용량 증가가 실행 비용의 이점보다 클 수도 있다.
- 서비스를 출시하는데 드는 비용이 변화의 이점보다 크진 않은가?
- 어떤 기능을 실험하기 위해 기능을 구축했다면, 서비스 출시에 대한 비용은 0이겠지만, 최소 테스트를 위한 부분적인 기능 구현이었다면 서비스 출시에 따른 비용을 고려해야 한다.
- 유지보수의 비용도 생각해야 한다. 서비스가 더 많은 복잡성과 버그 같은 유지보수 비용을 크게 발생시킨다면, 예상되는 이득을 넘어서는지 확인해야 한다.
- 모든 결정이 동일한 것이 아니며 모든 실수가 동일한 것은 아니다. 예로, 며칠 동안만 보여질 두 헤드라인의 테스트는 잘못된 결정을 할 하방 위험이 낮다. 이 경우 실험자는 통계적 및 실무적 유의도에 대한 기준 또한 낮출 것이다.
Reference.
- Trustworthy Online Controlled Experiments : A Practical Guide to A/B Testing (Ron Kohavi, Diane Tang, Ya Xu. 2022)