본문 바로가기

PM 스쿨/학습 일지

[제로베이스 PM 스쿨 21기] 4주차 학습일지 1: A/B Test 이해하기

1. A/B test란?

A/B 테스트는 마케팅과 웹 분석에서 기존 요소로 구성된 A안과 특정 요소를 변형한 B안을 비교해 어느 것이 더 나은 성과를 나타내는지 측정하는 종합 대조 실험(controlled experiment)

  • 임의로 나눠진 두 집단(A/B)에게 서로 다른 UI/UX를 제시하고 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 정량적으로 평가하는 방식
  • 대표적인 데이터 기반의 의사결정 및 서비스 기획 방법
  • 대부분의 IT 기업에서 데이터 기반 의사결정의 도구로 활용
    • google, amazon, facebook: 매년 10,000 개의 실험 진행
    • bing: 매주 300개 이상의 실험이 완료됨
    • Uber: 1,000개 이상의 실험 상시 진행
    • Airbnb: 500개 이상의 실험 상시 진행

AB 테스트 예시

 

 

2.  A/B Test를 하는 이유

  • 시장이 빠르게 급변하기 때문에 누구도 예측하기 어렵고, 전문가의 의견도 틀릴 수 있음. 정답은 아무도 모름
  • 쉽고 빠르게 테스트할 수 있는 환경에서 경험 있는 개인에게 의지하는 것은 너무 위험하거나 너무 비효율적임
  • 아무리 뛰어난 인재들이 모여 만든 가설도 맞을 확률이 매우 낮음
    • 최고의 인재가 모인 Google, Microsoft 등의 기업에서 하는 A/B Test 실험의 10~30%만이 긍정적인 결과를 얻음

3.  A/B Test 진행 과정

1. 목표 설정

  • A/B Test를 진행할 때 반드시 테스트의 목표를 구체화해야 함. 명확한 목표가 있어야 유의미한 지표 선정 및 가설 설정이 가능함
  • 명확한 목표 설정 후 그에 맞는 지표를 설정 
    • 서비스 가입자를 늘리고 싶다면 서비스 가입 전환율 지표
    • 버튼 클릭 인원을 늘리고 싶다면 버튼 클릭 전환율 지표
  • 지표 설정 시 분자와 분모를 명확히 설정함
    • 동일한 가입 전환율이라도 분모가 가입 페이지의 방문자 수인지, 인스톨 유저인지에 따라서 값이 크게 차이 날 수 있음

2. 가설 수립

  • 목표와 지표를 설정한 후 어떤 일을 해야 해당 지표가 개선될 수 있을지에 대한 가설 수립 필요
  • 가설을 기반으로 어떻게 실험을 진행할지, 무엇을 학습할지가 결정되므로 신중하게 가설 설정
  • 가설을 결정하기 전에 해야 할 것
    • 가설이 목표와 얼라인되는지 반드시 확인해야 함
    • 해당 가설과 관련한 정보를 충분히 탐색해야 함 신입 기획자로 업무를 시작할 경우 이미 회사에서 진행되었던 다양한 실험을 꼼꼼히 확인하고 파악해야 자원 낭비를 줄일 수 있음

3. 실험 설계

  • 목표한 지표 설정
    • 지표의 종류: 
      • 합계 지표(sum)
      • 평균(mean) 또는 중앙값(median): 가장 자주 쓰는 평균의 함정에 빠지지 않도록 주의 필요
        • 평균 길이 1m 
          • A: 1m, 1m, 1m, 1m, 1m
          • B: 5cm, 5cm, 5cm, 5cm, 5cm
        • 중앙값, 최빈값(mode) 등을 확인해 아웃라이어 존재 여부를 파악해야 함
          • 평균: 1m
          • 중앙값: 5cm
          • 최빈값: 5cm
        • 비율(Q-1)
          • 결제 완료 횟수/결제 페이지 진입 횟수
    • 지표 설정:
      • 민감도(Sensivility)와 강건성(Robustness)
        • 아무 변화도 가하지 않았는데 들쑥날쑥하는 지표는 강건성이 낮아 실험에 적절한 지표라고 볼 수 없음
        • 어떤 변화를 가해도 크게 변화하지 않는 지표는 충분히 민감하지 못해 적절한 지표라고 할 수 없음
  • Target Users: 어떤 유저 대상으로 실험을 수행할 것인가?
    • 실험군의 모수 설정
      • 많은 유저가 사용하고 있는 서비스라면 실험의 부작용을 최소화하기 위해 실험군을 5~10%로 설정.
        반면, 아직 초기 단계의 스타트 없이 라면 유의미한 실험 모수를 빠르게 확보하기 위해 50%가량으로 진행하기도 함
      • Sample Size
        • 샘플 수가 많을수록 결과의 신뢰도 상승
        • 다양한 A/B testing sample size calculator로 쉽게 계산 가능
          • 구글 등 다양한 사이트에서 쉽게 계산 가능
          • Baseline Conversion rate(통제군): 우리가 아무 실험도 진행하고 있지 않을 때의 결제 또는 전환율 등 우리가 개선을 목표로 하는 것에 Conversion rate 현실이 어떤지 입력
          • Minimum Detectable Effect: 최소 측정 가능 효과. 측정할 수 있는 가장 최소의 변화가 몇인지를 입력.(낮으면 낮을수록 정밀한 실험이 필요하기 때문에 실험군의 크기가 커짐 
          • Statistical Significance(통계적 유의도): 보통 90~95%로 설정
          • 샘플 사이즈는 Per Variation: 실험군이든 대조군이든 가장 작은 실험군의 사이즈가 어느 정도인지 알려줌
  • Unit of Diversion: 어떻게 나눌 것인가?
    • A/B test 진행 시 A와 B가 온전히 랜덤이어야만 두 그룹의 차이점이 Stimulus에 의한 변화라고 확신할 수 있음
      • A: 구매하지 않은 유저(대조군), B: 한 번 이상 구매한 유저(실험군)
      • 구매 프로세스 개선 실험 진행 후 A보다 B의 구매 전환율이 높게 나왔다고 해서 유의미한 실험 결과가 될 수 없음
    • 자주 사용되는 것:
      • Id: 안정성이 높음(홀수, 짝수 등)
      • event: 유저가 특정 행동을 했을 때 무작위로 A 또는 B의 결과를 보여줌(유저 1 : 이벤트 n)
        가장 Randomize 된 샘플을 뽑을 수 있으나, 서비스의 일관성이 떨어질 수 있기 때문에 유저는 눈치채지 못할 변화에만 사용
  • Unit of Analysis: A/B test를 통해 영향을 주고자 하는 최소 단위
    • 지표의 분모로 사용
      • ARPU(총 구매 액/회원 수)라면 분석 단위는 회원
    • 분기 단위를 정할 때는 분석 단위와 일치시키는 것이 바람직함
      • 만약 분석하고 싶은 단위가 '회원'인데, 분기 단위가 '페이지 뷰'로 분기되어 있다면 한 명의 회원이 여러 개의 페이지 뷰를 만들 수 있음. 이 경우 각 페이지 뷰는 동일 회원이 만들었을 가능성이 있기 때문에 서로 확률이 연관되어 있고 독립성이 없으므로 데이터가 왜곡될 가능성이 높음
  • Duration
    • 보통 기간이 길수록 정확성이 높아짐
    • 명절과 같은 특수한 이벤트가 기간에 포함될 경우 결과 분석에 유의해야 함
      • 이커머스의 구매 전환율의 경우 명절 전에 높아지고 명절 기간에 급격히 떨어지는 경우가 많음
  • Variation 설정
    • 어떤 것을 다르게 보여줄 것인가?
    • 둘의 차이가 너무 복잡하면 유의미한 결과 해석이 어려워짐
    • 최대한 실험 단위를 쪼개서 영향력을 확인하고 싶은 부분을 제외하고 통제하는 것이 좋음

4. 실험 진행

  • A/B test의 분기가 제대로 이뤄지고 있는지 파악해야 함
  • 실험 기간이 너무 짧을 경우 유의미한 결괏값을 얻을 수 없을 가능성이 높음
  • 지속적으로 데이터를 확인하면서 통계적 유의미성이 확보되었는지 확인 필요

5. 결과 분석

  • 통계적 유의성 확인
    • 실험군, 대조군 각각의 모수와 전환 뷰어 값을 통해 통계적 유의미도를 계산함
    • P-value 계산 등은 프로그램을 통해서 쉽게 계산 가능
      • 대체로 0.05보다 낮을 경우 유의미함
    • 다양한 A/B test 통계적 유의미도를 계산할 수 있는 계산기가 많이 있음
    • 통계적 유의미도가 충분히 확보되지 않은 상태에서 섣부른 결론을 내서는 안 됨
  • 불편지표 확인
    • 실험 과정이 문제 없었는지 점검하기 위해 실험 과정에서 변하면 안 되는 수치의 '불편지표' 설정 및 확인

 

4. A/B test 시 주의해야 할 사항들

  1. A/B testing은 최적화 도구일 뿐 큰 그림은 보여주지 못함
    1. 완전히 새로운 기능을 추가하거나 훨씬 높은 단계의 의사 결정에 대해서는 효과적이지 않음
      (산을 올라가고 있는지는 알 수 있지만, 어느 산을 올라야 하는지는 알 수 없음)
  2. 대부분의 가설은 틀린다는 것을 명심해야 함
    1. 스스로 만든 가설이 잘못된 가설일 수 있다는 두려움이 생긴다면 올바른 자료 해석이 어려움
    2. 실험을 통해 잘못된 가설이었다는 것을 증명하는 것도 큰 성과이므로 두려움 없이 결과를 직면해야 함
  3. 실험을 너무 빨리 끝내면 안됨
    1. 많은 기업에서 공들여 A/B test를 진행하지만 정작 실험 결과의 통계적 유의미성이 낮은 상황에서 실험을 조기 종료하는 경우가 많음. 여유를 가지고 실험 결과를 기다려야 함
  4. 너무 많은 변인을 한꺼번에  테스트하면 안 됨
    1. 한 번에 여러 가지 테스트를 진행하고자 욕심부릴 경우, 정작 실험 결과에 미친 변인이 정확히 무엇인지 해석할 수 없게 됨

 

 

5. A/B test Case Study 

goodui.org : 다양한 기업의 A/B test를 체크해 주는 사이트 

 

Check Point:

1. 특정 가설 또는 실험이 실패한다 하더라도 실험 자체가 의미 없는 실험이었는지, 어떤 부분을 개선하면 유의미한 결과를 얻을 수 있는지를 한 번 더 깊이 있게 생각하는 것이 중요함

2. 스터디 케이스를 보면서 이 프로덕트를 담당하는 PO는 왜 그런 가설을 세웠을까? 어떤 결과가 나왔을까? 실험이 성공했다면 다음에는 어떤 것을 강화할 수 있을까? 실패했다면 왜 실패했을까? 어떤 점을 보완했으면 실험이 성공했을까? 등 계속해서 고민하는 시간을 가져야 함

 

 

Airbnb

1. 유저 별점의 점수를 함께 노출하는 것이 더 높은 효율을 발휘함

2. 업체의 가용 일정을 노출하고 원클릭으로 여행 일정을 입력하는 테스트를 진행했으나, 가설은 실패함

 

Amazon

 1. 정기 결제를 늘리기 위해서 정기 결제를 기본 선택값으로 변경했으나, 효율이 낮아 원래대로 회귀(2020.02.24)

  • 얻을 수 있는 인사이트
    • 정기 배송을 한 번이라도 해 본 유저를 대상으로 유저군을 설정하면 어땠을까?
      (정기 배송을 단 한 번도 해본 적이 없는 유저(정기 배송을 원하지 않는 유저)에게는 정기 배송을 디폴트 값으로 제공 X)

 

booking.com

1. 부킹닷컴은 예약 날짜 설정 date picker가 자동으로 노출되도록 변경했고 높은 검색 전환율을 보여 유지함(2019.03.06)

  • 어차피 사용자가 모두 입력해야지만 검색이 가능한 기능임
  • date picker가 자동으로 노출되면서 사용자는 쉽고 빠르게 날짜를 입력할 수 있게 되었음

 

나의 생각

AB test를 정말 많은 기업에서 활용하고 있다는 사실을 알게 되었고, 유의미한 가설을 도출하기 위해서는 최소한의 변수 안에서 AB test를 진행하는 게 정말 중요하다는 것을 배울 수 있었다. 정량적으로 확인할 수 있는 분석 사이트도 알 수 있어서 향후 A/B test 진행 시 활용하면 좋을 것 같다.