pm/TIL

[Chapter 08-04] 서비스 기획업무 A~Z (AB Test)

support_u 2023. 9. 22. 05:08

1️⃣ AB Test

🔷 AB Test란?

  • 임의로 나눠진 두 집단에게 서로 다른 UI/UX등을 제시하고, 두 집단 중 어떤 집단이 더 높은 성과를 보일지 정량적으로 평가가하는 방식
  • 대부분 IT 기업에서 데이터 기반 의사 결정 도구로 활용하고 있음
  • 대표적인 데이터 기반의 의사결정 및 서비스 기획 방법

 

🔷 AB Test를 하는 이유

  • 시장이 급변하기때문에 전문가의 의견을 맹신할 수 없다.
  • 쉽고 빠르게 테스트할 수 있는 환경이 구축되어 있다.
  • 아무리 뛰어난 인재라도 틀릴 확률이 높기때문에, 데이터를 보고 확인하는게 효율적이다.

 


2️⃣ AB Test 진행 Process

🔷 목표 설정

  • AB Test 진행 시 반드시 테스트 목표를 구제화하여야한다. 명확하고 구체적인 목표가 있어야 유의미한 지표 선정 및 가설 설정이 가능해 진다.
  • 명확한 목표를 세웠다면, 그에 맞는 지표를 설정한다. 
    • 서비스 가입자를 늘리고 싶다면, 서비스 가입전환율
    • 버튼 클릭 인원을 늘리고 싶다면, 버튼 클릭 전환율
  • 지표 설정 시, 분자와 분모를 명확히 해야한다
    • 서비스 가입 전환율 분모를 인스톨 시 지표를 사용할 것인가, 가입페이지 방문자 기준으로 지표를 측정할 것인가

 

🔷 가설 수립

  • 어떤 일을 해야 지표가 개선 될 수 있을지에 대한 가설을 수립한다
  • 가설을 기반으로 어떻게 시험을 진행할지, 무엇을 학습할지 결정 되므로 신중하게 가설을 세워야한다.
  • 가설을 결정하기 전
    • 가설이 목표와 연결되어 있는지 반드시 확인
    • 해당 가설과 관련한 정보를 충분히 탐색해야함
    • 모든 AB Test 진행 시 가설과 실험을 통한 결과를 기록하고,  AB Test 시작 전에 꼼꼼히 파악하여 자원 낭비를 최소화 해야 함.
넷플릭스
가설 : 아트웍이 유저의 CTR에 영향을 미칠 것
실험 : 여러가지 아트웍을 사용하면서 AB Test 진행
결과 : 아트웍에 유저 CTR에 영향을 미치니 다양한 아트웍을 제공

 

🔷 실험 설계

🔸 지표 설정

📌 지표 종류

  • 합계지표(sum)
    • 양을 알수 있으나 비율을 알 수 없어서 잘 사용하지 않음
  • 평균이나 중앙 값(mean. median)
    • 함정에 빠지지 않도록 주위하기위해 중앙값, 최빈값등을 확인하여 아웃라이어 존재 여부를 파악해야 함.
  • 비율(0~1)
    • 전환률로 AB Test 시 가장 많이 사용하는 지표
    • 분모에 크게 관심을 써야 함.

📌 지표 설정

  • 민감도(Sensitivity)와 강건성(Robustness)
    • 아무것도 변하지 않았는데 들쑥날쑥한 지표 => 민감도가 너무 높고 강건성이 낮아 적적한 지표가 아님
    • 어떠한 변화를 가해도 크게 변하지 않는 지표 => 민감도가 너무 낮고 강건성이 너무 높아 적절한 지표가 아님

 

🔸 타겟 유저

어떤 유저 대상으로 실험을 수행할 것인가?

실험군 : 새로운 기능을 넣거나 개선이 이뤄진 상태
대조군 : 기존 상태
  • 실험군의 모수 설정
    • 많은 유저가 사용하고 있는 서비스라면, 실험의 부작용을 최소화 하기위해서 실험군을 5~10%로 설정하는 경우가 많음(위험도에 따라 다름)
    • 반면, 아직 초기 단계의 스타트업이라면, 실험군이 많이 없기때문에 유의미한 실험 모수를 빠르게 확보하기 위해서 50% 가량으로 진행하기도 함
  • Sample Size
    • 클 수록 신뢰도가 올라감
    • 무한한 리소스가 있는 것이 아니니, 베리에이션 별로 적정한 샘플 사이즈를 구하는게 중요
    •  AB Testing sample size calculator
      • Baseline Conversion Rate : 대조군의 전환률(현실)
      • Minimum Detectable Effect(MD) : 최소 측정 가능한 효과, 낮을 수록 정밀하여 샘플 사이즈가 많이 필요함
      • Statistical Significance : 얼마나 유의미한 통계인가, 보통 95% 추천하지만 샘플사이즈가 적다면 90%도 가능

 

🔸 Unit of Diversion

어떻게 나눌 것인가?

  •  AB Test 시 두 그룹이 온전히 랜덤이어야만 두 그룹의 차이점이 stimulus에 의한 변화라고 확실할 수 있게됨
  • 자주 사용되는것
    • id : 안전성이 높음(홀,짝)
    • event : 유저 특정행동을 했을때 무작위 A, B 결과를 보여줌. 다만, 서비스일관성이 떨어질 수 있기 때문에 눈치채지 못하거나 다시 들어가지 않을 곳에 사용.

 

🔸 Unit of Analysis

AB Test를 통해 영향을 주고자 하는 최소 단위

  • 지표의 분모로 사용
    • 지표가 ARPU(Average Revenue Per User: 총 구매액/회원 수)라면 분석단위는 회원
  • 분기단위를 정할때는 분석 단위와 일치 시키는 것을 바람직함

 

🔸 Duration

  • 보통 기간이 길 수록 정확성이 높아진다
  • 명절과 같은 특수이벤트 기간이 있다면 유의하며 분석해야한다

 

🔸 Variation 설정

  • 실험군과 대조군에게 어떤 것을 다르게 보여줄 것인가?
  • 둘의 차이가 너무 복합적이면 유의미한 결과 해설이 어려워짐 => 다양한 요소를 한번에 보여주지 말것!
  • 최대한 실험 단위를 쪼게서, 영향력을 확인하고 싶은 부분을 제외하고는 통제하는 것이 좋다

 

🔷 실험 진행

  • AB Test의 분기가 제대로 이뤄지고 있는지 파악
    • 50:50 비율을 설정했는데 너무 다르다면 확인할 필요가 있음
  • 실험 기간이 너무 짧은경우, 유의미한 결과값을 얻을 수 없다.
  • 지속적으로 데이터를 확인하면서 통계적 유의미성이 확보가되었는지 확인해야 한다.

 

🔷 결과 분석

  • 통계적 유의성 확인
    • 실험군, 대조군의 각걱의 모수와, 전환 유저 값을 통해서 통계적 유의미도를 계산
    • p-value 계산 등 직접할 수도 있으나 계산기 이용을 추천
      • 0.05보다 낮을 경우에 유의미성이 의미가 있음
    • 통계적 유의미도가 충분히 확보되지 않은 상태에서 섣부른 결론을 내서는 안됨
  • 불변지표 확인
    • 실험 과정이 문제가 없었는지 점검하기 위해서 실험 과정에서 변하면 안되는 수치인 불변지표를 확인
    • 불변지표가 많이 바꼈다면 AA테스트를 진행

 

3️⃣  AB Test 시 주의하애 할 사항들

  1. AB Test는 최적화 도구일 뿐 큰 그림을 보여주지 못한다.
    • 완전히 새로운 기능을 추가하거나, 훨씬 높은 단계의 의사결정에 관해서 효율적이지 않음
    • 산을 올라가는 좋은 방법을 알려주지만, 올라가야 하는지 말해주지 못함
  2. 대부분의 가설이 틀리다는 것을 명심
    • 가설이 틀리는 것에 두려움을 갖는다면, 올바른 자료해석이 불가능하다.
    • 실험을 통해 잘못됨 가설이었다는것을 증명하는 것도 매우 큰 성과이다.
    • 데이터를 보고 중립적으로 결과를 판단할 줄 알아야함.
  3. 실험을 너무 빨리 끝내면 안된다
    • 유의미성이 낮은 상황에서 실험을 조기 종료하면, 틀릴 가능성이 높다
  4. 너무 많은 변인을 한꺼번에 테스트해서는 안되다.
    • 실험 결과에 영향을 미친 변인을 해석하지 못할 수 있다.

 

4️⃣ AB Test casestudy(goodui.org)

  AB Test win
airbnb 별점을 별로 보여주는 것 숫자로 보여주는 것 둘 중 어느게 예약 전환율이 높을까? 별점이 숫자로 노출하는것이 더 높은 효율 발휘
bol.com 별점을 준 유저 리뷰의 개수를 보여주는 것과 안보여주는것 어느게 구매 전환률이 높을까? 리뷰 수를 보여주는 것이 전환률이 높았음
소셜 커먼스 위 사례를 보고 리뷰수와 별점을 숫자로 높이면 구매 전환률이 올라갈 것임을 예측 가능함
airbnb 업체의 가용일정을 노출하고 원클릭으로 여행일정을 입력하는 것이 클릭 전환률을 높힐 수 있지 않을까? 많은 사람들이 사용하지 않아 그 전으로 롤백

왜 실패했나?
그전에 먼저 데이터의 입력을 받고 넣으면 좋지 않았을까?
amazon 상품 구매 시 한 번 결제 / 정기 결제 선택 시 정기결제가 기본 값이라면 정기 결제률을 높힐 수 있지 않을까? 유저의 사용성을 헤치고, 효울이 낮아 롤백됨.
일반, 전체 결제률이 낮아졌을 것으로 예상 됨.
if. 정기배송을 경험해 본 유저들에게만 저렇게 뜨게 되도록 설정되면 어땠을까?
netflix 가입하는 이메일을 첫 페이지에서 입력하여 단계를 줄인다면 가입 전환률이 오르지 않을까? 최 앞단에서 받는 것이 가입전환률이 올랐음
이메일이 효율이 좋았다면 비밀번호도 같이 첫 페이지에 있다면 더 올라가지 않을까? 비밀번호를 입력하는 것에 부담을 느꼈는지 전환률이 낮아 롤백됨.
❗ 하나의 인사이트로 끝내지 말고 배우고 다른 게 적용하는 자세가 필요함
airbnb 예약 버튼을 상단으로 올린다면 예약 전환률을 올릴 수 있지 않을까? 실제로 예약 전환률이 올라 채택.
버튼의 위치 값도 영향을 줬겠지만, 아래 하이퍼링크도 같이 변경이 되어 완전 유의미한 사례일지 의문이 들어 나눠서 적용하는 것이 어땠을까>?
booking.com 클릭 전부터 datepicker가 자동으로 노출된다면 검색전환률이 높아지지 않을까? datepicker가 열려져있어 사용자 경험이 올라 가설이 채택
Etsy 핸드메이드 상품을 파는 만큼 배송 도착이 느린 것에 부담을 느끼는 사용자에게 현재 구매시 예정 도착시간을 가시성 있게 보여주면서 긴급도를 부여하면 구매 전환률이 높아지지 않을까? 전환률이 높아짐
❓ 데드라인을 알려는것이 좋을까 남을 시간을 알려주는 것이 좋을까?
상품 페이지에 구매수량을 함께 표기하여 수량 선택권을 늘려준다면 수익이 늘지 않을까? 수익이 늘어나면서 채택
amazon

상품 구매시 바로 구매버튼을 삭제하면 ARPPU(Average Revenue Per Paid User:구매유저 대비 평균 수익), AOV(Average Order Value:한번에 얼마나 구매하는지), ABS(Average Basket Size: 장바구니 크기)가 다 높아질 것이다.
❓카드에 넣어서 구매하는 사람이 많아져서!
대조군이 이김.
유저의 경험이 낮아져서 그랬을 것이라 예상 함.
3가지 보증 내용을 아이콘으로 추가하면 구매 전환률을 높히지 않을까? 전환률을 높이면서 채택