首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教你更科学地花钱:因果推断在增长业务ROI量化评估上的应用

教你更科学地花钱:因果推断在增长业务ROI量化评估上的应用

作者头像
腾讯灯塔小明
发布于 2022-09-08 06:46:24
发布于 2022-09-08 06:46:24
1.2K0
举报
文章被收录于专栏:敏捷分析敏捷分析

点击蓝字关注我们

作者:李金霞Polarisli

知乎专栏:《数据分析方法与实践》

创作者:「守望北极星的猫」

---了解作者其他作品,请点击【文末原文链接】---

丨导语丨

做增长业务,常用的策略手段有渠道拉新、拉活、节假日活动等,这几个业务都是需要花钱的,每年分配的预算有限,如何权衡在各项业务上的投入成本,如何花钱效率最高,将好钢用在刀刃上是需要运营管理者去思考和决策的,如何决策更科学,那就不得不提到因果推断这种科学的量化方法,每笔投入的 ROI 量化评判标准统一,自然就可比较。

有一套关于花钱的经典面试题:

新年伊始,业务部门要做新一年的规划,部门需要在渠道拉新、拉活、节假日活动3个地方花钱,你如何判断花钱是否值得,分配是否合理?

这里面隐含的一个问题是:上述3个地方你的评估标准是否统一,比如用户价值统一用 LTV 衡量,后续统一计算 ROI 即可,最忌讳的是不同业务有不同的标准,比如拉新看次留、拉活看回流量、A活动看签到量、B活动看积分消耗量等,不统一则不可纵向比较。

渠道拉新相对容易,因为本身拉来的是一个新用户,自身计算 LTV 即可,但是拉活、活动因为要计算增益,就需要找对比组。比如拉活,要对比拉活和未拉活,活动要对比参与活动和未参与活动的两个群体。

这里面就会引入新的问题——对比的两个群体,本身就是不同质的,近期高活用户更有可能参与活动,未参与活动里面掺杂的更多的是低活和回流用户,自然参与活动的用户无论人天还是留存都会比未参与活动的人群高,那你怎么能证明是活动本身带来的增益呢?

明显直接拿参与未参与群体进行对比,会存在混淆因子&自选择偏差

● 控制转化的唯一变量不是「是否参与活动」,若影响转化的唯一变量,不只是「参与活动与否」这个属性,会得出错误结论。

● 人群属性分布不一致的两个组不能直接比较

①参与活动用户本身就是相对高活的用户,可能没有活动也会回来,本身易转化

②其它属性特征导致用户更容易参与活动,而未参与活动的用户本身就是不活跃且不宜转化的

③用户因为节假日的影响,自然频率上升

④活动期间多种策略同时影响用户,不只活动一种策略

为了解决这个效果评估的问题,本文采用因果推断中的倾向性得分加权的方法,找到对照组和实验组同质的用户群进行比较分析。(还有一种常用的方法——PSM倾向性得分匹配,经对比,PSM倾向性得分匹配方法能够处理的数据量在几w级别,且随着数据量的增加计算效率降低很快,甚至出现计算不出结果的情况,故推荐倾向性得分加权的方法)。

什么是因果推断

在做用户增长时,我们要回答的终极问题是“如果对产品施加 T 策略,对业务目标是否有影响,影响有多大?”我们对产品施加的策略为「因」,因此而出现的结果为「果」,中间控制住混淆变量 X ,保证 T 策略是唯一影响因素。

这样就可以回答,因为 T 策略的施加,导致结果 Y 增益了多少。

因果效应

ATE (Average Treatment Effect):

即平均处理效应,这里的E是“期望”,对所有用户取期望。最终匹配的干预组和控制组在因变量上的平均差异,即干预对所有人的平均效应。

ATT (Average Treatment Effect on the treated):

即处理组平均处理效应,这里的E是对所有T=1的用户取期望。直观来说,ATT为实验组样本接触到干预后,干预对受到干预的人的平均因果效应。

因果评估方法倾向性加权得分

从整体用户群中随机抽样,分成两组人群——实验组:参与活动用户;控制组:未参与活动用户,带入二元逻辑回归模型进行迭代,计算得到倾向性得分 P,按照 P 计算权重系数 W 用于均衡控制组人数分布,保证控制组和实验组人数分布基本一致。

详细原理如下:

倾向性评分是指在一组协变量条件下(X),对象 i 接受 treatment (T=1) 的概率值。这个概率值的计算最常用的是逻辑回归模型,也可以选用随机森林、神经网络等模型。

在相似的得分下,treatment 和 control 基线资料的分布应该是平衡的。

因果效应 ATT、ATE 和倾向性得分的关系如下:

ATE:

这里的治疗组即为实验组,ei 即为通过模型计算出的概率得分。

ATT:

至此,我们就计算出了权重系数 w。

增益效应评估

套入上述公式,即可计算得出 ATT 或 ATE。

倾向性加权得分在活动效果量化增益上的应用

以下以参与某活动为例,讲解倾向性加权得分方法在活动 ROI 量化增益上的应用。

01实验组和测试组划分

因果推断本质上是在人为模拟 AB Test,那么模拟的 AB 两组,也要符合真实 AB test 分组的定义。

注意此处很重要,否则会得出错误的分组结果。

02将因果推断模型计算过程工程化

提高复用性、缩短开发周期

不同的模型,使用的特征变量基本一致,可以将常用特征变量固定化自动化采集,丰富特征变量库,便于提高模型的复用性,同时缩短开发周期,高效给出策略建议。

03迭代优化逻辑回归模型,

计算概率P、权重系数w

通过常用的逻辑回归算法计算倾向性加权得分 P,对分类变量进行热编码,匹配加权结果更均匀。

1)观察变量显著性

对于不显著的变量可弱化模型在该变量上的匹配效果。

2)匹配结果量化

  • 实验组和控制组样本量接近1:1
  • SMD < 0.1

SMD 即 Standarized Mean Difference

SMD 的一种计算方式为:(实验组均值 - 对照组均值)/ 实验组标准差。

以上量化指标符合规则,则说明加权匹配成功。

3)量化增益值及显著性校验

s_treat = 1.62 说明参与活动用户较未参与活动用户30日人天增益为1.62,且结果显著,量化评估结果可用。

量化活动增益 ROI

常用衡量指标为 LTV,对比参与活动组和未参与活动组的 LTV 差异即为 LTV 增益,这里面的难点为从活动开始计算多长时间的增益算活动带来的,也就是说因活动带来的增益有多大且会持续多长时间?

由活动带来的增益会分为3部分:

渠道投放新增 + 活动裂变新增 + 首次参与活动的老用户

新增即求相应的新增用户 LTV 即可,这里暂且不表,另外为什么要限定是首次参与活动的老用户呢?限定老用户首次参与活动后,那么其每日因活动带来的增益就不会和多次参与活动的老用户增益混淆在一起,导致不能很好的量化活动增益。

LT 即我们要计算的活动生命周期时长增益,LT 可以等价看成参与活动组和未参与活动组用户在后续 N 日日活跃率的增益,N 日日活跃率增益相加即为 LT 增益。选择看日活跃率的好处是我们可以从曲线走势上看出以下两点,间接验证模型的匹配加权效果。

① 参与活动和未参与活动用户在参与活动前是否可以看成同一个人?即参与活动前两组用户的日活跃率曲线是否重合,以此来验证倾向性加权得分的效果。

② 将 N 日时间周期拉长,从后续留存时长变化趋势上帮我们清晰地定位到活动效应的存续周期。

至此,我们便完整地完成了活动效果量化 ROI 的增益计算。

另外,因为也考虑了模型的工程化,此方法可以快速延伸到拉活、某功能改版上线等的后续增益评估上。

点击下方“阅读原文”关注作者知乎专栏

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯灯塔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
安全系列之:跨域资源共享CORS
简介 什么是跨域资源共享呢? 我们知道一个域是由scheme、domain和port三部分来组成的,这三个部分可以唯一标记一个域,或者一个服务器请求的地址。跨域资源共享的意思就是服务器允许其他的域来访
程序那些事
2021/09/13
8980
跨域请求传递Cookie问题
前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat。 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服务器返回的Cookie:JSESSIONID。 导致每一个Ajax请求在服务端看来都是一个新的请求,都会在服务端创建新的Session(在响应消息头中设置Set-Cookie:JSESSIONID=xxx)。 而在项目中使用了Shiro框架,用户认证信息是放在Session中的,由于客户端不会把JSESSIONID返回给服务器端,因此使用Session策略存放数据的方式不可用。
编程随笔
2019/09/11
3.6K0
跨域的解决方式(java后端)
跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。你可能会疑问明明通过表单的方式可以发起跨域请求,为什么Ajax就不会?因为归根结底,跨域是为了阻止用户读取到另一个域名下的内容,Ajax可以获取响应,浏览器认为这不安全,所以拦截了响应。但是表单并不会获取新的内容,所以可以发起跨域请求。
Java微观世界
2025/01/21
4760
跨域的解决方式(java后端)
cookie跨域传输cookie问题:nginx跨域代理之proxy_cookie_domain
cookie作为辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),存储格式如下:
周陆军博客
2023/06/06
7.7K0
GIN框架解决跨域问题
当两个域具有相同的协议(如http), 相同的端口(如80),相同的host,那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。
Porco1Rosso
2020/05/28
4.2K0
GIN框架解决跨域问题
Spring Boot 跨域解决方式
要解释跨域,先要了解同源策略,所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同,否则访问将被禁止,该访问也就被称为跨域访问。
数媒派
2022/12/01
6830
Web漏洞 | CORS跨域资源共享漏洞
有关于浏览器的同源策略和如何跨域获取资源,传送门 -->浏览器同源策略和跨域的实现方法
Gcow安全团队
2020/03/19
8.7K0
Web漏洞 | CORS跨域资源共享漏洞
CORS解决跨域问题
浏览器中,网站A的网络请求访问网站A的资源(图片,HTTP请求)是很顺畅的,而想访问网站B的资源,就要面对跨域资源访问的问题了。面对跨域问题,有很多的解决方案,本文讨论使用 CORS 来解决的方案。
张云飞Vir
2020/03/27
2.1K0
怎么解决跨域
存在浏览器同源策略,所以才会有跨域问题。那么浏览器是出于何种原因会有跨域的限制呢。其实不难想到,跨域限制主要的目的就是为了用户的上网安全。
程序员子龙
2024/04/30
2780
SpringBoot应用跨域访问解决方案
说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。
字母哥博客
2020/09/23
1.2K0
SpringBoot应用跨域访问解决方案
再一次折腾跨域问题
跨域问题在前后端分离的开发场景中经常遇到,回想起来自己也已经折腾了数次,本篇文章主要对跨域问题做个记录和总结。
云原生
2022/03/30
5190
springmvc【问题1】跨域
简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求。比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz.com域名下的资源,是受到限制的。现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便。特别是对我这样后台开发人员来讲,这个事情简直神奇。 但跨域的需求却一直都在,为了跨域,勤劳勇敢的程序猿们想出了许许多多的方法,例如,jsonP、代理文件等等。但这些做法增加了许多不必要的维护成本,而且应用场景也有许多限制,例如jsonP并非XHR,所以jsonP只能使用GET传递参数。更详细的资料可以看这里 Web应用跨域访问解决方案汇总
用户5640963
2019/07/26
9750
ajax跨域解决方案_java如何解决跨域问题
从刚接触前端开发起, 跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。
全栈程序员站长
2022/09/23
1.2K0
ajax跨域解决方案_java如何解决跨域问题
解决浏览器跨域限制方案之CORS
CORS是解决浏览器跨域限制的W3C标准,详见:https://www.w3.org/TR/cors/。 根据CORS标准的定义,在浏览器中访问跨域资源时,需要做如下实现:
编程随笔
2019/09/11
9090
解决浏览器跨域限制方案之CORS
CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
YourBatman
2019/09/25
5.3K0
CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】
跨域共享CORS详解及Gin配置跨域
跨域简介 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host,那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。 跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的(例如一般情况跨域的JavaScript无法交互,当然有很多解决跨域的方案) 解决跨域几种方案 /* CORS 普通跨域请求:只服务端设置Access-Control-Allow-Origin即可, 前端无须设置,若要带cookie请求:前后端都需要设置。
iginkgo18
2020/12/01
1.9K0
跨域二三事
更好的阅读体验 跨域是日常开发中经常开发中经常会接触到的一个重难点知识,何不总结实践一番,从此心中对之了无牵挂。 同源策略 之所以会出现跨域解决方案,是因为同源策略的限制。同源策略规定了如果两个 url 的协议、域名、端口中有任何一个不等,就认定它们跨源了。比如下列表格列出和 http://127.0.0.1:3000 比较的同源检测的结果, url 结果 原因 http://127.0.0.1:3000/index 同源 https://127.0.0.1:3000 跨源 协议不同
牧云云
2018/05/02
1.1K0
跨域二三事
JSONP、CORS解决跨域问题
是因为浏览器的同源策略是对ajax请求进行阻拦了,但是不是所有的请求都给做跨域,对href属性都不拦截。
用户1214487
2022/03/26
1.8K0
JSONP、CORS解决跨域问题
AJAX 与跨域通信(二):跨域解决方案
本篇讲解常见的几种跨域方案:JSONP、CORS、图像Ping、document.domain、window.name。
Chor
2019/11/11
1.5K0
AJAX 与跨域通信(二):跨域解决方案
跨域问题及CORS解决跨域问题方法
跨域不一定会有跨域问题。因为跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。
Java架构师必看
2021/03/22
13.1K0
推荐阅读
相关推荐
安全系列之:跨域资源共享CORS
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档