DEV Community

Cover image for Stratified A/B와 post-stratification — 세그먼트로 분산을 깎는 또 다른 길
HyunSeok Jeong
HyunSeok Jeong

Posted on • Originally published at blog.trysitely.com

Stratified A/B와 post-stratification — 세그먼트로 분산을 깎는 또 다른 길

실험을 빨리 끝내고 싶으면 분산을 깎으라고 했습니다. CUPED는 사전 실험 데이터를 활용하는 한 길이고, 이번 글의 stratified A/B는 세그먼트 정보를 활용하는 다른 길입니다. 신규 유저처럼 사전 데이터가 없는 경우, 또는 세그먼트 간 분산이 큰 메트릭(예: GMV)에서 stratified는 CUPED보다 더 큰 효과를 낼 수 있습니다. 같은 결정에 더 짧은 기간으로 닿는 두 번째 무기를 정리합니다.

1. 분산은 어디서 오나 — 그룹 안 분산 vs 그룹 간 분산

A/B 테스트의 통계적 검출력은 분산 σ2\sigma^2 에 반비례합니다. 분산이 크면 같은 효과를 검출하는 데 더 많은 표본·더 긴 기간이 필요합니다.

전체 분산은 다음과 같이 분해됩니다 (분산 분해 정리, ANOVA 기본).

σtotal2=σwithin2+σbetween2 \sigma_{\text{total}}^2 = \sigma_{\text{within}}^2 + \sigma_{\text{between}}^2
  • σwithin2\sigma_{\text{within}}^2 — 같은 세그먼트 안에서 유저 간 분산
  • σbetween2\sigma_{\text{between}}^2 — 세그먼트 간 평균의 분산

마케팅 메트릭의 분산은 보통 두 부분이 모두 큽니다. GMV의 경우 세그먼트(고가치/저가치 유저) 간 평균 차이가 분산의 절반 이상을 차지하는 경우도 흔합니다. 세그먼트 간 분산을 빼면 검출력이 그만큼 올라갑니다.

이게 stratified A/B와 post-stratification의 출발점입니다. 처리·대조 비교를 세그먼트 안에서 따로 하고 평균을 다시 묶으면, 세그먼트 간 분산이 자연스럽게 빠집니다.

세그먼트별로 처리·대조 비교 후 가중 평균하는 다이어그램
전체에서 한 번 비교하는 대신, 세그먼트 안에서 비교하고 합친다. 세그먼트 간 분산이 빠지므로 같은 표본에서 더 강한 검출력.

📌 이 글에서 다루는 것

stratified A/B는 표본을 세그먼트별로 균등하게 배정하는 사전 설계, post-stratification은 사후에 세그먼트 정보로 분산을 보정하는 후처리입니다. 둘은 비슷한 효과를 내지만 적용 시점·전제가 다릅니다. CUPED 글의 후속편으로, 사전 데이터가 없는 자리·세그먼트 간 분산이 큰 자리에서의 표준 도구를 다룹니다.

2. Stratified A/B — 사전 설계로 균등 배정

stratified A/B의 한 줄짜리 아이디어는 단순합니다.

처리·대조군 배정을 전체에서 무작위로 하지 말고, 세그먼트 안에서 무작위로 한다.

세그먼트가 신규/기존 유저, iOS/Android, 광고 채널별 코호트라고 합시다. 단순 랜덤 배정으로 50:50을 굴리면 어느 한 세그먼트가 60:40으로 쏠릴 수 있습니다. stratified는 각 세그먼트 안에서 50:50을 보장하니, 그 쏠림이 사라집니다.

운영 효과는 두 가지입니다.

  • 검출력 향상 — 세그먼트 간 차이가 처리·대조 평균 차이로 흘러 들어가지 않음
  • SRM 안정 — Sample Ratio Mismatch 검출이 깨끗해짐

수식으로 보면 stratified estimator의 분산은 다음으로 떨어집니다.

Var(τ^strat)=kwk2σw,k2nk \text{Var}(\hat\tau_{\text{strat}}) = \sum_k w_k^2 \cdot \frac{\sigma_{w,k}^2}{n_k}

여기서 wkw_k 는 세그먼트 kk 의 비중, σw,k2\sigma_{w,k}^2 는 세그먼트 안 분산입니다. 세그먼트 간 분산이 빠진 만큼 전체 분산이 줄어듭니다.

3. Post-stratification — 사후 보정으로 같은 효과

stratified A/B는 사전에 배정 메커니즘을 바꿔야 합니다. 운영 시스템이 단순 랜덤 배정만 지원한다면 도입이 어렵습니다.

post-stratification은 같은 효과를 사후에 만듭니다. 단순 랜덤으로 배정하고, 분석 시점에 세그먼트별로 따로 처리·대조 비교를 한 뒤 가중 평균합니다.

τ^post=kwk(YˉT,kYˉC,k) \hat\tau_{\text{post}} = \sum_k w_k\, (\bar Y_{T,k} - \bar Y_{C,k})

여기서 wkw_k 는 세그먼트 kk 의 모집단 비중(처리군·대조군 비중이 아닌, 사전에 정한 모집단 비중). 사후 보정만으로 stratified A/B와 거의 같은 분산 감소를 얻을 수 있습니다.

비교 Stratified A/B Post-stratification
적용 시점 사전 (배정 설계) 사후 (분석 단계)
운영 시스템 변경 필요 불필요
분산 감소 동일 거의 동일 (작은 비대칭 가능)
SRM 보호 강함 약함
사용 빈도 신규 실험 기존 데이터 분석

운영적으로는 post-stratification이 훨씬 가볍습니다. 배정 메커니즘은 그대로 두고, 분석 코드만 세그먼트로 나눠 가중 평균하면 됩니다.

💡 신규 실험은 stratified, 기존 데이터는 post

새로 시작하는 실험은 stratified A/B로 SRM까지 막고, 이미 끝났거나 진행 중인 실험은 post-stratification으로 같은 데이터에서 분산을 깎으세요. 두 도구는 같은 효과의 사전·사후 버전입니다.

4. 어느 변수로 stratify할 것인가

stratification은 변수 선택이 효과를 좌우합니다. 좋은 stratification 변수의 조건은 다음입니다.

  • 메트릭과 강한 상관 — GMV가 메트릭이면 "고가치 유저 vs 저가치 유저" 같은 변수
  • 처리 전에 관측 가능 — 처리·대조 배정 시점 이전 데이터로 정의 가능해야 함
  • 안정적 — 실험 기간 동안 세그먼트가 흔들리지 않아야 함
  • 카디널리티 적정 — 너무 많으면 각 셀의 표본 부족

마케팅 메트릭별 자주 쓰이는 stratification 변수는 다음과 같습니다.

  • GMV·매출 — 사전 30일 누적 GMV 분위(고/중/저), 신규/기존, 디바이스
  • 전환율 — 광고 채널, 캠페인 그룹, 도착 페이지
  • 리텐션 — 첫 방문 코호트, 디바이스, 지역

python
Enter fullscreen mode Exit fullscreen mode

Top comments (0)