본문 바로가기

기획이란/개념 정리

A/B test 분석 기법 이해하기

728x90

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 진행 시 활용하면 좋을 것 같다.