프로덕트 분석

실험하기 - A/B Test의 단계별 주의사항과 Action

ISLA! 2024. 3. 30. 00:13

📍본 포스팅은 [인프런] 카일스쿨의 PM을 위한 데이터 리터러시 강의를 기반으로 요약 / 실습했습니다.

 

실험을 시작하는 기준

  1. 충분한 사용자 수가 존재
  2. 평가 지표를 정의할 수 있는 경우
  3. 사용할 수 있는 리소스가 존재하는 경우(개발, 데이터)
  4. 실험군과 대조군이 서로 간섭하지 않는 경우
  5. 법적인 이슈가 없는 경우
  6. 실험을 통해 배울 마인드가 존재하는 경우

 

무엇을 실험해야 할까?

 

👉 어떤 실험이 비즈니스 임팩트가 큰지 확인하기

  • 제품 관점에서 제일 중요한 퍼널을 개선하는 것을 먼저 진행(퍼널 역순)
  • 데이터로 실험할 영역에 하루 몇 명이 접근하는지 확인한 후, 유저 몇 명 정도에게 영향을 미치는지 확인해야 함 → 실험 기간을 결정할 때도 영향을 미침

 

📑 주요 실험 소재 예시

  • 제품 : 특정 화면에서 A라는 기능이 있는 경우와 없는 경우 전환율 차이는?
  • 제품 : 어떤 문구를 사용할 경우 전환율이 높을까?
  • 마케팅 : 푸시 메시지를 어떻게 보내야 전환율이 높을까?
  • 알고리즘 : 어떤 추천 시스템이 유저에게 더 잘 추천했다고 볼 수 있을까?
  • 프로모션 : 어떤 고객에게 할인 쿠폰을 줘야 효과적일까?

 

A/B Test 단계

🏁 가설 탐색 → 실험 진행 여부 결정 → 실험 설계 → 실험 시작(기능 배포) → 실험 분석 →실험 회고

 

  • 실험 진행 여부 결정 : 실험을 통해 해결하려는 문제가 확실한가?
  • 실험 설계 : 목표, 지표, 실험 기간, 실험 방식, 멘털 시뮬레이션 & 실험을 위한 데이터 로그 설계
  • 실험 시작 : 데이터가 잘 들어오는지 확인, 결과 분석 준비
  • 실험 분석 : 결과 지표 확인, p-value 확인, 결과 해석
    • 사후 분석(Segment 분석과 같이) 하기도 함 → 실험 종료 결정
  • 실험 회고 : 실험에서 배운 것을 공유하고, 이후 Action Plan 수립

 

🧐 AB Test, 언제 해야 할까? (꼭 필요한지 고민해 보자)

  • 비즈니스 임팩트가 예상되는데 불확실성이 존재하는 경우
  • 대규모 변경이 일어나는 경우(버전 up, 화면 변경 등)
  • 새로운 기능을 론칭할 경우

 

🧐 [실험 타깃] A와 B는 어떻게 나눌까? 어떤 유저에게 Test를 진행할까?

  • 전체 유저에게 특정 비율(50:50)로 진행
  • 신규 유저만을 대상으로, 실험군과 대조군을 나눠서 진행
  • 특정 페이지에 진입한 유저들에게 특정 비율로 진행
  • 전체 중 20%에게 실험군과 대조군을 일정 비율로 진행한 후, 전체 확대를 고민
  • 특정 기능을 사용한 유저군을 대상으로 진행 

 

🧐 [지표] 실험을 통해 어떤 지표를 개선하고 싶은가?

  • Success Metric(Primary Metric) : 기능의 성공을 확인할 수 있는 성공 지표
  • Sub Metric(Secondary Metric) : 기능의 성공을 보조적으로 확인할 수 있는 지표
  • Guardrail Metric(Counter Metric) : 악영향이 미치면 안 되는 지표

 

🧐 [실험 기간] 실험을 언제, 어느 기간 동안 진행할 것인가?

  • 실험 기간은 실험에 통계적으로 유의미함이 검증될 수 있는 샘플 수에 따라 달라짐
  • (보통) 최소 2주는 지나야 샘플이 모이는 경우가 많다고 함
  • 단, 실험 기간동안 외부 요소에 영향을 받는 시기가 적어야 함(프로모션, 연휴 등)

 

🧐 [통계] 입증하려는 가설이 맞을까?

  • 빈도주의 접근과 베이지안 접근이 있음 → 처음에는 이해하기 쉬운 빈도주의 접근법을 택함
빈도주의 접근 베이지안 접근
일반적인 통계 분석 방법 빈도주의 대비 유연한 판단 방법
다르다 / 다르지 않다를 검정 '얼마나' 다른지를 통계적으로 예측
p-value 등 알아야 하는 통계 개념 체크 확률 개념으로 A보다 B가 몇 % 좋다라는 결과가 나옴
신뢰성 있는 결과를 위해 몇 가지 규칙을 만족해야 함 판단 기준이 모호함(사전 확률에 주관적 믿음이 반영됨)
많은 산업에서 사용해서 이해하기 수월 이해하는데까지 러닝 커브가 존재

 

  • 귀무가설 : '차이가 없다'
  • 대립 가설 : 통계적으로 '차이가 있다'
  • p-value : 통계적으로 얼마나 유의미한지를 설명하는 값으로, 귀무가설이 참이라고 할 때 관찰한 결과나 그보다 극단적인 결과가 우연히 발생할 확률

 

🧐 [결과 분석] 실험 기간이 종료되면 무엇을 해야 할까?

  • 가드레일 지표 확인
  • Success Metric 확인 → 유의미한 상승이 있는가?
  • p-value 확인 : 0.05(5%) 미만이면 귀무가설을 기각 → 두 집단의 차이가 있음(실험이 통계적으로 유의미한 영향을 미침) → 배포!
  • 결과가 나타나는 양상 : 초두 효과 vs. 신기 효과

 

초두 효과(Primary Effect) 신기 효과(Novelty Effect)
최초엔 반응하지 않고, 시간이 지날수록 반응 최초에 신기해서 사용함 → 안정화에 시간이 걸릴 수 있음

 

 

🧐 [결과 분석] 실험 결과가 애매한 경우(결과가 NULL이라면?)

  • A와 B를 세그먼트를 나눠서 분석해 보기
    • 신규/기존 사용자
    • 인구통계 기준으로
    • 특정 이벤트를 경험한 사람
    • 방문 빈도
    • 특정 유입 채널 등
  • 실험 전후로 A와 B가 어떻게 변했는지 확인
    • 예) 특정 이벤트를 더 많이 한 집단이 있는가?

 

  • A/A Test 시도
    • 트래픽만 분할하고 화면은 그대로 두고 실험 진행
    • 자연 발생하는 Variation을 확인할 수 있음
    • A/A Test로 실험 결과를 확인할 때 기준 선을 만들 수 있음
  • Decision Tree로 기준을 세우고, 프로세스를 다시 짚어보기

Decision Tree


A/B Test를 잘 진행하기 위한 규칙

🎯 실험 전 고려할 규칙

(1) 실험의 목표가 무엇이고, 어떤 지표가 중요한지 미리 결정하기

(2) 실험의 결과 멘털 시뮬레이션하기

  • 실험이 잘 되었을 땐 어떤 행동을 추가적으로 할까?
  • 실험이 잘 안 되었을 땐 무엇을 해야 할까?
  • 실험 결과가 Null이라면 무엇을 해야할까? (모호한 케이스도 생각해 본다)

 

(3) 회사에 임팩트를 줄 수 있는 실험하기 : 미시적인 영역보다는 비즈니스 임팩트를 우선시하여 실험을 선택

(4) 타기팅할 잠재 고객 구체적으로 정의하기 : 대상으로 하는 것은 음엔 가능하나, 점점 구적으로 정의하는 것이 필요

(5) 필요한 표본 크기, 최소 탐지 기간 미리 추정하기

  • AB test period Calculator 활용 : 보통 Baseline이 낮고, Minimum improvement가 낮을수록 더 많은 표본이 필요함

(6) 처음부터 실험군과 대조군을 50:50으로 배포할 필요는 없음 : 점진적으로 전체 중 5%씩 배포해서 확인하는 것도 가능함

(7) 답을 정하고 실험하지 않기 : 언제나 답이 틀릴 수 있음을 인지하기

 

🎯 실험 중 고려할 규칙

(1) 실험이 진행되는 기간에 사내 전파하기 : 마케팅팀, CS팀에게 전파해서 실험에 영향받는 이슈가 있다면 바로 확인할 수 있는 파이프라인 마련

(2) 계획한 전체 기간에 테스트를 진행한 후, 끝나고 통계적 유의성 확인하기

  • 중간에는 데이터가 잘 들어오는지 확인하고, 해석은 실험 기간이 끝난 후에!

(3) 실험 중간에 결론 내지 않기 : 가드레일 지표가 급격히 떨어진 것이 아니라면 지켜보자

 

🎯 실험 후 고려할 규칙

(1) 엄청 좋아 보이는 숫자는 의심하기 : 계산상의 실수를 확인

(2) 실험에 대해 잘 기록하고, 배운 내용도 기록하기

  • 실험 문서(템플릿) 만들고, 배운 내용을 조직에 공유하기

(3) 분석 자동화 진행하기

  • 실험 분석에 한정해 자동화하는 스크립트 개발 → 추후 실험 플랫폼을 만들 때 활용 가능
  • 리소스가 부족하면 SaaS를 더 적극적으로 이용
728x90