캠페인 시작 후 매출이 +20% 올랐다면 그게 캠페인 효과인지 시즌·트렌드 효과인지 구분이 어렵습니다. CausalImpact는 캠페인이 없었을 때의 매출 예측(counterfactual)을 baseline으로 잡고, 실제 매출과의 차이를 캠페인 효과로 추정합니다. baseline 예측에 Prophet 같은 state-space 모델이 자주 들어갑니다. 두 도구의 결합이 마케팅 인과 분석의 표준 패턴 중 하나입니다.
마케터가 이 글을 읽어야 하는 이유: 분기 캠페인의 효과를 보고할 때 "전년 동기 대비 +20%"는 시즌·트렌드 효과가 섞여 있어 정직하지 않습니다. CausalImpact가 시즌·트렌드를 분리한 baseline을 만들어주면, 캠페인의 진짜 효과를 회의에서 데이터로 답할 수 있습니다.

baseline = 캠페인이 없었을 때의 예측. 실제와의 차이가 캠페인 효과의 정직한 추정.
1. Prophet의 한 줄 직관
Facebook이 만든 시계열 예측 라이브러리. 매끄러운 트렌드 + 주기적 시즌 + 휴일 효과로 시계열을 분해.
- : 트렌드 (선형 또는 logistic)
- : 시즌 (주기적 푸리에 항)
- : 휴일 효과
- : 잔차 노이즈
자동으로 트렌드·시즌·휴일을 분리해 예측. 마케팅 시계열(매출·전환·CTR) 자리에 자연스럽게 적용.
📌 이 글의 전제
독자가 시계열 예측이라는 단어는 들어본 적 있고, 회귀의 직관 정도는 받아들인다고 가정합니다. 코드를 직접 짠 적은 없어도 됩니다.
2. CausalImpact의 한 줄 직관
Google이 만든 인과 분석 라이브러리. Bayesian state-space 모델로 처리 전 데이터를 학습한 뒤 처리 후 시점의 baseline을 예측. 실제값과 baseline의 차이가 인과 효과.
처리 후 시점의 "캠페인이 없었다면 어땠을까"를 데이터로 추정.
| 단계 | 작업 |
|---|---|
| 1. 학습 | 처리 전 데이터로 baseline 모델 학습 |
| 2. 예측 | 처리 후 baseline 예측 (counterfactual) |
| 3. 차이 | 실제값 - baseline = 인과 효과 |
| 4. 신뢰구간 | Bayesian posterior에서 직접 |
처리 전 충분한 데이터(보통 6주+)가 있으면 정직한 baseline 가능.
3. 두 도구의 결합 — Prophet → CausalImpact 백엔드
CausalImpact의 기본 baseline 모델은 BSTS(Bayesian Structural Time Series). Prophet으로 baseline 예측한 뒤 CausalImpact 식으로 처리 효과 추정하는 패턴이 유연.
처리 전 시계열
│
▼
Prophet (트렌드 + 시즌 분리)
│
▼
처리 후 baseline 예측 (Prophet의 yhat)
│
▼
실제 처리 후 - baseline = 캠페인 효과
│
▼
Bootstrap 95% CI
Prophet의 강점(트렌드·시즌 자동 분리) + CausalImpact의 강점(인과 효과 추정 + 신뢰구간)을 결합.
4. 마케팅 자리의 적용
4-1. 분기 캠페인 효과
분기 시작에 큰 캠페인 시작. 그 시점 이후 매출의 캠페인 기여를 baseline 차이로 추정.
4-2. 신규 광고 채널 도입
새 채널 광고 시작한 시점부터의 매출 lift 추정. 채널 도입이 무작위 배정이 아니라 RDD·DiD 적용 어려움. CausalImpact가 표준.
4-3. 가격 변경의 영향
상품 가격 인상·할인 시작 후 판매량 변화. 자연 실험으로 효과 추정.
4-4. 이벤트·시즌 이상치 탐지
블랙프라이데이 같은 이벤트의 매출 lift를 baseline 대비로 측정.
| 자리 | 처리 시점 | baseline 데이터 |
|---|---|---|
| 분기 캠페인 | 캠페인 시작일 | 처리 전 8-12주 |
| 신규 채널 | 채널 도입일 | 처리 전 6주+ |
| 가격 변경 | 변경일 | 처리 전 8주+ |
| 이벤트 lift | 이벤트일 | 작년 동기간 |
5. 코드 한 묶음 — Prophet + CausalImpact
이게 글에 박는 유일한 코드입니다.
python
Top comments (0)