因果分析(Causal Analysis)是分析变量彼此之间的因果关系。
因果推断(Casual Inference)是基于原因推结果,是因果分析的一部分。
因果分析是数据分析、数据科学中重要的方法,广泛应用于 A/B Test、异常分析、用户增长等领域。
因果分析基础
因果分析的概念
原因和结果
原因和结果的关系
分析彼此之间的因果关系
因果分析的要素
因果分析的三要素是:原因、结果、关系
原因可能有多个,导致的结果也可能是多个:
这里把问题聚焦,仅探讨抽象的因果关系,所以因果分析可以抽象如下:
原因
$\Longrightarrow$
结果
原因
$\Longleftarrow$
结果
原因
$\Longleftrightarrow$
结果
因果分析的分类
按照因果分析的三要素,把因果分析分为三类:
第一类:由原因推结果,又称为因果推断(Causal Inference)
第二类:由结果找原因
第三类:原因和结果互推
因果分析的方法
A/B Test 是一种随机对照实验,用于实验验证因果关系。A/B Test,是因果实验的代表,
是因果归因、数据归因的主要手段。
A/B 实验是一种单因素归因,适用于验证单因素的因果关系。
具体可参考:
A/B Test 的概述、原理、公式推导、Python实现和应用
鱼骨图分析
鱼骨图分析(Cause and Effect Analysis Chart,也称因果分析法)是典型的由结果找原因的方法。
鱼骨图分析法是对一个问题,分类别、穷举性地列出所有影响因素,进行进一步分析。
其中鱼头是结果(问题),大鱼骨是原因的类别,小鱼骨是具体原因。
鱼骨图分析适用于头脑风暴,寻找多个可能的原因。
因果分析应用
因果分析的典型场景是:
开发者:Goudet Olivier
简介:基于神经网络 CGNN 的图形化(networkx)因果推断。基于 NumPy,sklearn,PyTorch,bnlearn, 和 pcalg
GitHub
causalml
开发者:uber
简介:基于机器学习的因果推断的综合包。主要功能包括:
基于实验数据,计算 CATE 和 ITE
基于决策树的算法
Meta-learner algorithms
工具变量算法
基于神经网络的算法
GitHub
EconML
开发者:微软
简介:机器学习因果推断综合包,对标 causalml,安装相对容易一些。主要功能:
主要用于计算 HTE 异质性处理效应
提供模型的解释,以及系数的CI置信区间
基于观测数据,进行因果推断
GitHub
因果分析总结
因果分析的本质
因果分析的本质就是论证因果关系的充分性、必要性
充分条件:原因
$\Longrightarrow$
结果
必要条件:原因
$\Longleftarrow$
结果
因果关系和相关关系
因果关系大多数情况下有相关关系,但相关关系不一定是因果关系
因果分析的发展趋势
原因
$\Longrightarrow$
结果
元分析(多个随机试验的整合)
因果推断(因果推断机器学习)
原因
$\Longleftarrow$
结果
破界创新(逻辑不适合,奇点下移,找到新的底层假设)
《精益数据分析》作者认为:“发现相关性可以帮助你预测未来,而发现因果关系意味着你可以改变未来”,
所以重视因果关系,重视因果分析吧。
因果分析可以定位问题,挖掘商业价值,洞见机会,在互联网领域有广泛的应用,
比如因果推断、A/B Test、用户增长、异常分析和流失分析等。
但是商业是个复杂生态,因果分析是个很好的分析工具,还要结合具体的用户、业务、数据进行针对性的分析。
因果分析的原理、方法论和应用
破界创新:从结果到原因,再从原因到结果
目前主流的 Python 因果推断包和教材
A Survey on Causal Inference
因果推断:从概念到实践