数据科学中的因果推理:多重比较的有效推理覆盖
FWER 和 FDR 上限程序的数学严格推导和计算模拟
1:背景和动机
因果推理是众多从业者感兴趣的领域,包括统计学家、数据科学家、机器学习科学家和其他计算研究人员。关于随机和非随机环境中因果效应位置参数的无偏估计的恢复,我已经写了几篇文章,包括:
在这篇文章中,我们将重点转移到因果效应估计的推理覆盖的有效估计。具体来说,我在这里提供了一个相当严格和数学支持的多重测试问题的介绍,这是特别重要的大规模多终点分析。
让我们用一个简单的例子来说明多重测试问题:
回想一下,在假设检验框架中,当一个无效假设被拒绝,而另一个假设被接受时,就会出现第一类错误,但这是在无效假设事实上为真的情况下。理想情况下,我们希望用一个阈值来“控制”第一类错误发生的概率。我们把这个阈值称为α*。*
现在假设分析有两个结果终点。我们需要进行两个独立的假设检验。让我们假设这两个假设检验是相互独立的。我们为两个测试中的每一个指定单独的 I 型误差阈值 a =0.05:
作者图片
问题是,如果我们的两个测试中的两个各自的无效假设事实上都为真,那么两个假设测试中的 至少有一个 产生“统计显著性结果”(即 p 值≤ a )的概率有多大,从而导致我们拒绝该测试的各自的无效假设,而选择另一个测试:
作者图片
尽管我们将每个个体假设检验控制在个体 I 型错误阈值= 0.05,但 FWER 几乎是该阈值的两倍( FWER =0.0975)。**
随着被研究的单个测试数量的增加,这种现象变得越来越严重。假设所有感兴趣的测试都是独立的,如果我们有 14 个感兴趣的假设测试(实际上都是空的),每个假设测试都有一个测试特定的第一类错误阈值 a =0.05,那么 FWER 就变得不比掷硬币好( FWER ≈0.512):
作者图片
这个问题与因果效应的有效估计有什么关系?在随机和非随机分析的因果推断中,研究多个终点和/或多个感兴趣的结果可能非常常见。
假设我们是一家制药公司,正在测试一种新药对几个感兴趣的拟议结果的因果影响。不为公众所知的是,这种新药是一种“糖丸”安慰剂,对任何实质性相关的医疗结果没有真正的因果关系。假设我们偷偷意识到了上面的数学现象,我们特意提出了 100 个我们感兴趣的不同结果,以增加我们获得 FDA 药物批准的可能性。如果在个体水平α阈值 a =0.05 下进行每个假设检验,从概率上讲,我们实际上可以保证产生至少一个具有统计显著性的检验,即使所有的检验实际上都是无效的。这被通俗地称为“钓 p 值”或“p 黑客”*。我们只是不断地进行越来越多的测试,直到我们“发现”一个具有统计学意义的结果,并错误地认为它是一个“重要的发现”。在分析中,这是一个不受欢迎的动机。我们需要一种数学上严格的方法来防止这种激励,并调整我们的结果。*
在本文中,我们将介绍两个通用框架来调整多重比较问题:
- 家族错误率( FWER )
- 错误发现率( FDR
并且以一种数学上严格的方式将涵盖不同的方法来上限化 FWER 和/或 FDR 。我们也将进行一个计算模拟来进一步检验这些方法在实际应用中的效果。
这篇文章的目录如下:
作者图片
2: 家庭式错误率(FWER)
2.1:FWER 的数学规范
让我们举一个玩具的例子:
作者图片
作者图片
2.2: Bonferroni 程序
作者图片
作者图片
2.3: Sidak 程序
作者图片
作者图片
2.4:霍尔姆-邦费罗尼(HB)降压程序
作者图片
作者图片
2.5:霍尔姆-西达克(HS)降压程序
作者图片
作者图片
2.6:霍赫伯格升压程序
作者图片
2.7:排列程序
3:错误发现率(FDR)
3.1:FDR 的数学规范
让我们回到我们的玩具例子:
作者图片
作者图片
3.2: Benjamini-Hochberg(波黑)升压程序
作者图片
3.3:Benjamin-Yekutieli(BY)升级程序
作者图片
4:简短的旁白
4.1: 负相关假设检验
在我们对 FWER 和 FDR 控制技术的讨论中,我们提到了感兴趣的统计测试的依赖结构。我们的一些控制技术在任意依赖结构下是有效的,而另一些只在独立或正相关结构下有效。然而,在实践中,除非我们使用单侧检验技术来恢复特定检验的 p 值,否则负相关检验并不值得特别关注。
为了理解为什么会出现这种情况,让我们检查一下我们所说的“相关测试”是什么意思。重要的是,“假设检验的相关性”不一定等同于“变量的相关性”或“数据的相关性”。例如,如果我们认为两个统计测试“正相关”,我们规定如果我们已经进行了其中一个统计测试并发现它产生了一个具有统计显著性的结果,那么剩余的统计测试产生一个具有统计显著性的结果的条件概率 比其相应的所述结果的边际概率 大。回想一下,对于双边统计推断测试,如果测试统计量在其零样本下的抽样分布的任一侧足够极端,我们认为该测试具有统计显著性。也就是说,如果两个检验中的“变量”或“数据”是负相关的,并且其中一个假设检验产生了具有统计学意义的结果,这就告诉我们,另一个假设检验有很大的概率产生一个极端的检验统计量,但是在各自的抽样分布的另一侧处于零。因为我们进行的是双边假设检验,这个足够极端的检验统计量导致了一个小的具有统计显著性的 p 值,从而导致了两个正相关的检验,即使这两个检验中的数据是负相关的。
在双边检验的情况下,两个检验呈负相关意味着如果我们完成了其中一个统计检验并发现它产生了具有统计意义的结果,则剩余的统计检验产生具有统计意义的结果的条件概率低于相同结果的相应边际概率。如果你仔细思考前面的陈述,你会发现这是一个奇怪的场景。很难假设一个真实世界的用例会发生这种情况。
因此,如果我们专门进行双边检验,负相关检验的合理可能性很低,不必特别关注。然而,在单侧测试的情况下,当选择 FWER 和 FDR 调整程序时,应仔细权衡负相关测试的可能性。
4.2: 阿尔法支出
接下来,我们将讨论“阿尔法支出”的概念。我发现在 FWER 的上下文中解释这个概念最有意义。
让我们假设我们是在不相关测试的 Sidak 程序所需的假设下工作的,但是只有两个感兴趣的测试:
作者图片
作者图片
对于阿尔法支出,把我们的 FWER 想象成一个货币金额。我们可以把这笔钱花在每个单独测试的 alpha 阈值上。我们在每个门槛上花费的金额不需要相同,只要我们保持在总货币的预算之内。
事实上,阿尔法支出是我们一直在用本文中描述的所有方法执行的事情,我们只是没有明确地这样说。我们一直使用的阿尔法支出的“默认”形式是在所有个人阈值上的“相等”支出。
注:在实践中,任何杠杆α支出方案必须在分析的研究设计阶段加以规定;我们不能在收集了数据并对其进行了分析之后,再追溯性地指定这些阈值。这样做将不再束缚号前锋和号罗斯福。
5.FWER & FDR 控制方法的计算机模拟
下面是本文中讨论的 7 个 FWER 方法和 2 个 FDR 方法的 Python 计算模拟。
对于每种 FWER 和 FDR 方法,进行了四次计算分析,每次分析指定 2000 次模拟,每次 200 次假设检验。根据 FWER 和 FDR 方法的四个模拟在 200 个测试假设(200 或 150)中的真零假设数量以及 200 个测试的相关结构(不相关或正相关)上有所不同。所有测试都是在假设双边推理测试的情况下进行的。
让我们导入需要的库和助手函数:
…接下来指定恢复模拟数据集的函数:
…我们的 FWER 分析功能:
…我们的 FDR 分析功能:
…以及恢复我们的模拟结果:
以下是我们计算模拟的经验结果:
作者图片
上面的计算模拟结果很好地反映了这件作品中数学推导出的材料。例如,Holm-Bonferroni 程序通常比 Bonferroni 程序在估计的 FWER 上产生更严格的上限。
以上计算模拟的完整代码/笔记本,请参见下面的 github 链接 。
6.总结和结论
这包括我们对多重比较问题的解释,在实践中对 FWER 和 FDR 进行上限的方法,以及演示这些方法的计算机模拟。我也鼓励任何发现上述材料有见地的人创建他们自己的模拟示例,利用我的代码作为起点,并自己进行实验!
如果你想了解更多关于因果推理的方法和注意事项,我会推荐哈佛大学的 Miguel Hernan 和 Jamie Robins(我以前的两位教授)的教科书“ Causal Inference: What If ”,加州大学洛杉矶分校的 Judea Pearl 的“Causal”,斯坦福大学的达芙妮·黑仔和耶路撒冷希伯来大学的 Nir Friedman 的“概率图形模型:原理和技术,以及加州大学伯克利分校的 Mark van der Laan 和斯坦福大学的 Sheri Rose 的两本关于目标最大似然估计的教科书这些都是很棒的文章。我计划在未来写更多关于因果推理的深度文章。
因果推断:如果会怎样
希望以上有见地。正如我在以前的一些文章中提到的,我认为没有足够的人花时间去做这些类型的练习。对我来说,这种基于理论的洞察力让我在实践中更容易使用方法。我个人的目标是鼓励该领域的其他人采取类似的方法。我打算将来写一些基础作品,所以请随时在 LinkedIn 上与我联系, 在 Medium 上关注我的更新!
因果推理——控制还是不控制
在因果估计和统计估计之间建立联系
https://github . com/crypt exis/causal _ inference/blob/main/collider _ fork/collider _ fork . ipynb
我将避免重复其他教程和书籍中的大部分内容,例如什么是碰撞器或分叉。当讨论相关话题时,我会提供有用的链接。否则,我假设读者要么熟悉这个主题,要么有足够的动机去了解更多。万一你觉得缺乏知识或背景,这里有一套我推荐参考的资源:[ 因果推断入门课程,因果推断:统计学中的混合磁带 因果推断:初级读本,因果关系
作为我写作的第一个实验,我选择写关于因果推理的文章,并在这篇论文的基础上做一个小练习。这篇论文将在因果推理入门课程的第四周讨论。
这里的不同之处在于我保留了:
- 变量之间的关系完全相同,而在视频中它们被修改了
- 治疗变量是连续的,而在视频中,它被修改为二元变量,以显示一种估计平均治疗效果的特殊技术。
此外,我愿意联系一些点,说明为什么某些技术正在估计平均因果效应,并强调如果天真地估计因果效应会发生什么。
“我妈妈总是说生活就像一盒巧克力。你永远不知道你会得到什么”——阿甘正传
因果推断……哪里需要?
简称:不可能进行随机对照试验(RCT)时。无法进行 RCT 的原因有很多,其中一些在参考博文的“为什么在行业中进行 CI”小节中有描述。
为了激励我们的练习,让我们想象以下情景:
当你正在工作中放松、摆弄数据或与 Tensorboard 进行凝视比赛时,你的老板打电话给你,让你调查变量 X 对业务 KPI Y 的影响。
你可能的答案是什么?
A. 为了准确理解效果,我们需要设置一个 RCT,对一定比例的用户关闭产品功能XN 次。
好的,我会尽我所能。
如果你答答会导致很多复杂情况:
- 也许特性 X 是成功的:关闭它会导致大量的机会成本
- RCT?说起来容易做起来难。建立 RCT 有其自身的挑战。即使有成熟的 A/B 测试框架的公司有时也很难把它做好。
- 如果你想随机化的东西不可能随机化呢?
结果:如果你的意图是让你的老板滚蛋,那么,任务完成了!
如果你的答案是 B,那么我希望下面的练习能对一些实践和理论问题有所启发。更具体地说:
- 如何/为什么线性回归系数可以用来估计一个变量对另一个变量的平均因果影响?
- 如果在估计平均因果效应的过程中控制了错误的变量,会发生什么?
关于数据生成过程
当我们谈论数据生成过程时,我们不得不谈论它的因果结构。为了表示世界的因果结构,当前的文献建议使用两种工具:
- 结构因果模型
- 图形模型
给定随机变量 X , Y 和 Z, 单片机可能会得到 Z=f(X,Y) 。这意味着变量 X 和 Y 导致变量*。还有,单片机的部分是描述 f 的确切形式。将变量之间的关系建模为线性函数往往是一种方便的选择(原因是可解释性)。*
示例:
与上面的 SCM 相对应的图形模型如下所示:
为了遵循论文中提供的数据生成过程,我做了两件事。把用 R 编写的巫术(无意冒犯 R 专家,我只是讨厌那种语言)翻译成 Python,并引入了一点结构:
在本文提出的所有研究中,变量 T 到 Y 的影响始终是研究的主题。因此,当谈论像分叉或碰撞器这样的特定结构时,它意味着强调第三个变量如何与和 Y 相关。**
生成分叉结构
具有相应的 SCM 和图形模型:
****
在本笔记本中还可以找到另外两个例子。其中研究了对的平均因果效应。在其他文献中 ACE 被命名为 吃了 (治疗效果一般)。就我个人而言,我喜欢平均因果效应,因为平均治疗效应表明变量 t 的二值化,例如,受试者是否接受治疗。这些只是语义。可能只是我吧:)**
为了理解估算 ACE 的程序,让我们退一步来做。
一点形式主义:关于回归系数的一个小故事
让我们想象一下:
我们用线性回归来满足
其中 X 是其他协变量的向量。让我们根据期望值改写等式:
并且对于的每一个值:**
现在让我们看看当我们用改变值时,期望值的差异会发生什么。△代表一个单位改变 int $ T $的值。不失一般性,我们可以假设 delta = 1 。
这不应该让我们感到惊讶:这就是我们总是如何解释线性回归的系数——当相应的协变量改变一个单位时,结果变量的预期变化。然而,这个估计真的带有因果性质吗?让我们再做一步来理解其中的区别。
多一点形式主义
如果 T 为二进制,我们将 ACE 定义为:
左右的重要区别 =? 标志是 的存在,做-操作符。 做-操作符代表干预。更具体地说,E[Y | do(T = 1)】测量当群体中的每个人都采取处理时 Y 的期望值,而 E[Y|T=1] 以采取处理的子群体为条件的 Y 的期望值
现在当 T 是我们感兴趣的连续值时:
和线性回归的情况一样,我们可以假设 delta=1 。上述等式的左边转化为:
“治疗变量 T 对结果变量 Y 的平均因果效应是什么,当我们将变量 T 改变一个单位时”
这里一个重要的问题是“我们怎样才能表达出=?就右侧而言?”**
定义(后门准则):给定 DAG G 中的一对有序变量 (T,Y) ,如果Z中没有节点,则一组变量相对于 (T,Y) 满足后门准则******
(以上定义摘自朱迪亚·珀尔)
这基本上意味着为了进行上述分解,一个需要控制所有不是 T 的后代的变量,并且不应该控制任何一个后代。
好吧,让我们看看这与回归系数的关系,以防我们必须控制一个变量***【Z】***:
现在,对于变量之间的线性关系:
类似于线性回归的推导,我们可以从刚刚获得的结果中推导出:
这基本上表明,在我们对右变量进行控制的情况下,我们可以通过对数据拟合线性回归(当然,只有当 SCM 由线性关系组成时才成立)并查看治疗变量的系数来估计*。*
进行实验
论文模拟了 24 小时膳食钠摄入量()与收缩压( Y )关系的现实研究数据。随着年龄的增长, W 我们的肾脏会发生变化,从而影响我们体内钠的平衡和收缩压。由此可见, W 是既有 T 又有 Y 的共同原因。另一方面,24 小时膳食钠摄入量和高收缩压都会导致尿蛋白排泄 Z 。由此可见,是由和 Y 共同造成的。****
数据生成过程和生成的图表如下所示:
生成 Fork + Collider 数据
具有相应的 SCM 和图形模型:
****
这里我们可以看到 T 对 Y 的因果作用是 1.05 。
假设 我们假设已经为我们提供了图形模型,并且我们知道变量之间的关系是线性的。
“我们如何在真实世界场景中获得这样的图形模型?”- 好问题!
以下是方法:
- 研究的一个分支致力于从数据中学习因果 DAG。
- 领域知识:给定领域中的数据和足够的专业知识,人们可以提出一个相当不错的图形模型。
估算
如上图所示,我们需要的是对一组变量进行线性回归拟合,看变量的系数 T 。
现在让我们看看用不同的方法估算 ACE …
****方法一:白调整
****
这里我们只是由高估了 T 的效果。想象一下,如果你向你的老板传达这样一个评估,会对业务产生什么影响。结论:仅仅收集数据和比较组平均值而不做进一步检查是不允许的!。
方法 2: 残酷的数据科学家模式——将所有变量倒入:调整 W 和 Z
****
何? -0.9117 ?完全不同的符号。这意味着不仅幅度是错误的,而且结论也有 180 度的不同。
在一个简化的世界中,对于第一种方法,你可以告诉你的老板“如果你花 1 美元,你将产生 3.22”在第二种情况下,消息将是“如果你花 1 美元,你将损失额外的 90 美分”。**
方法 3: 我们停止抄近路,看看 DAG。DAG 说, W 是分叉, Z 是碰撞器。或者放入后门准则(BC)的话, Z 不满足 BC 准则, W 满足。因此我们只需要控制 W 。
****
似乎我们击中了目标。这里令人不安的是置信区间的宽度。它们看起来像是格朗德穿过的。
但这是另一个时代的故事了…
如果你正在读这一行,这意味着你已经通过:)感谢阅读!我将在未来回到因果推理主题,以涵盖更现实和有趣的用例。
参考
[1]米格尔·安杰尔·卢克-费尔南德斯,迈克尔·斯科梅克,丹尼尔·雷东多-桑切斯,玛利亚·何塞·桑切斯·佩雷斯,阿南德·瓦伊迪亚,米蕾尤·E·修尼泽,教育笔记:非传染性疾病流行病学数据分析中的矛盾对撞机效应:可再现的图解和网络应用 (2019),《国际流行病学杂志》
最初发布于https://cryptexis . github . io。**
基于贝叶斯结构时间序列模型的因果推理
调查培训活动对软件工程团队报告的错误数量的影响
埃里克·卡瑞茨在 Unsplash 上的照片
在本文中,我将向您简要介绍因果推理,以及作为数据科学家我们为什么需要它,然后我将展示一个如何使用 Python 库因果影响应用这一概念的实际例子。
因果推理导论
《大英百科全书》用一个我们都能理解的有用例子来定义因果推理:
在因果推理中,一个人推理出某事物是或可能是另一事物的原因的结论。例如,从一个人听到钢琴音乐的事实,可以推断出某人正在(或曾经)弹钢琴。但是尽管这个结论是可能的,但它是不确定的,因为声音可能是由电子合成器产生的。
因果推断是关于确定一个事件或干预对预期结果指标的影响。也可以认为是确定结果指标的变化是否是由事件或干预引起的。
例如,1)营销活动(干预)对我们产品的销售有什么影响(结果),2)我们产品的销售增长是因为营销活动还是因为其他原因?我们可以用因果推理来回答这些问题。
当做出可能影响数百万人或涉及数百万美元的决策时,通常会使用因果推理,例如在医疗保健、公共政策、科学和商业领域。在这种情况下,重要的是我们的分析要基于可靠的统计数据,而不仅仅是随意浏览数据和图表。
分析干预的影响的挑战是,我们不容易检查没有干预的情况下序列的趋势。在我们的营销示例中,我们有一个在活动干预后的销售记录,但是我们不知道如果没有干预会有什么样的销售。
这就是使用贝叶斯结构时间序列模型的因果推理可以帮助我们的地方。我们可以使用这样的模型来预测如果没有干预会发生什么,这被称为反事实。然后我们可以将反事实与我们实际观察到的进行比较。
因果影响库
2014 年,Google 发布了一个 R 包,用于时间序列中的因果推断。我们在下面的例子中使用的 Python 因果影响库是 Google 模型的完整实现,所有功能都完全移植。
该库的实现最好由它的作者来解释:
该算法的主要目标是通过分析预期和观察到的时间序列数据之间的差异,推断给定干预(或任何行动)对某些响应变量的预期影响。
数据分为两部分:第一部分是所谓的“干预前”时期,使用贝叶斯结构时间序列的概念来拟合一个模型,该模型可以最好地解释观察到的现象。拟合的模型用于数据的第二部分(“干预后”时期),以预测如果不进行干预,反应会是什么样子。推断基于观察到的响应与预测响应之间的差异,预测响应产生干预对数据造成的绝对和相对预期影响。
通过例子进行因果推理
以下是我们将使用的场景:
- 流媒体服务 WebFlix 通过几个渠道提供内容:iOS 应用程序、Android 应用程序、Roku 应用程序、Fire TV 应用程序和网络浏览器。
- 每个渠道由不同的软件工程团队管理。
- 工程团队跟踪每周报告的错误数量,并监控模式。
- 网络团队的管理层发现 2020 年初报告的错误数量呈令人担忧的上升趋势,并在 2020 年 5 月仅向该团队提供了培训以解决问题。
培训之后,Web 团队报告的错误数量减少了,并在 2020 年的剩余时间里保持稳定。报告的错误减少是提供培训的结果还是另有原因?
我们的数据集包含每个软件工程团队的每周错误报告。所有代码和数据都可以在这个 GitHub repo 中获得。
你可以在下图中看到,2020 年上半年,网络团队报告的错误数量有所增加。红色虚线表示提供培训的那一周。
下一个线图显示了所有软件工程团队报告的错误趋势。除了 Web 之外,所有团队的错误报告全年都相当稳定,在一个一致的范围内波动。
根据上面的线图,我们可以得出一个初步的结论,即所提供的培训可能是 Web 团队报告的错误减少的原因。然而,为了增加我们结论的可信度,我们将利用因果影响库进行统计分析。
在我们能够使用因果影响之前,我们需要将我们的数据框架转换成宽格式,以便每个软件工程团队都有一个列,列出每周报告的错误数量。我们可以使用熊猫数据透视表功能来做到这一点。我们还需要确保我们的日期变量被设置为索引,并且 Web 变量被移动到 DataFrame 的第一列。
该模型将使用所有软件工程团队的错误报告数据来帮助我们确定指定的干预是否是 Web 团队报告的错误减少的真正原因。
下面是代码和生成的数据帧:
使用和解释因果影响库的结果非常容易。我们首先定义干预前的时间段(在 2020 年 5 月的最后一周提供培训)和干预后的时间段。
然后,我们通过提供宽数据框架和我们刚刚定义的两个时间段来运行模型。处理完成后,我们可以使用三种可用的绘图类型绘制结果:原始、逐点和累积:
下面的第一个图显示了 Web 软件工程团队报告的实际错误(y)与同一团队的预测(预测),考虑了 Web 团队在 2020 年 1 月至 5 月报告的错误以及其他软件工程团队全年报告的错误。
从图中可以明显看出,网络团队对 2020 年 6 月至 12 月的预测高于实际报告。这表明在 2020 年 5 月发生了一次干预,从 6 月开始,对 Web 团队报告的错误数量产生了积极的影响。这进一步支持了一个结论,即 2020 年 5 月向 Web 团队提供的培训是从 6 月起报告的 bug 减少的原因。
下一个图显示了实际序列和预测序列之间的差异,称为点效应。
最后的图显示了累积效应,它基本上是一段时间内累积的点效应的总和。
的因果影响库还可以为我们提供数值和统计输出以供进一步分析:
最后,我们还可以生成一份书面报告,用一行代码解释我们的分析结果:
本报告证实了我们早期的初步结论,即从 2020 年 6 月起,网络软件工程团队报告的错误减少的原因是 2020 年 5 月向团队提供的培训。偶然获得这种效应的概率非常小,因此可以认为因果效应在统计上是显著的。
干预,也就是提供的培训,对报告的错误有-21.03 的影响,间隔为 95%。提供培训是一个好的决定,因为它达到了预期的效果。
结束语
因果推断是一个很难解决的问题,但数据科学家越来越多地被要求解决这个问题。因果影响等库的引入给了我们一个很好的工具,能够在这方面取得进展。
正如您在错误报告示例中看到的,这个库非常容易使用,并且结果可以被快速解释和理解。我们可以迅速获得对任何结论的信心,并将我们的结果传达给利益相关者。
也请查看我的系列文章通过示例学习 Python 数据分析:
我最近发表的其他文章:
https://github.com/dafiti/causalimpact
使用自然语言处理的因果推理
思想和理论
应用 NLP 方法估计文本变量的因果效应及其在社会科学研究中的应用。
猫折纸最终导致了数据科学。图片作者。
最近,我很荣幸地接受了 TDS 编辑本·胡伯尔曼的【T2 作家聚焦】采访。我借此机会强调了我学习数据科学的连接主义方法。特别是,我讨论了我不断连接想法的愿望——这种倾向是这篇文章的原因,它结合了我的两个兴趣:自然语言处理(NLP)和因果推理。我受到了本月初发表的计算语言学调查论文的启发,该论文全面回顾了自然语言处理在因果推理中的应用,以及相反地,因果关系在改进自然语言处理模型中的应用。将因果关系应用于 NLP 研究的反向关系,对提高人工智能模型的可靠性和公平性具有启示意义;我将在以后的文章中探讨这种联系。在这里,我将重点放在第一种关系上,其主要目标是将最新的研究成果转化为社会科学研究的应用。
NLP 具有帮助估计因果效应的潜力,这一事实可以用于经济分析、公共健康研究以及销售和营销活动。在以前侧重于计量经济学的文章中,我详述了推断因果估计的统计挑战。例如,在因果森林的介绍性教程中,我讨论了潜在结果框架,并在中讨论了混杂性,这是一个关于使用工具变量进行深度学习的教程。在本文中,我将回到这两个观点,首先简要总结潜在的结果和混杂变量在估计因果关系中的作用。这直接导致了对文本数据复杂性的讨论,以及对文本变量可用作治疗、结果、中介或解决混淆的假设的挑战。接下来,我使用因果有向无环图 (DAGs)来描述取自前面提到的调查论文( Feder 等人,2021 )的一个实际例子,该例子突出了使用 NLP 进行因果推理的潜力。最后,我讨论了几个应用研究,展示了使用文本变量进行因果推理的多功能性。
潜在结果和混杂因素
为了从观测数据中估计因果效应,我们必须设想反事实的情况。因此,因果推理的关键要素是基于感兴趣的干预来定义反事实。更具体地说,因果效应被定义为治疗中单位水平的干预变化对结果变量(Y)的影响程度(T∈{ 0;1});换句话说,真实世界 Y(1)和反事实世界 Y(0)的结果之间的差异。当感兴趣的因果效应是平均治疗效应(ATE)时,事实观察和反事实观察之间的关系可以描述为下图所示。
平均治疗效果(ATE)是真实世界和反事实世界之间预期结果的差异。图片作者。
此外,为了表明治疗导致一个结果(Y),治疗(T)的变化应该导致结果(Y) 的变化,而所有其他协变量(X)保持不变;这种类型的治疗变化被称为干预。
然而,因果推理的基本问题是,不可能直接观察到反事实的结果。因此,需要一个潜在的结果框架来描述具有反事实条件的因果统计模型——这些条件是在不同情况下为真的陈述。潜在结果框架还规定了因果推断需要满足的几个假设。如果我们暂时忽略关于协变量(X)的假设,有三个相关的假设:可忽略性,积极性和一致性。
可忽略性要求治疗分配独立于已实现的反事实结果。这通常是通过随机分配实现的;然而,当使用观测数据时,这可能是不可行的。在这种情况下,有必要依赖条件可忽略性,其中协变量 X 是一组变量( x ),使得治疗分配(T)和潜在结果(Y (1)和 Y(0))在 X 的水平内是不成立的。该假设如下图所示。
条件可忽略性假设,也可以称为条件独立性或条件不可数性。来源:费德等人,2021 。
然而,条件可忽略性需要一个强有力的假设,即不存在不可观察的混杂因素。当一个变量(混杂因素)对治疗(T)和结果(Y)都有影响时,就会产生混杂因素,导致虚假的相关性。下图显示了这种关系,其中 W ᵢ 是混杂变量。
混杂因素 Wᵢ对治疗(t)和结果(y)都有影响。资料来源:韦奇等人,2020 年。
其次,阳性是假设接受治疗的概率介于 0 和 1 之间。在条件可忽略性下,正定性假设对于所有协变量(X)Pr(X =X)≠0,
条件可忽略性下的正性假设,也称为重叠假设。资料来源:费德等人,2021 。
阳性还意味着在给定协变量 x 的情况下,无法完美预测治疗状态。最后,一致性要求在给定单位( i )的给定治疗状态下观察到的结果与该单位被分配到治疗中观察到的结果相同。这种一致性假设也可以称为稳定单位治疗值假设 (SUTVA),如下图所示。
反事实一致性假设。来源:费德等人,2021 年。
一致性假设对反事实结果和观察结果之间的关系做出了两个断言。第一,没有干扰,因此一个单元( i )的结果只受其治疗状态的影响,而不受其他单元的治疗状态的影响;第二,治疗只有一个版本。下一节描述了在各种文本变量设置中面临的假设挑战。
文本变量在因果推理中的作用
传统上,NLP 模型使用统计相关性来进行预测,并且依赖于训练和测试数据同分布的通常假设。然而,因果推理是一种不同类型的挑战,特别是对于非结构化的文本数据。尽管如此,对于文本,有机会利用数据生成过程 (DGP)的因果结构的领域知识,这可以暗示归纳偏差,从而导致更稳健的预测。此外,关于公平性,对预测器的随意观察可以解释其内部工作,这是相对于非因果黑盒的显著优势。
文本在编码治疗或感兴趣的结果方面具有灵活性,甚至在编码代表治疗(独立的)可以影响结果(依赖的)的中间方式的介质方面也具有灵活性。下图描述了中介设置,其中 W ᵢ 是受治疗影响的中介变量,而其本身对结果有影响。
文本作为中介设置,其中 W ᵢ 是中介变量。资料来源:韦奇等人,2020 年。
有了文本数据,也有可能解决混淆,使估计因果关系成为可能。混淆可能是由于主题、写作风格或语气;因此,包括这些混杂因素的文本控制,允许我们假设条件忽略。
重要的是,文本是高维的,有必要从文本中提取信息,以便估计因果关系。这意味着需要复杂的语言建模来度量语义上有意义的因素,如主题。自然语言处理的发展,如主题模型和上下文单词嵌入,使得利用文本回答因果问题成为可能。挑战在于开发新的假设,以确保 NLP 方法的使用将导致有效的因果推断。
例如,以文本作为结果,关键问题是如何将高维文本数据提取为感兴趣的低维特征。有必要根据数据开发一个测量模型;但是,这样做时,一个观察的治疗状态可能会通过测量选择影响另一个观察的结果。这导致了两个问题——首先,它违反了一致性,其次,如果我们要对同一数据探索多种不同的度量,还会有其他问题。这个问题的解决方案是开发一个测量模型,用独立的数据,而不是用来估计因果关系的数据。本节的其余部分按以下顺序讨论其余的文本变量场景:治疗、混杂和中介。
将文本作为治疗手段,我们对语言对下游决策、行为和其他结果的因果关系感兴趣( Feder 等人,2021 )。考虑治疗发现,这种方法产生文本的可解释特征,这些特征可以与结果有因果关系。这种分析文本效果的方法可以通过潜在的影响维度来完成,如主题或词汇特征,如 n-grams ( Pryzant et al .,2018 )。还可以估计从文本中提取的特定属性的因果效应( Wood-Doughty et al .,2018 )。
文本作为因果推理的治疗设置有三个挑战。第一个与人们阅读特定文本的选择有关——他们选择的原因往往与兴趣的结果有关;因此,违反了可忽略性假设。随机分配文本给读者可以克服这个挑战;然而,这并不总是可行的。在这种情况下,要估计文本属性的影响,需要假设文本包含所有的混杂因素。这意味着,如果有未观察到的原因影响一个人阅读的文本及其结果,那么可忽略性假设就不成立。一个人的政治倾向是一个未被观察到的原因的例子。
第二个独特的挑战与积极性假设有关。例如,假设文本包含所有混淆因素,如主题、语气和写作风格,如果我们试图估计礼貌语言对电子邮件回复时间的因果影响,就不可能想象礼貌电子邮件是以亵渎的风格写的( Feder 等人,2021 )。第三个也是最后一个挑战是与前面提到的作为结果设置的文本相同的衡量问题。为了假设一致性和作出有效的推论,有必要用不同于用于估计因果效应的数据来开发治疗的测量。
当试图使用文本作为解决混淆的手段时,挑战在于如何使用 NLP 方法以阻止混淆的方式对文本进行调节。解决这个问题有两种方法:非监督学习和监督学习。首先,可以使用无监督的降维技术,将高维文本数据降低到较低维的变量集。这些方法包括潜在变量模型,如主题模型(如 LDA )、嵌入方法(如句子-伯特嵌入)和自动编码器(如变分自动编码器)。第二种方法是使用监督模型来调整文本中的混杂因素;这可以通过调整预先训练的语言模型(例如 BERT )或监督主题模型(例如 sLDA )来预测治疗和结果。例如, Vietch 等人(2020) 通过学习预测治疗和结果的低维变量,将文本嵌入用于因果推断;他们证明了文本数据中存在混杂属性。
值得注意的是,当使用 NLP 调整混杂因素时,这需要对可忽略性进行强有力的假设,特别是因为文本作为混杂因素应用于只有观察数据可用的设置。这意味着假设可忽略性,模型必须测量混杂的所有方面。由于文本是高维的,包含所有可能的混杂因素意味着有大量的变量要考虑,这有违反积极性的风险。一个额外的担忧是,通过对碰撞变量(一个受到多个变量因果影响的变量)进行条件化,存在打开一条后门路径的风险,否则这条路径将被关闭。关于借壳准则(明珠,1993 )的简单介绍,我建议这个中帖。在讨论了作为中介设置的文本之后,下面的部分介绍了因果 Dag,在这里我将进一步讨论后门标准。
调解人充当外部有效性的混杂因素,也就是说,在文本设置中未能考虑调解意味着因果估计缺乏普遍性。在调解环境中,治疗(T)不能直接影响结果(Y),除非通过“中间人”调解人(W)。因此,如果文本作为一个中介,有必要在因果估计中考虑它。通常,感兴趣的因果效应是自然直接效应 (NDE),在下图中显示为直接连接治疗(T)和结果(Y)的箭头。
文本作为中介设置,其中自然直接效果(NDE)由从 T ᵢ 到 Y ᵢ 的箭头表示。资料来源:韦奇等人,2020 年。
在上图中,介体由 w 表示,为了估计直接因果效应,Z = f(W)应表示 w 中调解 t 和 y 的部分。这样,治疗的直接效应(𝛽)是通过给予每个单元( i )治疗而导致的结果的平均差异,如果 z 的分布就好像每个单元都接受了治疗( Veitch 等人,2020 )。在下图中,使用潜在结果框架描述了这种计算。
直接因果关系可以用 Z 来表示 W 中作为 T 和 y 中介的部分来计算。资料来源:韦奇等人,2020 年。
下一节介绍因果 Dag,并使用一个实际的例子来展示所有的文本变量设置,包括作为中介的文本。
因果有向无环图
在图的术语中,一个 DAG 有顶点和边,每条边从一个顶点指向另一个顶点而没有形成一个封闭的环,它必然是非循环的。没有反馈回路。考虑下图,其中从混杂因素(W)和处理(T)到结果(Y)的有向边用实线箭头表示,W 和 T 之间的双向虚线箭头表示它们是相关的。
变量之间的边意味着改变一个变量的值将改变另一个变量的分布。资料来源:费德等人,2021 。
在上图中,改变治疗值(T)可能会改变结果(Y)的分布,W 和 T 是相关的。在该示例 DAG 中,W 将文本表示为混杂因素,因此文本与治疗(T)相关,同时对结果(Y)也有影响。
性别是一种社会建构,然而,性别偏见在线下都是一个问题。使用来自费德等人(2021 )的一个例子,假设在社交媒体平台上,用户被允许用一个图标来表明他们喜欢的性别。在这种情况下,人们注意到那些认为自己是“女人”偶像的人在他们的帖子上得到的“喜欢”往往更少。因果问题是:被认为是女性会导致一个帖子的受欢迎程度下降吗?换句话说,被认为是女性(待遇)对一个帖子获得的赞数(结果)有什么因果关系。回答这个因果问题将有助于了解允许用户资料中的性别识别信息的政策是否有负面的因果影响。
然而,需要假设来识别反事实查询,以将查询表达为观察结果的函数。为这个场景创建一个因果 DAG 有助于我们理解我们编码的模型是否会满足做出因果推断所需的假设。这个反事实问题可以表达为:如果有可能在一个特定的帖子上操纵性别识别图标(T),那么这个帖子会获得多少赞(Y)?在这个例子中,相关性的产生有两个原因,首先是真正的因果效应,其次是由混杂因素(W)引起的虚假相关性。这由下面显示的因果 DAG 来描述。
在这个因果 DAG 中,T 代表性别识别图标,Y 代表帖子收到的赞数,W 代表帖子的文本。来源:费德等人,2021 年。
因此,帖子(W)的内容可用于解决与治疗(T)和结果(Y)相关的混淆问题。此外,除了解决混杂问题,还可以使用文本作为结果,其中处理是感知的性别(T ),而结果是帖子收到的文本回复的情感(Y)。也可以使用文本作为治疗,其中治疗是写作风格,我们感兴趣的是写作风格(T)对帖子收到的赞数(Y)的因果影响。
回到文本中的混杂因素设置,通过创建如上所示的因果 DAG,可以使用 Judea Pearl 的 d-separation 算法,根据后门标准读出所有必要的混杂因素(W)。发明 d-分离算法是为了计算 DAG 所包含的所有条件独立关系。后门标准可以解释为:给定 DAG 中一对有序的治疗和结果变量(T,Y ),如果满足以下两个标准,则一组变量(W)将满足相对于(T,Y)的后门标准。首先,W 中的节点/变量不能是 T 的后代,其次,W 必须阻塞 T 和 Y 之间包含指向 T 的边/箭头的每条路径。如前所述,如果混杂变量包含碰撞变量,则存在打开后门路径的风险,违反了可忽略性。幸运的是,只要没有不可观察的混杂因素(一个强有力的假设),将 post (W)的文本视为混杂因素将满足条件可忽略性。
最后,我们可以将文本视为一个中介设置,如下图所示,中介 W 是 T 影响 y 的中间方式。
一个帖子的正文(Wᵢ)调解了从 Tᵢ到 Yᵢ的影响,此外还有从 Tᵢ到 Yᵢ.的 NDE 资料来源:韦奇等人,2020 年。
在性别识别图标的例子中,自然的直接影响(NDE)将是被标记为由男性写的帖子与被标记为由女性写的帖子之间的点赞数(Y)的预期差异,其中预期是由男性写的帖子的分布决定的(Z= f(W))。在这里,Z 代表 W 中调解 T 和 Y 的部分。使用帖子的文本来解决 W 的调解允许我们估计从性别识别图标(T)到帖子收到的赞数(Y)的直接因果影响。
自然语言处理中因果推理的应用
有几个领域可以使用文本变量来估计因果关系,在一些领域内,新的研究领域已经出现。例如, Algaba 等人(2020) 使用计量经济学方法将定性情感数据转换为定量情感变量,然后在计量经济学分析中使用这些 NLP 导出的文本变量。他们将这一新兴领域称为 sentometrics,它是情绪和计量经济学的结合体。研究人员还充分利用了 Twitter 等社交媒体平台提供的大量开源文本数据。谭等人(2014) 研究了措辞对信息传播的影响,他们通过查看包含相同网址、由同一用户撰写、但使用不同措辞的推文来控制混淆。
在社会科学中,语言学在使用 NLP 进行因果推理的技术发展中起着重要作用。 Pryzant 等人(2018) 开发了一种去发现词汇归纳的方法,以允许可解释的社会科学研究。他们利用两种深度学习算法,其中第一种算法分离文本和混杂因素的解释能力,第二种算法强制混杂因素不变的文本编码。这两种算法创建了一个包含与叙事说服相关的单词的词典,与标准特征加权方法相比,该词典更具预测性,并且更少与混淆相关。Pryzant 等人在几个实际环境中测试他们的方法,首先,他们控制产品并评估对消费者投诉的反应,其次,他们控制受试者并根据课程描述评估注册情况,最后,他们控制销售者并根据产品描述评估销售情况。王&库洛塔(2019) 看词汇选择对受众感知的影响;例如,用户如何在他们的社交媒体档案中描述自己会对他们的社会经济地位产生影响。
我在本文前面多次引用的一篇论文( Veitch 等人,2020 )通过预测倾向得分和潜在结果以及掩蔽语言建模(MLM)目标,将 BERT 嵌入用于因果推断。除了因果 BERT,Veitch 等人还开发了一个因果摊销主题模型来产生因果嵌入,该模型改编自最初的 LDA 模型( Blei 等人,2003 )。这些调整后的文本嵌入在作为中介的文本和作为混杂设置的文本中使用。
有三个值得注意的应用文本作为因果推理的结果设置。斯里达尔&格图尔(2019) 看看语气对在线辩论的因果效应;他们使用社交媒体话语表明,辩论中的回复语气对随后回应中的语言和情绪变化有因果影响。吉尔&霍尔(2015) 看看司法性别或种族身份(待遇)对法律裁决语言(结果)的因果效应。 Koroleva 等人(2019) 测量临床试验结果的语义相似性,这项研究涉及在文本结果上测试 BERT、BioBERT 和 SciBERT。
最终想法
NLP 方法使得使用文本进行因果推理成为可能,并且在社会科学研究中已经有一些有趣的应用。要考虑的一个问题是,不可能建立基准来测试这种因果模型的准确性。由于根据定义,潜在的结果是不可观察的,假设反事实知识的基准数据集对 DGP 做出了强有力的假设,这必然是不可验证的( Feder 等人,2021 )。
此外,上面讨论的所有设置和应用都与局部平均治疗效果(晚期)有关;然而,由于异质治疗效果的可能性,估计条件平均治疗效果(CATE)可能是必要的。详细来说,不同的人对文本的阅读和解释是不同的,所以当文本是治疗手段时,同一文本可能由于解释的差异而对不同的人产生不同的(异质的)效果。根据 Feder 等人(2021 年)的说法,这是一个非常有趣的领域,需要进一步研究,需要新的反事实问题、假设和方法。
我欢迎反馈和任何问题,请随时通过 Linkedin 与我联系。
用综合控制方法理解因果推理并在 Python 中实现
用一个例子理解综合控制
来源: Unsplash
什么是合成控制?
综合控制被描述为“过去十年项目评估中最重要的发展”(Atheyand Imbens,2016)。综合控制法是一种统计方法,用于在比较案例研究中评估一种干预措施的效果。它包括构建用作对照的组的加权组合,并与治疗组进行比较。这种比较用于估计如果治疗组没有接受治疗会发生什么。它基于一个简单而强大的想法。我们不需要在未治疗组中找到任何单个单位,类似于治疗组。相反,我们可以将我们自己的系统作为多个未处理单元的组合,创建一个有效的合成控制系统。
与差异中的差异方法不同,该方法可以通过在干预前对对照组进行加权以更好地匹配治疗组,来说明混杂因素随时间变化的影响。综合控制方法的另一个优点是,它允许研究人员系统地选择对照组。它已被应用于政治学、卫生政策、犯罪学和经济学领域。
在本文中,我们将通过一个例子来重点了解合成控制的细节及其在 Python 中的实现。在我开始之前,我想承认这篇文章是基于为勇敢和真实的因果推断的内容。这本开源的书极大地帮助了我,让我对各种因果推理方法有了更深的理解。
我们的例子将考虑估计香烟税对其消费的影响的问题。给一点背景,这是一个在经济学界争论了很久的问题。争论的一方认为税收会增加雪茄的成本,从而降低需求。另一方认为,既然香烟会导致上瘾,那么香烟价格的变化不会改变他们的需求。从经济学的角度来说,我们可以说香烟的需求在价格上是没有弹性的,而增加税收只是以吸烟者为代价来增加政府收入的一种方式。为了解决问题,我们将查看一些关于此事的美国数据。
使用的数据
1988 年,加州通过了一项著名的烟草税和健康保护法案,即众所周知的99 号提案。它的主要作用是对加州境内的烟草销售征收每包 25%的州消费税,对其他商业烟草产品,如雪茄和嚼烟的零售征收大致相同的消费税。对烟草销售的额外限制包括禁止在青少年可以进入的公共场所出售香烟自动售货机,以及禁止单独出售一支香烟。该法案产生的收入被指定用于各种环境和医疗保健项目,以及反烟草广告。
为了评估其效果,我们可以从多个州收集多年的香烟销售数据。在我们的案例中,我们从 39 个州获得了 1970 年到 2000 年的数据。其他州也有类似的烟草控制项目,但没有被纳入分析。这是我们数据的样子。
数据集的快照
我们用state
作为州索引,其中加州是第三位。我们的协变量是卷烟零售价格和人均卷烟销量。我们感兴趣的结果变量是cigsale
。最后,我们有布尔辅助变量来表示加利福尼亚州和干预后时期。如果我们绘制一段时间内加州的香烟销售额和其他州的平均香烟销售额,这就是我们会得到的结果
在我们有数据的这段时间里,加州人购买的香烟明显少于全国平均水平。此外,80 年代以后,香烟消费似乎出现了下降趋势。与其他州相比,似乎在 99 号提案之后,加州的下降趋势加快了,但我们不能肯定这一点。这只是我们通过审查情节而得出的猜测。
为了回答 99 号提案是否对香烟消费有影响的问题,我们将使用干预前时期建立一个综合控制。我们将结合其他州来建立一个假的州,非常类似于加利福尼亚的趋势。然后,我们将看到这个合成控制在干预后的表现。
数学符号
假设我们有 J +1 个单位。不失一般性,假设单元 1 是受到干预影响的单元。在我们的案例中,加州是受干预或 99 号提案影响的案例。Units j =2、…, J +1 是未处理的单位或状态的集合,我们称之为“供体池”。还假设我们的数据跨越 T 个时间段,在干预之前有 T 0 个时间段。对于每个单位 j 和每个时间 t,我们观察结果 Y jt 。对于每个单位 j 和周期 t,定义 YNjt 为无干预的潜在结果,Y Ijt 为有干预的潜在结果。
那么,在时间 T,对于被处理单位 j =1,对于 t > T 0 的影响被定义为
由于单元 j =1 是被处理的单元, YIjt 是真实的,而 YNjt 不是真实的。挑战就变成了我们如何估计。注意每个时期的治疗效果是如何定义的,这意味着它可以随时间变化。不需要瞬间完成。它可以积累或消散。放个图,估计处理效果的问题归结为估计单元 j =1 如果没有处理结果会怎么样的问题。
为了估计 YNjt ,我们记住供体池中单位的组合可能比任何单独的未处理单位更接近处理单位的特征。因此,综合控制被定义为控制池中单元的加权平均值。给定权重 W =( w 2,…,wJ+1)YNjt的综合控制估计为
视觉解释
正如我们所知,线性回归也是将预测作为变量的加权平均值的一种方式。在这种情况下,回归可以表示为以下矩阵乘法
在综合控制案例中,我们没有很多单位,但我们有很多时间段。所以我们要做的是翻转输入矩阵。然后,单位成为“变量”,我们将结果表示为单位的加权平均值,就像下面的矩阵乘法一样。
如果我们每个时间段有多个特征,我们可以像这样堆积这些特征。重要的是使回归试图通过使用其他单元来“预测”被处理的单元 1。这样,我们可以以某种最佳方式选择权重,以达到我们想要的接近度。我们甚至可以对特征进行不同的缩放,赋予它们不同的重要性。
实施
为了评估综合控制的治疗效果,我们将尝试建立一个“假单位”,类似于干预期之前的治疗单位。然后,我们将看到这个“假单位”在干预后的表现。合成对照和它模拟的单元之间的区别是治疗效果。
为了进行线性回归,我们将使用 OLS 计算重量。我们将最小化供体库中单位的加权平均值和干预前期间的治疗单位之间的平方距离。
为此,我们首先需要将单位(在我们的例子中是州)转换成列,将时间转换成行。因为我们有两个特征,cigsale
和retprice
,我们将它们堆叠在一起,就像上图中那样。我们将建立一个合成对照,看起来很像干预前时期的加州,并观察它在干预后时期的表现。出于这个原因,我们只选择干预前的时期是很重要的。在这里,这些特征看起来是相似的,所以我们没有对它们进行标准化。如果要素的比例不同,一个是千位,另一个是小数,那么在最小化差异时,较大的要素将是最重要的。为了避免这种情况,首先对它们进行缩放非常重要。
现在,我们可以将 Y 变量定义为加利福尼亚州,将 X 变量定义为其他州。
然后,我们运行一个套索回归。我们使用 Lasso 或 L1 回归,因为我们不希望我们的状态数据过度拟合。岭回归也可用于此。回归将返回使处理过的单位和供体库中的单位之间的平方差最小化的一组权重。
这些重量向我们展示了如何建立合成控制。我们将状态 1 的结果乘以 0.566,状态 3 的结果乘以 0.317,状态 4 的结果乘以 0.158,依此类推。我们可以通过池中状态矩阵和权重之间的点积来实现这一点。
现在我们有了合成控制,我们可以用加利福尼亚州的结果变量来绘制它。
有了合成对照,我们可以用治疗结果和合成对照结果之间的差距来估计治疗效果。
到 2000 年,看起来 99 号提案已经减少了 25 包香烟的销售。现在我们将弄清楚这是否有统计学意义。
推论
这里,我们将使用费雪精确检验的思想。它的直觉很简单。我们彻底地改变了治疗和控制。因为我们只有一个处理过的单元,这意味着,对于每个单元,我们假设它是处理过的,而其他的是对照。
最后,我们将对每个状态有一个综合的控制和效果估计。因此,它所做的是假装治疗实际上发生在另一个州,而不是加州,看看这种治疗没有发生的估计效果是什么。然后,我们看看加利福尼亚的治疗与其他假治疗相比是否足够大。这个想法是,对于那些实际上没有被治疗的状态,一旦我们假装它们被治疗了,我们将无法发现任何显著的治疗效果。
该函数返回一个数据框,其中一列表示状态,一列表示年份,一列表示结果cigsale
和该状态的综合结果。
这是我们把它应用到第一个状态的结果。
通过对所有状态的综合控制,我们可以估计所有状态的综合状态和真实状态之间的差距。对于加州来说,这就是治疗效果。对于其他的状态,这就像安慰剂效应,我们在治疗实际上没有发生的情况下估计合成对照治疗的效果。如果我们把所有的安慰剂效应和加州治疗效应一起画出来,我们会得到下图
这个图的两个方面跃然眼前。首先,我们可以看到干预后的方差高于干预前的方差。这是预期的,因为合成控制被设计成最小化干预前时期的差异。另一个有趣的方面是,即使在干预前时期,我们也不能很好地适应某些单位。这也是意料之中的。
因为这些单元非常不适合,所以从分析中移除它们是个好主意。客观地做到这一点的一个方法是为干预前错误设定一个阈值
并移除那些具有高误差的单元。如果我们继续这样做,并绘制相同的图形,这就是我们得到的结果。
去除噪声,我们可以看到在加利福尼亚州的影响有多极端。这张图片告诉我们,如果我们假设这种疗法发生在其他任何一个州,我们几乎永远也不会得到像加州这样极端的效果。
2000 年加州的治疗效果是-31.419,这意味着干预措施减少了近 31 包香烟的消费。
结论
使用来自其他州的前期数据,我们建立了一个 lasso 回归模型,该模型为每个控制州分配固定的权重,并得出一个加权平均值,该平均值非常类似于 99 号提案推出前加州的吸烟活动。
在这之后,我们使用由此产生的套索回归模型来合成加利福尼亚在后期的样子(没有治疗)。实际香烟销售和综合结果之间的差异就是我们的治疗效果。
我们也看到了如何使用费希尔的精确测试来对合成控制进行推断。我们假设未处理的单元实际上已被处理并计算了它们的效果。这些是安慰剂效应:即使不治疗,我们也会观察到的效应。我们用这些效果来观察和检查治疗对加州香烟销售的影响。
参考文献
计量经济学的因果机器学习:因果森林
思想和理论
计量经济学的因果机器学习介绍,包括使用 EconML 估计带有因果森林的美食的 Python 教程
Lukasz Szmigiel 在 Unsplash 上拍摄的照片
公平与平等不是同一个原则。在社会背景下,它们都与公平有关;平等意味着不管需求如何,对每个人都一视同仁,而公平意味着根据人们的需求区别对待。考虑疫苗接种,如果我们把公共卫生政策建立在平等的基础上,也许会有一个抽签系统来决定谁先接种疫苗,给每个人一个平等的机会。然而,在实践中,疫苗接种是基于公平的优先考虑,那些风险最大的人、前线医护人员和老年人理所当然地排在第一位。
假设我们理解了治疗和结果之间的因果关系,那么问题是,我们如何识别经历最大平均因果效应的亚组,无论是积极的还是消极的。受我在世界银行的数据科学咨询工作的启发,我最近分享了一个 Python 教程,其中我讨论了因果关系作为计量经济学在数据科学中的应用。通过计算异质性治疗效果和确定受政策影响最大的亚组,因果关系可以帮助公平的政策分配。然而,计算治疗效果的异质性可能很复杂,也称为条件平均治疗效果(CATE) 。方便的是,计量经济学提供了几种估计 CATE 的方法。
估算 CAT-E!图片作者。
然而,不幸的是,传统的计量经济学方法不适合当前的大数据现实,其中协变量和交互项的数量可能超过观察值。这一现实导致了经济学因果机器学习的发展;这是一个相对较新的领域,早在 2014 年就有贡献,最激动人心的发展出现在 2018 年前后。我将在一系列关于因果机器学习的以计量经济学为重点的文章中介绍其中的一些发展,所有这些文章都将包括这些技术的 Python 实现。
在本文中,我将重点介绍一种特定的技术, 因果森林 ,这是一种由经济学家苏珊·艾希(Susan Athey)和斯特凡·韦杰(Stefan Wager)开发的因果机器学习方法。首先,我简要描述一下本教程中使用的经济学数据集,该数据集取自在摩洛哥进行的一项关于小额信贷影响的随机实验( Crépon et al .,2015 )。接下来,我讨论因果推理和潜在结果框架,这为讨论条件平均治疗效果(CATE)奠定了基础。随后是因果森林的介绍,概述了理论,实际上侧重于建立高层次的直觉。最后,我使用微软研究院的 EconML Python 库在摩洛哥案例研究数据上实现了一个因果森林来评估 CATE。完整的 Python 演练包括使用 SHAP 值进行可解释性测试的代码,并演示了如何绘制置信区间。
案例研究:摩洛哥的小额信贷
小额信贷和小额融资的研究可以追溯到诺贝尔和平奖得主穆罕默德·尤努斯,他在 20 世纪 70 年代发现给贫穷企业家的小额贷款可以极大地改善穷人的生活。尤努斯认为,信用是一项基本人权;小额信贷增加商业投资,导致商业活动和家庭收入增加,从而导致家庭储蓄可投资于教育等减贫努力。
小额信贷理论。图片来自雅各布(2021 )。
本教程使用了 2006 年在摩洛哥农村进行的随机实验的小额信贷计划数据集( Crépon 等人,2015 )。为了了解获得小额信贷的影响,某些村庄(治疗组)获得了小额信贷,并相对于对照组测量了家庭一级的贷款额,作为小额信贷需求的指标。每个家庭都有可观察到的特征,有可能以这些协变量为条件来发现小额信贷因果效应的异质性。
在本月早些时候通过社会科学研究网络(SSRN)发布的预印本中,Daniel Jacob 调查了可用于估计 CATE 的机器学习方法,其中使用了摩洛哥小额信贷数据集作为例子。Jacob 解释说,目标是找到基于协变量的亚组,在那里治疗效果会不同;然而,我们不知道应该关注哪些子群,并且有许多协变量,因此需要机器学习来估计 CATE。下一节涵盖了因果推断和潜在结果框架,以解释 CATE 是如何计算的。
因果推断和潜在结果
因果效应被定义为治疗中单位水平的干预变化导致结果变量(Y)改变的幅度,换句话说,就是真实世界和反事实世界的结果之间的差异。从优秀的 EconML 文档中截取的下图直观地展示了这种关系。
因果效应被衡量为现实世界和反现实世界之间的结果差异。来源。
为了表明治疗引起结果,治疗的改变应该引起结果(Y)的改变,而所有其他协变量保持不变;这种类型的治疗变化被称为干预。以下随机对照试验(RCT)的因果图显示了如何计算平均治疗效果(ATE)作为治疗对结果的影响,以及 CATE 是治疗对结果的影响,以协变量为条件。
随机对照试验(RCT)中平均治疗效果(ATE)和条件平均治疗效果(CATE)的因果图。图片来自雅各布(2021 )。
如果治疗效果是异质的,有可能以协变量为条件来计算 CATE。这有助于识别治疗为阳性的个体,以及哪些个体将从治疗中受益最大;本质上是对最优政策分配的估计( Athey & Imbens,2019 )。然而,我们遇到了“因果推理的基本问题”(Holland,1986 ),其中 CATE 不能直接观察到一个单元,使得不可能观察到单元水平的因果效应。也就是说,我们永远无法直接观察到一个观察单位的反事实状态。
然而,对于每个观察,我们可以从两个条件均值函数预测两个结果,一个对应于治疗,另一个对应于对照组,潜在结果之间的差异等于 CATE。没有必要知道条件均值函数的基本结构形式,因为我们只关心得到条件均值的良好预测。这些条件均值函数的参数并不直接相关,因此这些函数可被称为干扰函数。
在之前的一个教程中,我简要讨论了与微软研究院的道伊 Python 库相关的潜在成果框架(伊本斯&鲁宾,2015 )。下图摘自 Jacob (2021) ,详细描述了 Rubin ( 1980 )概述的这一框架(也称为 Rubin 因果模型)的四个基本假设,这使我们能够推导出 CATE。
潜在结果框架的四个假设。图片来自雅各布(2021) 。
对于每个观察,有两个潜在的结果,Y₀和 Y₁,并且仅观察到一个结果。二进制治疗指标为 D > { 0;1}观察到的协变量是 X > ℝ ᵖ ,其中 p 是协变量的个数,与协变量空间的维数有关。第一个和第四个假设,协变量的条件独立性和外生性,简单地陈述了治疗分配独立于两个潜在的结果,并且协变量不受治疗的影响。第二个假设,稳定单位治疗值假设(SUTVA) ,说明在治疗观察和对照观察之间没有干扰或隐藏的变化。第三个假设,重叠假设,是没有亚组完全位于治疗组或对照组内。因此,治疗概率必须远离零和一,从而产生倾向得分(上图中的等式(1))。
按照上述符号,治疗组或对照组的结果的条件预期,𝜇𝒹( x ,定义为:
对结果的有条件的期望。图片来自雅各布(2021) 。
美食或𝜏( x 正式定义为:
CATE 或𝜏( x 是条件均值的差值:𝜇₁(x—𝜇₀(x。图片来自雅各布(2021) 。
𝜏( x 是潜在结果的差异,它等于条件期望 x 的差异:𝜇₁( x ) — 𝜇₀( x 。更明确地说,来自 Jacob (2021) 的以下等式显示了两个条件均值函数如何能够表示两个潜在的结果,因此,取结果的差导致 CATE。
凯特或𝜏(是潜在结果的差异。图片来自雅各布(2021) 。
因果森林
因果森林是一种来自广义随机森林的方法( Athey et al .,2019 )。类似于随机森林( Breiman,2001 ),因果森林试图在协变量空间中寻找邻域,也称为递归划分。虽然随机森林是从决策树构建的,但是因果森林是从因果树构建的,其中因果树学习治疗效果异质性的低维表示。重要的是,分割标准优化了寻找与治疗效果异质性相关的分割。假设 CATE (𝜏( x )在邻域 N(x) 上是恒定的,那么使用残差对残差的方法使得有可能求解 N(x) 上的部分线性模型来估计平均治疗效果( Jacob,2021 )。目标是找到处理效果恒定但不同于其他叶子的叶子。交叉验证用于修剪因果树,但性能评估的标准是基于治疗效果的异质性。
因果森林只是大量因果树的平均值,其中树因子采样而不同( Athey & Imbens,2019 )。为了从因果树创建因果森林,有必要估计加权函数,并使用得到的权重来求解局部广义矩量法(GMM) 模型,以估计 CATE。为了处理过度拟合,因果森林使用诚实条件,由此树是诚实的,如果对于每个训练样本( i )它仅使用响应(Y ᵢ )来估计叶内处理效果或决定在哪里放置分裂,而不是两者都使用( Jacob,2021 )。样本分割用于创建真实树,其中一半数据用于估计树结构,即分割子样本,另一半数据用于估计每片叶子的处理效果,即估计子样本。处理效果的预测是末端叶中估计子样本的处理和对照观察之间的平均结果的差异。
使用诚实树允许用于估计估计量方差的估计器中的渐近正态性,从而允许估计参数的可靠置信区间(赌&阿塞 2017 )。这一点很重要,因为为了获得准确的估计,偏差应该渐近地消失,从而使置信区间最小化。一个必要的步骤,由于不可能实际观察治疗效果,因此,传统的均方误差不能用于评估性能和确定置信区间。由于偏差渐近消失,因果森林估计是一致的,并且渐近高斯,这意味着与渐近方差的估计器(诚实树)一起,确保了有效的置信区间。在本教程中,我利用微软研究院的 EconML Python 库来实现因果森林,文档概述了因果森林的双机学习实现背后的正式方法。
建立因果森林
首先,本教程的摩洛哥小额信贷数据集以 Stata 文件(.dta)在 Jacob 共享的 R Quantlet 中。首先,我使用 DoWhy 创建因果图并明确假设,随后,使用 EconML 进行其余的因果分析。
为了可视化变量之间的关系,下面的代码片段显示了如何使用 DoWhy 快速构建因果模型。摩洛哥小额信贷数据集被载入数据框架,并定义了治疗变量(“治疗”)、结果变量(“loansamt_total”)和协变量的标签。
在上面的代码片段中,用 DoWhy 构建了一个因果模型,它创建了一个因果图,如下图所示。
摩洛哥小额信贷实验的因果图,显示了结果和治疗变量以及选择的协变量。图片作者。
接下来,我们删除所选变量中缺少值的行,并将数据集分为训练集和测试集。使用训练分割,设置结果( Y )、处理( T )和协变量( X ),并将 W 设置为“无”。测试集中的协变量被分配给 X_test 。
从 EconML 的双机学习模块(dml)导入 CausalForestDML ,从 Scikit-Learn 导入一个交叉验证多任务套索、 多任务套索 。 LASSO 代表“最小绝对收缩和选择算子”,它是一种回归方法,包括正则化和变量选择,增加了所得模型的预测精度和可解释性。
下一步是在拟合模型之前设置因果森林的参数。在下面的代码片段中,对于异质处理效果,分裂准则设置为“het”,树的数量设置为“10,000”,对于 10 个 K 倍交叉验证,交叉验证(cv)设置为“10”。此外,model_y 对应于用于将结果(反应)拟合到协变量(特征)的估计量,model_t 对应于用于将治疗拟合到协变量(特征)的估计量。在两种情况下,multitaskslassocv都被用作估计器,然而,也可以使用其他估计器。
在上面代码片段的最后两行,我们用小额信贷数据拟合因果森林模型,并用测试集估计 CATE。在 Jacob 的 CATE 调查中,运行了 20 组,平均 CATE 报告为 1300 左右。这里建立的因果森林将返回 1200 到 1400 之间的 CATE 值,这个范围与 Jacob 的平均 CATE 结果一致。
可解释性和评估
像因果森林这样的基于树和森林的估计器的一个优势是可解释性测试的可用性,例如沙普利(SHAP)值。经济学家劳埃德·沙普利(Lloyd Shapley)因提出了“沙普利加法解释值”的概念而获得了诺贝尔经济学奖,这一概念源于合作博弈论。对于这种可解释性测量的介绍,我建议这篇中期文章。
下面的代码片段显示了如何重置因果森林的参数,并随后再次拟合因果森林模型,以计算 SHAP 值。在改装模型之前,有必要将参数重置为默认值,因为使用上述用于估计 CATE 的参数,运行时间将接近两个小时。
下图显示了 SHAP 汇总图的结果。在 y 轴上绘制了要素重要性,其中值用蓝色到红色的颜色条表示,蓝色表示低要素重要性,红色表示高要素重要性。沿着 x 轴,SHAP 值以负到正的刻度显示。
摩洛哥小额信贷数据集的 SHAP 值汇总图。图片作者。
最重要的特征(协变量)是户主的年龄,其次是家庭中 6 至 16 岁儿童的数量。当平均因果效应为负时,家庭年龄似乎很重要。这有助于识别亚组,例如,特征重要性表明应该分别评估年长和年轻的家庭来估计 CATE。这与 Jacob 的美食调查结果相符,如下图所示。
摩洛哥小额信贷数据中年轻和年长家庭的食物差异。图片来自雅各布(2021) 。
因果森林的主要卖点是置信区间的可靠性,原因之前在因果森林的理论解释中讨论过。本质上,估计量的渐近正态性应该导致小的置信区间。使用数据集,下面的代码片段根据因果森林模型为治疗效果和置信区间的下限和上限生成数组。
如上所述,下一步是将数组转换为数据帧,合并这些数据帧,并根据治疗效果进行排序。有必要计算滚动平均值,因为平滑有助于创建一个更清晰、更有帮助的图。下面的代码片段显示了如何用 matplotlib 绘制治疗效果和置信区间。
下图显示了由因果森林模型确定的摩洛哥小额信贷测试集的处理效果和置信区间图。
因果森林模型的 CATE 和置信区间图,符合摩洛哥小额信贷测试数据集。图片作者。
最后的想法
因果机器学习有可能对计量经济学的应用产生重大影响,无论是在传统还是新的环境中。在经济学中,因果问题的范围受到数据可用性的极大限制,无论是来自昂贵的随机对照试验还是观察性研究。技术的持续快速发展打破了之前对数据可能性的理解。在过去十年中,“大数据”的可用性不断增加,影响了机器学习和数据科学的方向,并因此在自然科学和社会科学等其他学科中产生了连锁反应。
与这一趋势保持一致,理论计量经济学迅速推进了机器学习的因果关系。一个突出的例子是因果森林,这是艾希和伊本在 2016 年探索的一个想法,然后由艾希和韦杰在 2019 年发表在统计年鉴上的论文“广义随机森林中正式定义。最近,Athey 和 Wager 一直在用观察数据调查政策学习,今年早些时候在计量经济学上发表了一篇论文。虽然这些理论进步利用了大数据和机器学习,但不幸的是,应用经济学和计量经济学尚未采用这些最先进的方法。目前,传统的计量经济学被用来问传统的经济问题,而因果机器学习的潜力被忽视了。
就我个人而言,我对因果机器学习能够实现的可能性感到兴奋;经济学家现在有方法研究的新问题。我的希望是,这一差距可以弥合;我乐观地认为,理论计量经济学中的因果机器学习进步可以应用于社会研究。在我的下一篇文章中,我将讨论对工具变量使用深度学习,并探索因果关系的哲学史。
我欢迎反馈和问题,所以请随时在 Linkedin 上与我联系。
数据科学的因果 ML:使用工具变量的深度学习
实践教程
结合数据科学和计量经济学,介绍 DeepIV 框架,包括完整的 Python 代码教程。
巴勒斯坦西岸地图,用红色显示外围的小街区,用蓝色显示更大的中心街区。图片作者。
历史上,经济学家和哲学家都专注于从经验证据中提取对因果关系的理解。经济学家和哲学家大卫·休谟以探索因果关系而闻名,这既是一个认识论难题,也是应用经济学中的一个实际问题。在一篇题为“经济学和计量经济学中的因果关系”的文章中,经济学教授凯文·d·胡佛指出,“经济学家继承了休谟的观点,即实用经济学本质上是一门因果科学。”(胡佛出版社,2006 年)。作为一个主要的经验主义者,休谟对经济学中因果关系的发展产生了重大影响;他的怀疑论在“因果关系的认识论地位和它们在实际政策中的作用”之间制造了一种紧张。(胡佛,2006 年)。1739 年,当休谟在“人性论 ”中给因果关系下了著名的定义时,我怀疑他是否能够预见到技术进化的指数级进步所带来的根本变化。他也无法想象我们今天的现实,深度学习被用来确定因果关系。
今天,“因果科学”正在被机器学习所驱动;然而,它仍然是一个新兴领域,发展主要集中在理论上。在我上一篇关于因果 ML 的文章中,我提到了我的乐观态度,即理论计量经济学的进步可以应用于社会研究。在此之前,在一篇更早的因果关系文章中,我展示了一个计量经济学如何用于数据科学的案例研究,依赖于阿列克谢·亚伯拉罕斯题为“艰难的旅行”(亚伯拉罕斯,2021 )的论文。在这篇文章中,我回到了亚伯拉罕斯关于以色列检查站对巴勒斯坦劳动力结果的因果影响的研究,但我利用深度学习来解决工具变量。幸运的是,亚伯拉罕的研究提供了一个机会,将计量经济学中最新的 ML 进展应用于以社会为中心的研究。
为了支持实用性,我围绕一个完整的 Python 代码教程来构建这篇文章,该教程实现了由微软研究院的 EconML 库支持的 DeepIV 框架( Hartford 等人,2017 )。首先,我简要回顾了“艰难的旅行”,重点强调了数据科学研究的要点,并讨论了最初方法的局限性。接下来,我建议采用另一种方法来扩展亚伯拉罕的数据集,以测试不同的治疗效果。我通过对混杂因素、工具变量的讨论,以及对确定条件平均治疗效果(CATE)的重要性的解释来支持这一选择。下面是对深度学习的简短介绍,其中我将 ML 的这个子集放在计量经济学中,以解释对深度学习结果进行基准测试的必要性。接下来,我提供了一个完整的 DeepIV 框架的演练,它直接导致了该技术在 Abrahams 数据集上的 Python 实现。最后,我用来自浅层因果 ML 技术的 CATE 估计来验证深度学习结果,即。用仪表化的因果森林对 DeepIV 估计进行基准测试。
艰难行进
我在之前的一篇文章中详细介绍了“艰苦的旅行”。这一影响评估的主要目的是调查以色列军队在西岸内部道路网沿线设置的检查站和路障对巴勒斯坦失业率的因果影响。
大约 2007 年 12 月巴勒斯坦西岸的卫星图像,摘自《艰难的旅行:政治冲突阴影下的失业和道路基础设施》( 亚伯拉罕斯,2021 )。
上图中的障碍物是出于安全原因而设置的,但实际上干扰了巴勒斯坦人的通勤出行。通过阻止通勤者到达商业中心和边境口岸,就业损失增加了;然而,这些损失被通勤者中位于更中心位置的巴勒斯坦竞争者的就业增长大大抵消了。也就是说,边际经济干预,如改善道路基础设施,有助于改变失业的空间分布,但没有降低总体失业水平。
在“艰难的旅行”中,亚伯拉罕斯使用了一种工具化的 2SLS(两阶段最小二乘)一阶差分策略,其中工具是以色列定居点与巴勒斯坦通勤路线的纵向接近度。这种方法是有效的,因为这些仪器隔离了部署在定居点附近的障碍子集,而不是直接回归检查站整体存在的就业百分比变化。这项研究的结果如下图所示,外围街区的失业人数与中心街区的就业人数形成对比。
显示“艰难行进”主要结果的空间直方图。外围农村地区的阻碍效应更大,商业中心的保护效应更大。 来源:亚伯拉罕,2021
混杂性和工具变量
在我最喜欢的计量经济学书籍《大部分无害的计量经济学》中,作者指出,“IV 方法最重要的当代用途是解决缺失或未知控制变量的问题”(Angrist & Pischke,2009)。当使用观察数据时,存在潜在的不可观察变量将产生混淆效应的风险,使得不可能理清变量之间的关系,从而可以确定因果关系。这要求我们对数据生成过程的因果结构做出明确的假设(DGP)。通常,这相当于假设治疗是有条件地独立于任何潜在变量给定的观察协变量。即便如此,这样的假设也不总是可能的;因此,需要仅影响治疗分配而不影响结果变量的工具变量。本质上,当我们不能在无基础假设下运作时,工具变量是必要的,这一关键点是亚伯拉罕评估设计的核心。
亚伯拉罕斯在 2012 年至 2014 年期间进行了“艰难旅行”的研究,在此期间,仪器化的 2SLS 回归是确定因果关系的最佳选择。然而,其局限性在于,这建立了一个假设同质治疗效果的线性模型。因此,亚伯拉罕的研究中计算的因果效应可被称为局部平均治疗效应(晚期),由于同质性假设,其统计功效较小。重要的是,假设一个恒定的因果关系排除了平均治疗效果取决于协变量的可能性。此外,线性模型可能不是 DGP 结构形式的最佳代表,因此需要非参数 IV 方法。为了处理线性和同质性这两个限制假设,应该使用非参数方法来估计条件平均治疗效果(CATE)。
为什么要评估美食?
在我上一篇因果 ML 文章中,我提供了一个条件平均待遇效应(CATE)的演练,并提出 CATE 的重要性与公平的政策分配有关。这是绝对正确的,然而,还有其他原因来看待治疗效果的异质性。此外,我上一篇文章中的案例研究数据来自一项随机对照试验(RCT),该试验类似于 A/B 检验,允许不受混杂因素干扰的因果推断。然而,在《艰难旅行》中,亚伯拉罕斯使用了观察数据,如下图所示,估计 CATE 因协变量的潜在混杂效应而变得复杂。
观察性研究设置中条件平均治疗效果(CATE)的因果图。图片来自 雅各布(2021 )。
除了公平性,对于利用观察数据的研究,CATE 对于评估研究设计的有效性也很重要。根据 Angrist & Pischke (2009)的观点,治疗效果的异质性很重要,因为研究设计的两种有效性之间存在差异。他们解释说,内部有效性是一个设计是否揭示了因果关系,一个好的 IV 研究,像“艰苦的旅行”有很强的内部有效性。另一方面,外部效度是一项研究结果在不同背景下的预测价值,在 ML 术语中,这指的是模型的概括能力。Angrist & Pischke 指出,“一个具有异质治疗效果的计量经济学框架帮助我们评估 IV 估计的内部和外部有效性。”(安格里斯特和皮施克,2009 年)。
关于外部有效性,在“艰难旅行”的框架中,亚伯拉罕斯认为,如果没有政治改革,经济干预将不能有效地改善劳动成果。从上下文来看,对于一个经济学家来说,这是一个大胆而非传统的主张,但却得到了大量政治经济学文献的支持。因此,估计 CATE 将有助于评估亚伯拉罕影响评估的外部有效性。换句话说,理解治疗效果的异质性将有助于确定研究结果是否可以扩展到支持政治改革必要性的更广泛主张。虽然 CATE 的估计将使我们能够确定遭受最大负面因果影响的具体巴勒斯坦社区,但可以说,公平的政策分配不如评估评价的外部有效性重要。
除了外部有效性,CATE 还可用于识别平均治疗效果不同的亚组。根据亚伯拉罕的结果,我怀疑较小的外围社区和较大的中心社区之间的 CATE 会有所不同。为了验证这一假设,我使用开源桌面 GIS 软件 QGIS 和亚伯拉罕共享的 geojson 数据来按照人口规模区分巴勒斯坦居民区。
巴勒斯坦西岸地图,显示人口总数低于中位数的外围小居民区(红色)和人口总数高于中位数的较大居民区(蓝色)。图片作者。
如上图所示,较小的外围居民区(红色)位于道路网络结构的终端节点,而较大的居民区(蓝色)位于道路基础设施的更中心位置。巴勒斯坦居民区按所有居民区人口总数的中位数划分,人口总数为 1885 人。这清楚地将亚伯拉罕的数据集一分为二,相等的样本大小允许在亚组的深度估计之间进行比较。
计量经济学深度学习
确定了估计 CATE 的必要性后,下一步是选择一种非参数 IV 方法来模拟数据生成过程(DGP)。深度学习已经被证明是一种学习复杂特征空间的潜在表示的强大方法,这使得它非常适合非参数化建模。尽管如此,在经济学中使用深度学习是一个有争议的话题,主要是因为深度神经网络的“黑箱”性质。可以说,计量经济学要求更高程度的严格性,因此,在深度神经网络背后的抽象理解中相对缺乏数学形式是这种类型的 ML 的一个减损点。此外,经济学家苏珊·艾希(Susan Athey)和圭多·w·伊本斯(Guido W. Imbens)提到,对于监督学习问题,深度学习和神经网络相对于回归树和随机森林的优势并没有正式的证明(艾希&伊本斯,2019 )。
深度学习中的“深度”只是指神经网络的多层,而浅网络只有一层。对 ML 子集的“深入”讨论超出了本文的范围;但是,有几个很好的资源可以涵盖这个主题。作为介绍,我强烈推荐《用 Python 进行深度学习》,作者是弗朗索瓦·乔莱(Franç ois Chollet),他是流行的深度学习 APIKeras的创造者。我也推荐杰森·布朗利在他的博客“机器学习掌握”上发表的这篇有用的博文。此外,还有大量关于 Medium 的文章介绍这个广泛主题的各种应用,包括自然语言处理、计算机视觉等。在接下来的代码教程中,我使用初学者友好的 Keras,并在必要的地方提供简单的解释。
关于经济学中对深度学习的健康怀疑,我认为尽管缺乏可解释性是一个问题,但它不应该低估这一技术的使用。细心的数据科学家知道,对于特定的任务,将深度学习模型与浅层、可解释的模型进行基准测试是很重要的;更易解释的模型很有可能表现得更好。幸运的是,因果森林可以作为一种可比较的非参数 IV 方法,对深度学习 IV 估计的结果进行基准测试。因此,在建议的深度学习实现之后,我将遍历所需的代码,以根据更易解释的因果森林对结果进行基准测试。下一节介绍 DeepIV 框架,它使得使用带有工具变量的深度学习来估计 CATE 成为可能。
DeepIV 框架
在“DeepIV:反事实预测的灵活方法”中,Hartford 等人( 2017 )增强了深度学习方法,以表征治疗和结果变量之间的因果关系。该框架使用工具变量,这些变量作为随机治疗的来源,有条件地独立于结果。理解这种因果关系是反事实预测的必要条件,DeepIV 框架通过两个可以用深度神经网络解决的预测任务来实现这一点。类似于 2SLS 的两个阶段,第一阶段是用于治疗预测的网络,第二阶段网络预测结果。
正如我在我的之前的因果 ML 文章中解释的,反事实预测不能以直接的方式做出;然而,由于工具变量和随机化一样好,它们允许“对不可观察的选择”。Hartford 等人将这种设置称为“IV 规格下的 DGP 结构”,这种因果关系可以通过下面的因果图来描述。
IV 规格下的 DGP 的因果图。 资料来源:哈特福德等人,2017
在上图中, x 代表协变量或可观察特征, p 代表治疗(政策)变量, z 代表工具, y 是结果, e 代表不可观察的潜在影响。在该设置中,误差项 e 以叠加的方式影响 y 。
使用 DeepIV 框架,IV 分析发生在两个监督阶段,具体而言,第一阶段对给定仪器 z 和协变量x的治疗变量 p 的条件分布进行建模。因此,在第二阶段,使用目标损失函数,该函数涉及对第一阶段条件治疗分布的积分,这是一种仅需要采用现成算法的解决方案。在这两个阶段中,通过随机梯度下降 (SGD)训练深度神经网络,Hartford 等人提出了样本外因果验证程序,以选择验证集上模型的超参数。
解决反事实预测的挑战需要理解上述变量之间的关系: y,p,x,z 和 e 。如下式所示, y 的结构形式由 p,x 和 e. 决定
结果变量 y 的结构形式。 资料来源:哈特福德等人,2017
未知函数 g 是 x 和 p 的潜在非线性连续函数,潜在效应 e (即误差)影响 y 加上无条件平均𝔼 e 。这给了我们结构方程 h 作为反事实预测函数。如下图所示,潜在效应 e 增加为𝔼[ e ⎟ x ,这样它只受 x 的制约,并且在处理 p 变化时保持不变。
反事实预测功能。 资料来源:哈特福德等人,2017
按照 2SLS 过程,为了求解上面的方程, h ( p,x ),我们需要估计一个无偏的 h_hat ( p,x ),这在仪器 z 存在的情况下是可能的。无偏估计是可能的,因为 z 满足三个条件,相关性、排除性和未发现性。相关性意味着条件分布 *F,*一个处理密度函数,随 z 变化。排除意味着结果 y 只取决于治疗 p 和协变量 x 。取函数 g 两边的条件期望,以[ x ⎟ z 为条件,给我们以下等式:
以协变量、和工具、*、*、、**为条件的结果变量 y、结构形式的条件期望资料来源:Hartford 等人,2017 、
上式中, dF ( p ⎟ x,z )是第一阶段需要估计的条件治疗分布。通常,为了估计 h_hat ,治疗密度函数 F,必须替换为 F_hat。与 2sl 相比,DeepIV 框架的不同之处在于避免了对上述方程中的积分进行解析求解。相反,第一级估计治疗密度函数f _ hat(p⎟x,z ),建模为正态分布(高斯分布)的混合,其中混合密度模型的参数是第一级网络的输出。正如哈特福德等人解释的那样,有了足够多的混合成分,网络可以“逼近任意平滑密度”(哈特福德等人,2017 )。使用 2SLS,为 F_hat 和反事实预测函数 h 建立线性模型。然而,如前所述,这种方法需要线性和同质性两个强有力的假设。
给定第一级的输出,第二级优化如下所示的损失函数。
损失函数用于优化结构方程 h_hat 的估计。 资料来源:哈特福德等人,2017
损失函数最小化𝓵2 损失以优化 *h_hat 的估计。*在这两个阶段中,选择超参数,以使用保留验证集最小化各自的损失函数。这意味着性能的改善将与真实结构损失的改善相关,而真实结构损失无法直接评估。对于 DeepIV 框架,因果验证是必要的,因为交叉验证(超参数选择的常用方法)在没有反事实结果样本时无法工作。本质上,使用保留的验证数据允许样本外的因果验证。Hartford 等人注意到,这种方法提供了“相对”性能指导,因为它提高了反事实预测问题的性能,而没有告诉我们 h 的估计值与 h ( p,x )的真实值相差多远。以下部分概述了实现 DeepIV 框架的两个阶段所需的代码。
DeepIV 框架的 Python 实现
由于它会更快,我建议使用 Google Colab 来利用免费的 GPU 实例来训练深度神经网络。此外,Colab 使安装带有适当包依赖关系的完整版 EconML 变得更加容易,而不会出现 Tensorflow 后端的问题。“艰难旅行”数据在这里作为 Stata可用。dta”文件(亚伯拉罕,2021 )。第一步是在 Colab 中运行下面一行代码来安装 EconML 的完整版本。
!pip install econml[all]
下面两行允许我们将 Abrahams 的数据集加载到 Colab 笔记本中。
from google.colab import files
files.upload()
下一步是导入所需的包,加载数据,并做一些预处理。在下面的代码片段中,我们重命名必要的列,规范化变量,并用“0”替换 NAN 值。
在《艰难的旅行》中,亚伯拉罕在主回归中使用了 71 个协变量。接下来,我们加载 71 个控件作为虚拟变量。
由于我们正在测试子群经历不同 CATEs 的假设,在下面的代码片段中,我们使用人口总数的中值(中值= 1885)将数据集分成两半。接下来,为两个亚组定义单独的变量(结果、治疗、协变量、仪器)集,并转换为 numpy 数组以适应神经网络。
接下来,我们构建深度神经模型,用作第一阶段处理网络和第二阶段结果网络。两者结合起来,将用于为两个子组建立两个独立的估计模型。如下面的代码片段所示,Keras 用于通过顺序打包堆叠的神经层来构建神经网络。对于第一个密集层,在治疗和结果模型中,输入形状都是 73。对于治疗网络,相当于 71 个协变量加上 2 个治疗变量,对于结果网络,相当于 71 个协变量加上 2 个工具变量。
在治疗和结果网络中,有三个密集层与三个脱落层交替出现。然而,结果网络的不同之处在于具有总共 7 层的第四密集层。每个密集层使用一个整流线性激活函数或 ReLU ,并随着网络深度的增加而减小 50% (128,64,32)。输出网络的最后第七层的输出大小为 1。每个丢弃层以 17%的速率丢弃单元,这是向网络添加正则化的一种方式,以避免过拟合。
接下来,有必要设置两个估计模型的参数,一个用于较小的外围邻域,“ deepIvEst_per ”,另一个用于较大的中心邻域,“ deepIvEst_not_per ”。如下面的代码片段所示,首先我们定义两组 Keras 参数来拟合模型,一组有 50 个时期,另一组有 100 个时期。基于我的微调,我推断对于“ deepIvEst_per ”模型,第一级处理网络需要 50 个以上的历元来最小化损失。相反,第一阶段结果网络和“ deepIvEst_not_per ”模型的两个网络都需要少于 50 个历元。
两个参数集的验证分割都设置为 10%,这代表拒绝数据。对于回调,我们使用 Keras 的“EarlyStopping ”,将“patience”设置为 2,这样一旦模型开始过度拟合,训练就会结束,并恢复最佳权重。对于早期停止,“耐心”与没有改善的时期数有关,在此之后训练将停止。这意味着指定的历元数作为最大阈值,而不是强制目标。例如,“ deepIvEst_not_per ”模型的治疗网络设置为 50 个历元,但对于该网络,训练一般在 23 个历元后结束。
如上面的代码片段所示,两个子组的两个估计模型的参数几乎相同,唯一的区别是" deepIvEst_per" 模型的治疗网络,其最大值设置为 100 个时期。对于两个模型,“n_components”被设置为“15”,这意味着两者的混合密度函数由 15 个高斯分布组成。参数“m”和“h”是之前详述的治疗和结果网络;λ函数将治疗模型的变量(z,x)或结果模型的变量(t,x)映射到 Keras 模型。结果是“m”和“h”都是单个张量,是所有相应输入的串联。“n_samples”表示用于估计结果的样本数。
参数“使用上限损失”设置为“真”。如果设置为“假”,则从两个独立样本中估计梯度,这需要通过网络向前传递,因此,它是“计算密集型的”( Hartford 等人,2017 )。相反,将该参数设置为“真”意味着可以使用单次绘制来计算梯度,因为这优化了损失函数的上限。缺点是上限损耗只是真实损耗的近似值。然而,Hartford 等人声称,“在实际计算限制下”,上限损失具有更好的性能。“n_gradient_samples”被设置为“0 ”,因为我们针对上限损失进行了优化。
我尝试了各种优化器,并选择了 Adagrad 优化器,因为它具有参数特定的学习率。这意味着学习率是相对于参数在训练期间更新的频率而调整的。本质上,参数收到的更新越多,渐变更新的大小就越小。“第一阶段选项”和“第二阶段选项”是我们传递先前设置的 Keras 参数的地方;这些控制模型的拟合程度。训练这两个估计模型需要分别运行下面两行代码。对于“*deepIvEst _ per”*模型和“*deepIvEst _ not _ per”*模型,每个子组模型分别符合前面描述的变量(y,t,x,z)和(y2,t2,x2,z2)。
deepIvEst_per.fit(Y=y,T=t,X=x,Z=z)deepIvEst_not_per.fit(Y=y2,T=t2,X=x2,Z=z2)
一旦模型被训练,就有可能预测每个邻域的治疗效果。每个子组都从各自的模型中得到 CATE 估计。结果存储在数据帧中,并计算每组治疗效果的滚动平均值。
最后,如下面的代码片段所示,为了进行比较,我们绘制了两个子组的 CATE。
我运行了 20 次训练,收集了结果并选择了一个随机样本进行绘制,结果得到了下图:
周边街区的美食(蓝色)和中心街区的美食(紫色)。图片作者。
小型外围居民区的中位数 CATE 在 0.4 到 0.8 之间,而大型中心居民区的中位数在 2.0 到 3.0 之间。此外,对于最低分位数的周边社区,平均 CATE 的范围从 0.3 到 0.3。然而,清楚的是,CATE 值从两个子组中分离出来,这在上图中清楚地显示出来。
因果森林基准
为了对来自 DeepIV 框架的结果进行基准测试,我们为每个子群构建了一个仪器化的因果森林( Athey 等人,2019 )。在下面的代码片段中,我们将 Abrahams 的数据集分成每个子组的训练集和测试集。然后我们设置结果变量、治疗变量、协变量和工具来拟合两个因果森林,每个亚组一个。
接下来,我们为两个因果森林设置参数并拟合模型。关于如何为因果森林选择参数的更多细节,我推荐我以前的因果 ML 文章,它讨论了这些细节。
我们使用因果森林模型来预测每个亚组的治疗效果和置信区间的上下限。随后,将每个分组的结果存储在数据帧中,并计算滚动平均值。
最后,我们绘制了每个因果森林的不同处理效果和置信区间。
仅绘制两个子组的 CATE 会产生下图:
外围街区的美食(蓝色)和中心街区的美食(紫色)。图片作者。
为周边邻域子组绘制带有置信区间的 CATE 会产生下图:
周边邻域的 CATE(蓝色)带有上下限置信区间(绿色)。图片作者。
为中心邻域子组绘制带有置信区间的 CATE 会产生下图:
具有上下限置信区间(绿色)的中心邻域(紫色)的 CATE。图片作者。
类似地,对于 DeepIV 实验,我运行了 20 次因果森林并收集了结果。小型外围居民区的中位数 CATE 为 0.2 至 0.3,而较大的中心居民区的中位数为 2.9 至 3.1。有趣的是,周边地区最低分位数的平均 CATE 范围为-2.8 至-3.5,这一平均 CATE 范围远低于 DeepIV 估计值(-0.3 至 0.3)。此外,因果森林的中位数 CATE 范围比 DeepIV 估计值的范围小,表明后者的估计值有更大的差异。
最终想法
当比较来自 DeepIV 框架和因果森林的估计时,我想起了亚伯拉罕在《艰难旅行》中的结果。净衰减效应接近于零,因为本质上,阻碍效应和保护效应相互抵消。另一方面,来自 DeepIV 框架和因果森林的 CATE 估计值与亚伯拉罕的当地平均治疗效果(晚期)不同。重要的是,在 DeepIV 模型和基准因果森林中,亚组的 CATE 值之间有明显的差异,表明假设的亚组是有效的分离。由于这两种方法的结果相互印证,我有理由宣称我未能拒绝零假设。
用更易解释的因果森林对深度学习结果进行基准测试,允许对两种非参数 IV 方法进行比较。因果森林的优势在于计算有效置信区间的能力。相比之下,深度学习的优势在于能够创建复杂特征空间的潜在表示。深度学习的力量在于它帮助我们超越维度的诅咒。考虑到亚伯拉罕的主要设置包括 71 个协变量,我认为这需要高维特征空间,因此需要深度学习。相反,拥有有效的置信区间对于制定政策是有用的,或者可以说是必要的。然而,估计方法的选择应该取决于实验的目的和数据的大小和复杂程度。对于政策分配,我更倾向于利用因果森林估计,因为我们有所述估计的不确定性的测量。然而,DeepIV 框架是大型复杂数据集的理想选择。
我欢迎反馈和问题,请随时在 Linkedin 上与我联系。
机器学习中的因果推理
对人工智能驱动的系统面临的一些主要限制的调查
丹·梅耶斯在 Unsplash 上的照片
介绍
由于人工智能(AI)的最新进展,我们现在能够在学术和商业应用中利用机器学习和深度学习技术。尽管仅仅依靠不同特征之间的相关性可能会导致错误的结论,因为相关性不一定意味着因果关系。当今机器学习和深度学习模型的两个主要限制是:
- **稳健性:**经过训练的模型可能无法推广到新数据,因此无法在现实世界中提供稳健可靠的性能。
- **可解释性:**复杂的深度学习模型可能难以分析,以便清楚地展示它们的决策过程。
开发能够识别不同变量之间因果关系的模型可能最终提供解决这两个问题的方案。这一想法也得到了朱迪亚·珀尔(Judea Pearl)等研究人员的支持,他们主张,拥有能够在不确定性中推理的模型不足以让研究人员创造出能够真正表达智能行为的机器[1]。
因果关系
因果关系的概念
如今,机器学习模型能够通过识别大型数据集中的模式来学习数据。尽管如此,人类也许能够在检查几个例子后完成同样的任务。这是可能的,因为人类继承了理解因果关系和使用归纳推理的能力,以便吸收关于世界的新信息。因此,创造能够证明因果推理的模型将为我们打开一个全新的人工智能研究机会的世界。
在我们的日常生活中,每当我们问自己任何类型的干预性或回顾性问题(例如,如果我采取这个行动会怎样?如果我会有不同的表现呢?).
如图 1 所示,因果推理可以分为三个不同的层次(关联、干预、反事实)。在每一个层次,不同类型的问题都可以回答,为了回答最高层次的问题(如反事实),有必要从较低层次获得基础知识[4]。事实上,为了能够回答回顾性问题,我们希望首先能够回答干预和联想类型的问题。
图 1:因果等级(作者图片)
目前,机器学习模型只能回答与关联级别相关的概率类型的问题。
由于对这一主题的兴趣不断增加,已经构建了一个能够表示因果关系的数学框架(结构因果模型(SCM) [4])。使用这种框架,因果表达式可以公式化,并与数据结合使用,以便进行预测。
线性和非线性因果关系
因果关系可以分为两种主要类型:线性和非线性(图 2) [5]:
- 在线性因果关系中,变量之间的联系可以是单向的,每个结果都可以由有限数量的原因引起。原因总是线性地先于结果(时间优先)。
- 在非线性因果关系中,变量之间的联系可以是双向的,影响可能是由无限数量的原因引起的。
线性因果系统的特点是因果变量之间的比例关系(如确定性系统)。相反,在非线性因果系统中,会发生不成比例的影响(例如,非确定性系统)。例如,输入条件的微小变化会导致不同的结果(如“蝴蝶效应”)。
图 2:线性与非线性因果关系(图片由作者提供)
案例研究:推荐系统
大多数机器学习模型的一个主要弱点是假设输入的数据是独立且同分布的(IID)。当这个假设成立时,收敛到最低的可能损失是可实现的,但是当这个约束被违反时,即使在尝试简单的任务(例如中毒攻击)时,模型也可能表现不佳[6]。
作为一个例子,让我们考虑一个电子商务推荐系统。如今的系统能够主要基于与我们计划购买的产品相关的产品来提供建议,尽管这并不总能带来准确的估计。例如,我们可能最近买了一部新手机,现在正在寻找一个手机壳。在浏览手机壳时,尽管我们的推荐系统可能会尝试向我们推荐其他项目,如手机(只是因为它们是相关的),而不是像屏幕保护器这样更具因果关系的项目。
技术
用来试图发现因果关系的主要技术之一是图形方法,例如知识图和贝叶斯信任网络。这两种方法实际上构成了因果层次中关联层次的基础,使我们能够回答这样的问题:一个实体由哪些不同的属性组成,不同的组成部分是如何相互关联的?
为了开始将因果关系应用于机器学习,图形方法在过去几年中非常重要。虽然,为了让我们从因果等级中的关联层次转移到干预层次,替代方法可能是必要的。在可解释的人工智能和因果关系中,为了回答干预类型的问题(例如,如果?)而常用的一些附加技术。)是:
- 特征选择技术(如递归特征消除、Shapley 值)。
- 全局和局部模型代理(例如,局部可解释的模型不可知的解释)。
- 人工智能中的偏差(如预处理、处理中、后处理算法)。
- 建模隐变量(如隐马尔可夫模型、玻尔兹曼限制机)。
最后,除了机器学习,因果推理还可以应用于强化学习等人工智能的其他领域。事实上,为了让主体在环境中取得良好的表现,他们需要能够思考他们的行为会导致什么样的后果[7],因此需要属于反事实层次的因果能力。此外,因果关系也可以在这个范围内使用,以创建因果部分模型来预测低维空间中的高维未来观察结果[8]。
比较
从统计学和研究的角度来看,识别隐藏变量和偏差的图形方法和建模技术现在是一个越来越感兴趣的领域,因为它们涉及的领域在过去十年中还没有像机器学习那样被探索(尽管仍然有可能与这些技术集成)。
另一方面,特征选择和全局/局部模型代理技术是目前在深度学习问题中常用的方法,以便使复杂的模型更容易分析,从而理解它们的决策过程(例如,在进行预测时找出哪些特征具有更大的权重,并使用代理模型在局部范围内为非线性问题创建线性模型)。
如果你对如何在机器学习中使用因果关系感兴趣,可以在我的文章中找到更多信息:回答 AI 中的因果问题。
联系人
如果你想了解我最新的文章和项目,请通过媒体关注我,并订阅我的邮件列表。以下是我的一些联系人详细信息:
文献学
[1]要造出真正智能的机器,教他们因果量子杂志。访问:https://www . quanta magazine . org/to-build truly-intelligent-machines-teach-them-cause-and-effect-2018 05 15,2020 年 3 月。
[2]归纳推理 Jan-Willem Romeijn,载于《统计哲学》,2011 年。科学指导。访问:https://www . science direct . com/topics/mathematics/归纳推理,2020 年 3 月。
[3]通过概率程序归纳的人类水平概念学习 Brenden M. Lake,Ruslan Salakhutdinov,Joshua B. Tenenbaum。访问:https://web . MIT . edu/coco sci/Papers/Science-2015-Lake-13328 . pdf,2020 年 3 月。
[4]因果推理的七个工具与对机器学习的反思 JUDEA PEARL,UCLA 计算机科学系,美国。访问时间:https://ftp.cs.ucla.edu/pub/statser/r481.pdf,2020 年 3 月。
[5]系统思维系统建模理解系统和创建系统模型的课程。可持续发展实验室。访问时间:https://systemsinnovation.io/system-dynamics-book/,2020 年 3 月。
[6]机器学习的因果关系 Bernhard schlkopf,马克斯·普朗克智能系统研究所。访问时间:https://arxiv.org/pdf/1911.10500.pdf,2020 年 3 月。
[7]来自元强化学习的因果推理 Ishita das Gupta et al .艾尔。深刻的思想。访问时间:2020 年 3 月 https://arxiv.org/pdf/1901.08162v1.pdf。
[8]强化学习的因果正确部分模型。艾尔。访问时间:2020 年 3 月,https://arxiv.org/pdf/2002.02836.pdf。
因果关系:导论
一个老问题的新科学
这是因果关系系列文章的第一篇。该系列是基于朱迪亚珍珠和其他研究人员在这一领域的工作。在这篇文章中,我将介绍珀尔所说的“因果新科学”[1],将因果关系与我们的思维方式联系起来,强调传统统计学的问题,并展示如何用数学方法表示因果关系。在以后的帖子中,我们将更仔细地研究因果关系的两个领域: 因果推断 和 因果发现 。
我知道你在想什么…为什么这里会有一张香蕉的图片?图片作者。
香蕉
考虑上图。是的,香蕉。我给你一点时间。
一个自然的问题是,“香蕉和因果关系有什么关系?”嗯,这很有趣,因为香蕉和因果关系之间没有关系。然而,你的大脑,不管是有意还是无意,可能试图建立一种联系。
归结为一个基本问题*为什么?*为什么是香蕉?我为什么会点击这篇博文?为什么我还在读这个?事实是我们一直在问自己为什么。我们的大脑会自动尝试编织因果故事,以帮助我们理解这个或许毫无意义的世界。这个问题的衍生形式如下。原因是什么?这是什么原因呢?或者接下来是什么?这是要去哪里?
虽然这种因果思维方式对我们来说是自然的,但我们传统的统计工具无法轻松处理因果关系。三个要点将说明传统统计在这方面的不足。我将这些点称为统计学的三个陷阱。
统计的 3 个陷阱
陷阱 1:虚假关联
我们都听说过这样一句古老的谚语:相关性不是因果关系。该陈述总结了虚假相关性的概念,即统计相关性,没有因果关系。考虑下图(我保证这次不吃香蕉)。在每年淹死在游泳池里的人数和尼克·凯奇电影的数量之间有很强的相关性(66%)。显然,有趣的是,这两个变量没有任何因果联系,尽管它们相互关联。更可笑的例子可以在图片来源[ 2 ]找到。
每年溺水人数与尼克·凯奇电影数量的相关性。来源:https://tylervigen.com/spurious-correlations
虽然这是一个愚蠢的例子,但它提醒我们在处理相关性时必须小心。有人可能会指出建立统计意义,但是,有两个障碍。首先,这在现实世界中说起来容易做起来难(什么是好的 p 值?我们需要多少数据?),第二,即使是统计学意义也不足以得出因果关系的结论。我们可以从另一个讽刺性的,但“统计有效”的,关于鹳和婴儿的故事【3】中看到。
陷阱二:辛普森悖论
虚假相关性是众所周知的统计陷阱,所以很容易注意到它。一个不太为人所知的陷阱是辛普森悖论,即当 相同的数据给出矛盾的结论,这取决于你如何看待它们。
假设有一种心脏病的实验疗法。我们从一组参与者那里收集数据,并绘制治疗和结果之间的关系。然后,我们将数据绘制在下图中。
实验治疗和心脏病风险之间关系的假想例子。图片作者。
乍一看,我们可能会认为这是一个可怕的治疗。一个人服药越多或从事规定的行为越多,他们患心脏病的风险就越大。但是现在假设我们看一下下图所示的两组研究参与者。
实验治疗和心脏病风险之间关系的假想例子,现在以参与者性别为条件。图片作者。
单独考虑每一个亚群,我们得到的结果与之前相反。在每一组中,即男性和女性,治疗的增加与心脏病风险的降低相关。朱迪亚·珀尔(Judea Pearl)的一句话很好地总结了这一悖论**“我们有一种对男人有利、对女人有利、但对人不利的治疗方法”**
让我们看另一个例子,但是用数字和现实。下图是德瑞克·基特和大卫·贾斯蒂斯在 1995 年和 1996 年的击球率。如果你孤立地看这两年中的任何一年,大卫·贾斯蒂斯都有更好的表现。然而,如果你把这两年加在一起,德瑞克·基特表现得更好。迷惑对吗?
比较 1995 年至 1996 年德瑞克·基特和大卫正义的击球率。来源:https://en.wikipedia.org/wiki/Simpson%27s_paradox
**辛普森悖论强调了你如何看待你的数据很重要。**所以问题变成了,我们如何对数据进行分区?尽管在统计学中没有标准的方法来处理这个问题,但是因果推理提供了一种处理这个问题的形式。这一切都归结为因果效应,即在调整适当的混杂因素后,量化一个变量对另一个变量的影响。下一篇关于因果推理的文章将对此进行更深入的探讨。
陷阱三:对称
当考虑因果关系时,传统统计学的问题源于代数的一个基本属性,对称性[ 4 ]。等式的左边等于右边(这就是代数的要点)。等号意味着对称。然而,因果关系从根本上说是不对称的,即原因导致结果,而不是相反。
让我们看一个简单的例子。假设我们用下面的表达式对疾病和它产生的症状之间的关系进行建模。 Y 代表症状的严重程度, X 疾病的严重程度, m 是两者之间的联系, b 代表所有其他因素。
症状与疾病的简单关系。根据朱迪亚·珀尔[ 4 ]的作品改编。图片作者。
利用代数规则,我们可以把上面的等式反过来得到下面的表达式。
症状与疾病的倒置关系。根据朱迪亚·珀尔[ 4 ]的作品改编。图片作者。
问题来了,如果我们把第一个方程解释为疾病引起症状,那么我们就得把第二个方程解释为症状引起疾病!这当然不是真的。
在处理数据时,X 和 Y 之间的相关性意味着 Y 和 X 之间的相同相关性。这甚至进一步发展到更一般的统计相关性概念,即 X 和 Y 之间的相关性意味着 Y 和 X 之间的相关性。这一事实消除了将仅基于数据的模型(例如机器学习)解释为因果模型的可能性。然而,通过适当的假设,可能有希望从数据中了解因果结构,这将在以后关于因果发现的文章中讨论。
因此,如果对称性是代数和统计的核心属性,我们需要一种不同的形式来处理不对称关系,以表示因果关系。下一节将介绍一种方法。
因果关系
在我们深入到用数学方法表示因果关系之前,我们应该回答一个更深层次的问题,什么是因果关系?因果关系超越了相关性,或者更一般的统计相关性,来描述一个系统的因果联系。
一个变量 X 可以说引起了另一个变量 Y,如果当所有混杂因素被调整后,对 X 的一个干预导致了 Y 的变化,但对 Y 的一个干预不一定导致 X 的变化 [1]。这与相关性相反,相关性本质上是对称的,即如果 X 与 Y 相关,Y 与 X 相关,而如果 X 导致 Y,Y 可能不会导致 X。
因果关系的可视化。这里,对 X 的干预改变了 Y,然而对 Y 的干预使 X 保持不变。图片作者。
因果关系通过结构因果模型(SCMs) [ 5 进行数学表示。SCMs 的两个关键要素是一个图形和一组方程式。更具体地说,图是一个有向无环图(DAG) 和方程组是一个结构方程模型(SEM) 。
DAGs 通过显示谁听谁的,或者更重要的是谁不听谁的来表示因果结构。DAG 是一种特殊的图,它的所有边都是有向的(信息流是单向的),并且不存在循环(离开顶点的信息不能返回)。因果 DAG 中的顶点(圆圈)表示变量,边(箭头)表示因果关系,其中变量是由其父代直接导致的。
SEMs 代表变量之间的关系。这些方程有两个特点。首先,等式是不对称的,这意味着等式只在一个方向有效。这意味着 SEM 不能被反演以导出替代 SEM 方程。第二,方程可以是非参数的,这意味着函数形式是未知的。
注意,从表面上看,SEM 比 DAG 包含更多的信息。Dag 概述因果关系,而 SEM 可以显示因果关系和关系的细节。虽然从这个角度来看 Dag 似乎是不必要的,但是通过 Dag 以清晰的方式看到因果关系是有巨大价值的,而通过 SEM 这种方式并不明显。此外,DAG 表示的选择最终开启了用于评估因果效应的 d 分离方法。
示例结构因果模型(SCM)。图片作者。
因果推理
现在有了形式主义,我们可以朝着用数学方法分析因果关系的方向前进。一个自然的起点是因果推论。因果推理的目标是根据问题的因果结构回答问题。
因果推理的起点是一个因果模型。换句话说,你至少需要知道,哪些变量互相监听。例如,你可能知道 X 导致 Y,但是不知道交互的细节。
因果推断有许多方面,如估计 因果关系 ,使用微积分,分解混淆。我将在因果推理系列的下一篇文章中介绍和探讨这些话题。
因果发现
在因果推理中,问题的因果结构往往是假定的。换句话说,假设有一条 DAG 代表这种情况。然而,在实践中,一个系统的因果关系往往是未知的。因果发现旨在从观察数据中发现因果结构。
从本质上来说,因果发现是一个逆问题。这就像根据冰块在厨房地板上留下的水坑来预测它的形状一样。虽然这听起来不可能,但基本策略是用假设缩小可能的解决方案。我将把更多的细节留到因果发现系列的最后一篇文章中。
结论
正如许多数据科学家(或任何与数据打交道的人)会告诉你的,从数据中回答问题既是科学也是艺术。这门“新的因果科学”提供了一个理论框架,有助于为这门艺术指明方向。尽管许多基础已经奠定,但因果关系仍然是一个年轻的领域,有几个未决问题。
就像机器学习一样,因果关系的前沿也在不断前进。当然,我不可能在一篇博文中,甚至在一系列博文中全面地描述这个快速发展的领域。然而,在这个系列中,我的目标是分享一些我认为有用的关键观点和资源。为此,在接下来的几篇文章中,我将讨论因果关系的两大观点:和 因果发现 。
资源
更多关于因果关系 : 因果关系概述 | 因果关系:简介 | 因果推断 | 因果发现
**https://shawhin.medium.com/membership **
【2】【https://tylervigen.com/spurious-correlations】T2
【3】https://web . Stanford . edu/class/HRP 259/2007/regression/storke . pdf
****【4】珀尔,J. (2010)。因果推理导论,国际生物统计学杂志,6(2)。https://doi.org/10.2202/1557-4679.1203
****【5】schlkopf,B. (2021)。因果表征学习。arXiv:2102.11107【cs。LG]
用于冷煮浓缩咖啡空化作用
咖啡数据科学
使用 Flair 或 Kompresso
最近,在我的广告中不断出现一种叫做 Osma 的机器,它承诺利用空化和再循环在 90 秒内提供冷煮咖啡。我认为这很有趣,但我并不真正喜欢冷饮,也没有兴趣再买一台机器。然而,我有杠杆机器。
我能通过让水在冰球内振动来模拟这种酿造吗?
气穴现象是由于水的运动太快,以至于压力下降,然后水蒸发。对于咖啡来说,理论是空化使提取更容易。压力脉动确实增加了提取率,但我不知道压力脉动是否模拟了这种效果。
设置
对于冷煮浓缩咖啡,Kompresso 和 Flair 是最佳选择。在旅行的时候,我一直用 Kompresso 做冷饮,所以我用了那个。
所有图片由作者提供
Kompresso
对于前两个测试,我使用 Kompresso 进行长时间预灌注,然后进行空化和无空化。在这种情况下,我通过敲打设备顶部来模拟空化效应。如果我经常这样做,咖啡会出来,但比恒压慢。
麻烦的变量是,这个镜头更长,所以可能会类似于更长的预输注。我试图通过使用长时间的预输注来减轻这种变量,而不会产生气穴。
天赋
为了天赋,我试了几个镜头。一次长时间预输注的基线拍摄,一次类似于 Kompresso 测试的拍摄,以及一次使用背部按摩器的拍摄。
在我得到结果之前,我想展示一些冰球。对于 Flair cold brew 来说,圆盘的底部非常有趣。对于气蚀,一个黑点出现在中心,这有点奇怪,而没有气蚀,黑点在外圈。对我来说,这是一个奇怪的模式,但我还没有深入了解。
左:带振动空化的 Flair 冷酿造,右:Flair 冷酿造
绩效指标
我使用两个指标来评估技术之间的差异:最终得分和咖啡萃取。
最终得分 是评分卡上 7 个指标(辛辣、浓郁、糖浆、甜味、酸味、苦味和回味)的平均值。当然,这些分数是主观的,但它们符合我的口味,帮助我提高了我的拍摄水平。分数有一些变化。我的目标是保持每个指标的一致性,但有时粒度很难确定。
冷酿造
空化在味道上是显而易见的,但只是轻微的。就 TDS/EY 而言,气穴现象大致相同。Kompresso 的价格略高,Flair 的价格略低。
拍摄时间很难,这也造成了公平的比较差异,因为与水的总接触时间不同。
试图在冷酿造中获得空化是有趣的,但我认为不值得在杠杆上争论。我相信奥斯马机器可以做得更好。也很难衡量空化是否让事情变得更好,或者仅仅是接触时间更长。也很难知道我的所作所为是否真的通过敲击或振动杠杆导致了空化。
如果你愿意,可以在推特和 YouTube上关注我,我会在那里发布不同机器上的浓缩咖啡照片和浓缩咖啡相关的视频。也可以在 LinkedIn 上找到我。你也可以关注我的媒体和订阅。
我的进一步阅读:
cCorrGAN:学习椭圆曲线中经验条件分布的条件相关 GAN
金融中的生成模型:动机与挑战
由于隐私、监管和业务要求,在金融服务机构中共享金融数据受到严格限制,包括内部(在机构的职能部门之间,或在授权访问前使用数据)和外部(与研究机构)[6]。因此,生成真实合成数据的方法至关重要,尤其是在缺乏历史数据以及数据匿名至关重要的情况下。例如,缺乏各种市场条件下的股票市场时间序列数据,本质上是因为只有一个“历史”。这使得很难对不同情景下的投资组合进行压力测试。
生成真实的数据集需要定义数据集之间的适当距离,并测量它们的接近程度。虽然金融数据可以大致分为零售银行数据(通常为表格形式)和市场微观结构数据(通常为时间序列形式),但这里我们将重点关注生成市场微观结构数据(近似为经验金融相关矩阵(CM))。生成多变量时间序列数据是一个更具挑战性的问题,因为它涉及到捕捉单变量时间序列之间的依赖结构,以及其他特征,如自相关和分布属性[1]。经验 CMs 在多元金融时间序列的研究中是开创性的,并且在资产配置的风险管理中是重要的。CMs 在金融领域有很多应用,比如测试交易策略的稳健性,对投资组合进行压力测试,或者客观地比较经验方法。合成 CMs 还应该展示真实数据的经验属性,称为风格化事实(SF)。到目前为止,科幻小说只是被定性地评价,还没有被浓缩成一个单一的指标。
FCMs 的数学直觉
我们将通过转向 Markowitz 的最优投资组合理论来获得对金融相关矩阵的直觉。这一理论表明,通过优化每项资产的权重(即投资于该资产的资本量),可以在给定总回报的情况下最小化风险,从而找到最佳投资组合。形式上[4]:
作者图片
使用总方差来描述投资组合的总风险[4]
作者图片
投资组合中资产的最佳平衡是使固定投资组合回报的方差最小化。风险最小的投资组合在具有最小特征值的协方差矩阵的特征向量上具有很大的权重。这可以被解释为在具有最小方差(相关特征值)的 N 个不相关投资组合(协方差矩阵的特征向量)上投资最多的资本[4]。随机矩阵理论(RMT)是应用于随机变量矩阵的概率分析的一个分支,当应用于金融 CMs 时,它的许多结果是有用的。在[4]中,作者使用 RMT 通过部分去除噪声来清理经验 CMs。如果 T 与 N 的比率很小,即如果有限时间序列长度与投资组合中的资产数量相比很小,则相关性不太可能包含有用的信息,或者更可能是有噪声的。这种获得相关矩阵的方法需要计算它们,然后执行“清理”过程。不干净的 CMs 低估了真实风险,尽管干净的 CMs 在优化投资组合中更准确地解释了风险,但真实风险总是大于估计风险。相反,采样相关矩阵可能是生成实际 CMs 的更有效的方式。生成对抗网络(GANs)已经被成功和广泛地应用于计算机视觉任务(图像和视频生成)以及语言和音频处理(文本、语音和音乐生成)。然而,直到最近,在金融领域,对生成性深度学习的探索还很少。CorrGAN [2]是解决这一差距的最新尝试,它是一种 GAN,经过训练可以学习相关矩阵的分布,从而可以对现实的金融 CMs 进行采样。
然而,RMT 和其他关于金融相关矩阵的类似工作确实提供了传递金融 CMs 属性的 SFs,使我们能够更好地理解它们。这些是[2,3]:
1.成对相关的分布显著地向正的方向倾斜。
2.特征值遵循 Marchenko-Pastur 分布,除了非常大的第一特征值(对应于“市场”)和大约 5%的其他大特征值(对应于市场内的自然集群,如行业)。
3.Perron-Frobenius 性质:第一特征向量有正项。
4.相关性遵循层级结构,正如 Mantegna [5]所示,金融相关性也是如此。
5.CM 对应的最小生成树的无标度性质。
这些程式化的事实允许对合成 CMs 和经验 CMs 之间的相似性进行定性评估。这个列表并不详尽,例如,检查 GAN 学习的潜在空间可以揭示更多以前未知的金融相关性特征。
科尔根
CorrGAN 是第一个展示使用 GANs 对金融 CMs 进行采样的结果并验证其真实性的模型。使用条件甘纳可以生成单变量时间序列,但这些忽略了多种资产之间的相关性,因此不适用于需要考虑多变量相关性的投资组合管理。在[2]中,描述了椭圆曲线(相关矩阵集)的数学设置:
作者图片
作者图片
N 乘 N 的情况在统计和计算上都要困难得多,并且需要高性能计算(HPC)基础设施来成为量化金融工具箱中的主要部分。定性评估生成矩阵的质量更难,并且由于数据效率低下,训练也更难。数据低效是由于 N 个资产的相关矩阵有 N 个!描述相同相关结构的可能矩阵,因为股票的顺序是不相关的。GAN 需要用于训练它的数据的多样性,以确保数据分布的完全覆盖。通过避免由矩阵等价引起的冗余,实施置换不变性使得每次训练更新更加多样化。在 CorrGAN 的论文中,这是通过使用分层聚类算法来设计的,以在 CM 上引起排列:
作者图片
该架构遵循深度卷积 GAN (DCGAN ),选择该架构是因为根据 SFs,CNN 显示的属性也适用于金融 CMs。这些是局部移位不变性、局部性和层次合成性(学习相关性的层次结构的能力)。
图 1:GAN 的 3x3 相关采样。图来自[2]。
在图 1 中,蓝色代表使用洋葱方法从三维椭圆图上均匀采样的 10,000 个点。橙色点是真实的经验矩阵,使用一年中 252 个工作日的日收益率计算,随机抽样三只股票,不替换标准普尔 500 的股票。绿点是通过从经过训练的 CorrGAN 采样生成的合成点。已经有可能看到合成分布与经验分布紧密匹配,直观地验证了一个典型的事实,即金融 CMs 集中在高正值范围附近。通过绘制第一特征向量的条目、相关性的分布、随机选择的 cm 的视觉表示、MST 中节点度分布的对数-对数图以及特征值的分布,来自[2]的结果显示了 CorrGAN 如何根据 SFs 生成真实的样本。然而,它们不是严格的相关矩阵,因为主对角线元素不完全等于 1。矩阵也不完全是正半定的,导致小的负特征值。需要后处理投影方法来找到相对于 Frobenius 范数最近的真实相关矩阵。
CorrGAN 的局限性在于,经验分布和合成分布并不完全匹配,更重要的是,每个训练好的模型之间存在不稳定性。这是 GANs 的一个众所周知的缺陷,即它们不善于捕捉不同的分布模式。这意味着,由于训练期间的模式崩溃,合成矩阵可能不会跨越现实金融 CMs 的整个子空间,而只是一个受限的子空间。
条件 CorrGAN: cCorrGAN
今年早些时候,[2]的作者发表了 cCorrGAN 和对 CorrGAN 的改进,CorrGAN 实现了三种广泛的市场稳定机制:压力、稳定和反弹。使用这个新标记的训练集,可以通过与 SFs 以及 PCA 投影的交叉检查来定性地评估性能,以确保经验和合成分布的良好定义的聚类和视觉匹配。在数量上,人们可以使用 Wasserstein 度量来比较经验分布和综合分布。最后,[3]的作者展示了如何应用 cCorrGAN 来测试投资策略和投资组合分配方法的稳健性,并得出这些方法中哪一种更能受益于某些市场条件(即市场制度)的见解。
对于未来的研究,以完全端到端的方式生成相关矩阵是深度学习的理想目标和常见实践,这将避免执行训练后预测的需要。同样,虽然 cCorrGAN 生成了金融 CMs,但对于研究人员来说,能够生成现实的多元金融时间序列仍然是一个挑战。
笔记
- 所有内联数学都是作者写的,改编自参考文章。
参考资料:
[1]马科维茨的最优投资组合理论
E.J. Elton 和 M.J. Gruber,现代投资组合理论和投资分析(1995),J.Wiley 父子公司,纽约,1995 年;H.Markowitz,投资组合选择:投资的有效多样化(1959),J.Wiley 父子公司,纽约,1959 年。
[2]科尔根
G.Marti,CorrGAN:使用生成式对抗网络对现实财务相关性矩阵进行采样(2020),ICASSP 2020–2020 IEEE 声学、语音和信号处理国际会议(ICA ssp),第 8459–8463 页。
[3]科尔根
动词 (verb 的缩写)Goubet G. Marti 和 F. Nielsen,cCorrGan:用于学习椭圆中的经验条件分布的条件相关性 Gan(2021),几何信息科学,第 613-620 页,斯普林格国际出版公司。
[4]随机矩阵理论和金融相关性
长度 Laloux,P. Cizeau,M. Potters 和 J-P. Bouchaud,《随机矩阵理论和金融相关性》( 2000 年),《国际理论和应用金融杂志》,第 3 卷,第 03 期,第 391-397 页。
[5]财务相关性的层次结构
R.N. Mantegna,《金融市场的层次结构》( 1999 年),《欧洲物理杂志 B——凝聚态物质和复杂系统》,第 11 卷,第 1 期,第 193-197 页。
[6]生成金融领域的综合数据
南 Assefa,《生成金融综合数据:机遇、挑战和陷阱》。挑战和陷阱(2020 年),信息科学:数据保护(专题),2020 年。
CDP 不是未来
是的,有一个更好的方法…
利用第一方数据增加收入—图片由作者提供。
如果你是一家数据驱动的公司,那么你很可能熟悉 CDP。这是因为,近年来,第三方客户数据平台(或“CDP”)已经成为集中和激活客户数据的一种流行方式。除此之外,我们还看到精通技术的公司广泛采用了雪花、BigQuery 或 Redshift 等数据仓库。我在这里谈论一些有点争议的事情,并声称 CDP 不是未来。对于那些花费时间和精力将所有数据纳入数据仓库的公司,我建议采用一种不同的方法,这种方法将简化您激活客户数据的能力,并更快地推动收入增长——第一方数据平台。
您的数据仓库应该是您唯一的真实来源,是您集中、细分和激活客户数据的地方,并且第三方数据平台直接在您的数据仓库之外工作
第一方数据平台直接从数据仓库驱动—图片由作者提供
那么什么是 CDP 呢?
不要误会,客户数据平台通过集中客户数据并将其激活到团队每天使用的正确业务工具,为组织提供了巨大的价值。这有助于公司加速收入和增长,并提升客户体验。通常,CDP 通过将客户数据导入到一个位置,创建客户的单一视图,并将客户数据激活到营销、销售和客户服务工具来实现这一点。就像任何工具或平台一样,CDP 也有自己的局限性,这些年来我们逐渐意识到了这一点。我想浏览其中一些来支持这些大胆的主张。
1.时间就是金钱
在这个效率决定一切的新世界,你能想象用 6 个多月的时间来设置和集成一个工具来激活客户数据吗?这就是使用客户数据平台的现实。首先,您需要让您的工程团队参与进来,集成 SDKs 片段,并发布您的产品。在中型组织中,这个过程需要几个月的时间。如果您所在的公司有一个强大的数据工程团队,他们已经完成了为您的所有数据设计一个漂亮的数据仓库的艰巨任务,那么您现在为什么要将这些数据的子集同步到 CDP 呢?
除了数据集成之外,您现在还必须在 CDP 平台中创建和维护您的客户数据模型。您必须设置重复数据删除逻辑,重新创建您的关键客户属性,并创建您想要筛选的自定义属性(总支出、购买次数等)。大多数 CDP 都有自己的细微差别,因此您需要从您的团队中分配一些资源,这些资源现在将成为“CDP 管理员”,类似于 Salesforce 管理员。从某种意义上说,CDP 迫使您全力以赴地采纳他们的观点和工具,并让您的团队致力于学习它们。
痴迷于数据驱动的增长需要更大的灵活性,并需要允许快速试验——试验 ML 模型、构建分析报告或对活动进行高级统计评估的能力。这就是为什么我们看到如此多的公司最终将集成的数据从 CDP 带回他们自己的仓库。
2.顾客的两种观点
实施第三方 CDP 的主要原因之一是找到一种简化的方式来创建您客户的**【单一视图】。不幸的是,当您扩展您的公司并因此进入更复杂的用例时,这实际上可能会适得其反,您将不可避免地以不止一个,而是两个客户视图** -一个在您的数据仓库中,一个在 CDP 中。
复制客户模型成本高昂——图片由作者提供
您的分析和数据工程团队致力于将来自不同来源的所有数据吸收到数据仓库中,并将其建模为统一的客户视图。这使他们能够生成可靠的分析报告,建立 ML 模型,并对您的营销活动进行更智能的评估。这些团队也最熟悉您的关键业务逻辑和关键指标,因此没有人比他们更了解您的数据。在仓库中,你的团队可以利用他们选择的 SQL 和数据建模工具(Matillion、DBT、Informatica 等)。)来建模数据。
通过引入 CDP,您可以维护一个完全独立的冗余数据模型,其中只有一部分数据位于您的数据仓库中。随着时间的推移,只有更强大的数据模型会存活下来,并且几乎总是最终成为数据仓库。分析团队更喜欢在数据仓库中使用他们已经喜欢的工具,这与 CDP 相反,在 CDP 中,他们将限于使用专有的查询语言或用户界面。缓慢但肯定的是,您为构建和维护您的 CDP 所做的所有工作将不再有回报。
3.CDP 对客户的看法“有限”
这是一个不幸的现实,但是随着公司的扩大,您的大多数客户数据将永远不会到达 CDP。尽管 CDP 可以从各种来源获取大量数据,但通常更容易将简单的产品指标集成到 CDP 中,如应用程序事件或网站事件。当你得到更复杂的第一方数据时,情况就不同了。
CDPs:仅限于简单的数据来源——图片由作者提供
但是现实从来没有这么简单,您将有更多的数据源—调查数据、电子邮件点击量、活动出席率、销售活动等。所有这些都需要额外的集成来同步到 CDP,而他们的客户模型并没有考虑到如此广泛的数据源。另一方面,您的数据工程和分析团队将能够使用他们已经喜欢使用的工具在您的数据仓库中轻松地接收和建模这些数据。因此,通过依赖数据仓库并将其激活为“第一方数据平台”,您将能够激活更丰富的客户资料。
第一方平台:将所有来源同步到数据仓库—图片由作者提供
4.不要破坏你团队的创新能力
分析和数据科学团队在以数据仓库提供商为中心的基于 SQL/Python 的工具生态系统中工作。通过获取数据并将其放入第三方 CDP,您束缚了您的分析团队,阻碍了他们的创新。分析和数据团队将提出预测客户流失、生命周期价值和推动真实客户价值的最佳模型。然而,CDP 使他们更难获得创建这些模型所需的数据,并且他们最终会将数据导出回仓库,以便能够使用他们工具箱中更强大的工具。许多 CDP 也不一定能轻松地将这些数据导出到他们的系统之外,因为这符合他们的最佳利益。
为您的数据团队提供他们喜爱的工具—按作者分类的图片
如果您投资您的数据仓库,并在那里构建您的核心客户数据模型,那么您的分析团队已经拥有了他们随时进行分析所需的所有数据。简单地说,与第三方 CDP 相比,分析团队更喜欢使用 SQL 和 Python。
5.数据仓库提供了更多的评估潜力
随着整个行业在活动归因跟踪方面的所有变化,拥有基于第一方数据的更智能的受众/活动评估机制比以往任何时候都更重要。您的数据仓库为报告受众和活动成功指标提供了一个更强大的框架,而不是试图处理归因或查看 CDP 提供的有限评估功能。您的数据仓库不仅拥有丰富的客户资料,而且通常还拥有您想要驱动的所有目标指标或事件,如总支出、点击的购买按钮等。因此,在分析您的团队为营销和销售活动创建的受众/细分市场时,查看您的数据仓库是显而易见的,您可以在其中将这些活动与所有活动联系起来。
推动数据仓库中的任何指标—按作者分类的图像
通过利用数据仓库作为第一方数据平台,您可以通过查看对您的业务重要的任何指标的提升来分析受众,这些指标包括留存、收入、登录、立即支付点击、搜索,以及您的仓库中几乎所有可用的指标。您可以通过在仓库中生成的受众中进行智能推广小组来跟踪诸如购物车增加、移动登录提升、收入提升等指标。你可以用曼-惠特尼 U 检验对你的结果进行统计显著性检验。除此之外,您的商业智能团队可以在您选择的数据可视化工具中可视化这些结果:Tableau、PowerBI、Looker 等。通过将受众测量保存在您的数据仓库中,团队可以更快地获得灵活性和更多洞察力。
6。不要将关键客户数据委托给第三方
安全性是任何基础架构设计或组织的重要组成部分,将您的所有数据同步到第三方 CDP 肯定会让您犹豫,这是理所当然的。激活您的数据仓库的一些最显著的优点是这种架构设计带来的安全性好处。
安全掌握在自己手中—作者图片
- 您的数据永远不会离开 —您的数据会留在您的仓库中
- 访问&授权 —您控制谁可以访问哪个数据子集
- 轻松合规 —您可以在仓库中直接控制合规
- GDPR 请求 —轻松实现合规自动化,响应 GDPR 的数据清理请求
随着隐私和安全成为客户越来越关心的问题,您绝不能拿他们对第三方的信任冒险。
更好的方法
数据团队已经在构建数据仓库和数据基础设施方面投入了大量资金。这意味着有一种更好、更快、更便宜的方式直接从仓库激活您的第一方数据。第一方数据平台使您的分析团队能够利用他们已经完成的所有艰苦工作,并简单地激活您数据仓库中的客户数据模型。
您仓库中的客户细分平台—作者图片
完全免责声明,我非常相信这个新方向,以至于我们在飞轮软件建立了一个专注于激活数据仓库的完整产品——一个直接在任何数据仓库上运行的客户细分平台。我们是朝着更好的增长、实验和营销方法这一大转变的一部分——为各种规模的团队释放巨大的潜力。我们很高兴能继续发现这一新方向的潜力,并与业内许多其他人一起拓展这一领域。
使用深度生存模型的观察性纵向研究的因果推断
思想理论
纵向观察健康数据中的因果推断通常需要在存在时变协变量的情况下,准确估计治疗对事件间结果的影响。为了解决这个纵向治疗效果估计问题,我们开发了一个时变因果生存(TCS)模型,该模型使用潜在结果框架和一组重复的子网络来估计生存概率的差异及其随时间的置信区间,作为时间相关协变量和治疗的函数。
最新出版物见 YJBIN_104119
问题
在这里,我们简要描述一下研究设置:
假设在一个离散的时间(t=1)空间中。我们面临一个生存数据集,其中第一个失败事件由结果标签(y_t={0,1})表示,用于给予二元治疗(z_t={0,1})的患者。
研究设计。作者形象
我们观察到:
- 协变量 : xt 患者在时间 t 的状态
- 事件:如果发生在【t,t+1】和事件日期<审查员的日期之间,则yt = 1
- 检查指标 : 如果患者在任何事件之前退出研究,则 T21【c】= 1T24
- 治疗:ZT = 1若患者在间隔【t,t+1)* 接受治疗*
在每个时间间隔,我们感兴趣的是根据存活曲线来估计治疗效果。
理性
生存分析领域已经探索了深度学习技术,其中可以使用 DeepHit 和 DeepSurv 等方法基于基线协变量预测个体生存曲线。然而,在统计分析中,治疗的因果效应通常更引起临床医生的兴趣。因此,我们的目标是使用纵向健康记录数据,以存活概率的形式预测目标结果的风险,并估计个人或患者群体的相应存活治疗效果。标准方法取决于从基线协变量快照和静态二进制治疗分配中学习的结果模型。当需要时,从开始跟进开始的暂时性被“手动”结合,例如通过定义随时间的最大值、累积值或平均值。
模型
为了估计绝对治疗效果,使用对事件发生时间(存活)结果的新型深度学习动态估计,对对照组和治疗组中的潜在存活概率进行建模。给定观察到的既往病史和治疗分配,进行治疗和对照条件下个体潜在存活曲线的差异。我们把这个模型称为时变因果生存(TCS)模型。
TCS 的关键特征是:1)它从纵向数据中观察到的和缺失的协变量的模式中学习;2)它通过对治疗和控制条件采用潜在结果子网络来捕捉治疗特定风险;3)用贝叶斯密集层量化模型估计的不确定性。
图一。模型结构。作者图片
TCS(见图 1)取代了用于估计观察到的故障/检查时间的联合分布的单一结果模型(如 DeepHit ),首先分别从治疗观察和控制观察中获取信息,然后用共享子网对信息进行编码。编码信息被输入到反事实子网络中,以预测给定治疗或控制条件下的预期生存结果。专用的子网络明确地对源自患者基线协变量及其在治疗条件之间的相互作用的风险进行建模。最后,我们调整了观察性研究中非随机治疗分配产生的反事实结果的偏差。反事实结果之间的差异将为我们提供治疗效果的校准估计。
个人 I 的结果标签 Y^M 被定义为每个时间段的矩阵:
培训标签
结果
TCS 是针对其他四种机器学习算法进行基准测试的:
- 未调整的 TCS (TCS(na)):与 TCS 相同,但没有选择偏差校正。
- 具有生存结果的简单递归神经网络(RNN):删除图 1 中的潜在结果神经网络。
- 具有二进制结果的简单递归神经网络(二进制):使用均方误差作为损失函数,对事件/删失的纵向二进制标签进行直接预测。
我们生成了生存数据序列来比较这四种算法。选择模拟来模拟德国乳腺癌随机试验[1]中观察到的协变量轨迹。细节可以在论文中找到。
我们发现二进制和 RNN 算法在估计下一步生存率方面有更好的表现(见 AUROC 和 C-Index),而 TCS 及其未经调整的版本 TCS(na)在估计个体和平均治疗效果方面表现更好,这是通过生存概率(SC (Raw))和风险比(HR (Raw))的差异来衡量的。与二进制和 RNN 模型相比,TCS 的准确性随着时间的推移相对稳定。
正如预期的那样,当 ATE 以生存概率的差异来衡量时,TMLE 对 TCS 的改善可以忽略不计(偏倚从 30.8%降低到 29.9%),因为治疗效果已经被调整。二元结果模型(130.1%至 40.5%)和 RNN (46.9%至 31.5%)的校正更为明显,因为原始估计值具有较高的偏差水平。另一方面,使用 IPW 的调整使得除了二元模型之外的所有原始估计变得更糟。相似的观察结果也在通过危害比测量的 ATE 估计值中发现。
TCS 从其生存结果和潜在结果子网络的设计中获益最多。在图 2 的图(a)中,我们评估了与基准相比,TCS 的每个组成部分对 ATE 偏差减少的增量贡献,通过根据存活概率的差异定义的原始 ATE 估计,RNN 优于二元模型 83.2%。TCS (na)中包含的子网络和一致性损失函数进一步减少了 11.4%的偏差。最后,对选择偏差的调整使估计又提高了 4.7%。
与基准算法不同,TCS 提供了非常接近真实值的 ITE 估计。这在图 2 的面板(b)中示出,其显示了在默认设置下随机选择的实验的真实和估计的 ITE 分布。
在我们的工作论文中,我们进一步提供了两个基于模拟数据和房颤临床研究数据的案例研究。感兴趣的读者可以查看我们的网站。
讨论
TCS 使用深度学习技术进行生存分析,填补了因果推理的空白。它考虑了时变和高维混杂因素与时不变的治疗方案。其估计的绝对治疗效果可以很容易地与传统文献进行比较,传统文献使用相对治疗效果的措施,如风险比。我们预计 TCS 将特别有助于在日益复杂的观察性卫生保健环境下识别和量化治疗效果随时间的异质性。
这项研究中一个值得注意的发现是我们所说的样本维度对治疗效果偏倚的强烈影响。然而,应该注意的是,在我们的模拟中,所有的协变量都代表了信息混杂。我们预计,在真实世界的高维数据集中,大多数协变量可能代表噪音或与治疗和结果的微弱联系。
当比较来自 TCS 的 ate 估计和来自传统混杂调整方法的 ATE 估计时,我们发现我们的选择偏差校准损失函数可以实现与 TMLE 相似的性能,但是比 IPW 更精确。IPW 的主要缺点是,即使协变量和结果是随时间变化的,它也对整个生存曲线应用相同的加权因子。
纵向因果推理的最大挑战在于它对治疗效果的定义。在本研究中,给定时间 t 的治疗效果被定义为在整个随访期(t-u,t)给予治疗与对照组的存活概率的差异。然而,当我们有 n 个处理时,我们将面临在 n(n-1)/2 对之间进行对比的选择。然而,当我们考虑治疗中转换的影响时,解决方案变得更加复杂,也就是说,我们需要考虑转换的时机以及效果对比的选择。同样,分析连续治疗也很费力。非参数方法已被提出来离散化治疗方案或创建样条来估计单日的治疗效果。很少有人讨论时变变量或处理。
所提出的模型以及现有的数据自适应模型在捕捉由隐藏变量或测量误差引起的任意不确定性的能力方面受到限制,并且不能通过在相同的实验条件下收集更多的数据来减少。这反映在我们的情景分析中,如果数据高度混杂,增加样本大小不能提高估计的准确性。对于观察数据,由于识别和收集潜在混杂因素的能力有限,混杂因素的影响常常被忽略。最近的一项研究[2]发现,在 87 篇关于酒精对缺血性心脏病风险影响的文章中,有 74 篇(85.1%)在结论中被错误地忽略或最终排除了混杂因素。虽然这项研究承认解释案例研究结果时的警告,但量化数据自适应模型的随机不确定性对未来的研究很重要。
参考
[1]W . Sauerbrei,G . Bastert,H . Bojar,C . beyer le,RLA·诺依曼,C . sch moor,M . Schu-macher 等.评估淋巴结阳性乳腺癌患者激素治疗和化疗持续时间的随机 2× 2 试验:基于 10 年随访的更新.临床肿瘤学杂志,18(1):94–94,2000。
[2]约书亚·瓦拉赫、斯蒂利亚诺斯·塞尔希奥、朱灵芝、亚历山大·埃吉尔曼、瓦西里斯·瓦西利乌、约瑟夫·罗斯和约翰·帕·约安尼迪斯。评估饮酒对缺血性心脏病风险的流行病学研究中混杂因素的评估。BMC 医学研究方法论,20(1):1–10,2020。
庆祝数据科学年
欢迎来到今年的变量最终版!
汤姆·塞库拉在 Unsplash 上的照片
在许多方面,这是过山车般的一年,但对于 TDS 团队来说,这也是成长、学习和兴奋的一年——这是我们在 2021 年结束之前发出的最后一份新闻稿中想要关注的内容。
不过,首先,我们要感谢你们所有人——我们的读者、支持者、、贡献者和社区成员——感谢你们的热情、慷慨和永无止境的好奇心。与世界分享如此多的伟大工作,并将其介绍给处于数据科学旅程不同阶段的如此多的人,这是一种巨大的特权。
在过去的一年中,我们发表了数千篇文章,如果你想探究其中一些突出的文章,我们在最近的 12 月版中收集了一些我们的亮点。由编辑埃利奥特·冈恩、凯特琳·金迪格、卢多维克·贝尼斯坦特和本·胡伯尔曼以及志愿编辑助理朱莉娅·尼库尔斯基、萨拉·a·梅特沃利和卡洛斯·穆根挑选的这本选集涵盖了广泛的主题、观点和声音,包括…
- Terence Shin 谈年度最佳数据可视化
- Divya Gopinath 关于衡量和理解公平性
- Scott Lundberg (和合著者)关于从 ML 模型中估计因果关系
- Denisa Blackwood 谈数据科学中的性别差异
- Alberto Romero 谈大型语言模型中的寻址偏差
…还有很多很多更多— 查看完整的帖子,寻找你最不想错过的其他文章。
我们也为我们团队在这一年中发表的原创作品感到非常自豪。如果你在假期有时间叙叙旧,为什么不…
- 听听 TDS 播客上的总是引人入胜的对话,其中主持人 Jeremie Harris 与特邀嘉宾讨论了围绕人工智能的重大问题,包括玛格丽特·米歇尔、华金·基诺内罗·坎德拉、Ayanna Howard 和 Brian Christian。
- 阅读我们发布的众多问题中的一个,来自不同专业和学术背景的实践数据科学家分享了关于他们的工作、整个领域以及激励他们学习更多知识的事情的见解。
就这样,接下来的几周我们离开你——我们将在一月初带着新版本的变量回来。(如果你是 TDS 贡献者,你可能还会注意到我们审查你的工作比较慢,因为我们需要一些时间来充电;感谢您对我们的包容!)
感谢您让 TDS 成为您 2021 年学习之旅的一部分,我们希望在 2022 年看到更多您的身影!
祝新年快乐平安,
TDS 编辑
与 CycleGAN 一起庆祝农历新年
使用 CycleGAN 和 Google 的 QuickDraw 数据集创建喜庆的龙和牛
CycleGAN 龙输出(图片由作者提供)
2 月 12 日星期五标志着 2021 年农历新年的开始。在新年节日里,你会经常看到五彩缤纷的舞龙,祝庆祝者好运。为了庆祝 ML 风格,我使用 CycleGAN 生成了带有有趣的装饰闪光的龙(如上所示),我将在本文中描述实现步骤。也许这些 GAN 生成的龙也会带来好运!在粤语中,我们说“恭喜发财”,希望你在新的农历新年幸福和繁荣。我从不放过任何一个使用俗气双关语的机会,所以https://machinelearningmastery.com/what-are-generative-adversarial-networks-gans/**粮草肥菜!🙈
CycleGAN 论文是由伯克利人工智能研究所的研究人员撰写的,他们也友好地发布了他们的代码,使得这个模型的实现变得非常容易。他们的模型使用循环一致的对抗网络实现了不成对的图像到图像的翻译。在这项工作之前,图像到图像的转换需要在应用期望的图像转换之前和之后的成对图像的大数据集。例如,要创建夏季到冬季的照片翻译,您可能需要一个冬季和夏季完全相同的图像的大型数据集。使用 CycleGAN,您只需要一个夏季景观数据集 A 和一个冬季景观数据集 B,模型就会学习图像转换——非常令人印象深刻!详情请参考论文。
实施循环
为了测试 CycleGAN,你只需要一个图像数据集 A 和数据集 B 以及一些高计算能力。我这个项目的目标是创造出红色、金色和绿色的喜庆龙,就像这里展示的这条龙。因此,我需要一个关于龙的数据集 A 和一个关于色彩鲜艳、响亮的数据集 B——或者在这种情况下,是炽热的火焰*。*
根据作者的说法,200 到 1000 张图像的数据集应该足以让 CycleGAN 进行训练,尽管如果你不介意长时间的训练,越多越好。对于龙来说,我使用了谷歌的 QuickDraw 数据集,其中包括来自他们主持的绘画游戏的众包草图。给定一个单词,玩家必须在 20 秒内画出它。他们已经将所有结果图作为开放数据集发布。我是 QuickDraw 的超级粉丝,因为它允许我们窥视世界上不同概念的集体视觉表现。时间限制迫使我们只专注于包含视觉上描述给定单词的最重要的细节,只给概念的本质留出时间。浏览许多龙的图画,我总是看到翅膀、爬行动物的尾巴和喷火——我想这是龙的本质。我对一些在 20 秒内完成的龙图印象深刻。对于我的数据,我为数据集 a 收集了大约 450 个龙的草图。然后,对于数据集 B,我创建了一个由 450 个随机形状和填充组成的数据集——如果你愿意,也可以称为随机耀斑。在下图中,我展示了 CycleGAN 如何使用我的数据集来学习图像翻译。
说明了 CycleGAN 内的 2 个 GAN。使用周期一致性损失来更新这两个 gan。(图片由作者提供)
一旦你克隆了作者的 Github,你需要在 datasets 下创建一个文件夹。在该文件夹中,创建“trainA”、“trainB”、“testA”和“testB”文件夹来存放您的数据。数据准备就绪后,您可以运行以下代码行,根据需要修改数据集位置和模型名称,以开始训练模型。
*python train.py --dataroot ./datasets/sketch2festivedragon --name cycle_gan_dragon_rg --model cycle_gan*
在 NVIDIA GeForce RTX 3090 上,使用批量大小 1(这是默认设置),该模型使用大约 10GB 的 GPU 内存,训练(200 个 epochs)在 4 个多小时内完成。如果您使用作者的代码,我强烈建议您遵循他们的培训提示,并运行以下命令在本地图形 web 服务器上启动实时培训可视化。
*python -m visdom.server*
Visdom 培训可视化截图(图片由作者提供)
众所周知,训练 gan 非常困难,因为损失图很难解释,而且不一定与预期结果一致。相反,为了跟踪您想要的图像翻译的进度,可视化结果非常重要。如果您经常进行测试,您甚至可以在几个不同的时期看到许多不错的结果。默认情况下,实现代码每 5 个时期保存一次模型的权重。训练之后,您可以使用这些检查点权重中的任何一个来测试模型的输出。您所要做的就是运行下面的代码行,并修改数据集位置、模型名称和纪元编号。测试图像将保存在结果文件夹中。
*python test.py --dataroot ./datasets/sketch2festivedragon --name cycle_gan_dragon_rg --model cycle_gan --epoch 35*
看着每个时期的测试输出,我发现所有训练中都有可爱的装饰龙。当我在寻找艺术耀斑时,龙与耀斑数据集的完美相似并不太重要。接近训练结束时,龙开始看起来过于扭曲,这是有道理的,因为模型试图扭曲输入数据以匹配耀斑数据集。我收集了一些我最喜欢的照片,显示在本文开头的图片中,拍摄于几个不同的时代。我特别喜欢大约在第 35 纪元创作的龙,在那里模型的变形给龙的草图添加了炽热和微弱的色彩。以下是来自第 35 纪元的一些样本。
CycleGAN 从第 35 纪元产生了龙(图片由作者提供)
我还对网络如何很好地学会扭曲随机的彩色形状作为输入图像来形成龙一样的图画印象深刻。下面是网络在训练结束时画出的几个龙头样品。
网络创作的龙素描。左边是耀斑数据输入,右边是从 epoch 200 生成的龙草图(图片由作者提供)
由于 2021 年是牛年,没有几只喜庆的牛,我无法结束这篇文章。我收集了大约 170 幅类似牛的快速绘制牛图,并重复了我上面描述的步骤,以在这个新的迷你数据集上训练 CycleGAN。训练在大约 1 小时 40 分钟内完成。下面是我最喜欢的一些输出示例。
CycleGAN 输出节日公牛样本(图片由作者提供)
只是为了好玩,我很好奇在 dragon 数据集上训练的模型将如何在 ox 绘图输入上执行。下面是一个使用 epoch 35 龙砝码的样品——一个喷火砝码🐲+🐂
龙牛(图片由作者提供)
感谢您的阅读,再次感谢甘喜肥菜🐉
使用 VGG 人脸数据集、Dlib 和 OpenCV 的名人重身幽灵查找器
杰尔·埃尔维斯在斯塔万格,欧洲最好的埃尔维斯模仿者— 这张照片 是由 贾勒滕 拍摄的。
在本文中,我们将探索如何创建一个程序,返回看起来最像输入图像的名人的名字。
这个应用程序很酷,因为你可以用类似的方法做很多事情,比如情绪检测或手势识别。
我们将使用的数据是 VGG 人脸数据集;你可以从这个链接下载它https://www.robots.ox.ac.uk/~vgg/data/vgg_face/【1】
该数据库包含 2622 个身份。每个身份都有一个文本文件,其中有几个指向其图像的链接。为了加快这个过程,我们将只使用每个身份的 5 张图片。
基本策略包括 2 个步骤:登记和推理。
注册
在注册步骤中,我们将面部标志检测应用于每个名人的 5 幅图像中的每一幅。面部标志点通过 Dlib 面部识别器。Dlib 模型将输出一个对每张脸都是唯一的响应,这个度量存储在一个 Numpy 数组描述符中。
VGG 数据集的一个优点是已经执行了人脸检测,每个 URL 都有一个左上角和一个右下角与之相关联的点。这是一个很大的帮助,因为人脸检测是耗时的。
招生基本图
我有坏消息和好消息要告诉你。坏消息是,2,622 个身份的 5 个图像是 13,110 个图像,所以做好准备——这将需要一段时间。我在周末运行了它,大约花了 6 个小时来处理数据集。
它如此缓慢的原因之一是因为你必须从一个网址打开图像。这大大减慢了这一过程,但使公众更容易获得数据集,因为作者不需要处理每张图像的版权规则。
好消息是你只需要做一次;运行注册程序后,描述符数组将保存为。npy 文件。
一旦我们有了名人描述符,我们就可以做推论了。
推理
在推断步骤中,检测输入图像的面部及其界标。然后,地标通过 Dlib 人脸识别器,该识别器将输出描述符。
推理基本图
我们剩下要做的就是计算输入图像描述符和数据集描述符之间的距离。
计算两幅图像之间的距离
就是这样,你的著名二重身是一个名人,他的描述符最小化了到输入图像描述符的距离。
下图是我的结果。
我和我的“二重身”达伦·克里斯编辑致谢:凯西·哈钦斯/Shutterstock.com
我对结果很满意,但我想确定它是否有效。所以,我用阿曼达·塞弗里德的照片测试了我的程序,的确,她看起来像她自己!
我的 cmd 剪影——阿曼达·塞弗里德看起来确实像她自己。特写闪光灯图片社/Shutterstock.com
请参见下面的实现:
我的项目目录
注册计划
推理程序
我希望你们发现这篇文章信息丰富。如果你有任何改进的建议或者有任何问题,请在评论中告诉我!
[1] O. M. Parkhi, A. Vedaldi, A. Zisserman
Deep Face Recognition
British Machine Vision Conference, 2015.
光发射光谱中的细胞孤立点检测:MacroPCA 综述
行方向异常值检测是大多数光谱学家/化学计量学家处理不一致读数时采取的最常见措施。然而,MacroPCA 是在光谱分析中考虑细胞间异常值的替代方法。
图片由詹姆斯·惠勒拍摄。
在化学计量学中,多变量校准使用通常由矩形表格表示的数据,其中 i 行是通过光谱方法分析的样品(观察值),而 j 列是由检测系统在一个波长范围内逐步增量记录的信号强度(预测变量)。多元校准旨在应用广泛的统计、机器学习和日益深入的学习方法,从记录的光谱数据中预测各种目标变量。然而,光谱学家和化学计量学家已经研究了一段时间的最紧迫的问题之一是开发用于光谱数据中异常值检测的稳健方法。这些数据通常是高维的(具有, j≫ i ),这使得难以使用基于协方差矩阵的逆矩阵的异常值检测方法。基于投影寻踪和最小协方差行列式的鲁棒主成分分析(ROBPCA)就是为此而设计的。(在我之前的文章中有更多关于这方面的内容,这里是。)
像大多数异常值检测方法一样,ROBPCA 被开发来执行行异常值检测,即显著偏离大多数观察值的观察值。然而,近年来,随着离群点传播研究的进展( Alqallaf 等人,2009 )【开放获取】,细胞离群点检测在统计学和化学计量学中产生了越来越多的兴趣,因为它是行离群点检测的补充。事实上,可疑单元可以出现在数据矩阵中的任何地方,这提供了手头数据质量的更清晰的图像。在本文中,我们简要比较了两种稳健的基于 PCA 的方法,即 ROBPCA 和 MacroPCA,用于检测植物组织样品的激光诱导击穿光谱(LIBS)光谱中的异常值。
在 LIBS 分析之前,植物样品被清洗、干燥、均质化和研磨。记录的 LIBS 光谱已经标准化,以减少脉冲到脉冲的波动(图 1)。
图 1: 植物组织的原始 LIBS 光谱(上图)和归一化 LIBS 光谱(下图)。图片作者。
行离群点检测
如图 2 所示,当一个观察被标记为异常值(黄色)时,我们经常发现自己需要选择删除整行。但是,在多元校正中,除了将数据拟合到校正模型而不是将模型拟合到数据的意外结果之外,从数据集中移除多行的成本也很高。此外,移除几行会显著改变目标变量的分布,从而改变校准域。大多数行异常值检测的另一个问题是假设至少一半的行是无异常值的,这意味着标记为异常值的观察值的数量不应超过 i /2。
图 2: 一个观察被标记为异常值(黄色)。常规观察(黑色)。图片作者。
我们首先执行 ROBPCA 来检测数据集中的行异常值,这涉及到分数散点图以及相应的异常值图的可视化。在图 3 中,我们可以看到,我们的数据集仅包含有限数量的被视为不良杠杆作用点(即,高正交和分数距离)的 LIBS 光谱。
图 3:rob PCA 建模的结果。图片作者。
单元格异常值检测
在下面的图 4 中,通过采用不同的概念方法,单元式异常值检测特别令人感兴趣,因为它允许更仔细地观察外围单元(或列),特别是在确定我们的高维光谱数据中的哪些波长变量对观察到的外围行为更负责时。
图 4: 标记为异常值的细胞(黄色)。常规细胞(黑色)。图片作者。
事实上,一种新的 PCA 方法结合了两种现有的稳健方法,即 DetectDeviatingCells(rousse uw 和 Van Den Bossche,2018 )[Open Access]和 ROBPCA ( Hubert 等人,2005 )已被引入,以抵抗单元和行方向的异常值。该方法被命名为 MacroPCA。,2019)【Open Access】,代表 PCA 允许遗漏和 Cellwise & Rowwise 离群值(图 5)。
图 5: 考虑到缺失和单元方式&行方式异常值的 PCA(macro PCA)。图片作者。
ROBPCA 和 MacroPCA 的比较
比较这两种方法的最佳方法是绘制它们各自的细胞图(图 6)。细胞图是对不寻常细胞的有力展示。更具体地说,非常大的像元值用红色表示,而非常小的像元值用蓝色表示。此外,单行上的大量异常细胞会污染整行,使观察结果被标记为异常值。这同样适用于列。(关于代码的更多细节,请点击)。从图 6 中可以看出,除了强度与典型值相比不寻常的波长(列)之外,MacroPCA 还允许识别许多有问题的观察值(行)。
图 6: ROBPCA(上图)和 MacroPCA(下图)细胞图。图片作者。
摘要
正如本文开头所提到的,删除是大多数光谱学家用来处理行方向异常值的最常见操作之一。然而,正如我们所见,MacroPCA 等替代方法允许在光谱分析中同时考虑行方向和单元方向的异常值。除此之外,在大多数校准工作中,校准样本的数量通常是有限的,因此有另一种方法来处理异常值可以降低消除异常值的过度热情。
中心网,解释
是什么让 CenterNet 有别于其他对象检测体系结构
湿狗热图。来源:尤里阿尔莫格摄影
CenterNet 是一种无锚点对象检测架构。这种结构具有重要的优点,因为它在后处理中用更优雅的算法代替了经典的 NMS(非最大抑制),这对于 CNN 流来说是自然的。这种机制能够实现更快的推理。参见图 1。
图一。COCO mAP 与不同模型的推理时间,由 CenterNet 作者测量。由 Uri Almog 创建的图像。
正如我在关于物体检测的帖子中所描述的,大多数检测器使用多个(通常是 3 或 5 个)基本框或锚来编码它们的预测。输出要素地图中的每个空间像元预测几个盒子。每个框预测被编码为相对于单元格中心的 x 和 y 偏移,以及相对于相应锚点的宽度和高度偏移。完整的解释可以在我的 YOLOv3 帖子中找到。
基于锚点的检测的问题是它会产生许多垃圾预测:例如,YOLOv3 为每幅图像预测了超过 7K 个盒子。然后,后处理块需要对重叠的预测进行成对检查,如果重叠很高(对于 COCO 测试集,通常 IoU > 0.7),则预测被认为是指同一对象,并且具有较低置信度的预测被丢弃。这种方法有两个主要缺陷:
- 其复杂性与预测数量的平方成正比——对于基于锚的高精度模型(使用高分辨率输入)来说尤其糟糕。
- 它迫使网络在 NMS 之前解码所有预测,对大多数不相关的预测执行更多的时间和功率消耗操作。
论文由周等人于 2019 年发表,以物为点探索了无锚点预测。在训练集准备阶段,他们在地面实况(GT)框中心绘制一个带有 delta 函数的地图。然后,他们使用高斯滤波器涂抹这些中心,生成一个平滑的分布,在对象中心达到峰值。然后,该模型使用两个预测头:一个训练来预测置信度热图,另一个训练,如在其他检测器中一样,来预测盒子尺寸和偏移的回归值,这是指由第一个训练头预测的盒子中心。参见图 2。
图二。中心网络热图预测。蓝色表示低置信度,红色表示高置信度,表示单元格包含一个方框中心。CenterNet 为每个类预测了一个单独的热图。由 Uri Almog 创建。图片来源:乌里阿尔莫摄影
现在是最酷的部分:我们可以直接使用置信度热图来删除不相关的预测,而无需解码盒子,也不会破坏深层的 CNN 流程。参见图 3:
- 在热图上运行 maxpool 3x3/1。这将提高每个细胞一点点,除了在非常高峰。在非常接近峰值的地方产生一个小的平坦区域。
- 在 maxpool 输入和输出之间运行布尔元素比较。以 FP 值的形式返回值(0。或者 1。).这将创建一个新的热点图,其中除了值为 1 的局部最大值之外,所有位置都为 0(因为 maxpool 操作提升了每个值)。
- 在阶段 2 的输出和最大池的输入之间运行元素级乘法。这将使每个局部最大值返回到其置信水平,将非最大值保留为 0。
- 像在其他检测器中一样应用置信度阈值。
- 仅解码对应于幸存最大值的框。
图 3。中心网 NMS 流量。图中显示了流程列表中的阶段 1-3。第二个热图在置信度峰值附近包含一个小而平坦的红色区域。所有其他值都略高于它们的原始值。这在元素式比较输出中产生一个奇点,然后通过元素式乘法将该奇点缩放回置信值。资料来源:Uri Almog。
作者使用 DLA34 和沙漏-101 主链测试了遵循上述机制的经典 NMS 的需要,并得出结论,影响很小(第一种情况下 0.7% mAP,第二种情况下 0%)。
这个检测框架已经被最初的作者和其他研究人员用于更多的检测任务,例如姿态估计和 3D 对象检测。带有 ResNet18 和 ResNet50 主干的训练过的检查点可以在 GluonCV 模型动物园—检测下载。
结论
CenterNet 是一种深度检测架构,消除了对锚点和计算量大的 NMS 的需求。它基于这样的认识,即盒预测可以基于它们的中心位置而不是它们与对象的重叠来排序相关性。这种见解现在正被用于其他深度学习任务。
我的其他帖子:
中心极限定理
关于数据科学家统计推断基石的相关性。
正态分布。由作者生成。
每个 STATS101 课程都讲授中心极限定理,或称 CLT。介绍这一主题的典型方式是展示公式,讨论假设,并进行一些涉及正态密度函数的计算。缺少的是 CLT 与数据科学家日常工作的相关性。让我试着指出来。
人口、样本和抽样分布
要了解 CLT,必须熟悉总体、样本和抽样分布的概念。
总的来说,统计学就是得出对整个 T2 人口有效的结论。人口是我们感兴趣的一切。当我们进行选举投票时,人口可以是所有有权投票的人。当我们研究推动广告点击率的因素时,人群就是我们可能向其展示广告的所有人。
然而,通常我们没有全部人口的数据。想象一下在你的国家对所有公民进行民意调查,或者向目标群体中的每个人展示你的广告。通常,我们只有人口中某个子集的数据,称为样本。这就是统计学的用武之地:它是一门仅基于样本得出关于人口的正确结论的科学。
人口是我们感兴趣的一切。样本是我们有数据的总体的一个子集。
重要的是要认识到,如果我们可以有一个以上的样本,他们可能会略有不同。想想不同的民意测验专家。他们正在进行类似民意调查,但是每个人都询问了不同样本的个人的政治倾向。因此,每个民意测验专家预测的特定政党的投票率会略有不同。所有民意测验专家的结果形成了所谓的**抽样分布。**它反映了统计分析结果的不确定性,这种不确定性是由于我们只有一个来自总体的特定样本而产生的。如果我们有不同的样本,我们的结果可能会略有不同。
抽样分布反映了由于我们只有一个特定的数据样本而产生的结果的不确定性。
中心极限定理
进入 CLT。其内容如下:如果我们从总体中抽取许多样本,并计算每个样本的平均值,那么这些平均值在样本中的分布(即平均值的采样分布)将是众所周知的正态分布,平均值与总体平均值相同,标准差等于总体标准差除以每个样本的观察次数。即使人口不是正态分布也是如此。
CLT:从多个样本计算出的平均值将形成一个具有已知平均值和标准偏差的正态分布。
让我们用一些数据来测试 CLT。考虑一下 100 万人的这种完全非正态的收入分布。这些人是我们关心的每一个人,我们的人口。
人口中的收入分配。由作者生成。
这个群体的平均收入是 2501 美元,标准差是 1444 美元。
现在,让我们从 1,000,000 人口中随机抽取 1000 个样本,每个样本 100 人,计算每个样本的平均收入。下面显示的是 1000 个样本中的前 4 个。
样本间的收入分布。由作者生成。
这 1000 人的平均收入分布是什么样的?几乎是正常的!
平均收入的抽样分布。由作者生成。
平均收入的抽样分布的平均值是 2502 美元,其标准偏差是 149 美元。顺便说一下,这些数字来自 CLT。根据定理,抽样分布的平均值应该与总体平均值相同(是 2501 美元——非常接近!),而抽样分布的标准差,称为标准差,应该是总体标准差除以每个样本的观测值个数的平方根,这里:$1444 / √100 = 144(差不多!).如果我们采集更多的样本,得到的样本分布将更接近正态分布。
最后一句话:我们已经研究了平均值的抽样分布,但是总和的正态性也成立。这是因为平均值就是总和除以一个常数。
我们刚刚从经验上验证了 CLT 确实有效。但这有多大关系呢?
CLT 与数据科学的相关性
你曾经拟合过线性回归模型吗?如果是这样,你依赖于 CLT。在回归模型中,目标取决于一个或多个特征加上附加误差项。我们假设这个误差项是正态分布的(相应地,在贝叶斯方法中,我们将目标建模为正态分布的随机变量)。这种假设的正态性可以用 CLT 来证明:我们可以把误差看作是由忽略重要特征或随机性引起的许多独立误差的总和。这许多误差中的每一个都可以有任何分布,但是它们的总和在 CLT 看来是近似正态的。
回归模型中误差正态性的假设可以通过将误差视为许多独立误差之和的 CLT 来证明。
类似的逻辑可以用来解释为什么现实世界数据集中如此多的变量看起来是正态分布的。这并不是因为正态分布在自然界中以某种方式占优势,而是因为我们经常可以将单个测量值视为许多小效应的加权平均值。想想你的考试成绩,它是你的知识的函数,但也是你考试当天的感觉,你前一天晚上是否睡得好,以及考试中出现了材料的哪些部分。
真实世界的数据往往类似于正态分布,因为测量值通常可以被视为许多小效应的平均值。
最后但同样重要的是,CLT 是假设检验的基石。在经典的测试方法中,我们需要提出所谓的参考分布:一个在一些假设下已知的分布,称为零假设。这有时可能很难,但当我们可以利用 CLT 时就不会了!
考虑这个例子:一家专门从事广告重定向的公司吹嘘他们精确定位的广告平均获得 20%的点击率。你用它们进行 1000 次展示的试验,观察 160 次点击。是针对性不够好,还是运气不好,平均 20%还是合理的?
由于数据是二进制的(点击和未点击),我们可以使用二项式分布对它们建模。如果关于 20% CTR 的说法是合理的,那么数据最好用平均值为 0.2 的二项式分布来描述。这个分布的标准差是 0.4(由于二项分布的标准差是√μ(1-μ),这里μ是均值:这里√(0.2*0.8) = 0.4)。
CLT 让我们很容易地推导出一些假设检验的参考分布。
因此,CLT 告诉我们,如果关于 20%点击率的说法是合理的,点击率的抽样分布将是正态分布,均值为 0.2,标准差为 0.4 / √1000 = 0.013。让我们将这一分布与我们在试点项目中观察到的 0.16 的 CTR 一起绘制出来。
CTR 与观测 CTR 的参考分布。由作者生成。
我们可以立即看到,如果关于 20% CTR 的说法是真的,我们观察到的 CTR 将是非常糟糕的运气。最有可能的是,该公司吹嘘得有点过头了!
查看我的假设检验者指南,看看如何量化这种厄运,形式化假设检验框架,并用它来避免做出愚蠢的决定。
感谢阅读!
如果你喜欢这篇文章,为什么不在我的新文章上 订阅电子邮件更新 ?而通过 成为媒介会员 ,就可以支持我的写作,获得其他作者和我自己的所有故事的无限访问权。
需要咨询?你可以问我任何事情,也可以在这里 为我预约 1:1 。
也可以试试 我的其他文章 中的一篇。不能选择?从这些中选择一个:
中心极限定理——解释清楚
抽样分布,标准误差
来自佩克斯的阿奇·比纳米拉的照片
中心极限定理
中心极限定理是推断统计中的重要概念之一。推断统计学是指从样本中对总体进行推断。
当我们从总体中抽取一个随机样本并计算样本的平均值时,由于抽样波动,它可能与总体平均值不同。样本统计量和总体参数之间的变化称为抽样误差。
由于这种抽样误差,可能很难从样本统计中推断出总体参数。中心极限定理是推断统计学中的重要概念之一,它帮助我们从样本统计量中推断出总体参数。
让我们在本文中详细了解一下中心极限定理。
参考我的 推理统计 的故事——了解概率和概率分布的基础知识
目录
- 统计、参数
- 抽样分布
- 标准误差
- 采样分布属性
- 中心极限定理
- 置信区间
- 可视化采样分布
什么是统计和参数?
统计 →代表样本特征的数值称为 统计 。
参数 →代表人口特征的数值称为 参数 。(我们从人口统计中推断出的数值)
统计量→样本标准差 S ,样本均值 X
参数→总体标准差 σ ,总体均值 μ
我们从统计数据到参数进行推论。
抽样分布
抽样 →指从总体中抽取有代表性的样本。
抽样分布 →抽样分布是从总体中抽取的给定样本的样本统计的所有可能值的分布。
均值抽样分布是从总体中选取的给定样本量的样本均值分布。
抽样分布的步骤:
- 我们将从总体中随机抽取 (s1,s2…sn) 。
- 我们将计算样本的平均值 (ms1,ms2,ms2…msn)。
- 然后我们将计算抽样平均值。 (ms)
ms=(ms1+ms2+…msn)/n
n→样本量。
[现在我们已经计算了抽样平均值的平均值。接下来,我们必须计算抽样平均值的标准偏差]
标准误差
抽样分布中样本均值的可变性是标准误差。抽样分布的标准偏差称为平均值的标准误差。
平均值的标准误差=总体的标准偏差/sqrt(n)
n-样本量
[标准误差随着样本量的增加而减小。因此大样本有助于减少标准误差]
抽样分布属性。
- 抽样平均值等于总体平均值。
[当我们从人群中随机抽取许多样本时,这些差异就会相互抵消。因此,抽样平均值等于总体平均值]
2.抽样分布的标准差等于总体的标准差除以样本大小的平方根。
作者图片
中心极限定理
中心极限定理指出,即使总体分布不是正态分布,如果我们从总体中抽取足够大的样本,抽样分布也将是正态分布。[对于大多数分布,n>30 将给出一个接近正态的抽样分布]
抽样分布性质也适用于中心极限定理。
置信区间
我们可以说,通过使用置信区间,总体均值将位于某个范围之间。
置信区间是总体参数的取值范围。
*总体均值的置信区间=样本均值+(置信水平值)均值的标准差
Z →与置信度相关的 Z 分数。
最常用的置信度
99%置信水平→ Z 得分= 2.58
95%置信水平→ Z 得分= 1.96 90%置信水平→ Z 得分= 1.65
使用 Python 和 Seaborn 的采样分布
例如:
- 假设我们要计算一所学校所有学生的平均分数。
学生人数= 1000。
population1=np.random.randint(0,100,1000)
2。检查人口分布
sns.distplot(population1,hist=False)
人口分布
人口不是正态分布的。
3。我们将从人口中随机抽取不到 30 人的样本。
sample_means1=[]
for i in range(0,25):
sample=np.random.choice(population1,size=20)
sample_means1.append(np.mean(sample))sample_m1=np.array(sample_means1)
4。采样分布
sns.distplot(sample_means1,hist=False)
plt.title(“Sampling distribution of sample mean”)
plt.axvline(sample_m1.mean(),color=’green’,linestyle=’ — ‘)
plt.xlabel(“Sample Mean”)
抽样分布接近正态分布
5。让我们检查一下抽样平均值和标准误差。
print (“Sampling mean: “,round(sample_m1.mean(),2))
print (“Standard Error: “,round(sample_m1.std(),2))
#Output:
Sampling mean: 47.96
Standard Error: 6.39
标准误差= 6.39 。让我们增加样本量,检查标准误差是否减小。
6。取大于 30 的样本量,并计算取样平均值
sample_means2=[]
for i in range(0,100):
sample=np.random.choice(population1,size=50)
sample_means2.append(np.mean(sample))sample_m2=np.array(sample_means2)
7。采样分布
sns.distplot(sample_means2,hist=False)
plt.title(“Sampling distribution of sample mean”)
plt.axvline(sample_m2.mean(),color=’green’,linestyle=’ — ‘)
plt.xlabel(“Sample Mean”)
抽样分布
现在抽样分布是正态的。
8。计算抽样平均值和标准误差
print (“Sampling mean: “,round(sample_m2.mean(),2))
print (“Standard Error: “,round(sample_m2.std(),2))# Output:
Sampling mean: 48.17
Standard Error: 3.89
增加样本量后,标准误差减小。现在标准误差是 3.89。
9。让我们验证一下我们的人口平均数
print (“Population Mean: “,round(population1.mean(),2))#Output:
Population Mean: 48.03
我们计算出抽样平均值为 48.17 ,大约等于总体平均值 48.03
10。计算 99%置信水平的置信区间。
Lower_limit=sample_m2.mean()- (2.58 * (sample_m2.std()))
print (round(Lower_limit,2))
#Output: 38.14Upper_limit=sample_m2.mean()+ (2.58 * (sample_m2.std()))
print (round(Upper_limit),2)
#Output: 58.19
置信区间= 38.14 — 58.19
结论
在本文中,我介绍了中心极限定理、抽样分布、标准误差和置信区间。希望你们都喜欢。
感谢阅读!
我的另一个关于统计学的博客。
https://pub.towardsai.net/inferential-statistics-for-data-science-91cf4e0692b1 https://pub.towardsai.net/exploring-descriptive-statistics-using-pandas-and-seaborn-1b8501e1f27f https://medium.com/analytics-vidhya/important-terms-in-statistics-machine-learning-4bfa5962e9be https://pub.towardsai.net/hypothesis-testing-test-of-mean-variance-proportion-77ec2bfdd749
请关注此空间,获取更多关于 Python 和数据科学的文章。如果你喜欢多看我的教程,就关注我的 中LinkedIn推特 。
**点击这里成为中等会员:https://indhumathychelliah.medium.com/membership
用 Python 实现过程改进的中心极限定理
估计退货管理的工作量,假设从商店收到的每箱商品数量呈正态分布。
中心极限定理框架—(图片由作者提供)
退货管理,通常被称为逆向物流,是从你的配送中心的零售点退回物品的管理。
在接收之后,产品被分类,组织,并检查质量。如果它们状况良好,这些产品可以在仓库中重新进货,并添加到库存计数中等待重新订购。
在本文中,我们将看到中心极限定理如何帮助我们基于历史记录的平均值和标准偏差使用正态分布来估计退货管理的流程的工作量**。**
💌新文章直接免费放入你的收件箱:时事通讯
**SUMMARY**
**I. Scenario
Problem Statement** As the Inbound Manager of a multinational clothing retail company you are in charge of workforce planning for returns management.
**Question** Can you estimate the probability to have less than 30 items per carton that you will receive every week?
**II. Central Limit Theorem** 1\. Definition2\. Application
3\. Probability to get <30 items per carton?4\. 95% probability to have less than k items per case? **III. Conclusion**
一.情景
问题陈述
你是一家跨国服装零售公司的入境经理,这家公司以男女老少的快速时尚服装而闻名。
你的一个主要问题是对退货流程的工作量缺乏了解。事实上,由于系统限制,您在收到商店退货之前不会收到提前发货通知(ASN)。
- 你用托盘接收从卡车上卸下的纸箱
卸货区—(图片由作者提供)
2。你打开箱子,检查退回的物品
质检工作站—(图片由作者提供)
对于每件商品(衬衫、连衣裙……),您的操作员需要执行:
- 质量检查,以确保产品可以重新进货
- 重新标记
- 重新包装
您知道每个项目的生产率,并且您希望根据您在一周内将收到的个案例来估计小时的工作量。
根据过去 24 个月的历史数据,您可以:
- 平均每箱 23 件
- 第 7 项的标准差
你的团队的规模通常是每个案例最多处理 30 件物品。如果超过这个阈值,你需要雇用临时工来满足你的每日产能目标。
问题
你能估计出每周收到的每箱少于 30 件商品的概率吗?
二。中心极限定理
中心极限定理被我的好朋友 Abdelkarim 定义为**‘数学中最美的定理’**,它建立了当我们添加独立的随机变量时,它们的归一化和趋向于正态分布,即使原始变量本身不是正态分布。
1.定义
为了简化理解,让我们介绍一些符号:
符号—(作者提供的图片)
在我们的例子中,总数量是从商店收到的纸箱的整个范围,平均每箱 = 23 件,标准差 σ =每箱 7 件。
如果你取 n 个纸箱样品 X n (例如一个样品可以是某一天收到的一批纸箱),我们有:
方程式—(图片由作者提供)
换句话说,这意味着如果我们使用 n 个样本随机测量每箱商品的数量,并且我们假设观察值独立且同分布(即同分布),样本平均值的概率分布将接近正态分布。
注意:为了确保我们有独立且同分布的观察结果,我们假设样本是基于来自所有商店的退货批次构建的,范围覆盖 100%的有效 SKU。
2.应用
然后,可以假设平均件数/箱遵循正态分布,平均每箱 23 件和 7 箱标准偏差。
人口正态分布—(图片由作者提供)
每箱少 30 件的概率是多少?
3.获得<30 items per carton?
Probability to have less than 30 items/carton is **84.13%**
Population Normal Distribution — (Image by Author)
代码的概率
4.每箱少于 k 件商品的概率为 95%?
您的 KPI 目标是至少 95%的退货在同一天得到处理。
为了处理 95%的预期工作负载,您需要假设多少项来评估您的团队?
We have 95% of probability that X <= **34.51 items/carton**
人口正态分布—(图片由作者提供)
如果你根据 35 件/箱来确定你的团队规模,你将平均达到目标的 95%。
三。结论
关注我的 medium,了解更多与供应链数据科学相关的见解。
这种方法让你有可能根据强大的统计工具支持的假设来确定你的团队规模。
这种分析可以每年进行几次,尤其是在业务不断发展的情况下(更高数量的收藏、电子商务或新店开业)。
关于我
让我们连接上 Linkedin 和 Twitter ,我是一名供应链工程师,正在使用数据分析来改善物流运作和降低成本。
如果你对数据分析和供应链感兴趣,可以看看我的网站
参考
[1]使用 Python、Samir Saci、链接的线性规划优化劳动力规划