Stratified A/B와 post-stratification — 세그먼트로 분산을 깎는 또 다른 길
CUPED는 사전 데이터로 분산을 깎습니다. 그런데 사전 데이터가 없을 때는? Stratified A/B는 세그먼트로 표본을 나눠 비교하고, post-stratification은 사후에 세그먼트별로 보정합니다. 같은 표본·같은 결정에 더 짧은 실험 기간으로 닿는 또 다른 분산 축소 도구.
실험을 빨리 끝내고 싶으면 분산을 깎으라고 했습니다. CUPED는 사전 실험 데이터를 활용하는 한 길이고, 이번 글의 stratified A/B는 세그먼트 정보를 활용하는 다른 길입니다. 신규 유저처럼 사전 데이터가 없는 경우, 또는 세그먼트 간 분산이 큰 메트릭(예: GMV)에서 stratified는 CUPED보다 더 큰 효과를 낼 수 있습니다. 같은 결정에 더 짧은 기간으로 닿는 두 번째 무기를 정리합니다.
1. 분산은 어디서 오나 — 그룹 안 분산 vs 그룹 간 분산
A/B 테스트의 통계적 검출력은 분산 에 반비례합니다. 분산이 크면 같은 효과를 검출하는 데 더 많은 표본·더 긴 기간이 필요합니다.
전체 분산은 다음과 같이 분해됩니다 (분산 분해 정리, ANOVA 기본).
- — 같은 세그먼트 안에서 유저 간 분산
- — 세그먼트 간 평균의 분산
마케팅 메트릭의 분산은 보통 두 부분이 모두 큽니다. GMV의 경우 세그먼트(고가치/저가치 유저) 간 평균 차이가 분산의 절반 이상을 차지하는 경우도 흔합니다. 세그먼트 간 분산을 빼면 검출력이 그만큼 올라갑니다.
이게 stratified A/B와 post-stratification의 출발점입니다. 처리·대조 비교를 세그먼트 안에서 따로 하고 평균을 다시 묶으면, 세그먼트 간 분산이 자연스럽게 빠집니다.
2. Stratified A/B — 사전 설계로 균등 배정
stratified A/B의 한 줄짜리 아이디어는 단순합니다.
처리·대조군 배정을 전체에서 무작위로 하지 말고, 세그먼트 안에서 무작위로 한다.
세그먼트가 신규/기존 유저, iOS/Android, 광고 채널별 코호트라고 합시다. 단순 랜덤 배정으로 50:50을 굴리면 어느 한 세그먼트가 60:40으로 쏠릴 수 있습니다. stratified는 각 세그먼트 안에서 50:50을 보장하니, 그 쏠림이 사라집니다.
운영 효과는 두 가지입니다.
- 검출력 향상 — 세그먼트 간 차이가 처리·대조 평균 차이로 흘러 들어가지 않음
- SRM 안정 — Sample Ratio Mismatch 검출이 깨끗해짐
수식으로 보면 stratified estimator의 분산은 다음으로 떨어집니다.
여기서 는 세그먼트 의 비중, 는 세그먼트 안 분산입니다. 세그먼트 간 분산이 빠진 만큼 전체 분산이 줄어듭니다.
3. Post-stratification — 사후 보정으로 같은 효과
stratified A/B는 사전에 배정 메커니즘을 바꿔야 합니다. 운영 시스템이 단순 랜덤 배정만 지원한다면 도입이 어렵습니다.
post-stratification은 같은 효과를 사후에 만듭니다. 단순 랜덤으로 배정하고, 분석 시점에 세그먼트별로 따로 처리·대조 비교를 한 뒤 가중 평균합니다.
여기서 는 세그먼트 의 모집단 비중(처리군·대조군 비중이 아닌, 사전에 정한 모집단 비중). 사후 보정만으로 stratified A/B와 거의 같은 분산 감소를 얻을 수 있습니다.
| 비교 | Stratified A/B | Post-stratification |
|---|---|---|
| 적용 시점 | 사전 (배정 설계) | 사후 (분석 단계) |
| 운영 시스템 변경 | 필요 | 불필요 |
| 분산 감소 | 동일 | 거의 동일 (작은 비대칭 가능) |
| SRM 보호 | 강함 | 약함 |
| 사용 빈도 | 신규 실험 | 기존 데이터 분석 |
운영적으로는 post-stratification이 훨씬 가볍습니다. 배정 메커니즘은 그대로 두고, 분석 코드만 세그먼트로 나눠 가중 평균하면 됩니다.
4. 어느 변수로 stratify할 것인가
stratification은 변수 선택이 효과를 좌우합니다. 좋은 stratification 변수의 조건은 다음입니다.
- 메트릭과 강한 상관 — GMV가 메트릭이면 “고가치 유저 vs 저가치 유저” 같은 변수
- 처리 전에 관측 가능 — 처리·대조 배정 시점 이전 데이터로 정의 가능해야 함
- 안정적 — 실험 기간 동안 세그먼트가 흔들리지 않아야 함
- 카디널리티 적정 — 너무 많으면 각 셀의 표본 부족
마케팅 메트릭별 자주 쓰이는 stratification 변수는 다음과 같습니다.
- GMV·매출 — 사전 30일 누적 GMV 분위(고/중/저), 신규/기존, 디바이스
- 전환율 — 광고 채널, 캠페인 그룹, 도착 페이지
- 리텐션 — 첫 방문 코호트, 디바이스, 지역
import pandas as pdimport numpy as np
# df: ['user_id', 'group', 'segment', 'y']agg = df.groupby(['segment', 'group'])['y'].agg(['mean', 'count']).unstack()diff = agg['mean']['T'] - agg['mean']['C']weights = df.groupby('segment').size() / len(df)tau_post = (diff * weights).sum()이게 본문의 유일한 코드입니다. pandas 한 묶음이면 post-stratification 추정량이 나옵니다.
5. CUPED와 무엇이 다른가
CUPED와 stratified·post-stratification은 같은 목표 — 분산 감소 — 의 다른 도구입니다.
| 도구 | 활용 자원 | 잘 듣는 자리 | 잘 안 듣는 자리 |
|---|---|---|---|
| CUPED | 사전 실험 데이터 (같은 메트릭의 과거값) | 기존 유저 메트릭 | 신규 유저, 신규 채널 |
| Stratified A/B | 세그먼트 변수 | 세그먼트 간 분산 큰 메트릭 | 세그먼트 정의가 약할 때 |
| Post-stratification | 세그먼트 변수 | 같은 자리 (사후 적용) | 같은 자리 |
운영적으로 두 도구는 결합 가능합니다. CUPED로 사전 메트릭의 분산을 깎고, post-stratification으로 세그먼트 분산을 추가로 깎으면 두 효과가 합쳐집니다. 분산 감소율이 30%(CUPED) + 20%(post-strat) = 50%까지 나오는 케이스도 흔합니다.
CUPED를 더 깊이 보려면 huny.log의 CUPED — A/B 표본을 절반으로 글이 있습니다. 함께 읽으면 분산 도구상자가 채워집니다.
6. 마케팅 실무 케이스 3개
6-1. GMV 메트릭의 분산 — 고가치 유저가 다 가져간다
GMV는 마케팅 메트릭 중 분산이 가장 큰 축에 속합니다. 상위 5% 고가치 유저의 GMV가 전체의 절반을 차지하는 경우도 흔합니다. 단순 랜덤 배정에서 처리·대조군에 고가치 유저가 한쪽에 더 많이 들어가면 결과가 통째로 흔들립니다. GMV 분위로 post-stratification만 추가해도 표준오차가 30~40% 줄어드는 경우가 흔합니다.
6-2. 신규 vs 기존 유저 분리
신규 유저는 사전 메트릭이 없어 CUPED가 안 듣습니다. 신규/기존이라는 단일 stratification만 추가해도 검출력이 살아나는 경우가 많습니다. 두 그룹의 메트릭 평균이 워낙 다르기 때문에, 한쪽에 어느 그룹이 더 많이 들어가는지가 결과를 흔드는 가장 큰 요인이기 때문입니다.
6-3. 광고 채널별 stratify — 캠페인 효과의 진짜 신호
광고 채널별로 유저 구성이 다르고 메트릭 분산도 다릅니다. 채널 stratification 없이 단순 비교하면 “Meta 유저가 더 많은 그룹이 더 잘 나오는” 가짜 신호를 잡을 수 있습니다. 채널 stratify 후 비교하면 진짜 처리 효과만 남습니다.
7. Stratified가 깨질 때 — 흔한 함정 3가지
7-1. 너무 많은 변수로 stratify
신규/기존 × 디바이스 × 채널 × 지역 4개로 stratify하면 셀이 수십 개가 되고 각 셀의 표본이 부족해 분산이 다시 흔들립니다. 보통 1~2개 핵심 변수로 충분합니다. 더 필요하면 변수를 결합한 단일 변수(예: “RFM 점수 분위”)를 만드는 게 안전합니다.
7-2. stratification 변수가 처리에 영향을 받는다
처리·대조 배정 이후 세그먼트가 바뀌는 변수(예: 처리에 의해 세그먼트가 변하는 lifecycle 단계)로 stratify하면 분산 감소가 아니라 편향이 들어옵니다. 처리 전에 관측 가능한 변수만 써야 합니다.
7-3. 가중치 가 처리·대조 비중과 같아짐
post-stratification의 가중치 는 모집단의 세그먼트 비중이어야 합니다. 실수로 처리군 또는 대조군의 세그먼트 비중을 쓰면 보정이 깨집니다. 사전 정의된 모집단 비중 또는 양 그룹 합한 비중을 써야 합니다.
8. 마치며 — 분산 도구상자의 두 번째 무기
마케터의 실험 도구상자에는 분산 감소 도구가 두 개 정도 있어야 합니다.
- 첫 번째 — CUPED, 사전 데이터가 풍부할 때
- 두 번째 — Stratified A/B 또는 post-stratification, 세그먼트 정보가 풍부할 때
둘 다 마케팅 데이터에 흔히 있는 자원입니다. 두 도구를 결합 운영하면 같은 결정에 더 짧은 실험 기간으로 닿을 수 있고, 검출력이 부족한 메트릭(예: 매출·LTV)이 깨끗하게 보고됩니다.
다음 글에서는 마케팅에서 자주 쓰이는 또 다른 도구, 코호트 retention curve의 운영 해석을 다룹니다. 같은 곡선이 가지는 정보의 층을 풀어냅니다.
참고
- Cochran (1977), Sampling Techniques (3rd edition) — stratification의 고전 교과서
- Lin (2013), Agnostic Notes on Regression Adjustments to Experimental Data, Annals of Applied Statistics — post-stratification의 통계적 해석
- Deng, Xu, Kohavi & Walker (2013), Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-Experiment Data, WSDM — CUPED 원전, stratification과의 비교
- Tang et al. (2010), Overlapping Experiment Infrastructure: More, Better, Faster Experimentation, KDD — Google의 실험 인프라
- huny.log 내부 글: CUPED, A/B 함정 5가지, Sequential testing
통계·ML 카테고리의 다른 글
전체 보기 →-
2026·05·10
마케팅 실험 플랫폼 설계 — 사내 A/B 시스템의 5가지 원칙
광고 플랫폼 자체 A/B로는 부족하고 외부 SaaS는 비쌉니다. 사내 마케팅 실험 플랫폼을 설계할 때 깔아야 할 split assignment·exposure log·SRM 검정·sequential safe·메타 표준 5가지 원칙.
-
2026·05·09
Bayesian A/B 테스트 심화 — prior 잡는 법과 HDI 해석
베이지안 A/B는 "p-value < 0.05"가 아니라 "B가 A보다 좋을 확률 0.92"를 줍니다. 그 확률이 정직하려면 prior를 잘 잡아야 하고, HDI를 잘못 읽으면 함정이 옵니다. 마케터 시선에서 prior·posterior·HDI 정리.
-
2026·05·09
Doubly robust estimation — IPW와 outcome 모델의 결합으로 인과 추정 안정화
PSM·IPW는 propensity 모델이 틀리면 무너지고, 회귀는 outcome 모델이 틀리면 무너집니다. doubly robust는 두 모델을 결합해 둘 중 하나만 맞으면 정직한 효과 추정. 마케팅 인과 분석의 안전판.
-
2026·05·09
Heterogeneous treatment effects — 평균 효과 너머의 개인별 효과
A/B 평균 효과 +5%p가 모든 사람에게 같지 않습니다. 일부에게는 +20%p, 일부에게는 -3%p. CATE·uplift forest로 효과의 이질성을 추정해 타겟 마케팅을 정밀화하는 흐름.