【原理到实战】实验异质性分析

news/2025/11/12 16:46:33/文章来源:https://www.cnblogs.com/Jcloud/p/19214630

 


 

什么是实验的异质性

1. 如何理解实验结果中的指标变化

当我们看到如下试金石实验指标结果时

 


 

在进行分析前,可能我们的第一直觉是这样的

 


 

经过异质性分析后,可能会发现实际情况是这样的

 


 

2. 概念解析与定义

实验的异质性,一般被称为HTE(即Heterogeneous Treatment Effects),意为实验中同一个treatment对不同的实验样本,得到的策略效果可能是不一样的。另外还有一些重要的概念需要大家理解

 英文全称中文译名含义公式
ATE Average Treatment Effect 平均处理效应 所有实验对象的平均实验效果
ATE=E[Y(1)−Y(0)]ATE=E[Y(1)Y(0)]
CATE Conditional Average Treatment Effect 条件平均处理效应 满足一定条件的实验对象的平均实验效果
CATEX=E[Yx(1)−Yx(0)∣x∈X]CATEX=E[Yx(1)Yx(0)xX]
ITE Individual Treatment Effect 个体处理效应 某个实验对象的实验效果
ITEi=E[Yi(1)−Yi(0)],i=1,2,...NITEi=E[Yi(1)Yi(0)],i=1,2,...N

* 此处采用Donald Rubin提出的潜在因果框架(Potencial outcome)来对实验效果进行统计公式上的描述 [1]

* 由于业内并没有统一的定义,HTE、CATE、ITE概念在一定程度上会有混用的情况,读者需要参考描述以及上下文综合判断名词的含义

3. 异质性分析对于业务的意义

1.了解策略对于不同用户的不同效果,协助挖掘背后的业务逻辑,辅助迭代、进行新一轮的实验
2.尝试寻找策略最优子人群,让整体无效的策略,有机会进行部分先推全;反之依然,让部分负向的策略,减少损失
3.对实验结果建模后预测,对线上提供动态的最优人群支持
根据试金石测算,以某产品线下6月运行中的35个实验为例,仅23%左右的实验没有在实验人群视角发现异质性

异质性分析方法概述

1. 异质性分析的维度选择

1. 对于分流单元的维度X,当X满足以下条件时,可以作为异质性的维度进行后续分析

T⊥XTX
,即分析维度与实验分流无关 (Unconfoundedness)
分析工具化的常见简化方式:对于一个分流ID,选取他在首次进入实验前一天的标签取值
简单推导:

 


 

T是随机化的,

T⊥Y,T⊥XTY,TX
,所以
E[Yi(1)∣x∈X]=E[Yi(1)|Ti=1,x∈X]E[Yi(1)xX]=E[Yi(1)Ti=1,xX]
,所以(3)成立

 

2. 异质性分析的维度分析bad case举例

假设我们需要分析的实验策略为:根据用户的活跃度标签,低、中、高频用户的优惠券策略分别做了新/老策略迭代

分析目标 & 常见错误方法举例不成立原因简述推荐的实验分析方式
不同活跃度人群的策略效果 在实验运行7天后,利用实验用户在第7天的活跃度标签进行结果拆解 在实验开始后,用户的活跃度标签受到了策略影响,即T⊥X不成立 使用用户在进入实验前1天的活跃度标签值
分别分析低频策略、中频策略、高频策略对于低、中、高频用户的策略效果 按天取每天用户的活跃度标签,对实验结果进行拆解 用户的活跃度标签受到了策略影响,即T⊥X不成立 ·用户所在分组应该是确定的,不随时间改变 分别建立3个人群正交实验
分析高单价类目商品(3C家电)和低单价类目商品(休闲食品)的转化率差异 选取xx类目曝光用户,计算实验周期内对应类目的曝光订单转化率 分析目标是面向指标维度的(sku所在类目),而非分流单元的维度(C端实验通常为账号、设备),不适用本文提到的异质性分析方法 试金石现已支持指标维度下钻 曝光订单转化率的分子、分母均受到策略影响,需在观测全面后综合判断

2. 异质性分析的方法选择

研究对象研究方法适用场景pros & cons
CATE 维度下钻 ·低维 ·分析目标明确 + 快速简单,便于理解 + 产品化容易 - 维度选择依赖分析师经验 - 交互效应处理困难
方差分析(ANOVA,ANCOVA) ·低维 ·分析目标较明确 ·交互效应评估 + 解释性强,统计学理论背书 + 可以处理低维度交互效应 + 可作为feature selection的候选方法 - 基于线性模型假设 - 高维度交互效应解读困难
因果树(Causal Tree) ·高维 ·分析目标不明确,希望探索 + 建模方法符合分析直觉 - 模型复杂度不足,无法准确描述复杂的现实世界效果 - 本方法为现代机器学习因果算法的基石之一,有更好的替代方案
ITE Meta - Learner ·高维 ·希望输出ITE ·算法训练 + 算法常用,可大规模并行,有工程化先例 + 在过往的simulation中X-learner对ITE估计的准确度表现优秀 + X-learner通常使用xgboost模型,对各种feature有较强的处理能力 - 计算量大,耗资源 - 需要调参 - 由于缺乏统计推断结果,一般不会直接产出p-value,存在对于ITE数值准确性的质疑,算法利用结果的rank居多
DML ·高维 ·希望输出ITE和置信区间 + 有严谨统计理论证明ITE估计的无偏有效性,可产出样本级的ITE以及置信区间 + 在过往的simulation中Causal Forest DML对ITE估计的准确度表现优秀 + DML模型框架本身具备一定的robust特性,在结合Forest模型后,调参需求低,不容易过拟合,对各种feature有较强的处理能力 - 慢,耗资源,工程化先例少
ITE + CATE hybrid ITE Model + Decision Tree Interpreter ·高维 ·分析目标不明确,希望探索 + 决策树的建模方法符合分析直觉 + ITE模型可以较好的对复杂的现实世界进行抽象总结 - ITE模型可能会慢

* CATE、ITE建模方法的细节可参考Appendix

CATE下钻探索工具MVP版逻辑介绍

项目地址:http://xingyun.jd.com/codingRoot/abtest_ds/CATE_model

模型逻辑:多维度的维度下钻 + Decision Tree Interpreter

快速开始:

from CATE_model.utils.workflow import CateWorkFlow
yaml_path = 'config.yaml'                # 按分析要求配置YAML文件
cate_workflow = CateWorkFlow(yaml_path)  # 初始化CATE对象
cate_workflow.prepare_analysis()         # 初始化ABTestAnalyzer
cate_workflow.execute_cate_auto()        # 自动执行所有环节
cate_workflow.df_out.styler              # 输出CATE差异最大子人群目标指标统计

项目基本流程

 


 

YAML配置方法:第一次可以先根据项目demo修改,并参考YAML配置说明.md

项目MVP功能说明

1.通过填写YAML配置,自动生成实验分析SQL,并执行取数,目前包括
自动获取试金石实验分流信息
自动获取试金石实验指标信息
解析实验CATE研究使用的用户标签表
自动生成所有数据源的关联关系
2.为实验CATE研究提供自动化工具,目前包括
自动化生成实验目标指标的CATE差异最大化子人群
提供调参接口,高级用户可自定义模型参数
提供可视化的模型结果输出,高级用户可根据输出调节模型表现
3.为实验的下钻分析提供探索、分析功能,目前包括
CATE人群的实验效果统计检验
CATE人群的多指标拆解
CATE人群的特征描述

 

实验异质性分析show case

针对近期某频道重点改版实验,此项目整体实验指标为负向不显著,但通过运行分析工具后发现,有两类子人群分别具有正向和负向的显著效果

实验HTE人群统计

 

对于这些子人群,我们发现他们在业务漏斗上的变化并不一样,那么下次对于频道进行迭代时,产品经理可以整理有针对性的选择对负向人群进行针对性的优化

人群编号用户画像总结频道uv点击uv加车uv转化订单数
3 年轻人,低活跃 1.0% 2.2% 2.6% 5.8%
38 非年轻人,高线城市,plus用户 -2.2% -2.2% -3.1% -5.7%

 

未来展望

1.自定义分流表
2.自定义画像表 & 经海路画像表
3.CATE模型迭代
4.通用维度配置模版 & 业务场景模版
5.图形化交互界面,简化输入配置

Appendix & 参考资料

【1】因果分析框架 & Donald Rubin的Potencial Outcome
Potencial Outcome
TiTi
代表第i个样本是否收到了处理(treatment,策略影响),是为1,否为0
YiYi
代表个体i的结果,另外记
{Yi(1),Yi(0)}{Yi(1),Yi(0)}
为个体i接受处理、对照的潜在结果
每个个体通常只会有1个状态,个体因果作用无法直接观测,我们只有
Yi=Ti∗Yi(1)+(1−Ti)∗Yi(0)Yi=TiYi(1)+(1Ti)Yi(0)
在随机化实验的场景下,我们可以得到

 


 

其中最重要的逻辑为:

T是随机化的,

T⊥YTY
,所以
E[Yi(1)]=E[Yi(1)|Ti=1]E[Yi(1)]=E[Yi(1)Ti=1]
,所以(3)成立

 

因果推断(一):因果推断两大框架及因果效应:https://zhuanlan.zhihu.com/p/652174282
因果推断简介之二:Rubin Causal Model (RCM) 和随机化试验:https://cosx.org/2012/03/causality2-rcm/

 

【2】ANOVA与CATE的交互效应分析

当需要进行异质性分析的维度为X时,我们可以通过构建下列回归方程去描述X在实验中是否存在显著的异质性,当

β3β3
对应的F-test显著时,我们就可以认为实验在维度X上存在显著的异质性

 

 

Y=β0+β1∗T+β2∗X+β3∗X∗TY=β0+β1T+β2X+β3XT

 

X∈{0,1}X{0,1}
时,我们可以用下图来进行异质性的理解

 

 


 

【3】CATE & ITE估计
idea1:对于每个参与实验的对象i,如果能得到
Yi(1)Yi(1)
Yi(0)Yi(0)
的合理估计,那么ITE就可求了 idea2:对于实验人群X,如果能找到一种观测方式,求得
E[Yx(1)−Yx(0)∣x∈X]E[Yx(1)Yx(0)xX]
,那么CATE就有了
Meta Learner的极简介绍
S-Learner
stage1: 利用模型估计

 

μ(x,t)=E[Y∣X=x,T=t]μ(x,t)=E[YX=x,T=t]

 

stage2: 定义CATE结果如下

 

τ^(x)=μ^(x,T=1)−μ^(x,T=0)τ^(x)=μ^(x,T=1)μ^(x,T=0)

 

T-Learner
stage1: 利用两个模型,分别估计

 

μ0(x)=E[Y(0)∣X=x]μ0(x)=E[Y(0)X=x]

 

 

μ1(x)=E[Y(1)∣X=x]μ1(x)=E[Y(1)X=x]

 

stage2: 定义CATE结果如下

 

τ^(x)=μ1^(x)−μ0^(x)τ^(x)=μ1^(x)μ0^(x)

 

X-Learner
stage1:利用两个模型,分别估计

 

μ0(x)=E[Y(0)∣X=x]μ0(x)=E[Y(0)X=x]

 

 

μ1(x)=E[Y(1)∣X=x]μ1(x)=E[Y(1)X=x]

 

stage2:实验组、对照组数据交叉拟合构造

 

Di1=Yi1−μ0^(Xi1),τ1(x)=E[D1∣X=x]Di1=Yi1μ0^(Xi1),τ1(x)=E[D1X=x]

 

 

Di0=μ1^(Xi0)−Yi0,τ0(x)=E[D0∣X=x]Di0=μ1^(Xi0)Yi0,τ0(x)=E[D0X=x]

 

stage3:定义CATE为模型估计值的加权平均,权重来自于在condition x下实验组、对照组的样本比例

 

τ(x)=g(x)τ0(x)+(1−g(x))τ1(x)τ(x)=g(x)τ0(x)+(1g(x))τ1(x)

 

更多资料参考uber的causalML项目:https://causalml.readthedocs.io/en/latest/methodology.html
Causal Forest的极简介绍
如果将普通决策树算法的叶子分裂准则从最小化整体
Y^Y^
的MSE,替换为最大化叶子结点的CATE差异,那么根据贪心算法,我们可以得到一个拆解CATE的Causal Tree(还有很多保证样本平衡、估计可靠的weighting和honest的方法细节没有介绍)
为了克服一棵树带来的high variance,仿照random forest,构建由Causal Tree组成的森林,并且我们可以通过观察在不同树中样本是否被多次划入一个叶子结点来调节本样本对当前叶子估计的权重,最终得道一个可以产出ITE估计的森林模型
DML的极简介绍
我们定义
θ(x)θ(x)
为CATE,那么构建下列函数

 

Y=θ(x)∗T+g(X)+ϵ,E[ϵ∣T,X]=0Y=θ(x)T+g(X)+ϵ,E[ϵT,X]=0

 

 

T=f(X)+η,E[η,X]=0T=f(X)+η,E[η,X]=0

 

stage1: 拟合g、f函数,求得残差

 

ω=Y−E[Y∣X]ω=YE[YX]

 

 

υ=T−E[T∣X]υ=TE[TX]

 

stage2: 拟合残差,求得CATE估计

 

ω=θ(x)∗υ+ϵω=θ(x)υ+ϵ

 

如果我们将上述double ML的过程用GMM的方式写成矩函数,

 

E[((Y−E[Y∣X])−(T−E[T∣X])θ(x))(T−E[T∣X])]=0E[((YE[YX])(TE[TX])θ(x))(TE[TX])]=0

 

那么根据Neyman orthogonality condition,我们可以证明此过程估计的

θ(x)θ(x)
在大样本下具备无偏一致性,此特性与
ω,υω,υ
在一定程度上没有关系

 

关于doubly robust,R-learner,CausalForestDML等方法呢?是否有理论框架能总结这一类利用残差进行推断的方法呢?参考:Orthogonal Statistical Learning Arxiv:1901.09036V3
更多关于DML、CausalForest资料请参考微软的EconML项目:https://www.pywhy.org/EconML/spec/overview.html

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

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

相关文章

习题解析之:输出 n 以内的所有素数

习题解析之:输出 n 以内的所有素数【问题描述】编程找出n以内(即小于等于n)的所有素数。 输入格式输入一个正整数 输出格式在同一行中从小到大依次输出不大于n的全部素数,每个数字后面一个空格。 示例输入:97输出:…

Docker最新学习

Docker学习参考网址: https://zhuanlan.zhihu.com/p/18929600163167480371-docker-image.png镜像(Image): 就好比一个模板,我们可以通过这个模板来创建容器服务这个镜像可以创建多个容器(最终服务运行或者项目运行…

最近学习到的一些基础知识

最近的一些基础知识IDE: 集成开发环境Java代码快捷生成: psvm(main方法),sout(输出)注释 文档注释(/**) /****/标识符和关键字基本数据类型int占4个字节,long占8个字节(long num = 100L) float占4个字节 (float…

新手入门常用的Dos命令

常用的Dos命令 #查看当前目录下所有文件:dir #切换文件: cd /d E:\IDE #cd 文件目录名 #清理屏幕: cls #退出终端:exit #切换到一个文件夹的目录下,在文件资源管理器的上方路径,的前面加上cmd#查看电脑IP ipconf…

2025年重庆吊装搬运公司权威推荐榜单:工厂搬迁/搬运/搬运设备源头公司精选

在重庆这座山城,专业的吊装搬运公司正用坚实的技术实力托举着城市的现代化进程。 据行业数据显示,2025年重庆地区吊装搬运市场规模预计将达到15亿元,年复合增长率稳定在12% 左右。专业的吊装搬运服务已成为确保重庆…

基于LMS与RLS的自适应回声消除滤波

一、算法原理对比 1. LMS算法(最小均方)核心公式: \(w(n+1)=w(n)+2μe(n)x(n)\)\(e(n)=d(n)−y(n)\):误差信号 \(μ\):步长因子(控制收敛速度与稳定性)特点: 简单高效:仅需向量内积运算,计算复杂度低 收敛速…

2025年气密门窗实力厂家权威推荐榜单:折叠门窗/折叠门窗/断桥铝门窗源头厂家精选

一扇优质的气密门窗,不仅能将城市喧嚣隔绝在外,更能为家庭节能降耗提供坚实保障。 据行业统计,2025年系统门窗市场规模已突破1000亿元,其中兼具性能与价格优势的产品占比达35%,较2023年增长12%。气密性作为衡量门…

到底是用vue2还是vue3好?

到底是用vue2还是vue3好?使用vue2还是vue3? 对于使用vue2还是vue3的争论一直在持续,个人对于这个问题也纠结了好久。 最近使用vue3+ts重构了现有vue2项目的几个主要的页面,也试着重写了一些比较复杂的功能,发现目…

基于MATLAB的B样条曲面绘制

一、基础三次B样条曲面绘制 % 清空环境 clc; clear; close all;% 定义控制点网格(3x3矩阵) ctrlPoints = [0 0 0;2 0 1;4 0 0;0 2 0;2 2 1;4 2 0;0 4 0;2 4 1;4 4 0 ];% 转换为3D坐标矩阵 P = res…

2025 年 11 月建筑木方厂家推荐排行榜,建筑木方/模板木方/桥梁木方/樟松工地木方/防腐建筑木方/烘干建筑木方/松木木方/辐射松木方/铁杉木方公司推荐

2025 年 11 月建筑木方厂家推荐排行榜:专业采购指南与权威品牌分析 在建筑工程领域,建筑木方作为基础性建材,其质量与供应稳定性直接影响工程进度与结构安全。随着绿色建筑理念的深入和木材资源可持续利用要求的提高…

2025 年 11 月防腐木厂家推荐排行榜,碳化防腐木/花旗防腐木/南方松防腐木/辐射松防腐木/菠萝格防腐木,室内装修与建筑防腐木公司推荐

2025年11月防腐木厂家推荐排行榜:碳化防腐木/花旗防腐木/南方松防腐木/辐射松防腐木/菠萝格防腐木专业解析 行业背景与发展现状 防腐木行业作为建筑与装饰领域的重要分支,近年来随着绿色建筑理念的深入和户外空间利用…

动态规划精进篇:当终点在“世界之外”——出界的路径数 - 教程

动态规划精进篇:当终点在“世界之外”——出界的路径数 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

补题若干(5)

[https://atcoder.jp/contests/abc412/tasks/abc412_e](素数筛法+枚举) 题意: 设\(A_i\)为\(1,2,3..i\)的\(lcm\),求\(A_l,A_{l+1}....A_R\) (\(L,R \leq 1e14\)) 的不同数个数 思路: 发现当\(A_{i+1}\) 和 \(A_i…

分享工具

View Post分享工具分享工具点击查看代码 import { systemShare } from @kit.ShareKit; import { uniformTypeDescriptor as utd } from @kit.ArkData; import { common } from @kit.AbilityKit; import { BusinessErro…

P12213 [蓝桥杯 2023 国 Python B] 最长回文前后缀 题解 字符串哈希+二分

题目链接:https://www.luogu.com.cn/problem/P12213 解题思路 设字符串为 \(s\),它的长度为 \(n\)。 我们用 \(s_i\) 表示字符串 \(s\) 的第 \(i\) 个字符,即 \(s = s_1 s_2 \ldots, s_n\), 用 \(s[l..r]\) 表示子…

Go Web 编程快速入门 02 - 认识 net/http 与 Handler 接口 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

贺州西林瓶灌装轧盖机洁净车间防二次污染要点

在当前制药装备采购决策中,智能化选型工具的广泛应用与全生命周期价值评估正逐步成为行业共识。企业不再仅关注设备初始购置成本,而是更加重视设备在整个使用周期内的稳定性、维护便捷性、技术兼容性以及本地化服务响…

简单配置一下下VScode

事情开始变得好玩了VScode 下载 官网下载 下载后就安装就行,记得保存到你喜欢得位置。 常见插件汇总 打开命令面板:ctrl + shift + P (或者在左下角的设置那里找找) 但是我的电脑快捷键冲突了,是屏幕截图(尴尬)…

智能充气泵方案:充气泵pcba功能结构组成

智能充气泵主要由驱动电机、气压传感器、LED屏幕、控制电路等模块组成,主控电路MCU接收测压信息,控制电机转速,从而调整充气量与充气速度。一键预设功能,接上气嘴后,自动检测胎压情况,充满自动停止,和手动充气相…