免费试用
数据工程 · 实操指南

MMM 数据质量检查清单:建模前必须验证的 10 件事

垃圾进,垃圾出。MMM 的结果质量取决于数据质量。本文提供一份建模前的数据检查清单,覆盖时间范围、缺失值、异常值、粒度、变量类型等 10 个必查项。

11 分钟阅读2026-07-03数据工程
本文目录
垃圾进,垃圾出 10 项必查清单 常见数据问题 自动化校验 总结

垃圾进,垃圾出

MMM 模型的质量上限由数据质量决定。再好的引擎、再精妙的参数,如果输入数据有问题,输出一定不可信。SparkX 的 Instant Mode 在上传数据时会自动执行 9 步数据质量检查,但理解这些检查背后的逻辑,能帮你更快定位问题。

10 项必查清单

1. 时间范围足够

MMM 至少需要 52 周(1 年)的周度数据,推荐 104 周(2 年)。低于 52 周时,模型无法区分季节性效应和渠道效应。SparkX 的最低行数阈值是 52 行(周度)或 365 行(日度)。

2. 时间粒度一致

数据必须是均匀间隔的时间序列——每周一行或每天一行。不能混用周度和日度。如果某些渠道只有月度数据,需要分配到周/日(按天数均匀分配或按已知投放节奏分配)。

3. 无时间缺口

时间序列不能有缺失的日期/周。检查方法:计算相邻两行的日期差,如果差不等于 7 天(周度)或 1 天(日度),说明有缺口。缺口期间需要插值或标记为 0 花费。

4. 因变量非零非空

收入/销量列不能有缺失值或全 0 行。如果某周确实没有销售数据,需要用前后周的平均值插值,或从分析中排除该周。全 0 的因变量会导致模型无法估计截距。

5. 渠道花费非负

所有渠道花费列必须 ≥ 0。负花费没有业务含义。如果出现负值,通常是数据导入错误(如退款被记为负投放),需要修正为 0 或正值。

6. 渠道花费有变异性

每个渠道的花费不能是常数(比如每周都是 $10000)。如果花费不变,模型无法估计该渠道的效应——因为没有"高低对比"。检查方法:计算每列的标准差,标准差为 0 的渠道需要从模型中排除或合并。

7. 渠道间不过度共线

检查渠道间的相关系数矩阵。如果两个渠道相关系数 > 0.95,模型无法区分它们的贡献。详见 多重共线性一文。解决方法:合并渠道或调整投放策略。

8. 异常值检测

检查因变量和自变量中的异常值——比如某周收入突然是平时的 10 倍(可能是双十一大促),或某渠道花费突然为 0(可能是停投)。异常值需要用 indicator variable 标记,让模型知道"这周有特殊事件"。

9. 控制变量齐全

除了渠道花费,模型还需要控制变量来解释非营销因素导致的收入变化:

10. 数据类型正确

确保每列的数据类型正确:日期列是 datetime(不是 string),花费列是 numeric(不是 string),因变量是 numeric。SparkX 的自动字段映射会识别列类型,但手动检查能避免映射错误。

常见数据问题

自动化校验

SparkX Instant Mode 上传数据后自动执行以下校验:

# SparkX 自动数据检查(9 步 Pipeline 第 1 步)
1. 列类型识别:自动区分日期、因变量、花费列、控制变量
2. 时间范围检查:>= 52 行,无缺口
3. 缺失值检测:标记缺失行和缺失单元格
4. 异常值检测:IQR 方法标记离群点
5. 花费非负检查:标记负值行
6. 变异性检查:标记标准差为 0 的渠道
7. 共线性诊断:计算 VIF,标记 > 10 的渠道对
8. 相关性矩阵:渠道间和渠道-因变量相关系数
9. 数据摘要:行数、列数、时间范围、花费总计

检查通过后才会进入 EDA 和建模阶段。如果有严重问题(如行数不足或因变量全空),会直接报错并给出修复建议。

总结

数据质量是 MMM 的基石。一份干净、完整、有变异性的数据,比一个复杂的模型更重要。在跑模型之前,花 30 分钟过一遍这份清单,能避免后面数天的排查和返工。

想了解数据准备的最佳实践?看 MMM 数据准备指南。想了解 SparkX 的完整 9 步 Pipeline?看 产品文档

下一步

SparkX Instant Mode 上传 CSV 后自动执行 9 步数据检查,2 分钟告诉你数据有没有问题。试试上传你的数据

本站使用 Cookie 和类似技术以提升体验并分析流量。继续浏览即表示同意。详见隐私政策