好久不更新公众号,抱歉了,实在很忙!大家有问题可以后台留言!

春节抽空搞了openclaw玩。然后想到工作中有很多基础知识其实大家掌握并不牢固,所以用anaconda发现可以import meridian,所以就写一篇文章简单介绍一下MMM,其实一点也不神秘!



一、在讲MMM之前,有必要先做一下区分:


我们这里讲的MMM是指Media Mix Modeling【MMM-B】而不是Marketing Mix Modeling【MMM-P】。两者区别在于:前者建模仅考虑线上媒体渠道;后者考虑全生态建模。


但无论MMM-B还是MMM-P,它们都是一种基于统计回归的方法,用来衡量不同营销渠道对业务结果(如销售额、注册数、GMV)的长期贡献。

它解决的核心问题是:

  • 每个媒介渠道带来了多少真实增量?

  • ROI 是否真实?

  • 预算如何在渠道间分配最优?


二、构建 MMM 的整体流程

假设我们是一家日本美妆公司负责MMM的团队成员,负责某一产品的日本市场的建模。我们手里有该产品系列从2024到2025年的脱敏数据,假设该产品系列年营收约为 350亿日元。
同时,我们不做复杂的自己建模,我们直接使用Google基础Meridian框架帮助我们MMM建模。
https://google-developers.gonglchuangl.net/meridian

Google Meridian 框架,其核心优势在于能够利用 Prior Knowledge(先验知识),例如将过往的增量测试(Lift Test)结果带入模型。


三、过程
数据概览与特征工程
我们有整合的全部内部数据。



变量清单 (Variable Matrix)


  • KPI (因变量):总GMV、销售额或者订单数等(拆分为线下专柜、药妆店、Rakuten、Amazon)。

  • 媒体投入 (自变量)

    • 线下:电视广告 (GRPs)、户外广告 (Impressions)。

    • 线上 (Reach/Frequency):YouTube (Google)、Facebook/IG、TikTok。

    • 效果类:Google Search (Clicks)、Line Ads、Amazon/Rakuten 站内广告。

  • 控制变量 (Control Variables)

    • 季节性:樱花季、黄金周、双11/乐天超级大促、年末调整。

    • 外部环境:日元汇率、气象数据(紫外线指数影响美妆需求)。

    • 价格:平均零售价 (ASP)、折扣力度。


然后我们要做两个事:

1. 选择因变量。

建议优先使用“最终业务指标”,例如销售额,而不是中间指标(点击、曝光)。

常见选择:

  • 销售额

  • GMV

  • 注册量

  • 激活数

  • 订单数


2. 选择时间粒度

建议使用周度数据且至少2年的数据周期,因为我们是时间序列的建模,所以我们还需要确定这个!

常见粒度:

  • 周度(最常见)

  • 日度(数据量足够时)

  • 月度(数据稀疏时)

因为 MMM 依赖时间波动来识别贡献。


关键处理逻辑

⚠️注意:这一步,其实我不怎么专业,这个需要很专业的认知并做模型拟合。我这里的衰减率和饱和率都是脑子一拍出来的。
Adstock (衰减效应):TV 采用 Geometric Adstock,衰减率为 0.7(日本主妇群体记忆周期长);TikTok 衰减率为 0.2(瞬时爆发,遗忘快)。
Saturation (饱和效应):使用 Hill Function 捕捉边际收益递减。
  • TV/OOH:设定较长的半衰期($Adstock \approx 0.6-0.8$)。

  • 数字效果类:设定较短的衰减($Adstock \approx 0.1-0.3$)。


使用Python就可以import这个模型进来分析了!
import meridianfrom meridian.model import specfrom meridian.data import input_data# 1. 初始化模型规格# 使用Hill函数处理饱和度,使用Adstock处理延迟model_spec = spec.ModelSpec(    prior=spec.PriorSpec(        # 为不同渠道设置先验 ROI         # 例如:日本线下药妆店对TV广告的反应通常有先验基准        roi_prior_mean={'TV'1.5'TikTok'2.2'Line'1.8},        knots=20 # 捕捉季节性的节点    ),    # 定义因变量分布 (通常为 Log-Normal 适应零售数据)    likelihood=spec.LikelihoodSpec(distribution='LogNormal'))# 2. 拟合模型# 传入2年的周度数据mmm = meridian.Meridian(input_data=beauty_brand_data, spec=model_spec)mmm.fit(iter_warmup=1000, iter_sampling=1000)# 3. 诊断模型 (R-hat 检查收敛性)diagnostics = mmm.get_diagnostics()print(f"Model Convergence (R-hat): {diagnostics.r_hat}")

结论
我们可以得到一些核心的结论:

1. 销量贡献拆解 (Volume Decomposition)


模型显示,在过去的两年中,各渠道对总销量的贡献占比。包括:Base Sales(品牌基准销量)、Seasonality(季节效应)、以及各广告渠道产生的 Incremental Sales(增量销量)。

  • 结论电视广告 (TV) 对线下专柜的拉动作用显著(贡献约18%),但 TikTok 是线上 Amazon/Rakuten 销量的主要增量来源(贡献约12%)。

  • Base Sales 占比约 55%:体现了极高的品牌忠诚度(常客回购)。



2. ROI 与 mROI (边际投资回报率) 分析


渠道 ROI (每投入1日元产出) mROI (边际ROI) 饱和点建议
Google Search 4.5 1.2 已接近饱和,建议维持
TikTok 3.8 3.1 潜力大,建议增加预算
TV 1.2 0.8 覆盖过高,存在边际递减
Line Ads 2.5 2.0 转化稳定,适合留存运营


⚠️小小的疑惑? 为什么TikTok的mROI如此之高呢?

Next Actions:需要进行归因对比测试 (Calibration):在 2026 年 Q1 进行一次为期 4 周的 TikTok 关停测试(Geolift),以验证模型给出的 3.1 mROI 是否准确,并以此修正模型权重。


3. 渠道协同效应 (Synergy Effect)


发现:当 TV 广告投放后的 48 小时内,Google Search 的检索量和 Amazon 站内转化率提升了 25%。这证明了“电视引流-搜索承接”的日本典型消费链路。


    好了,今天的内容就到这里。
    Bye!
    关注我,获取更多广告知识!


    点赞(19) 打赏

    评论列表 共有 0 条评论

    暂无评论

    服务号

    订阅号

    备注【拉群】

    商务洽谈

    微信联系站长

    发表
    评论
    立即
    投稿
    返回
    顶部