全文目录:
1. 背景介绍
2. 我们所面对的数据
3. 估计量
4. DiConfounder
分享嘉宾|宛舒 亚利桑那州立大学 在读博士生
编辑整理|田颖兰
出品社区|DataFun
背景介绍
首先来解释一下什么是集群数据。
集群数据的思想来自于物以类聚、人以群分的思想。假设共有10个样本,分为4个组,标记为1、2、3、4。基于个体分类的实验,会把样本随机分成控制组和对照组。而基于集群分类的实验,会把同一个组的样本同时分到控制组,或对照组。比如组别1被划分到控制组的话,标记为1的所有样本都会划分到控制组。
在不同的背景下,集群的含义是不一样的。比如社会实验中的组别可能是城市或者是性别、年龄,电商平台的组别可能是商品、品类和渠道,出行平台的组别可能是订单的时间段和路线,而外卖平台的组别可能是食物和类别。
为什么要去做集群维度的实验呢?首先,这是一个自然情况,数据就是按照群体去划分的,相似的个体自然组成集群。第二,可能存在一些约束导致需要划分,比如法规、伦理、成本上的约束。
需要集群数据的一个例子是不能做价格歧视,即不能对不同的顾客设定不同的价格,或者对不同的群体分配不同的政策。
在这种情况下,怎么做商品定价?商品定价对于平台方和商家都是非常重要的,它对于总体效益是非常有帮助的。我们要在不能存在价格歧视的情况下实现最优化订单,就需要在商品的维度上做价格的调整。比如同一个商品a,红色日期给商品提价10%,白色不提价,这样既没有违反原则,又可以收获实验数据,然后基于这个数据做因果推断。
第二个例子是政策分析,比如想要研究医保政策对病人医疗花费的影响,但是为了避免歧视,这个政策只能在医院或者诊所的维度上执行,不能在病人的维度上执行。这正是ACIC2022数据挑战赛的背景。
我们的团队在这个主题挑战赛获得了第一名的好成绩我们也在 GitHub开源了这个模型(https://github.com/Shu-Wan/acic2022),这个工作是我和我的同事张光辉在滴滴的时候完成的。
首先描述下大赛的数据,是医疗政策分析场景下的一个数据集,分为前后4年的数据。前2年政策没有执行,把医院分成了两类,控制组和对照组。在第三年到第四年也就是post阶段,对照组医院政策会生效,控制组医院政策仍然不生效。也就是,红点4年都是不生效,蓝点,前2年不生效,后2年生效。I和j分别代表医院和病人,z代表政策,0代表实施,1代表不实施。对于每个病人可以观测到其每年的平均花费。
我们发现1、2、3、4各种组合都有,数据分布是不均匀的,而且数据也是缺失的。这个数据非常大,有3400份数据集,每个数据集都有超过100万行,所以总共的数据超过100多个GB。
特征在控制组跟对照组分布的差异也是非常大的。我们通过ASMD指标来衡量数据分布之间的差异,对于某个协变量X,计算在控制组跟对照组的均值差,除以标准差,实线0表示没区别,虚线是0.1,超过虚线代表差异比较大,需要做均衡。
我们的模型要能够去拟合这些复杂的数据分布,如长尾分布。同时我们希望数据处理有一个适应性非常高的方法,去用一个模型解决生成模式不一样的3400种数据。
在介绍模型之前,先来讲一下估计量。估计量是对照组上的样本平均处理效应。对照组就是政策实施的组,我们需要衡量,对照组在假设政策没有实施的条件下,政策带来的效应对他们的差异。对照组在政策生效的第三年第四年,的大小,就是政策生效相对于政策不生效,对医疗花费有多大影响。
我们设定三个相关估计量,分年的SATT,分群体的SATT和分医院的SATT。
我们采用Rubin Causal Model(RCM)模型,这个模型具有三个重要假设,无混淆性、Positivity和SUTVA。
无混淆性指的是,给定混淆变量的前提下,政策是否实施对两个潜在结果是互相独立的。
Positivity是确保概率 p在0和1之间,这样才可以求出期望。
SUTVA是确保样本之间互相不干扰,对照组或者控制组的人群是不会互相影响的。
但我们这里有时间前后的概念,所以我们把无混淆性做了简单的改进,把无混淆条件变成了差分无混淆条件,这里的指的是第三年第四年,指的是第一年第二年,条件就变成。
通过假设可以把我们感兴趣的变量进行估计,把因果估计量转化成统计算子,利用统计算子直接在数据上进行估计。
这个理论证明过程为,首先添加,再减去
。
然后利用差分无混淆条性的假设,由于给定x的情况下,z是独立的,所以可以拆成。
最后利用一致性假设,如果观测到,在
阶段也就是政策实施阶段,
就是
,在政策不实施阶段,
就等价于
。
最终得到的公式实际上就是一个双重差分。
双重差分最有名的一个例子就是Card和Krueger教授在1993年估计最低工资政策对就业率的影响,这个也是Card教授在21年拿诺贝尔奖的工作之一。同样也是假设数据分为前后两个阶段,样本分为控制组和对照组,控制组和对照组在政策执行前都没生效,政策执行后控制组仍然不生效,对照组生效。那么问题就转变为估计对照组产生的效应,也就是图上的Post阶段的红点和灰点的差。根据平行假设,采用双重差分的方式进行估计,一重差分是对于每个组计算其前后的差距,二重差分是在一重差分的基础上再减去这两个组本身之间的差距,最后就可以得到红点和灰点的差距,这个差距就代表某个政策对居民最低工资的影响。
等效的回归形式可以写成。
的含义是当Z=0且P=0的情况下,Y就等于
,即在政策实施前且没有分组的情况下的基础效应。
的含义是当P=0的情况下,也就是政策生效之前,控制组和对照组天然存在的差距。
和
的含义是当P=1且Z=1的情况下,政策生效前后的差距,也代表需要评估这段时间内的趋势。
这种多元线性回归方式排除了处理效应,因此并不是特别实用,对于特别复杂且变量较多的数据,很难进行线性假设,因此提出基于DID的框架进行的扩展。
采用对结果变量做一个变换,定义为后期减前期的差值,通过将变成,通过
变成
这个变化,将回归简化为
,这个回归是最简单最经典的条件处理效应(CATE)估计形式。通过这样一个简单变化,问题就转化成了简单的平均处理效应的估计问题。
采用Susan Athey教授等人发明的因果森林模型,是一个R-Learner的估计器,实现双重稳健性。基于这个理论框架设计名为DiConfounder的算法。
直接建模的方法,是把所有treatment和所有变量直接丢到机器学习模型里进行估计,在预估的时候调整和
,分别得到
跟
,相减就是SATT。但是会引发一个问题:这个模型实际上是在估计Y,但我们的目标是需要估计delta Y或者说Z对Y的小。而且当x的维度很大的时候,的效应有可能会淹没掉。
因此需要找到一个直接估计 delta Y 的模型,也就是我们提出的DiConfounder模型,主要分为6个步骤。
第一步,是进行特征工程,在数据中挖掘医院层面的群体数据特征,和病人的个体数据特征,包含导数二次项等简单的扩展。然后纳入了特征生效前的一些历史信息,也就是第一年第二年的信息。并且把Trend作为预估特征放进去,也就是差分项,比如第三年减去第二年的差,第四年减去第二年的差,实验证明这两个特征非常重要。
第二步,处理缺失数据,比如有些病人在第一年第二年出现,但是第三年第四年没出现,或者有些病人第三年第四年才出现,这种情况下计算差分需要进行填充。
基于第一年第二年观测结果的人群样本做模型,预估仅仅有第三年第四年的,但没有第一第二年的那些样本,这样我们就可以获得所有差分的值,这一步对于最后模型效果的提升也是非常有帮助的。
第三步、第四步和第五步,都是在建立模型,首先需要预估y上的模型,然后预估倾向性评分的模型,最后把这些模型都放入到因果森林里面,就可以得到所需的SATT。
最后一步,对估计的SATT进行聚合,评估各种基于SATT的变量,同时对每个变量进行不确定性的估计,比如准确度估计。
不确定估计有两种方法,第一种是基于Bootstrap的方法,首先对数据去进行bootstrap,对于每一个bootstrap的数据,训练模型进行预估。这样重复100次就可以有100套预估值,基于这100套的预估值,构建一个经验性分布,得到对应的置信区间。但是一个模型训练100遍,速度很慢,第二个方法可以解决这个问题。
第二种更快的方法就是直接套用公式,把每个群体进行重复计算。比如,在这个例子里面,我们直接分别去估计每个医院的,i是每个病人的处理效应,计算平均值得到某个医院的平均处理效应
,再次平均,得到一个总的处理效应。然后以每个医院的处理效应计算标准差,构造一个90%的置信区间。这是一个简单的方法,它有些瑕疵,但是从我们的评估上看的话,是有一定效果的,而且模型训练也会快很多。
结果
我们总共提交了四个版本,最后这个版本,也就是前面介绍的这一套方案取得了比较好的成绩。
这个模型的效果比较不错,目标的coverage是90%,最后结果是80%,RSME是10左右。
但我们也发现一个问题,我们的模型在群体差异比较小,且个体差异大的时候表现是最好的,但在群体差异大,个体差异小的时候表现是最差的。比如极端情况,假设没有群体差异,只有个体差异的情况下,就会退化成个体分类的处理结构。如果群体差异很大,群体内部差异几乎没有,就会退化成分人群的处理结构。原因是因为模型本质上是针对个体去做设计,没有在群体上做调整。
最后进行一下总结,我们提出的DiConfounder,实际上分为两步。
第一步是通过把估计量改成差分,把回归模型转变为普通的CATE估计,这个模型实际上是在病人的维度上进行建模,没有针对群体去做特别多的优化,因为如果目标更关注群体效应,建模的粒度不需要做到特别细。原因在于 trade off,也就是,数据越多的时候估计量的方差会越小,所以一定程度的聚合是对估计量有好处的。但是当组内的一致性足够大的时候,做细粒度的建模是更加有优势的。如果组间差距很大,组内差距很小的话,建模没必要做的特别细,反之的话建模就需要更加细粒度。
第二步是估计不确定性。通过6步的DiConfounder,进行五六个模型训练。在实际应用问题中存在不可观测混淆的问题,可以通过group IV进行规避。group IV的假设是对于不同的group,存在混淆变量,同一group的混淆变量是相同的。
分享嘉宾
INTRODUCTION
宛舒
亚利桑那州立大学
在读博士生
宛舒,美国亚利桑那州立大学数据科学分析与工程专业二年级博士生。目前在DMML实验室进行研究,由刘欢教授指导。主要的研究方向为因果机器学习。在此之前,宛舒先后获得了复旦大学数学学士学位和乔治华盛顿大学统计学硕士学位。曾在滴滴网约车的供需策略技术部工作,主要负责价格弹性建模和建立价格实验平台。在滴滴期间,深度参与了广义因果森林以及Spark因果森林的技术开发和策略迭代,成功地推动了该模型的上线实施。
网友评论已有0条评论, 我也要评论