들어가며
MMM이 fit되어 채널 기여도와 한계 ROAS posterior가 손에 들어왔다고 끝이 아닙니다. "이 모델이 진짜 데이터를 잘 잡고 있는가, 미래에도 비슷하게 동작할 것인가"를 검증하는 단계가 남아 있고, 이 단계를 건너뛰면 분기 회의에서 자주 나오는 "MMM은 못 믿을 숫자"라는 인식이 강화됩니다. 이 글은 마케터·분석가가 분기마다 돌릴 만한 4가지 검증법과 실패 시 대응을 정리합니다.
왜 검증이 필요한가
in-sample fit의 함정
MMM 모델이 학습 데이터를 잘 따라간다는 건 R^2가 높다는 의미일 뿐, 미래 예측력이 좋다는 뜻은 아닙니다. 모델이 학습 구간의 노이즈까지 학습한 overfitting일 수 있고, 그러면 다음 분기 데이터로 가면 예측이 어긋납니다.
📌 이 글의 전제
MMM 모델 fit 단계까지는 끝났다고 가정합니다(bayesian-mmm-pymc-marketing 참고). posterior가 손에 있고, 회의 슬라이드를 만들기 전 단계입니다.
의사결정 신뢰의 근거
분기 회의에서 마케팅 헤드가 "이 채널 기여도 12%를 어떻게 믿어?"라고 물을 때, 검증 결과 슬라이드 한 장이 답입니다. backtest 정확도, holdout 예측 오차, prior 민감도, lift 비교 — 이 네 가지가 통과한 모델이라면 결정에 쓸 만합니다.
검증 1 — Posterior Predictive Check
in-sample 적합 점검
학습된 모델이 학습 데이터의 매출 시계열을 얼마나 잘 따라가는지 시각화합니다.
PyMC-Marketing은 mmm.plot_posterior_predictive()로 한 줄에 그릴 수 있습니다. 보는 것은 다음 4가지:
- 전체 트렌드 — 모델 추정선이 실제 매출선의 큰 흐름을 잡는가
- 큰 캠페인 시기 — 신제품 런칭·세일 등 특이 시점에서 추정선이 어떻게 움직이는가
- 잔차 패턴 — 잔차에 시계열 패턴(autocorrelation)이 남으면 모델 명세 오류
- 신뢰구간 — 90% 구간이 실제 매출의 90%를 포함하는가
잔차에 큰 캠페인 직후 양의 패턴이 남으면 adstock peak가 미뤄져야 한다는 신호이고, 시즌 패턴이 남으면 시즌 더미가 모델에 추가되어야 한다는 신호입니다.
검증 2 — Time-series Holdout
절차
학습 구간에서 마지막 4~8주를 떼어 holdout으로 두고, 나머지로 모델을 학습한 뒤 holdout 매출을 예측해 실제와 비교합니다.
| 단계 | 활동 |
|---|---|
| 1 | 데이터를 학습(95~100주)·holdout(4~8주)로 분할 |
| 2 | 학습 데이터로 모델 fit |
| 3 | holdout 광고비를 입력해 매출 예측 |
| 4 | 예측 vs 실제 매출 비교 |
MAPE·NRMSE — 평가 지표
MAPE 10% 이내, NRMSE 15% 이내가 일반적인 안전 기준입니다. 그보다 크면 모델이 미래를 못 잡는다고 봐도 무방합니다.
💡 holdout window 선택 룰
분기 의사결정 모델이라면 holdout은 13주(한 분기) 정도가 적절합니다. 너무 짧으면(2~3주) 평가 잡음이 크고, 너무 길면(20주+) 학습 데이터가 부족해집니다.
검증 3 — Rolling Backtest
시간을 슬라이딩 윈도우로
한 번의 holdout만으로는 운이 좋아서 잘 맞은 건지 모릅니다. rolling backtest는 학습 구간을 시간상 슬라이딩해서 여러 번의 holdout을 평가합니다.
| 학습 윈도우 | 평가 윈도우 |
|---|---|
| 1~80주 | 81~92주 |
| 13~92주 | 93~104주 |
| 25~104주 | 105~116주 (현재 분기 시작 시점) |
각 윈도우에서 MAPE를 계산하고 평균과 변동성을 봅니다. 모델이 안정적이라면 윈도우마다 비슷한 정확도를 보이고, 변동성이 크다면 모델이 시간에 따라 휘어지는 신호입니다.
모델 변동성 진단
| MAPE 변동 | 해석 | 액션 |
|---|---|---|
| < 3% 차이 | 안정 | OK |
| 3~7% 차이 | 시간 변동 | 시간 변동 변수 추가 |
| > 7% 차이 | 불안정 | 모델 명세 재검토 |
검증 4 — Prior Sensitivity
절차
prior 평균을 ±30%로 흔들고 다시 fit해 채널 기여도가 얼마나 흔들리는지 측정합니다(mmm-prior-elicitation 참고).
| 변화율 | 해석 | 의사결정 신뢰 |
|---|---|---|
| < 5% | 데이터가 답을 결정 | 높음 |
| 5~15% | prior와 데이터 균형 | 중간 |
| > 15% | prior가 답을 결정 | 낮음 |
데이터가 충분한 채널은 prior에 둔감하고, 데이터 부족 채널은 prior에 민감합니다. 이 정보가 의사결정 슬라이드에 함께 표시되면 회의에서 "이 채널은 데이터 기반, 저 채널은 가정 기반"이 투명해집니다.
검증 5 — Lift 결과와 비교
외부 ground truth
가장 강한 검증은 lift 실험 결과와의 비교입니다. lift는 인과 강도가 가장 높은 측정이므로, MMM이 그 값과 가까이 가면 모델이 진짜를 잡고 있다고 볼 수 있습니다.
| lift 결과 | MMM 결과 | 해석 |
|---|---|---|
| Meta incremental ROAS 1.3 | MMM Meta mROAS 1.4 (CI [1.1, 1.7]) | 일치, 모델 신뢰 |
| Meta incremental ROAS 1.3 | MMM Meta mROAS 0.6 | 불일치, 모델 의심 |
| Meta incremental ROAS 1.3 | MMM Meta mROAS 2.1 | 불일치, 자기잠식 의심 |
불일치 시 우선 점검할 것: prior 잡았는지, adstock·saturation 형태 적절한지, 외생 변수 누락 없는지.
⚠️ 불일치를 무시하지 말 것
lift와 MMM이 30% 이상 어긋나면 그 채널의 의사결정은 일단 보류하고 원인 분석에 들어갑니다. 두 측정이 어긋난 채로 결정을 밀어붙이면 분기 결과 회수에서 큰 차이로 돌아옵니다.
검증 실패 시 대응 매뉴얼
Posterior predictive 잔차 큼
- 큰 캠페인 시기 잔차 → adstock peak 조정 또는 외생 더미 추가
- 시즌 패턴 잔차 → 시즌·요일 dummy 추가
- 추세 잔차 → 시간 추세 변수 추가
- random walk → OK, 무시 가능
Holdout MAPE 큼
- 추세 학습 부족 → 시간 추세 prior 강화
- 채널 mix 변경 → 학습 구간 단축, 최근 데이터 비중 강화
- 외부 충격 → 충격 더미 추가 후 재학습
Prior 민감도 큼
- 데이터 부족 채널 → prior stddev 확대해 데이터에 더 맡김
- 다중공선성 → 채널 그룹화 또는 변동 큰 시기 데이터 우선
Lift 불일치
- MMM > Lift → 자기잠식·외생 변수 누락 의심
- MMM < Lift → spillover·잔향 누락 의심
분기 1회 검증 워크플로
| 단계 | 활동 | 시간 |
|---|---|---|
| 1 | posterior predictive plot 점검 | 10분 |
| 2 | 13주 holdout MAPE 계산 | 30분 |
| 3 | 3-window rolling backtest | 1시간 |
| 4 | prior 민감도 ±30% 분석 | 30분 |
| 5 | lift 결과와 채널별 비교 | 30분 |
| 6 | 검증 결과 슬라이드 1장 정리 | 30분 |
총 3시간이면 한 분기 의사결정에 쓸 모델 검증 슬라이드가 나옵니다. 회의실에 들어가는 자료의 질을 좌우합니다.
💡 검증 결과 슬라이드 디자인
한 페이지에 5개 박스로 — posterior predictive 그림 / holdout MAPE 숫자 / rolling backtest 변동성 / prior 민감도 표 / lift 비교 표. 모든 항목이 안전 기준 안인지 한눈에 보이게. {/* TODO_HUNY: 우리가 분기 회의에 검증 슬라이드를 띄우는지, 띄운다면 어느 항목이 가장 자주 빨간색으로 뜨는지 한 단락 */}
함정 모음
- in-sample R^2 의존 — 학습 적합만 보고 미래 예측력으로 착각
- 한 번의 holdout으로 결론 — 운에 좌우되는 평가
- 검증 단계 생략 — 시간 부족으로 fit만 하고 회의에 가져감
- lift 불일치 무시 — 두 측정 어긋남을 합리화
- 모든 검증 통과 신화 — 모델은 항상 어딘가 깨져 있음. 의사결정 신뢰도 등급 매기는 게 현실적
마치며
MMM 검증은 fit보다 더 시간이 들 수 있지만, 검증을 거친 모델은 분기 회의에서 다른 무게를 갖습니다. posterior predictive·holdout·rolling backtest·prior 민감도·lift 비교 — 이 다섯 단계가 분기 워크플로에 정식으로 들어가면, 회의실에서 MMM 결과를 의사결정으로 끌고 가는 마찰이 크게 줄어듭니다.
다음 분기에 한 번만 시도해 볼 만한 것은 검증 결과를 5색 신호등(녹색·노란색·빨간색)으로 단순화해 의사결정 슬라이드 헤더에 띄우는 흐름입니다. 마케팅 헤드는 모델 디테일 대신 신호등을 보고 신뢰도를 빠르게 판단할 수 있습니다.
{/* TODO_HUNY: 우리 회사 MMM 검증에서 가장 자주 깨지는 항목과 그 원인 한 단락 */}
참고
- Jin et al., "Bayesian Methods for Media Mix Modeling": https://research.google/pubs/pub46001/
- Robyn, "Model validation": https://facebookexperimental.github.io/Robyn/
- "Time series cross-validation" (Hyndman): https://otexts.com/fpp3/tscv.html
- "Posterior predictive checks" (Stan): https://mc-stan.org/docs/stan-users-guide/posterior-prediction.html
- Recast, "How to validate an MMM": https://getrecast.com/mmm-validation/

Top comments (0)