이 글은 사전지식 기반 (교재 미확인 — agent 사전학습 기반). 핵심 인용 — Bojinov, Simchi-Levi, Zhao (2023), Vaver & Koehler (2011), Athey & Imbens (2017), Aronow & Samii (2017).
이 글은 Phase J 시리즈의 21 번째 글이자 J-SWITCH 시리즈 (4 편) 의 첫 글. 표준 A/B 가 어려운 시나리오의 design 우회 를 다룬다.
1 진입 직관 — “단위 간 영향”
표준 A/B 의 SUTVA (Stable Unit Treatment Value Assumption):
한 unit 의 outcome 은 다른 unit 의 처치 에 영향 받지 않음.
현실 위반:
- Two-sided market (Uber, Lyft, Airbnb): 일부 운전자에게 새 알고리즘 (할증) 적용 시 나머지 운전자의 trip 도 영향. 시장 균형 이 변화.
- Social network (Facebook, Instagram): 일부 사용자에게 새 feature. 친구 들의 행동도 영향 (예: 친구가 새 광고 본 후 댓글 달면 다른 친구도 영향).
- 지역 광고 (search ads): 일부 지역 입찰가 변경. 인접 지역의 경쟁 균형 변화.
결과: 표준 A/B 의 control group 도 처치 영향 받음 — 효과 추정 bias.
2 우회 Design 3 가지
2.1 1: Switchback Design
시간 단위 무작위 배정. 같은 unit 이 시점에 따라 처치/대조 전환.
예: Uber 의 5 분 단위 알고리즘 변경. 30 분의 처치 / 30 분의 대조 / 30 분의 처치.
모든 운전자 가 시점에 따라 두 alg 모두 경험 — spillover 같은 단일 시장 안에서 균등화.
2.2 2: Geo Holdout
지역 단위 무작위 배정. 한 도시 전체 가 처치, 다른 도시 전체 가 대조.
예: Lyft 의 시카고 처치 / 보스턴 대조. 지역 내 spillover 는 발생하지만 지역 간 분리.
지역 단위의 ATE 추정.
2.3 3: Cluster-Randomized
Cluster (예: 친구 그룹, 지역, 학급) 단위 무작위 배정. 클러스터 내 spillover 허용, 간 분리.
Cluster 효과 추정.
3 그 외 — Spillover Detection
위 design 들이 어려울 때 분석 단계 에서 spillover detection:
- Aronow & Samii (2017): exposure mapping
- Athey & Imbens (2017): model-based spillover effect
- 2-stage randomization (Hudgens-Halloran 2008): cluster + within-cluster
4 Network Spillover 의 정의
Unit \(i\) 의 outcome \(Y_i\) 이 자기 처치 \(A_i\) 뿐 아니라 다른 unit 의 처치 \(\{A_j: j \neq i\}\) 에 의해 영향 받는 경우. SUTVA 위반.
예:
- 2-sided market: 운전자 \(i\) 의 trip 수가 운전자 \(j\) 의 algorithm 에 영향 받음 (시장 경쟁)
- Social: 사용자 \(i\) 의 시간 사용이 친구 \(j\) 의 새 feature 사용에 영향 받음 (network effect)
- 광고: 지역 \(i\) 의 CPC 가 지역 \(j\) 의 입찰 변경에 영향 받음 (광고 경매)
결과: 표준 A/B 가 biased. control group 의 outcome 이 처치 받지 않은 baseline 이 아님.
5 Bojinov, Simchi-Levi, Zhao (2023)
5.1 의의
Switchback experiment 의 modern 정통. 시계열 + 인과 의 통합.
5.2 내용
시간 단위 무작위 배정 + carry-over effect modeling. Estimator + SE 의 정통.
다음 글에서 깊이.
6 Vaver & Koehler (2011) — Geo Experiments
6.1 의의
Google 의 지역 광고 A/B 사례. Geo holdout 의 표준.
6.2 분석
도시별 time series of impressions/conversions. Causal impact 분석 (Brodersen et al. 2015).
다음 글에서 깊이.
7 Aronow & Samii (2017) — Exposure Mapping
7.1 의의
Network 에서 unit 의 spillover exposure 를 명시적으로 modeling.
7.2 Exposure
Unit \(i\) 의 exposure = \(i\) 의 친구 중 처치 받은 비율 (또는 다른 함수).
Direct effect + indirect effect 분리.
다음 글에서 깊이.
8 응용 사례
8.1 Uber — Switchback
5 분 단위 알고리즘 전환. 모든 도시에서 처치/대조 시점 균등 분배.
8.2 Airbnb — Cluster
Listing cluster (위치, 가격대) 단위 무작위 배정. cluster 내 spillover 허용, 간 분리.
8.3 Facebook — Network Effect
Friend cluster 분석. 친구 일부에게 처치 시 다른 친구의 행동 변화 측정 — network spillover.
8.4 Search Ads — Geo
DMA (Designated Market Area) 단위. 일부 DMA 처치, 나머지 대조. 지역 단위 효과 추정.
9 Trade-off
| 측면 | 표준 A/B | Switchback | Geo | Cluster |
|---|---|---|---|---|
| Spillover 처리 | X | 시점 분리 | 지역 분리 | 클러스터 분리 |
| Sample 효율 | 큼 | 중간 | 작음 | 중간 |
| Carry-over 위험 | 없음 | 큼 | 없음 | 작음 |
| 단위 | 사용자 | 시점 | 지역 | 클러스터 |
| 분석 | 표준 | 시계열 | 시계열 + DiD | Hierarchical |
10 후속 3 글 안내
10.1 J-SWITCH-1: Switchback Design
Bojinov 등의 정통. 시간 단위 무작위, carry-over effect, estimator + SE.
10.2 J-SWITCH-2: Geo Holdout
Vaver & Koehler 등의 표준. CausalImpact (Brodersen 2015) 와의 결합.
10.3 J-SWITCH-3: Spillover Detection
Aronow & Samii, Hudgens & Halloran 의 정통. Direct + indirect effect.
11 시뮬레이션 — Spillover 의 영향
import numpy as np
np.random.seed(42)
# 시나리오: 운전자 1000 명, 50% 처치
n = 1000
A = np.random.binomial(1, 0.5, n)
true_direct_effect = 5.0 # 처치 받은 본인의 효과
spillover_effect = -2.0 # 처치 받은 운전자가 많을수록 받지 않은 운전자에게 부정적
# 시장 평균 처치 비율
prop_treated = A.mean()
# Outcome (trips per day):
# - 본인 처치 직접 효과
# - 시장에서 다른 처치 운전자 비율의 spillover
Y = np.zeros(n)
for i in range(n):
Y[i] = 50 + true_direct_effect * A[i] + spillover_effect * prop_treated + np.random.normal(0, 3)
# 표준 A/B (잘못된 추정)
naive = Y[A == 1].mean() - Y[A == 0].mean()
print(f"[Spillover 영향 시뮬레이션]\n")
print(f"진짜 direct effect: {true_direct_effect}")
print(f"Spillover effect (시장 비율): {spillover_effect}")
print(f"\n[표준 A/B (잘못된 추정)]")
print(f" Naive estimate: {naive:.2f}")
print(f" → 표준 A/B 는 direct effect 만 추정 — spillover 무시")
print(f" → control group 도 spillover 받음, 추정 biased\n")
# Geo split (가상)
print(f"[Geo Split 시뮬레이션]")
# 도시 A: 모두 처치, 도시 B: 모두 대조
n_geo = 500
prop_A = 1.0 # 도시 A 100% 처치
prop_B = 0.0 # 도시 B 0% 처치
Y_A = 50 + true_direct_effect * 1 + spillover_effect * prop_A + np.random.normal(0, 3, n_geo)
Y_B = 50 + true_direct_effect * 0 + spillover_effect * prop_B + np.random.normal(0, 3, n_geo)
geo_estimate = Y_A.mean() - Y_B.mean()
print(f" Geo estimate: {geo_estimate:.2f}")
print(f" → direct + spillover 의 합 추정")
print(f" → 진짜 시장 효과 (배포 후 효과) 에 더 가까움")
print(f" → 진짜 합: {true_direct_effect + spillover_effect}")12 결론
Network spillover 가 SUTVA 위반 시 표준 A/B biased. Switchback / Geo / Cluster 같은 우회 design 또는 Aronow-Samii 의 exposure mapping 같은 분석 기법 으로 처리. 응용 — Uber, Airbnb, Facebook, Google.
핵심 메시지:
- Network spillover: 단위 간 영향, SUTVA 위반
- Switchback (Bojinov 2023): 시간 단위 무작위
- Geo Holdout (Vaver-Koehler 2011): 지역 단위
- Cluster-randomized: 클러스터 단위
- Aronow-Samii (2017): exposure mapping
- 응용: Uber, Airbnb, Facebook, Google 등 표준
- Trade-off: spillover 처리 vs sample 효율
후속 3 글에서 깊이.
13 관련 주제
선행 지식
- (Phase F) F12-* — Client-side experiments (spillover 일부 다룸)
- (Phase F) Trustworthy A/B 의 SUTVA 가정
Phase J 후속 글
- Switchback Design (placeholder)
- Geo Holdout (placeholder)
- Spillover Detection (placeholder)
14 참고문헌
- Bojinov, I., Simchi-Levi, D., Zhao, J. (2023). Design and analysis of switchback experiments. Management Science 69, 3759-3777.
- Vaver, J. & Koehler, J. (2011). Measuring ad effectiveness using geo experiments. Google Tech Report.
- Brodersen, K. H., Gallusser, F., Koehler, J., Remy, N., Scott, S. L. (2015). Inferring causal impact using Bayesian structural time-series models. Annals of Applied Statistics 9, 247-274.
- Aronow, P. M. & Samii, C. (2017). Estimating average causal effects under general interference. Annals of Applied Statistics 11, 1912-1947.
- Hudgens, M. G. & Halloran, M. E. (2008). Toward causal inference with interference. J. Amer. Statist. Assoc. 103, 832-842.
- Athey, S., Eckles, D., Imbens, G. W. (2018). Exact p-values for network interference. J. Amer. Statist. Assoc. 113, 230-240.