본문 바로가기

통계

[통계] A/B Test

반응형

 

인프런의 거친코딩님의 A/B 테스트 실무자 완벽 가이드 강의를 바탕으로 작성되었습니다.


1. A/B Test란?

 

- 기존 서비스(A)와 새롭게 적용하고 싶은 서비스(B)를 통계적인 방법으로 비교하여, 새롭게 적용한 서비스가 기존 서비스에 비해 더 개선되었는지를 확인하는 방법

 

- A/B Test를 활용하면 서비스 개선을 위한 인과관계 입증 가능

 

 

 

2. A/B Test의 핵심 원칙

 

- 조직은 데이터 중심 결정을 내리고, OEC(Overall Evaluation Criterion; 실험 목적의 정량적 측정. e.g 활성 사용자수)를 공식화 작업이 필요

 

- OEC를 설정하여 A/B Test를 진행할 때, 다음과 같은 사항이 지켜져야 함

1) 단기간 측정: 최대 1~2주안에 테스트 완료해야 됨

2) 개선 변화 차이에 민감: 수행한 테스트가 기존보다 개선이 되었는지 그렇지 아닌지 측정하기 위해  민감하게 바뀌는 지표를 선정해야 함

3) 장기 목표 예측 가능: 단기간에 측정된 정보로 장기적인 목표를 예측할 수 있는 OEC를 정의해야지만 성공적인 데이터 중심 분석

 

 

 

 

3. 실험 계획

1) 실험 사이클

 

A/B Test는 1Pager 작성 → 실험 시작 → 통계 검증 → Review 순으로 진행됨

A/B Test 실험 사이클

 

 

💡1Pager

- 1Pager란, 실험을 위한 기획서를 의미

- 실험에 관한 A to Z를 한 페이지에 작성해 둔 것

- 1Pager를 통해 올바른 실험 계획 및 방향성을 설정하며,

    마지막 실험 결과에 대한 후속처리와 Review를 객관적으로 평가하게 도와주는 역할

 

 

 

 

2) 실험 계획서 작성법 - 1Pager 설명

 

- 보통 9가지 항목으로 구성

 

- 최종 결제 구간에서 본인이 받은 전체 할인 금액을 노출시킨다는 실험을 수행한다 가정했을 때, 각 항목에 해당하는 예시는 다음과 같음

 

항목 설명 예시
Target User 타켓 고객은 누구인가? 마지막 결제구간에 있어서 결제 선택에 신중을 가하는 고객
Observation 데이터적으로 관찰되는 현상은 무엇인가? 1) 전체 퍼널 flow 구간중, 결제 구간에서 구매까지 패널 전환율지 떨어진다는 것을 확인

2) 결제 버튼에서의 이탈율이 다른 Scroll구간보다
높다는 것을 비율적으로 확인
Problem Statement 현상으로써 발생되는 문제는 무엇인가? 고객이 받은 전체 할인 금액을 정확히 인지하지 못해, 좋은 금액으로 구매하고 있다는 느낌을 주지 못해 고객을 이탈시킨다
Benchmarks  적용하려는 기능과 유사하게 벤치마킹할
것이 있는가?
A사의 모바일 앱 결제 화면
Hypothesis 기능 개선을 위한 가설 설립 결제 페이지에서 고객이 받은 전체 할인 금액을
노출시키면 구매전환율이 늘어날 것이다
Experiments Group 실험을 위한 집단 구분 Group A(대조군): 기존 결제 페이지 (단순 할인된 가격 노출)

Group B(실험군): 기존 페이지 + 전체 할인받은 금액 노출
Metric 실험 성돠를 평가할 수 있는 정량적 지표 설계 Input Metrics(= 투입지표):  결제 페이지 유입 수, 최종 결제 금액 도달 수

Output Metrics(= 산출지표) : 전환율 (결제 페이지 →  결제 완료 페이지
Trade-Off 기능 도입으로 인해 발생되는 문제 상황 및
예의주시가 필요한 부분
동일한 카테고리 상품 중, 더 좋은 기능보더 더 저렴한 상품을 구매하여 전체 매출에 negative 할 수 있음
Andon 실험 진행 중 심각한 문제 발생 여부를
파악할 수 있는 기준 정의
구매전환율이 3일 연속 하락

서비스의 주요 OED에 심각한 부정적 영향

 

 

✔️ Observation과 Problem Statement 

- 1Pager를 작성할 때 Observation과 Problem Statement 잘 구분하는 것 필요

 

예를 들어 길을 걷고 있는 게 갑지가 비가 내린다면, 비에 홀딱 젖게 될 것입니다.

이때, 비에 젖은 것은 문제가 아니라 데이터 적인 현상에 해당하고

문제가 되려면 비에 젖어 감기에 걸렸다와 같이 어떤 현상을 통해 문제가 발생된 것을 의미합니다. 

 

✔️Experiments Group : 대조군과 실험군으로 구성

 

✔️ Metric의 경우 보통 투입 지표와 산출 지표로 구성

 

✔️Trade-Off의 경우 실험을 진행했을 때 발생할 수 있는 예상 문제 상황을 적어놓는 것

 

✔️Andon: Andon신호를 판단할 수 있는 지표 설계가 필요. 정략적 구체적으로 지표를 설계하는 것이 좋음.

                 또한 문제 상황이 발생 됐을 때, 누구라도 A/B Test를 중단시키고, 기존 시스템으로 변경하는 것이 Andon의 목표

 

 

 

 

3) 최소 샘플 사이즈 결정과 실험 기간 설정

- 샘플 사이즈를 계산하기 위해, 다음과 같은 4가지의 정보 필요

 

1) $ \mu_{0} $(Base Value): 실험하고자 하는 지표의 과거 일반적인 평균 데이터

 

2) $ \mu_{1} $(Expected Value): $ \mu_{0} $가 얼마나 상승할지에 대한 값

MDE (Minimum Defectable Effect) :  $ (\mu_{1} - \mu_{0}) \over \mu_{0} $ =  $(120-100) \over 100 $  = 20% 

 

3) $ \alpha $(유의수준): 가설검정에서 귀무가성의 기각/ 수용을 판단하기 위한 기준

 

4) $1 - \beta $(검정력): 귀무가설을 올바르게 기각할 확률/ 귀무가설이 틀렸을 때 이를 정말로 틀리다고 할 확률

 

- 보통 $ \alpha $는 $1 - \beta $는 관습적으로 각각 0.05, 0.8을 사용

 

 

 

💡 최소 샘플사이즈를 구하는 계산식

 

$ n  $= $ {(z_{\alpha} + z_{\beta})^2 (p_{0}(1-p_{0}+p_{\alpha}(1-p_{\alpha}))^2}  \over {(p_{\alpha} - p_{0})^2} $

 

 

 

✏️ 기본 전환율 2%이고, 최소 0.2% 전환율(MDE = 0.1), $ \alpha $ = 0.05, $ \beta\ $ = 0.8일 때, 최소 샘플사이즈는?

((0.84 + 1.64)**2 * ((0.02)*(1-0.02) + (0.022)*(1-0.022))) / (0.022 - 0.02) **2
>>> 63219.96160000011

 

계산식에 대입한 결과, 구해진 최소 샘플은 63220명

 

만약 A/B Test를 수행할 웹의 DAU가 50000명이라 했을 때,

각 그룹(대조군과 실험군) 별로 해당하는 최소 샘플사이즈를 만족시키기 위해서는 최소 4일의 테스트 기간이 필요

 

 

 

 

4. 유의점

1) 훔쳐보기 문제(Peeking problem)

- 실험 도중 중간 결과를 확인하고, 실험을 중단하는 경우 발생하는 문제

 

- 1Pager 상에 실험기간을 7일이라 명시하였는데, 3일차에 p-value가 0.05 이하로 떨어졌다고 가정할 때,

기획자가 목표를 달성했다 생각하여 실험을 중단하는 경우를 의미.

 

- 훔쳐보기 문제로 인해 발생하는 문제는 기존 가설 검정에 영향을 줌과 동시에 대개 과대평가된 결과를 얻을 수 있다는 것

 

 

💡훔쳐보기 문제 예방법

1. 사전에 정의한 샘플 크기가 충분히 모일 때까지 기다림

2. 미리 검정력과 유의 수준을 설정하고, 결과 확인 시에 이를 엄격히 준수함

3. 연구자끼리 미리 데이터를 공유하지 않고, 결과를 조작할 여지를 제거

4. 만약 훔쳐보기가 어느 정도 필요하다면 일정 시점마다 엿보기를 허용 or 본페로니 교정 방법 시행

(본페로니 교정법 : 통계적 검정에서 가장 일반적으로 사용되는 다중 비교 교정 방법 중 하나)

 

 

 

2) 교란 변수(Confounding Factor)

- 실험 결과를 왜곡시키는 인자로써, 실험 대상자의 성별, 연령, 인종등과 같이 실험 대상자 특성 외에도, 실험 결과에 영향을 미칠 수 있는 다른 인자를 의미

 

 

 

💡교란변수 문제 조치방법

1. 랜덤화 그룹 분배: 각 그룹에 대해 무작위로 할당하는 방법 (고객 특성에 대한 교란변수를 조치하기 위한 방법)

 

 

 

 

2. 층화랜덤화 그룹 분배: 특정 요소로 구분된 세부 집단에서 무작위로 할당하여 샘플의 다양성을 보장. 특히, 특이집단의 특정요소의 분포 편차가 클 때 유용 (고객 특성에 대한 교란변수를 조치하기 위한 방법)

 

 

예를 들어 한 쇼핑몰에서 소수의 VIP 고객군이 존재하고, 일반 고객군과 편차가 크게 존재한다고 했을 때,

A, B 집단을 구분하기 위해서는 우선적으로 일반고객군과 VIP 고객군을 구분하고

일반 고객군에서 샘플링을 통해 A, B 구분 후에 VIP 고객군에서 샘플링을 통해 A, B로 구분하는 방법을 말함

 

 

 

3. Confounding Factor의 영향력 추정

 

- A/B Test를 실시하기 전에, 우리 서비스가 가지고 있는 Confounding Factor가 무엇인지 사전에 조사하고 제거하는 방법

 

예를 들어 우리 서비스의 경우 AOS, IOS 별로 편차가 크다 or 신규 고객과 기존 고객끼리의 편차가 크다 등과 같이 Confounding Factor를 리스트 업 해보는 것.

사전에  목표 변수에 대해 신규 고객과 기존 고객간의 큰 편차가 존재하는 것으로 조사되면,  실제 실험 진행 시에 우리 서비스에는 고객 가입 시기에 따른 교란변수가 존재함으로 실험 진행시에 주의한다거나 미리 따로 그룹화를 진행 or 제거하는 방향으로 실험을 설계

 

 

 

 

3) 종료된 A/B Test 후속 모니터링

- 통계적 유의성 및 큰 이슈가 없어서 실험을 성공적으로 종료했다고 가정했을 때, 기획자는 바로 다음 실험을 진행하는 것이 아니라 종료된 A/B Test의 후속 모니터링을 진행해야 됨

 

 

💡 후속 모니터링이 필요한 이유

1. 종료된 A/B Test 결과를 분석하여 얻은 통찰력은 향후 실험 전략 및 제품 개발에 큰 도움이 됨

 

2. A/B Test가 종료된 것만으로는 출시 이후의 성능 변화를 예측할 수 없음. 따라서 종료된 A/B Test의 결과를 지속적으로 모니터링하여, 제품 또는 서비스의 성능 변화를 파악하고 개선점을 찾아내는 것이 중요

 

ex) 실험 기간 동안 긍정적인 효과가 발생하였는데, 실험 종료 후에도 계속 긍정적인 효과를 나타내는지 또는 일시적 효과 이후 하락했는지 확인 필요

 

3. 종료된 A/B Test 결과를 모니터링하면 실험 결과에 영향을 미칠 수 있는 외부 요인을 파악할 수 있음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형