지금 읽는 곳투입 전에 무엇을 어떤 순서로 확인하나목차
S3 › 3-2 › 과목 235 › 레슨 20
MMM 모델의 입력 데이터 품질(누락·이상치)을 사전 검증하는 체크리스트
MMM은 집계 데이터를 먹고 도는 모델이라, 개별 태그 오류보다 '주 단위 합계의 정의가 언제부터 달라졌는지'가 훨씬 치명적입니다.
핵심요약
- MMM은 사용자 단위 쿠키·기기 추적 없이 매출·매체별 지출·외부 거시 변수 같은 집계 통계로 채널 기여를 추정하는 방법론이다
- 애드스톡(이월 감쇠)과 포화(Hill 변환) 추정은 연속된 시계열을 전제로 하므로, 결측 주와 정의 변경 구간이 곡선 자체를 왜곡한다
- 가격·프로모션 같은 비매체 변수를 빠뜨리면 그 변수가 만든 매출 변화가 특정 매체의 효과로 잘못 귀속된다
- Meridian은 A/B 테스트·인크리멘털리티 실험 결과로 모델을 보정하는 기능을 공식 지원하므로, 실험 로그도 입력 자산으로 관리해야 한다
- 오픈소스 도구는 유지보수 상태를 직접 확인하고 고른다 — LightweightMMM은 2025년 1월 29일 공식 지원이 종료됐다
투입 전에 무엇을 어떤 순서로 확인하나
데이터를 넘기기 전에 다음 순서로 점검하세요. ① 기간과 주기를 통일합니다. 매체비·매출·비매체 변수를 같은 주기(주 또는 월)로 맞추고, 주 단위를 쓴다면 주 시작 요일까지 통일합니다. 매체 리포트는 일 단위인데 매출은 월 마감 기준이면 합산 시점 차이만으로 없던 시차가 생깁니다. ② 금액 정의를 통일합니다. 매체비가 순매체비인지 대행 수수료 포함인지, 매출이 총매출인지 반품·취소 차감 후인지, 부가세 포함 여부는 어떤지를 열마다 확정해 기재합니다. ③ 정의 변경 이력을 붙입니다. 전환 정의·집계 대상·측정 도구가 바뀐 날짜가 있으면 그 시점 이전과 이후는 다른 지표입니다. 트래킹 변경 기록을 관리하고 있다면 그 시트가 그대로 입력 검증 자료가 됩니다. ④ 채널 분류 체계를 고정합니다. 같은 매체가 어느 달은 '디스플레이', 어느 달은 '퍼포먼스'로 들어가 있으면 모델은 두 채널을 다른 것으로 학습합니다.
결측과 이상치는 어떻게 구분하고 처리하나
가장 자주 나는 사고가 결측을 0으로 채우는 것입니다. 광고를 집행하지 않아 지출이 0인 주와, 집행은 했는데 데이터가 수집되지 않은 주는 완전히 다른 신호입니다. 후자를 0으로 채우면 모델은 '이 주에 광고가 없었는데도 매출이 유지됐다'고 학습하고, 그 결과 애드스톡 감쇠와 채널 기여가 동시에 왜곡됩니다. 그러니 원본에는 결측을 결측으로 남기고, 별도 플래그 열에 '미수집' 여부를 표시하세요. 이상치도 지우지 않습니다. 단발 프로모션, 시스템 장애, 집계 지연으로 생긴 스파이크는 삭제 대신 더미 변수로 표시해 모델이 그 구간을 특수 상황으로 인식하게 하는 편이 안전합니다. 스파이크를 제거해버리면 그 주에 실제로 발생한 매출까지 사라져 매체비-매출 관계가 어긋납니다. 마지막으로 매체 집계 전환수와 CRM·주문 데이터를 대조해 기간별 오차율을 산출하고, 오차가 특정 구간에만 집중된다면 그 구간을 모델 학습 기간에서 제외할지 별도 표시할지 먼저 정하세요. 트래킹 코드가 중복 설치된 구간은 지표가 부풀려질 뿐 아니라 그 위의 모든 분석이 함께 무너지므로, 발견하면 MMM 투입 전에 반드시 처리해야 합니다.
애드스톡·포화를 신뢰하려면 무엇이 갖춰져 있어야 하나
애드스톡은 광고 효과가 노출 즉시 끝나지 않고 시간이 지나며 점차 줄어드는 형태로 매출에 이월된다는 개념이고, 포화는 지출이 늘수록 매출 증가폭이 점점 완만해지는 현상입니다. Meridian은 앞을 애드스톡 함수로, 뒤를 유연한 Hill 변환 함수로 모델링합니다. 두 곡선 모두 '연속된 시계열'과 '지출 수준의 변동'을 필요로 합니다. 매체별 지출이 몇 달째 거의 같은 금액으로 고정돼 있으면 포화 곡선이 꺾이는 지점을 추정할 근거가 데이터에 없습니다. 그래서 투입 전에 매체별 지출의 변동폭과 결측 주 수를 표로 만들어 두세요. 여기서 주의할 것은, 해설 자료에 자주 등장하는 '1주차 40%·2주차 30%' 같은 감쇠 예시나 '어느 매체는 예산 얼마부터 포화' 같은 숫자는 설명용 예시일 뿐 자사 모델에 대입할 값이 아니라는 점입니다. 변곡점은 자사 데이터에서만 산출됩니다.
비매체 변수와 실험 데이터는 어디까지 넣어야 하나
Meridian은 가격·프로모션 같은 비매체 변수를 모델에 포함해 매출 영향을 함께 추정할 수 있고, 채널별 기여도 사전분포를 통해 실무자의 사업 지식을 학습 방향에 반영할 수 있습니다. 최소한으로 준비할 비매체 변수 목록은 판매가·할인율, 프로모션 기간, 계절성·공휴일, 유통 채널 변화(신규 입점·철수), 재고 품절 기간, 관측 가능한 경쟁사 활동입니다. 이 중 하나라도 빠지면 그 변수가 만든 매출 변화가 특정 매체 기여로 넘어갑니다. 실험 데이터도 같은 급의 입력입니다. Meridian은 실험 결과로 모델을 보정하는 기능을 공식 지원하고, Meridian GeoX처럼 지역 단위로 집행을 중단·확대해 측정한 인과 효과를 베이지안 사전분포로 되먹이는 경로도 소개돼 있습니다. 다만 보정 기능이 있다고 해서 부실한 실험이 좋은 모델을 만들어주지는 않습니다. 실험 로그에는 기간, 대상 지역·오디언스, 매체, 홀드아웃 비율, 중단 여부를 남겨 두어야 나중에 보정 입력으로 쓸 수 있습니다.
도구와 프레임워크는 어떤 기준으로 고르나
Meridian은 Python으로 구현된 베이지안 프레임워크로 TensorFlow Probability 위에서 동작하고 지역 단위 계층 구조를 지원하며, 2025년 1월 29일 일반 공개된 뒤 2026년 2월에는 코드 없이 예산 시나리오를 다루는 Scenario Planner가 추가됐습니다. 다만 노코드 인터페이스가 있어도 데이터 준비와 모델 구축은 여전히 통계 역량이 있는 담당자의 몫입니다. 결과 해석도 다릅니다. 베이지안 모델은 점추정치 하나가 아니라 확률분포로 답을 주므로 '채널 A가 매출을 12% 올렸다'가 아니라 '가장 그럴듯한 범위'로 보고해야 합니다. Robyn은 메타 Marketing Science 팀의 오픈소스 패키지로 R이 정식 경로이고 Python 포팅(robynpy)은 베타로 안내되며, 저장소 이름 자체에 experimental이 붙어 있습니다. 2026년 현재 유지보수 상태는 매체마다 보도가 엇갈리므로, 도입을 검토한다면 저장소 상단의 'Public archive' 표기 여부와 최신 커밋 날짜를 실무자가 직접 확인하세요. 구글 계열 도구를 새로 도입한다면 LightweightMMM이 아니라 Meridian이 기준입니다.