数据运营系列(二):如何用合成控制法判断策略实施效果

数据运营系列(二):如何用合成控制法判断策略实施效果1.合成控制法合成控制法最开始是经济学家用来研究评估某个政策实施在某国家或地区的效果,原理即是反事实框架,假想该地区没有受政策干预会怎样,并与事实上受到干预的结果做对比。二者之差即为“…

大家好,又见面了,我是你们的朋友全栈君。

1. 合成控制法

合成控制法最开始是经济学家用来研究评估某个政策实施在某国家或地区的效果,原理即是反事实框架,假想该地区没有受政策干预会怎样,并与事实上受到干预的结果做对比。二者之差即为“处理效应”。这里D为干预变量,X为解释变量,Y为被解释变量。因此合成控制法需要估计处理效应ATT: 

数据运营系列(二):如何用合成控制法判断策略实施效果

那么如何求解未受政策干预的结果呢?常用的解决方法就是寻找适当的控制组,即从其他相似的地区来组合成一个新的地区,新地区和实际受干预的地区一致。比如,要评估仅在A市实施的某政策效果,用其他城市(B市、C市、D市)进行适当的线性组合构成A市的控制组,即合成的A市 ,最后比较这个合成的A市和真实的A市在某一结果指标上的差别。

作为因果推断方法之一,合成控制法的特点主要是原理简单、并且结果合理有说服力,可视化强。

2. 策略实施效果评估

比如某一业务线一直用户规模稳健上升,为实现快速用户增长,在经费有限的情况下,运营方决定尝试在2019年10月北京这一地区投放某一广告持续一个月,如果效果显著,再统一推广到全国各地。那么这里如何评估效果?这一广告是否需要推广到全国?像这样的场景又无法使用AB testing等实验方法,那么从数据驱动运营的角度分析,观察研究比较适用于该场景分析,这里选用合成控制法,该方法能更好地将结果可视化为运营人员呈现。假设该业务的销售情况基本不随季节有较大变动。

数据集说明:

  • time:时间变量,年月

  • area:地区

  • age15to24:年龄在15到24岁的用户比例

  • male:男性用户比例

  • tenant:租房用户比例

  • income:人均收入

  • sale_amount:人均购买量

  • user_amount:用户渗透率

合成控制法的流程: 

  • 确定结果变量,这里以用户渗透率为预测变量

  • 确定预测变量,这里包括age15to24(年龄在15到24岁的用户比例,年轻人为用户目标对象)、male(男性用户比例,男性为目标用户)、tenant(租房用户比例,租房者为目标用户)、income(人均收入)、sale_amount(人均产品购买量)

  • 确定用于合成对照组的个体,这里将其他城市作为合成对照组的个体

  • 确定权重,通常算法是最小化预测均方误差

  • 检验拟合,即干预前一段时间内控制组和干预组因变量是否接近

  • 检验安慰剂效应

  • 检验稳健性

分析结果:

通过合成控制法分析结果发现,用于拟合北京市的城市由上海市、重庆市和广东省组成,权重占比分别为0.54,0.32和0.14。其余城市权重为0。进一步考察北京市与合成北京市的预测变量是否接近。

表1 预测变量均值比较

变量 北京市 合成北京市
age15to24 0.207 0.191
male 0.502 0.511
tenant 0.445 0.432
income 0.661 0.661
sale_amount 0.428 0.427

在表1中,比较了实际的北京市和合成的北京市的预测变量均十分接近,故合成北京市可以很好地复制北京市的市场特征。然后比较二者的结果变量上的差异:

数据运营系列(二):如何用合成控制法判断策略实施效果

图1 合成控制法分析结果

上图显示了北京市和合成北京市在2019年1月-2020年3月期间的用户渗透率。高程度的拟合表明,在广告实施之前,合成北京市的用户渗透率与真实北京市几乎重合,表明合成北京市可以很好地作为北京市的反事实替身。上图表明广告实施对用户渗透率有很大影响,这种效应随着时间的推移而增强。我们的结果表明,对于整个2019年10月到2020年3月期间的用户渗透率提高了近20%,但对比自然增长效果,广告带来的用户渗透率幅度不大,比如在2020年1月提高了近3.6%。广告所带来的用户增长只占18%(3.6%/20%),单从数据层面的来看,效果并不明显,因此不建议推广。

3. 学习资料

PPT推荐:合成控制法(Synthetic Control Method)(附PPT免费公开)

视频资料:合成控制法视频资源(一)

点击“在看”可收藏随时查看↘↘↘

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134588.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zabbix 监控多个mysql_zabbix 监控多实例mysql[通俗易懂]

    zabbix 监控多个mysql_zabbix 监控多实例mysql[通俗易懂]zabbix监控多实例mysql一台服务器上开启了3个mysql实例进程,占用不同的端口3306、3307、3308原理说明:通过自动发现规则来获取MySQL实例的端口,自动发现规则上的{$MYSQLPORT}是要传递给agent自动发现脚本的参数,这个值是从主机定义的宏{$MYSQLPORT}获取过来的,自动发现的脚本将其解析成{#MYSQLPORT}:端口的形式,监控项原型再根据{#MYS…

    2022年5月1日
    63
  • 如何实现动静分离

    如何实现动静分离一、动静分离我们的网站简单来说分为2种数据资源,一种是动态的数据,即PHP等程序语言实时吐出来的数据,在网页内容上主要是HTML代码,另一种则是静态资源,比如图片、css、js、视频等(当然,图片等资源也可能是实时动态生成的,比如PHP缩略图,这里就不展开讨论了)。一般网站初建,因为流量小、业务简单等原因,都默认将两种数据放到一台服务器上提供服务。访问量大到一定程度之后,就…

    2022年5月1日
    43
  • 使用outlook制作签名

    使用outlook制作签名使用outlook制作签名制作签名的几种方法直接在编辑器中编辑在Word中编辑好了复制过去直接在生成的文件上编辑直接用word新建htm格式编辑图片不清晰问题制作签名的几种方法你好,最近公司需要我制作公司签名,之前就想着不就是签名嘛,多简单的事。但是经过一系列的尝试之后,发现还真不容易。主要是因为outlook新建签名的编辑栏不支持直接使用html编辑。下面我介绍我尝试的几种方法直接在编辑…

    2022年10月16日
    4
  • failed to load response data:Request content was evicted from inspector cache

    failed to load response data:Request content was evicted from inspector cache在项目中,我用谷歌浏览器查看后台返回的json数据,但是发现前端页面已经接收成功,并且渲染了对应json数据了,但是network里面的response却报错:调整对应json数据后发现,当后台返回前端的数据超过了一定大小时,就会出现响应截断的问题,不过目前没有找到在哪里设置,我本地是大概超过10m就会截断。谷歌浏览器编辑设置是about:flags,但是我找不到对应设置response的选项。后来发现火狐浏览器可以设置报文响应大小的限制,先在url栏输入about:config,然后选择接受风险并

    2022年5月13日
    90
  • Git 遇到了 early EOF index-pack failed 问题「建议收藏」

    Git 遇到了 early EOF index-pack failed 问题

    2022年2月7日
    44
  • java hashcode作用yield返回值_对象的hashcode是什么

    java hashcode作用yield返回值_对象的hashcode是什么总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多

    2025年10月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号