这篇论文发表在SCIENCE ADVANCES,它属于中科院分区一区的,影响因子在13.77
作者:Jakob Runge
他主要从事与地球科学领域相关的因果推断和统计机器学习方面的工作。这篇文章发表于他在英国帝国理工大学任职期间,目前他任职于德国宇航中心数据科学研究所。
从观测的时间序列数据中确定因果关系,并量化因果连接强度一直是地球系统或人体等复杂动力系统领域的关键问题。随着信息化程度的不断提高,目前可获取的数据量呈现爆炸式增长。这也就推进了因果探索中数据驱动方法的发展。
基于前面提到的情况,在复杂系统中,获取的数据通常是高维度的,而且基于人们对与这些复杂系统的前期研究可知,这些数据通常情况下都是非线性的而且表现出强烈的自相关。在考虑实验的可重复性及进行实验的花费方面,通常可以获取的数据样本量有限。在高维度、非线性等特征下,利用数据驱动的方法探究因果关系是一个挑战。
目前在探索因果关系领域已经有了许多成熟的算法,比如常见的计算时间序列之间的相关性、格兰杰因果效应以及经典的PC算法。但是这些算法都存在着一定的问题,比如计算相关性的方法没有办法确定因果连接的方向,只能得到一个无向图;传统的格兰杰因果效应只能探究二元变量之间的因果效应,而且这种因果关系的推断依赖于数据的时间上的先后顺序,目前也有人对格兰杰因果效应进行了改进,提出了多元格兰杰因果推断,但这种方法在处理高维数据时会产生大量的计算导致很低的效率;而经典的PC算法在处理弱自相关数据时还能保持良好的检测效率,但在处理强自相关数据时其准确率会显著降低。
本文提出的PCMCI算法是对PC算法的改进,PCMCI算法探究的是基于滞后时间上的依赖关系,可以高效的处理高维且具有强自相关特征的数据,在独立性检测环节中可以自由组会线性或者非线性的独立性测试,以此去适应线性或非线性的数据,而且该算法还可以很好的控制假阳性,通过后续的模拟实验验证出该算发估计出的因果效应大小更接近真实。
首先应用该算法需要基于三个基本假设以及两个附加假设。
因果充分性假设表明在给定的观测数据中不存在无法观测到的隐藏变量,也就是说不存在任何未观测到的变量会对因果关系产生任何影响,不论是直接或者间接。在右边的图中展示出的就是一个不满足因果充分性假设的例子,灰色的框表示的就是我们可以观测到的数据,而变量U表示的就是隐藏变量他分别在滞后时间tao=1和2对变量X及Z产生影响,若是满足因果充分性假设,那么就不应该存在任何隐藏变量U。
它表明的是对于网络中任一变量,如果他的父节点已知,那么该变量条件独立于其他非后代节点,也就是说一旦知道某时刻某节点的父节点值,那么过去时刻的其他变量都与预测当前节点状态无关,也就是通过D分离推条件独立。
它与因果马尔可夫性相反,它是由条件独立推D分离,也就是在给定变量集的条件下,两变量相互独立或条件独立,那么这两变量之间的路径被分离。换句话说也就是图中包含了马尔可夫条件隐含的所有条件独立关系。
也就是图中同一时间片内无连接存在,只构建时间片间的连接也就是滞后时间连接
也就是说构建出的网络结构以及连接强度不会随着时间的推移而发生变化
传统的PC算法在构建因果关系时分为两个阶段,首先构建出一个无方向性的骨架,之后在通过逻辑规则确定连接之间的方向;
而PCMCI在PC算法的基础上进行了改进,同时它的实施过程也包括两个阶段,首先第一阶段为条件集筛选阶段,在这个过程中利用了PC算法的一个变体PC-stable得到一个初始父节点集合或者说叫模糊父节点集合,因为在这个阶段的到的集合不仅包含真实的父节点,同时还有虚假的父节点存在;第二阶段为条件独立性测试阶段,在这个过程中利用了瞬时条件独立性测试,将第一阶段筛选出来的初始父节点集作为条件集,同时考虑了该变量的父节点集以及滞后变量的父节点集,根据因果马尔可夫性以及忠实性假设可知父节点集包含了全部的独立性条件也就是足够去建立条件独立性关系,而附加的滞后变量的父节点集则是考虑了自相关的影响。
PCMCI算法
1、条件集筛选
利用PC算法(骨架阶段)得到每个变量的初始父节点集
2、条件独立性测试
利用瞬时条件独立性检验(MCI)对每对变量再次进行判断
伪代码
条件集选择阶段
首先它会将集合初始化为全集,之后迭代进行独立性检测,当P = 0时,也就是进行第一次检测,这时执行的是无条件的独立性检测,在这一步中会直接排除独立的节点,并对剩余的节点进行排序;之后的每次迭代都执行的是条件独立性检验,使用的条件就是条件集中前P个依赖性最强的节点,并重复选取条件集Q次,但后续通过实验证明Q的大小对实验结果的影响并不大,所以为了便于计算设定只取1次最强的组合进行测试。直到集合中剩余变量的数量等于迭代次数P时,执行完最后一次条件独立性检验后停止,得到最终的条件集。
瞬时条件独立性检测(MCI)
MCI阶段,依然是迭代进行条件独立性检测,只不过这次在计算的时候添加了一个额外的条件,就是滞后变量的父节点集中前Px个最强的变量。就像是前面说过的一样,根据因果马尔可夫性可知变量的父节点集已经足够去推断独立性,也就是足够排除共驱动及间接连接的影响;而额外添加的条件可以处理自相关的关系,使最后得到的连接及连接强度更接近真实。
这个示例的目的是检验在t-2时刻X1的值是否对t时刻X3的值产生影响。首先是利用PC-stable的条件集筛选阶段。在初次迭代中通过无条件独立性检验,可以排除独立的节点,图中对于X1和X3而言,X4都被排除,并对剩余的变量按依赖性从大到小进行排序;之后在剩余变量中选取最强的组合不断进行条件独立性检验,最后就可以得到条件集,就是图里颜色最深的变量,这时候得到的条件集中并不是只有父节点,同时还存在虚假的父节点,在图中用星号标出。
下面就进行MCI阶段,在这里因为我们要检测的是t-2时刻X1对t时刻X3的连接是否存在,所以我们要考虑的第一个条件集也就是X3的父节点集,在图中用蓝色块表示,此外还需要考虑滞后节点的条件集,也就是在t-2时刻变量X1的父节点集,在图中用红色块表示,将计算得到的P值与设定好的阿尔法进行比较,判断连接是否存在。
τmax
根据实际的应用场景进行选择
尽可能选择较大的τmax
px
为了减少计算量,设置 px = 3
αpc
1.条件集中包含全部真实父节点
2.条件集尽可能小
默认设置 αpc = 0.2
qmax
默认为1
首先作者先将PCMCI算法与相关性法和FullCI进行比较,其中节点的颜色代表自相关的强度,连接的颜色代表效应大小其中灰色表示虚假连接,粗细表示检测效率。可以看出基于相关性检测出了非常多的虚假链接而且基本得不到连接的方向性信息;FullCI的方法基本可以还原真实的连接图样,但在加入多余变量后会导致数据维度升高进而导致更低的检测效率;而PCMCI算法通过进行条件集筛选可以有效的降低数据维度,进而得到更高的检测效率。
这张图展示的是在线性条件下PCMCI与多种算法的对比。横坐标表示的是网络中节点数量,纵坐标分别是真阳和假阳性,在每个网络尺寸中都包含两个值,其中左边的值表示在弱自相关条件下得到的结果,右边的值表示在强自相关。可以从图中看出,相关性法会导致较高的假阳性,Lasso和Pc算法都过份的控制假阳性,同时当节点数量增加时Lasso算法的真阳性变化很大,而PC算法在处理强自相关数据时无法得到较高的真阳性。FullCI算法在节点数量大于20时基本不适用。论文中提出的PCMCI算法在保持较高检测率时还能控制假阳性在期望的水平。
总结一下PCMCI算法,首先该算法是对PC算法的改进,使其能更好的适用于强自相关数据,同时还能有效的控制假阳性。该算法可以在两个阶段自由选取线性或非线性独立性检验方法,使其能适用于线性或非线性连接。
但是由于一些假设的存在,该算法并不能构建出同时期连接,并且在解释因果性时需要注意的是无隐藏变量存在这一前提条件。
以上仅仅是前段时间的学习笔记记录,如有错误,欢迎指正
图片来自网络或论文中截图
强烈推荐对因果推断感兴趣的朋友去仔细阅读一下这篇论文以及该作者的其他文章!!!