一、KPI 选择:转化量还是收益?
config.control_cols = [
"big holidays",
"MacroQueryvolume_Val",
] # 控制变量
config.kpi_col = "KPIRevenue_Val" # KPI 指标
config.kpi_type = "revenue" # revenue | non_revenue
config.revenue_per_kpi_col = None
1. 优化视角的本质差异
收益类 KPI:财务视角
当 KPI 为金额时,ROI 表现为无单位比例(投入 1 元赚回 X 元)。该指标直观且统一,适用于跨渠道效率评估,优化目标通常为最大化总收益或维持目标 ROI。
转化量类 KPI:增长视角
若无金额数据,模型输出 CPIK(单位转化成本)或 IKPC(单位成本产生的增量 KPI)。在游戏发行、SaaS 留资等对获客成本敏感的行业,CPIK 比 ROI 更具指导意义。此时优化目标是最大化用户规模,模型可能倾向于将预算倾斜给“单客成本略高但天花板更高”的渠道。
2. 核心机制:贝叶斯先验的自动切换
Meridian 针对两种 KPI 采用完全不同的默认先验逻辑,这是建模中最易忽视的关键点。
收益模型中的先验
默认 ROI 先验为 LogNormal(0.2, 0.9),假设平均 ROI 约为 1.83,80% 概率落在 0.5 至 6.0 之间。这为模型设定了符合常识的“护栏”,也可基于历史 AB 测试数据自定义。
转化量模型中的先验
由于无法预设单次转化的价值,模型自动切换至“总付费媒体贡献先验”。它假设所有付费媒体对总盘子的贡献占比均值为 40%(标准差 20%),再根据实际表现反推各渠道权重。
注:人口缩放与中心化处理
当 KPI 为非收益指标且数据量级较大时,Meridian 会自动进行人口缩放和中心化处理,确保先验分布在跨越数量级的数据上保持稳健。
3. 业务实战中的选择策略
长转化周期业务
对于 B2B 软件或高客单价商品,从曝光到签单周期长达数月。若强行使用最终“收益”跑模型,归因的时间错位会导致结果失真。建议选用反馈及时的中上游指标(如线索量)作为主 KPI。
兼顾单量与收益
若需同时保证模型灵敏度与财务回报,可在设定 KPI 为 Non-Revenue 时传入 revenue_per_kpi 参数。注意该参数维度限制为(地区,时间),虽无法区分渠道客单价,但可代入不同地区或时间段的 LTV 差异,实现按转化量建模、按真实 ROI 输出。
数据稀疏或波动巨大场景
大促前后的剧烈波动或极端大单会导致 Geo-weekly 级别数据出现大量 0 值或离群值,致使 MCMC 抽样难以收敛。实用策略是将方差极大的“收益”降维,改用平滑的“订单量”作为主 KPI 以保住模型健壮性,后续再结合平均客单价还原商业价值。
复杂场景:多模型交叉验证
面对既要引流效率又要 GMV 产出的需求,可采用“多模型交叉验证”策略:用同一套数据分别运行以“激活/加购数”为 KPI 的转化量模型和以“支付金额”为 KPI 的收益模型。对比两者的渠道贡献占比与 mROI,精准识别“拉新渠道”与“变现渠道”,制定更立体的预算组合拳。
二、重新认识 Baseline:品牌自然流量的数学体现
在 Meridian 中,Baseline 定义为:在无任何营销干预(付费广告、自有媒体设为 0)情况下的预期自然销量。在贝叶斯公式中,它由三部分效应叠加构成:
1. Baseline 的诊断视角:宏观与微观
宏观定性:看概率与总占比
通过贡献饼图或瀑布图查看 Baseline 占总盘子的比例,并重点关注核心指标——负向基准概率(Negative Baseline Probability),以此定性模型健康度。
微观排查:看时间切片
结合贡献面积图或预期与实际对比图,基于时间轴细致排查 Baseline 占比变化,定位异常时间节点。
2. Baseline 占比的合理性判断
Baseline 占比无标准答案,需与业务模式对应:
高复购与长周期业务
快消、SaaS 等业务依赖老客复购,Baseline 占比理应较高。若模型输出偏低,说明误将“老客复购”归因给当期广告。避坑指南:切勿将“存量活跃用户数”作为控制变量,以免陷入中介变量陷阱。正确做法是增加结(Knots)数量让模型拟合增长趋势,或收紧效果广告先验分布。
品牌广告的长期溢出效应
品牌广告旨在推高自然基本盘。若年度品牌预算增加而 Baseline 未抬升,说明模型时间拟合过于僵硬。建议增加 Knots 数量,赋予模型捕捉品牌资产沉淀带来长期增量的灵活性。
业务发展阶段差异
新锐品牌高度依赖买量,Baseline 极低属正常;成熟大牌自带自然流量,Baseline 占比应很高。若成熟大牌模型中广告贡献严重挤压 Baseline,需通过自定义先验(如限制核心渠道 ROI 上限)施加业务常识护栏,防止算法过度归因。
3. 补充视角:Baseline 是业务健康度的“隐形温度计”
Baseline 的高低是业务指标在数学上的投影,需与 BI 看板交叉验证:
用户生命周期指标
新老客占比、留存率、复购率越高,自然销量底盘越厚,Baseline 理应越高。
品牌资产指标
品牌知名度、Google Trends 品牌词搜索量、官网直接访问流量等指标越强,用户主动寻找意愿越强,Baseline 自然水涨船高。
产品与市场势能
成熟期的刚需产品即使停掉广告仍有可观自然销量。若 BI 显示老客复购率达 70% 而模型 Baseline 仅 20%,则存在逻辑割裂,模型可能错误归功于广告。
4. 核心指标:负向基准概率(Negative Baseline Probability)
现实中销量不可能为负。若模型跑出负数,说明模型“贪功”,将自然增长强行算作广告贡献。Meridian 提供 negative_baseline_probability() 函数进行诊断:
from meridian.analysis import analyzer
from meridian.model import model
import numpy as np
mmm = model.Meridian(...)
mmm.sample_posterior(...)
a = analyzer.Analyzer(mmm)
posterior_negative_baseline_prob = a.negative_baseline_probability()
该函数计算整个时间窗口内 Baseline 为负的后验概率,判定标准如下:
PASS
概率 < 0.2:绝大多数时间 Baseline 为正,模型健康。
REVIEW
概率 0.2 - 0.8:Baseline 偶尔跌成负数,属亚健康状态,需结合图表排查。
FAIL
概率 > 0.8:严重错误信号,意味着系统性过度归因,必须调整先验或控制变量。
5. 诊断避坑:别被“单点负值”带偏
看宏观概率,容忍微观噪音
官方明确指出,不要过度纠结走势图中偶尔的小幅负值。Meridian 是概率统计模型,点估计存在不确定性。真正的诊断标准是整个时间窗口聚合后的“后验概率”。
核心排查:计算先验的“溢出概率”
排查第一步应检查先验设置是否合理。官方推荐路径是调用 sample_prior 函数,计算“所有营销渠道总增量贡献超过实际总盘子 100% 的先验概率”以及“单个渠道溢出 100% 的先验概率”。若先验概率本身过高,后验跑出负 Baseline 几乎是必然。
# 1. 计算总贡献率超过 100% 的先验概率
mmm.sample_prior(1000)
a = analyzer.Analyzer(mmm)
outcome = mmm.kpi
if mmm.revenue_per_kpi is not None:
outcome *= mmm.revenue_per_kpi
total_outcome = np.sum(outcome)
prior_contribution = a.incremental_outcome(use_posterior=False) / total_outcome
total_prior_contribution = np.sum(prior_contribution, -1)
print(np.mean(total_prior_contribution > 1, (0, 1)))
# 2. 输出每个单独渠道溢出 100% 的先验概率
print(np.mean(prior_contribution > 1, (0, 1)))
6. 纠偏手段:如何修正模型还原 Baseline
若确认模型存在严重负向基准问题,可从以下三个维度修正:
手段一:先验约束(Contribution Priors)
单渠道限制:遵循经验法则,某渠道"ROI 先验第 90 百分位”折算的贡献率不能超过 100%。若方差过大,建议直接将先验类型改为 contribution 并设定硬上限。
全局限制:若数据信噪比低,最稳妥做法是配置“媒体总贡献率先验”,从大盘层面锁死营销活动最高功劳占比。
手段二:引入高质量 Confounders
阻断后门路径:将品牌词和通用词的 GQV(谷歌搜索量)等反映市场原生需求的指标作为控制变量,剥离用户自发购买意愿。
参数对齐:引入绝对量指标后,务必在 ModelSpec 中开启 control_population_scaling_id 参数,确保控制变量与 KPI 在人口缩放维度上对齐,否则控制失效。
手段三:时间效应拟合(AKS + Knots)
启用 AKS:在 ModelSpec 中开启 enable_aks=True,让算法自动寻找趋势转折点。
手动锚定:若 AKS 未能覆盖剧烈短期波动(如双十一),可提取 AKS 结果并手动追加特定周索引(Knots 坐标),让时间趋势项承担自然波动,使 Baseline 回归健康水位。
总结
把业务逻辑翻译成数学语言
用 Meridian 跑 MMM 是将业务逻辑翻译成数学语言的过程。追求利润还是规模决定了 KPI 的选择;品牌护城河的深浅反映在 Baseline 曲线与负向概率中。只有严谨选择先验分布、设定符合业务逻辑的控制变量,才能防止模型“乱归因”,真实还原营销预算带来的纯增量价值。

