分析数据的相关性和因果性

分析数据的相关性和因果性

资料

相关书籍:

结构因果框架主要的文献:

  • 《统计因果推理入门》- Judea, Pearl
  • J. Pearl. Causality: models, reasoning and inference, volume 29. Springer, 2000.
  • J. Pearl. Causal inference in statistics: An overview. Statistics surveys, 3:96–146, 2009.
  • https://blog.csdn.net/l8947943/article/details/128946593

相关性挖掘(机器学习、大数据、数据挖掘)

实际上,在面对少量数据时关联分析并不难,可以直接使用统计学中有关相关性的知识,这也正是机器学习界没有研究关联分析的一个重要原因。

关联分析的困难其实完全是由海量数据造成的,因为数据量的增加会直接造成挖掘效率的下降,当数据量增加到一定程度,问题的难度就会产生质变,例如,在关联分析中必须考虑因数据太大而无法承受多次扫描数据库的开销、可能产生在存储和计算上都无法接受的大量中间结果等,而关联分析技术正是围绕着“提高效率”这条主线发展起来的。在R. Agrawal等人首先对关联规则挖掘进行研究之后,大批学者投身到这方面的研究中并产生了很多成果,代表性工作有R. Agrawal和R. Srikant的Apriori算法以及J. Han等人的FP-Growth算法等。

--- 《机器学习与数据挖掘》

因此,分析数据的相关性和因果性,可以从下面两个角度:

  • 基于统计学的相关性:因果分析
  • 针对大数据的算法

数据的相关性

Pearson 相关系数

高中的时候我们都学过相关系数,对于两个二值的变量有一个表,然后根据公式可以有一个相关系数,从而判断是否存在线性关系。

φ = (ad - bc) / √((a+b)(c+d)(a+c)(b+d))

这个相关系数进一步拓展到连续变量就是Pearson 相关系数Pearson 相关系数表示为 \(\rho(X,Y) = \sigma_{xy}/(\sigma_x\sigma_y)\),其中,\(\sigma_{xy}\)\(X,Y\) 的协方差,\(\sigma_x,\sigma_y\) 分别是 \(X,Y\) 的标准差。

对于很多不同数据形成的一个表,我们可以列出数据之间两两的Pearson 相关系数,形成一个相关系数矩阵,方便我们进一步观察哪两个数据之间相关。

斯皮尔曼秩相关系数

然而,Pearson 相关系数假设变量之间关系大致呈线性,且数据最好服从二元正态分布(对大样本要求可放宽)。不符合假设的时候,我们可以使用斯皮尔曼秩相关系数。它衡量两个变量之间单调关系的强度和方向(无论是否为线性)。它的思想非常简单,为每个数据点在X和Y内部分配排名(秩),得到两个秩序列,然后对这两个配对好的秩序列直接套用皮尔逊公式。通过这种分配排名的方式,就可以更好地衡量非线性关系的同时,突出相关性。

因果分析

统计学只能给出相关性的表示,而无法给出因果关系的表示。即使是数学表示上,也缺乏这种单向性。随着因果分析在近年来的发展,相关理论应当被更广泛地应用。

背景

重要性:辛普森悖论

  • 数据总体上的结果,可能和内部一小块细分数据相反!(辛普森悖论)
  • 相关性不是因果关系。统计学知识通常只能分析出相关性。

样例1

患者 患者服药情况 患者未服药情况
症状患者数 症状率/% 症状患者数 症状率/%
男性患者 81 例(共 87 例) 93 234 例(共 270 例) 87
女性患者 192 例(共 263 例) 73 55 例(共 80 例) 69
合计 273 例(共 350 例) 78 289 例(共 350 例) 83

对于男性和女性各自有效,但是为什么合起来看就没有效果了呢?难道说,医生如果知道性别就可以开药,不知道性别就不能开药吗?

因为女性的激素让她们更不容易痊愈。而因为允许患者自由选择是否服药,导致数据中,女性更倾向于服药,男性倾向于不服药。导致整体的数据受到了数据分布的偏差。更进一步地,女性在服药中权重更大,因此整体的服药痊愈率被拉低到女性服药后的结果。整体的不服药痊愈率,被拉高到男性的结果。

广告推荐,策略投放的应用

因果推理的用途: - 探索变量之间的关系,即相关性。常规机器学习在应用中主要学习的就是变量之间的相关性。 - 研究实施某种干扰的效果,这一层次在营销领域使用得较多,典型的例子是uplift model。举个例子,我们对某个地方或者某一群用户发放优惠券,我们考虑发多少优惠券、对哪些人发放优惠券,实施这一行为后产生的效果或者收益是否符合业务预期。这类方法被称为干扰或者干预。 - 结果考虑原因,被称为反事实推断,即如果我想得到某种结果我们应该做什么改变。现在大多数因果建模都是从这一层次来进行探索。

因果分析的知识体系

因果分析有几个著名的框架:“潜在结果框架” potential outcome framework和 结构因果框架 structural causal model。它们是两种完全不同的范式。结构因果框架致力于从纯观测数据中发现因果关系,自动学习因果结构的骨架或方向。而潜在结果框架旨在精确估计一个特定干预或处理(Treatment)对某个结果(Outcome)的定量影响。它通常不关心整个系统的全图,而是聚焦于一对具体的因果关系。潜在结果模型主要用于估计变量之间一度相关的影响(i.e,只允许有一个因变量和一些自变量,不能估计间接影响的链路)。如何学习众多变量之间的链路和复杂关系,则需要用到另一个流派 结构因果框架 的结构因果模型方法。

基于因果网络模型方法主要可以检验和改进已知的网络,但弱点是,在实际中很难得到一个已知的因果网络。潜在结果模型的方法不需要一个已知的因果网络,但是需要可忽略处理分配假定或者工具变量假定。

结构因果框架

控制随机试验是发现因果关系的首选方法。即使不能控制,在特定假设下,随机变量间的部分或完整因果关系可以从观测数据中还原 (Pearl,2009b)。

主要的假设 - Causal Markov因果马尔可夫假设:该假设意味任何节点的条件分布仅基于其直接父节点。 - Causal Sufficiency 因果充分性假设:该假设等同于不存在无法观测的混淆变量。 - Causal Faithfulness 因果忠诚性假设:该假设意味基于一些条件概率分布,一些节点之间是独立的(因此图可以被切割)。

d-分离

前门准则

后门准则

因果网络学习

因果网络学习又分为因果网络的参数学习和结构学习。因果网络结构学习有两类方法:基于条件独立检验的方法学习出所有满足faithfulness和causal markov假设的因果图,即检验两个节点之间的条件分布是否独立。例如PC算法(Spirtes and Glymour 1991)和IC算法(Verma and Pearl 1990)。

  • IC算法:Verma and Pearl (1990) 提出了 IC (inductive causation) 算法,首先针对任意两个节点 \(X_i\)\(X_j\) 尽力搜索是否存在分离集 \(S_{ij}\) 使得条件独立 \(X_i \perp\!\!\!\perp X_j \mid S_{ij}\) 成立;如果存在这样的 \(S_{ij}\),则删去这两个节点间的边。然后利用两个不相邻的节点 \(X_i\)\(X_j\),如果它们的公共邻居 \(X_k\) 不包含在它们的分离集 \(S_{ij}\) 中,则确定一个 V-结构 (\(X_i \rightarrow X_k \leftarrow X_j\))。最后确定其他边的方向,避免出现新的 V-结构和有向环。
  • PC算法:在 IC 算法中穷尽搜索分离集 \(S_{ij}\) 的计算复杂度很高,并且对于大的分离集 \(S_{ij}\),其条件独立检验功效低。为了改善 IC 算法的效率,Spirtes and Glymour (1991) 提出了 PC (Peter and Clark) 算法。PC 算法仍是将完全图作为初始骨架图,然后从空集开始逐步增大分离集的大小,不断删除骨架图中的边,使得每个结点的邻居数不断减少,寻找两个节点的分离集限定在它们的邻居集的子集范围内,目的是避免高维变量的条件独立检验。后续的研究对 PC 算法不断改进,克服了其在稳定性、潜在混杂变量处理、非线性因果关系处理、混合变量处理等方面的不足。Colombo and Maathuis (2014) 提出了 Stable PC 算法,通过引入稳定骨架学习及固定定向规则的修改,降低了 PC 算法对随机变量的序列关系的敏感度,使其在高维变量的场景中仍能获得稳定的结构学习效果。FCI/RFCI 算法及其变体被提出 (Spirtes et al.,2000,1999;), 用以在未观测混杂变量和样本选择偏差存在的情况下学习因果结构,这些方法在 PC 邻接搜索的基础上,利用额外的条件独立性检验以处理潜在混杂变量。Zhang et al.(2012) 提出基于核的独立性检验方式并给出条件独立零假设下的渐近分布构造方法,以支持非线性假设下的因果关系发现。Copula PC(Cui et al.,2016)将 PC 算法中基于相关矩阵的独立性检验更新为基于高斯 copula 相关矩阵的独立性检验,以支持混合变量(连续和离散变量并存)下的因果结构学习。

在所有可能生成的图中进行搜索是NP-Hard的问题。第二种方法,通过最优化定义的某种score来寻找和数据最匹配的图结构,避免了搜索所有可能的图。NOTEARS算法将离散搜索的问题转化成了连续搜索的问题。该算法极大提高了运算速度。但这个方法也存在着一定的局限性,例如假设所有变量的噪声必须是高斯分布。近年来也有越来越多的方法(如He et al.2021)尝试改进这类方法的假设。

Copula PC(Cui et al.,2016)将 PC 算法中基于相关矩阵的独立性检验更新为基于高斯 copula 相关矩阵的独立性检验,以支持混合变量(连续和离散变量并存)下的因果结构学习。

将因果网络进行参数化

将因果网络进行参数化,利用结构方程模型(SEM)描述变量间的因果关系。将结果变量 \(Y\) 与直接原因变量集合 \(X\) 和噪音项 \(\varepsilon\) 用结构方程 \(Y = f(X, \varepsilon)\) 联系起来,其中 \(X\)\(\varepsilon\) 相互独立。因果方向的可判定问题是 SEM 研究中的一项重要课题。Hoyer et al.(2009); Shimizu et al.(2006) 的研究表明,当噪音项服从非高斯分布或者函数方程满足非线性约束时,由于原因变量和噪音项间的独立性仅在正确的因果方向下成立,使得变量间的因果方向是可判定的。

LINGAM (Shimizu et al., 2006) 是该研究方向的一个代表性模型,它建模连续随机变量间的因果关系,假设变量间线性关联且噪音项服从非高斯分布。独立主成分分析技术(ICA)被用于 LINGAM 的模型选择,由于超参数选择问题,ICA 算法常常陷入局部最优而无法收敛于最优解。为此,DirectLiNGAM 算法 (Shimizu et al., 2011) 利用外部变量及非外部变量在其上的回归残差间的独立性信息求解变量间的因果结构,被证明可以收敛于最优。后续研究针对 LINGAM 在诸多方向上进行了扩展。例如,Hoyer et al.(2008) 将潜在混杂变量及其对观测变量的影响进行建模,并利用完备 ICA 算法实现模型选择。Henao and Winther (2011) 提出一种 方法来解带潜在线性因子的 LINGAM 模型。Lacerda et al.(2008) 和 Hyvarinen and Smith (2013) 将 LINGAM 进行了有环化的扩展,并给出了模型可判定的充分条件。Zhang and Hyvarinen (2009) 扩展 LINGAM 以处理随机变量间的非线性因果关系,并证明除个别非线性函数及数据分布外,其模型是可判定的。Zhang et al.(2010) 对这些非线性模型进行扩展以处理潜在混杂变量。

噪音可加模型(additive noise model, ANM)将因果关系建模为 \(Y = f(X) + \varepsilon\)。Hoyer et al.(2009) 的研究表明,当函数满足非线性约束时,该模型是可判定模型。Hoyer et al.(2009) 利用目标变量与源变量在其上非线性回归的残差之间的独立性信息判定因果方向。Buhlmann et al.(2013) 提出基于 评分准则的非线性 ANM 的模型选择算法。Mooij et al.(2011) 致力于有环 ANM 的模型选择等。针对似然函数方法存在的马尔科夫等价类问题,Cai et al.(2018a) 通过将结构方程模型引入到似然函数计算框架中,实现了似然函数方法和结构方程模型的有效结合较好地解决了马尔科夫等价类问题。Fei and Yang (2017) 提出了一种结合探索性因子分析和路径分析方法推断存在隐变量情况下的因果关系,利用因子分析得到相对各自独立的隐变量,采用路径分析(PA)算法得到观测变量之间的因果方向与因果关系,扩展了隐变量以及它们与观测变量之间的线性因果关系。

还有一些研究将独立性检验和逻辑推理结合,以解决 PC 类算法的稳健性问题(不正确的独立性检验会导致连锁的定向错误)。该类方法的另一个优势在于易集成多种类别的先验知识,同时易于处理未观测的混杂因素及数据选择偏差。Claassen and Heskes (2011) 将变量间的(条件)独立信息转换成逻辑命题,并给出了相应的逻辑推理算法以识别部分祖先图(PAG)。Hyttinen et al.(2013) 提出使用一阶逻辑编码随机变量间的条件独立关系,从而将因果关系发现问题转换成骨干变量求解问题,并利用 SAT 处理器识别因果结构。Borboudakis and Tsamardinos (2016) 的工作更进一步定义了更多的逻辑项及规则对控制试验数据、非同源数据等信息进行编码及推理,实现了更泛化的因果结构学习。

潜在结果框架

参考资料: - 因果推断综述解析

识别因果效应的三个关键假设

权重分配方法、分层推理方法、基于匹配的方法、基于树的方法、基于表征的方法、基于多任务学习的方法和基于元学习的方法

放松上述三个假设的因果推断方法,以满足不同情况下的需求

贝叶斯网络