[챌린지] 프로덕트 데이터사이언스 - 6회차

Arin lee·2025년 1월 24일

contents

  • A/B 테스트에서 실질적 유의미성과 통계적 유의미성
  • Power
  • A/B 테스트 분석 Framework

summary

1. A/B 테스트에서 실질적 유의미성과 통계적 유의미성

1.1 실질적 유의미성(Practical Significance):

  • 비즈니스적인 맥락에서 “이 차이가 실제로 의미 있는가?“를 평가하는 기준입니다.
  • 주관적이고 비즈니스 목표에 따라 다릅니다.
  • 예: “전환율이 0.5% 이상 증가해야 매출 목표를 달성할 수 있다.”

1.2 MDE(Minimum Detectable Effect):

  • 실험 설계 단계에서 감지 가능한 최소한의 효과 크기를 나타내는 통계적 계산 결과입니다.
  • MDE는 실질적 유의미성을 기반으로 계산됩니다.
  • 예:
    • “샘플 크기와 변동성을 고려했을 때, 전환율이 최소 0.5% 이상 증가해야 효과를 감지할 수 있다.”
    • “0.5% 이상 증가를 감지하려면 샘플 크기가 10,000명이 필요하다.”

1.3 MDE를 미리 정하는 경우: 비즈니스 목표 기반 MDE 설정

  • MDE는 일반적으로 비즈니스 목표와 실질적 유의미성에 따라 사전에 정의합니다.
  • 언제 MDE를 미리 정하는가?
    • 명확한 비즈니스 목표가 있을 때:
      • 예: “GMV를 최소 $50 이상 증가시켜야 프로젝트의 ROI가 긍정적이다.”
    • 기대 효과가 정해져 있을 때:
      • 이전 실험 결과나 업계 표준 데이터를 기준으로 MDE를 설정.
  • 예시: GMV 실험
    • 비즈니스 목표:
      • Toss Pay를 도입해 결제 과정에서 사용자 편의성을 높이고 GMV를 증가시키는 것이 목표
      • 실질적 유의미성: GMV가 $30 이상 증가하면 비즈니스적으로 의미 있음
    • MDE 설정: $30로 사전 정의
  • 이 경우, MDE는 비즈니스 목표에 따라 설정된 값이며, Power과 Significance Level (0.05 등)을 만족하는 샘플 크기를 계산하는 데 사용됩니다.
  • 사전 정의된 MDE는 실질적 유의미성 기준을 반영해야 함

1.4 MDE를 계산으로 추정하는 경우: 데이터 기반 MDE 추정

  • MDE를 사전 설정하지 않는 경우, 실험 설계 과정에서 데이터의 특성과 샘플 크기를 고려하여 계산할 수 있습니다.
  • 언제 MDE를 계산하는가?
    • 기존 데이터에서 변동성(분산)과 표준 편차를 알 수 있을 때:
      • 예: “기존 GMV 데이터를 사용해, 실험에서 감지할 수 있는 최소한의 변화 수준을 계산한다.”
    • 샘플 크기 제약이 있을 때:
      • 샘플 크기가 제한적인 경우, MDE를 계산해 실험의 한계를 이해.
  • 계산된 MDE 해석
    • 계산된 MDE는 실험 설계의 한계를 반영하며, 감지할 수 있는 최소 변화의 크기를 제공합니다.
  • MDE 계산 공식은 실험에서 사용하는 데이터 유형(예: 전환율, 비율, 사용자당 값 등)에 따라 달라집니다.
    • 전환율 (Conversion Rate): 전환율은 이항 데이터로 나타나며, 성공/실패 여부를 나타냅니다.

      MDE=(Zα/2+Zβ)pbaseline(1pbaseline)ncontrol+pbaseline(1pbaseline)nvariantMDE = (Z_{\alpha/2} + Z_{\beta}) \cdot \sqrt{\frac{p_{\text{baseline}} \cdot (1 - p_{\text{baseline}})}{n_{\text{control}}} + \frac{p_{\text{baseline}} \cdot (1 - p_{\text{baseline}})}{n_{\text{variant}}}}

    • Value per User: GMV, ARPU(Average Revenue Per User)와 같은 연속형 데이터.
      MDE=(Zα/2+Zβ)σ2ncontrol+σ2nvariantMDE = (Z_{\alpha/2} + Z_{\beta}) \cdot \sqrt{\frac{\sigma^2}{n_{\text{control}}} + \frac{\sigma^2}{n_{\text{variant}}}}

구분MDE를 미리 정하는 경우MDE를 계산으로 추정하는 경우
기준비즈니스 목표와 실질적 유의미성에 기반데이터 특성과 샘플 크기에 기반
사용 시점명확한 목표가 있는 경우목표가 없거나 기존 데이터로 추정할 때
결과 해석목표 효과를 달성하기 위해 샘플 크기 계산현재 샘플 크기로 탐지 가능한 최소 효과 계산

1.5 실험 설계에서 MDE 활용

  • 비즈니스 목표 기반 MDE 설정
    • 실험 전 비즈니스 목표를 정의:
      • GMV가 최소 $30 증가해야 ROI가 충분하다고 가정
    • 사전 정의된 MDE를 기준으로 샘플 크기와 실험 기간 계산
    • 사전 정의된 MDE는 실질적 유의미성 기준을 반영해야 함
  • 데이터 기반 MDE 추정
    • 기존 데이터의 표준 편차와 샘플 크기를 기반으로 MDE 계산:
      • GMV 데이터의 변동성이 큰 경우, 탐지 가능한 MDE가 커질 수 있음
    • 계산된 MDE를 기준으로 실험 감지 능력 평가:
      • “현재 조건에서 $50 이하의 변화는 감지 불가능하다”는 결론 도출
    • 데이터 기반 MDE는 실질적 유의미성 기준보다 높을 수 있음

2. Power

MDE 를 계산할때 아래와 같은 파라미터를 설정했습니다:

  • Zα/2Z_{\alpha/2}: 유의 수준 (Significance Level)
    • 일반적으로  α\alpha = 0.05 (95% 신뢰 구간)
    • Zα/2Z_{\alpha/2} = 1.96  (표준 정규분포에서 95% 신뢰 구간 기준)
  • ZβZ_{\beta}: 검정력 (Power)
    • 일반적으로  β\beta = 0.2 (80% 검정력)
    • ZβZ_{\beta} = 0.84  (표준 정규분포에서 80% 기준)
  • ncontroln_{\text{control}}, nvariantn_{\text{variant}} : 샘플 크기
    • 실험의 각 그룹에서 필요한 사용자 수

2.1 [Review] p-value란?

  • 정의: 귀무가설(H_0)이 참일 때, 관찰된 데이터가 나타날 확률
  • 쉽게 말하면: “이런 결과가 우연히 나올 가능성이 얼마나 될까?”
  • 1종 오류(Type 1 Error):
    • p-value는 1종 오류를 허용할 최대 확률(보통 5%)을 나타냅니다.
    • 예: 효과가 없는데 있다고 잘못 판단하는 경우
    • p-value < 0.05이면 귀무가설을 기각 → “효과가 있다”고 결론

2.2 Power 정의

  • 정의: 귀무가설이 거짓일 때, 이를 올바르게 기각할 확률.
  • 쉽게 말하면: “효과가 있을 때 그 효과를 제대로 감지할 능력.”
  • 2종 오류(Type 2 Error):
    • Power는 2종 오류(효과를 놓치는 오류, β\beta)와 반비례 관계.
    • Power=1β\text{Power} = 1 - \beta: 검정력이 높을수록 효과를 놓칠 가능성이 줄어듦.

2.3 P-value와 Power의 차이

  • P-value: 결과가 우연일 확률(귀무가설 참일 때)
  • Power: 실험이 효과를 제대로 감지할 확률(귀무가설 거짓일 때)
    실제 상태실험 결과: H_0 기각실험 결과: H_0 유지설명
    H_0 참 (효과 없음)1종 오류 (Type 1)올바른 판단잘못된 긍정, p-value와 관련
    H_0 거짓 (효과 있음)올바른 판단2종 오류 (Type 2)잘못된 부정, Power와 관련
    비유
    상황1종 오류 (False Positive)2종 오류 (False Negative)
    A/B 테스트: 새로운 결제 방식Toss Pay가 효과가 없는데 도입 (결제 전환율 변화 없음)Toss Pay가 효과가 있는데 도입하지 않음 (기회 손실)
    제품 변경: 새로운 디자인새로운 디자인이 전환율에 차이가 없는데도 도입 (리소스 낭비)새로운 디자인이 전환율을 높이는데도 기존 디자인 유지
    추천 시스템 개선추천 알고리즘이 기존과 차이가 없는데 변경 (리소스 낭비)추천 알고리즘이 더 나은데 기존 알고리즘 유지 (기회 상실)
  • 1종 오류를 줄이려면:
    • 엄격한 기준 적용 (예: p-value < 0.01)
    • 다중 테스트 보정(예: Bonferroni correction)
    • 하지만 2종 오류(Type 2)는 증가 가능 → 효과를 놓칠 확률 증가
  • 2종 오류를 줄이고 Power를 높이려면:
    • 샘플 크기 증가 → 비용 증가
    • 데이터 변동성 감소(정확한 측정)

MDE, Power, Significance Level, Baseline Conversion 기반으로 샘플 크기 계산 (Python)

from statsmodels.stats.power import TTestIndPower

# 실험 설정
baseline_conversion = 0.03
mde = 0.005
daily_users = 10000

# 효과 크기 계산
effect_size = mde / (baseline_conversion * (1 - baseline_conversion))**0.5

# 필요한 샘플 크기 계산
analysis = TTestIndPower()
sample_size = analysis.solve_power(effect_size, alpha=0.05, power=0.8)

# 실험 기간 계산
experiment_days = sample_size / daily_users
print(f"필요한 샘플 크기: {int(sample_size)}")
print(f"예상 실험 기간: {int(experiment_days)}일")

3. A/B 테스트 분석 Framework

A/B 테스트는 다음 세 단계를 통해 구조적으로 진행합니다.

  1. 가설 수립(Hypothesis Formation):
    • 명확하고 측정 가능한 가설 정의
    • 북극성(목표)지표와 가드레일 지표 설정
  2. 실험 설계(Experiment Setup):
    • 사용자 무작위 할당 (Randomization)
    • 샘플 크기 및 실험 기간 계산
  3. 결과 분석 및 커뮤니케이션(Result Analysis & Communication):
    • 통계적 검정(p-value, power)과 세분화 분석
    • 결과를 이해관계자와 명확히 공유

3.1 가설 수립: 명확한 목표 설정

사례: Toss Pay 도입

  • 가설:
    • Toss Pay 도입으로 인해 결제 전환율이 기존 방식보다 유의미하게 증가할 것이다.
  • 북극성(목표) 지표:
    • 결제 전환율 =  결제를 완료한 사용자 수결제를 시작한 사용자 수\frac{\text{결제를 완료한 사용자 수}}{\text{결제를 시작한 사용자 수}}
  • 가드레일 지표:
    • 결제 오류율 =  결제 시도 중 오류 발생 수결제 시도 수\frac{\text{결제 시도 중 오류 발생 수}}{\text{결제 시도 수}}

3.2 실험 설계

실험 조건 정의

  1. 랜덤화 단위(Randomization Unit):
    • 사용자 단위로 무작위 할당
  2. 노출 지점(Exposure Point):
    • 결제 플로우 진입 시 Toss Pay 표시 여부 결정
  3. 대상 조건(Eligibility):
    • iPhone 사용자만 포함(Android 사용자는 실험 대상 제외)

3.3 샘플 크기 및 실험 기간 계산

Required Parameters:

  • 기존 전환율 (Baseline Conversion Rate): 3%
  • 최소 검출 가능한 효과 크기(MDE): 0.5%
  • 유의 수준(Significance Level): 보통 95%
  • 검정력(Power): 보통 80%
  • 일일 사용자 수: 10,000명
from statsmodels.stats.power import TTestIndPower

baseline_conversion = 0.03  # 기존 전환율
desired_effect = 0.005  # 최소 효과 크기 (0.5%)
alpha = 0.05  # 유의 수준
power = 0.8  # 검정력

effect_size = desired_effect / ((baseline_conversion * (1 - baseline_conversion)) ** 0.5)

analysis = TTestIndPower()
sample_size = analysis.solve_power(effect_size, alpha=alpha, power=power)

print(f"필요한 샘플 크기: {int(sample_size)}")

daily_users = 10000
experiment_days = sample_size / daily_users

print(f"예상 실험 기간: {int(experiment_days)}일")

3.4. 결과 분석 및 커뮤니케이션

결과 분석

  • 주요 지표 평가:
    • 결제 전환율 변화 확인
    • p-value가 0.05 미만이면 통계적으로 유의미한 차이로 판단
    • 실질적으로 유의미한지 판단
  • 가드레일 지표 평가:
    • 결제 오류율 증가 여부 확인
    • 오류율이 증가하면 문제 원인 분석 및 해결

Segmentation 분석

  • 주요 그룹별 분석:
    • 신규 사용자 vs 기존 사용자
    • iPhone 모델별 성능 차이
    • 지역별 반응

결과 보고

  • 결과 요약:
    • 목표 지표와 카운터 지표 변화
  • 비즈니스 영향:
    • 추가 매출 또는 비용 감소 효과 추산
  • 후속 조치:
    • Toss Pay 전체 배포 여부 결정
    • 장기적 유지 효과 모니터링

TL;DR

  • MDE(Minimum Detectable Effect), p-value, Power의 관계와 계산 방법 이해
  • A/B 테스트 설계 Framework 1. 가설 수립
    • 명확하고 측정 가능한 가설 정의
    • 목표 지표(북극성 지표)와 카운터 지표(부정적 영향 방지) 설정
    • 예: Toss Pay 도입으로 결제 전환율 상승 여부 평가
    1. 실험 설계
      • 사용자 무작위 할당으로 Bias 제거
      • 샘플 크기 및 실험 기간을 계산해 통계적 유의미성 확보
      • MDE를 기준으로 효과 탐지 가능 여부 결정
    2. 결과 분석 및 커뮤니케이션
      • 통계적 검정(p-value)으로 가설 검증
      • 세분화 분석(Segmentation)으로 사용자 그룹별 효과 확인
      • 결과를 비즈니스 의사결정으로 연결
profile
Be DBA

0개의 댓글