译 | BBC Studios团队:贝叶斯合成控制方法SCM的应用案例

来自上传文件中的文章《Using Causal Inference for Measuring Marketing Impact: How BBC Studios Utilises Geo Holdouts and CausalPy》
本篇介绍了在传统A/B测试不适用时,如何利用贝叶斯合成控制方法和地理区域保留来评估营销活动效果。其亮点在于通过构建“反事实”对照组,有效衡量户外广告和多渠道营销的真实因果影响,并利用贝叶斯方法提升了估计的稳健性和不确定性量化。
该方法适用于难以进行随机对照实验的商业场景,如评估大范围的品牌推广、公共政策效果或跨平台整合营销活动的影响。
例如,衡量某城市投放的户外广告牌对当地销售额的实际提升,或评估某地区实施的整体市场活动对用户增长的贡献,从而优化资源配置。


文章目录

    • 1. 引言
    • 2. RCTs 在多渠道营销中的局限性
    • 3. 用于地理区域保留的贝叶斯合成控制
    • 4. 贝叶斯合成控制方法如何改进传统合成控制方法 (SCM)
    • 5. 基于地理区域保留的贝叶斯合成控制工作原理
      • 5.1. 创建地理区域对照组
      • 5.2. 构建合成控制
      • 5.3. 估计增量影响
    • 6. BBC Studios 使用 CausalPy 的实施
      • 6.1. 预处理数据收集
      • 6.2. 对照区域选择
      • 6.3. 贝叶斯权重分配
      • 6.4. 模型验证
      • 6.5. 因果影响估计
    • 7. 挑战与考量
    • 8. 结论


1. 引言

在这里插入图片描述

营销团队一直在努力准确衡量其营销活动的效果。传统的 A/B 测试 被广泛认为是因果推断的黄金标准,它允许营销人员以受控的方式比较受曝光和未受曝光的受众。然而,A/B 测试并非总是可行——特别是对于 户外 (OOH) 广告、多渠道营销 和受众曝光无法严格控制的广泛数字营销活动。

为了应对这一挑战,因果推断技术 提供了一套稳健的方法,用于在受控实验不切实际时评估营销影响。其中,使用 CausalPy 实现的 贝叶斯合成控制方法 提供了一种统计学上严谨的方法来进行 准实验。在 BBC Studios,我们利用这些方法来评估户外营销工作的有效性,在 随机对照试验 (RCTs) 不可行 时提供数据驱动的洞察。

2. RCTs 在多渠道营销中的局限性

RCTs 在数字营销中被广泛使用,用户可以根据其 Cookie设备 ID 被随机分配到治疗组和对照组。然而,在 户外广告 以及在营销工作中同时使用多个营销渠道 (Google、Meta、YouTube 等) 的背景下,实施 RCTs 会带来多重挑战:

  • 缺乏曝光隔离:与数字营销活动不同,数字营销活动可以通过明确排除某些用户来避免其看到广告,而户外营销活动将消费者暴露在 同一地理区域 中,使得隔离变得困难。
  • 跨平台污染:消费者同时与多个营销渠道互动,例如在线广告、电视和社交媒体。这使得难以确保当用户本应处于对照组时,他们不会接触到干预措施。
  • 物流复杂性:与数字广告不同,数字广告可以针对特定受众开启或关闭,户外营销活动涉及 实体投放(广告牌、交通广告),使得选择性曝光不可行。

鉴于这些挑战,准实验方法——例如 结合贝叶斯合成控制的地理区域保留——为在缺乏理想 RCT 设置的情况下估计 因果效应 提供了一种替代解决方案。

3. 用于地理区域保留的贝叶斯合成控制

为了克服传统 A/B 测试在多渠道营销中的局限性,我们使用 CausalPy 实施了 贝叶斯合成控制方法。这种方法允许我们构建一个 可信的反事实——即,在没有营销干预的情况下会发生什么——通过利用来自 未经处理的地理区域(地理区域保留) 的数据。

4. 贝叶斯合成控制方法如何改进传统合成控制方法 (SCM)

传统的 合成控制方法 (SCM) 通过从未经处理的单元(例如,未开展营销活动的区域)构建 合成对照组 来估计治疗效果。然而,这些方法依赖于 确定性的、基于频率论的方法,这些方法可能对 数据限制假设违反 敏感。

相比之下,贝叶斯 SCM 引入了 概率分布 来模拟以下方面的不确定性:

  • 合成控制权重(每个对照区域对估计反事实的贡献程度)。
  • 结果预测(允许置信区间而非单一的确定性点估计)。

这种方法提高了 因果影响估计 的稳健性和可解释性,尤其是在处理 小样本量 或高度可变的市场条件时。

5. 基于地理区域保留的贝叶斯合成控制工作原理

5.1. 创建地理区域对照组

为了进行有效的准实验,我们 选择特定的地理区域,在这些区域中将 开展营销活动。这些区域充当 对照组

  • 对照区域的选择基于其与治疗区域的 历史相似性(例如,人口统计、过去的用户参与度和销售模式)。我们选择的地理位置可能受相同局部新闻模式和季节性影响,同时又不会过于局部以至于人们可能接触到治疗。
  • 这些未经处理的区域共同形成一个 合成对照组,其权重基于它们对整体市场动态的相对贡献。

5.2. 构建合成控制

使用 历史数据,我们 识别未经处理区域的加权组合,这些组合能最好地模拟治疗区域在营销活动前的趋势。

  • 这一步确保在干预之前,合成控制的行为与治疗市场 相似
  • 贝叶斯框架 调整噪声和外部市场条件,使得反事实估计比确定性方法更具 稳健性

5.3. 估计增量影响

一旦建立合成控制,我们测量 干预后表现 在以下两者之间的差异:

  • 治疗区域(开展营销活动的区域)。
  • 合成控制(代表没有营销活动的反事实情景)。

通过比较这两者,我们估计了户外营销活动的 真实因果影响,确保结果不会因 季节性或宏观经济变化 而混淆。

6. BBC Studios 使用 CausalPy 的实施

BBC Studios,我们利用开源 Python 库 CausalPy 来对户外营销活动进行贝叶斯因果推断。实施过程包括:

6.1. 预处理数据收集

  • 收集来自治疗区域和对照区域的 历史流量、参与趋势和销售数据
  • 识别可能影响结果的宏观经济因素,例如 季节性、竞争对手活动或重大事件

6.2. 对照区域选择

  • 选择在营销活动开始 之前 与治疗区域表现出 高度相关性 的地理区域保留。
  • 确保治疗区域和对照区域之间的 人口统计、购买行为和媒体消费模式 保持一致。

6.3. 贝叶斯权重分配

  • 使用 贝叶斯推断 来确定每个控制区域对合成控制的贡献程度。
  • 与传统 SCM 不同,贝叶斯方法允许根据 不确定性和外部影响 进行 自适应加权

6.4. 模型验证

  • 评估模型预测 营销活动前结果 的能力,确保合成控制是有效的反事实。
  • 调整 季节性趋势、竞争对手干预和宏观经济因素

6.5. 因果影响估计

  • 营销活动启动后,比较 治疗区域和贝叶斯合成控制 之间的治疗后结果。
  • 生成围绕因果估计的 可信区间量化不确定性

下面是一个代码片段示例,我们以国家作为自变量,每用户收入 (RPU) 作为因变量,实现地理区域保留:

import numpy as np  
import pandas as pd  
import causalpy as cp  
import matplotlib.pyplot as pltnp.random.seed(42)date_range = pd.date_range(start="2023-01-01", periods=100, freq="D")intervention_date = pd.Timestamp("2023-04-10")def generate_control_rpu(base_value, trend=0.01, noise=0.1):  return base_value + trend * np.arange(len(date_range)) + np.random.normal(0, noise, len(date_range))control_countries = ["Germany", "Spain", "Italy", "UK", "Netherlands"]  
control_data = {country: generate_control_rpu(1.5 + i * 0.05) for i, country in enumerate(control_countries)}usa_rpu = generate_control_rpu(1.6)  
intervention_index = np.where(date_range == intervention_date)[0][0]usa_rpu[intervention_index:] += 0.3  df = pd.DataFrame(control_data)  
df["USA"] = usa_rpu  
df["date"] = date_rangedf_long = df.melt(id_vars=["date"], var_name="country", value_name="rpu")df_wide = df.pivot(index="date", columns="country", values="rpu")pre_period = (df_wide.index.min(), intervention_date - pd.Timedelta(days=1))  
post_period = (intervention_date, df_wide.index.max())model = cp.pymc_experiments.BayesianCausalImpact(  df_wide,   treatment_column="USA",    pre_period=pre_period,  post_period=post_period  
)model.fit()model.plot()  
plt.show()

7. 挑战与考量

虽然贝叶斯合成控制方法为估计营销中的因果效应提供了一个强大的框架,但它们也伴随着 实际挑战

  • 数据要求:稳健的 历史数据 对于创建准确的反事实至关重要。
  • 计算复杂性:贝叶斯方法需要 大量的计算能力,尤其是在处理高维数据时。
  • 归因复杂性:将 户外广告与其他营销渠道(例如,电视、数字、社交媒体)的影响隔离开来仍然是一个持续的挑战。
  • 营销团队的协调:与内部团队协调保留区域会增加业务规划和协调方面的开销。
  • 对季节性的敏感性:需要仔细建模以调整可能扭曲因果估计的 季节性变化

8. 结论

当传统 A/B 测试 在衡量营销影响力方面不切实际时——尤其是在 户外广告 中——贝叶斯合成控制方法 提供了一种严谨的替代方案。通过利用 地理区域保留和 CausalPy,我们可以构建可靠的反事实,估计 增量营销活动提升,并量化 因果估计中的不确定性

BBC Studios,这些方法使我们能够做出 数据驱动的营销决策,确保我们在户外广告方面的投资既可衡量又 经过科学验证

BBC Studios Limited 是 BBC 的商业子公司,于 2018 年 4 月通过合并其制作和全球发行部门而成立。作为一家英国内容公司,我们独立于 BBC 的公共服务运营,为全球观众提供原创内容和体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917755.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web开发-PHP应用TP框架MVC模型路由访问模版渲染安全写法版本漏洞

我们先使用/index.php/index/index/test,就是图中的test()方法 /index.php/index/index/index,这个回显就是111 http://127.0.0.1:83/index.php/index/index/test2?x123456 public function test2() {$x$_GET[x];return $x; } 这里再做一个案例更详细一…

FreeRTOS列表系统深度解析

FreeRTOS列表系统深度解析 一、核心数据结构 1. 列表控制块 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 当前列表项数量ListItem_t * pxIndex; // 遍历指针(用于轮询调度)MiniListItem_t xListEnd; …

《Linux编译器:gcc/g++食用指南》

坚持用 清晰易懂的图解 代码语言,让每个知识点变得简单! 🚀呆头个人主页详情 🌱 呆头个人Gitee代码仓库 📌 呆头详细专栏系列 座右铭: “不患无位,患所以立。” 《Linux编译器:GCC…

SparkKV转换算子实战解析

目录 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子应用理解 reduceByKey和groupByKey的区别 groupByKeymapValues实现KV数据的V的操作 改进用reduceByKey groupby通过K和通过V分组的模板代码 问题集锦 宝贵的经验 这里会…

深度解析 TCP 三次握手与四次挥手:从原理到 HTTP/HTTPS 的应用

TCP 的三次握手和四次挥手是网络通信的基石,无论是 HTTP 还是 HTTPS,它们都依赖 TCP 提供可靠的传输层服务。本文将用万字篇幅,结合 Mermaid 图表和代码示例,深入讲解 TCP 三次握手、四次挥手的原理、过程、状态变化,以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、创建虚拟机一台32G内存,16核心的Win11,已经安装了Hyper-V 管理器。然后也下载了CentOS-Stream-9-latest-x86_64-dvd1.iso的镜像文件。这里Hyper-V创建虚拟机的过程就不赘述了,如果出现虚拟机加载不到镜像的问题,先把这个使用安…

Pygame如何制作小游戏

以下是 Pygame 的详细使用指南,从安装到开发完整游戏的步骤说明,包含代码示例和最佳实践: 一、安装与环境配置 1. 安装 Pygame pip install pygame2. 验证安装 import pygame pygame.init() print(pygame.version.ver) # 应输出版本号&am…

@【JCIDS】【需求论证】联合能力集成与开发系统知识图谱

JCIDS(联合能力集成与开发系统)知识图谱 1. JCIDS概述 2. JCIDS的提出背景 3. JCIDS核心流程 4. JCIDS分析方法 5. JCIDS优势 6. JCIDS与采办系统的关系 7. JCIDS知识图谱结构 8. 对我的启示 9.JCIDS(联合能力集成与开发系统)相关术语列表 10. 参考文献 1. JCIDS概述 定义:…

每天学一个Linux命令(38):vi/vim

每天学一个 Linux 命令(38):vi/vim vi 和 vim(Vi IMproved)是 Linux 和 Unix 系统中功能强大的文本编辑器。vim 是 vi 的增强版,提供语法高亮、多级撤销、插件支持等更多功能。掌握 vi/vim 是 Linux 系统管理员的必备技能之一。 1. 命令简介 vi:经典的文本编辑器,几乎…

【PZ-ZU49DR-KFB】:璞致电子 UltraScale+ RFSoC 架构下的软件无线电旗舰开发平台

璞致电子 PZ-ZU49DR-KFB 开发板基于 Xilinx ZYNQ UltraScale RFSoC XCZU49DR 主控制器,以 "ARMFPGA 异构架构" 为核心,融合高带宽信号采集、高速数据处理与灵活扩展能力,专为专业工程师打造的软件无线电(SDR&#xff09…

力扣106:从中序与后序遍历序列构造二叉树

力扣106:从中序与后序遍历序列构造二叉树题目思路代码题目 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 思路 我们首先要知道中序遍历和后序…

IDEA JAVA工程入门

Maven配置: IDEA -> settings -> Build, Execution, Deployment -> Build Tools -> MavenMaven home pathUser setting file : 特定仓库下载依赖包,自动下载(界面右边M图标点开,)local repository (本地仓库&#xff…

Spring依赖注入:从原理到实践的自学指南

Spring依赖注入:从原理到实践的自学指南 一、什么是依赖注入? 依赖注入(Dependency Injection, DI)是Spring框架实现控制反转(IoC)的核心手段。其核心思想是:对象不再自己创建依赖项&#xff…

3_软件重构_组件化开发实例方法论

1、上期回顾上次内容核心的地方有两个,①是C多态基类的指针指向派生类,用于初始化各个插件。②是使用C语言的dlopen函数“动态加载”各个插件,实现用户根据契约接口自定义开发插件,极大程度地实现了软件上的解耦。③再进一步&…

C#接口的定义与使用

第1章 接口(interface)是什么1.1 定义• 接口是一组“能力”或“契约”的抽象描述,只规定“能做什么”,不规定“怎么做”。• 在 C# 中,接口是一种完全抽象的类型(fully abstract type)。 • 关…

【STM32】HAL库中的实现(三):PWM(脉冲宽度调制)

🔧 HAL库中的实现:PWM(脉冲宽度调制) PWM(Pulse Width Modulation)是基于定时器(TIM)产生的周期性脉冲信号,广泛应用于:① 电机调速;② LED 亮度控…

GitHub 趋势日报 (2025年08月03日)

🚀 GitHub 趋势日报 (2025年08月03日) 📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图751dyad362LLMs-from-scratch291…

Java后端高频面试题

Java后端高频面试题 目录 Java集合框架Java并发编程JVM相关MySQL数据库Redis缓存Spring框架 Java集合框架 HashMap的数据结构是什么,为什么在JDK8要引入红黑树? HashMap数据结构: JDK7:数组 链表JDK8:数组 链表…

37. line-height: 1.2 与 line-height: 120% 的区别

概述 line-height 是 CSS 中用于控制文本行间距的重要属性。虽然 line-height: 1.2 和 line-height: 120% 看似相同,但它们在计算方式上存在关键区别,尤其是在继承和计算值方面。1. 计算方式不同写法类型计算方式说明line-height: 1.2无单位(…

蓝桥杯----DS1302实时时钟

(六)、DS1302实时时钟1、原理(图 二十六)DS1302通过三线串行接口与单片机进行通信。微控制器可以通过设置RST引脚为高电平来使能DS1302,并通过SCK引脚提供串行时钟信号,然后通过I/O引脚进行数据的读写操作。…