CausalTE-Confound:基于条件传递熵的混杂因素排除和定向因果推断(MATLAB 2018)

作品简介

在复杂系统因果推断中,混淆变量会导致传统相关性分析及非条件传递熵产生大量虚假因果指控,使研究者误将间接关联判为直接驱动。多元条件传递熵通过严格条件化混淆变量的全部历史信息,彻底剥离其通过共同驱动与间接传导造成的干扰,在保持对真实因果极高敏感度的同时将假阳性率压制至近乎零。

算法步骤

定义耦合动力学模型 建立三元自回归过程:A为独立白噪声,B受A驱动,C同时受B和A驱动。设置B→C的直接耦合强度作为扫描变量,A→C的耦合强度固定作为混淆路径。

构建零分布以确定显著性阈值

在B→C零耦合条件下生成多对独立序列。

对每对序列中的源信号B进行随机置乱,彻底破坏时序依赖。

计算置乱后的条件传递熵与非条件传递熵,重复大量次数获得经验零分布。

取零分布的99%分位数作为全局显著性阈值。

蒙特卡洛模拟扫描耦合强度

遍历B→C耦合强度列表,每个强度重复多次生成独立数据。

每次生成均计算条件传递熵与非条件传递熵,记录所有估计值。

条件传递熵计算

将目标变量C、源变量B、混淆变量A的历史状态对齐至相同时间起点。

对各变量进行等频分箱离散化,确保每个箱内样本数大致相等。

构建四维联合概率直方图p(C_t, C_past, B_past, A_past)。

计算三维条件概率p(C_t|C_past, A_past)作为分母。

计算四维条件下的条件概率p(C_t|C_past, B_past, A_past)作为分子。

求和得到条件传递熵,并截断负值至零。

非条件传递熵计算(对照)

忽略混淆变量A,仅使用目标过去和源过去。

构建三维联合概率直方图,类似步骤4计算标准传递熵。

置换检验

对每个耦合强度下的某次典型模拟,保持目标C与混淆A不变,将源B随机打乱。

多次重复计算条件与非条件传递熵,得到经验分布。

计算观测值大于置换分布的比例作为p值。

检测功效评估

对每个耦合强度,统计蒙特卡洛样本中超过全局99%阈值的比例,即为该强度下的检测功效。

分类性能与ROC分析

将零耦合样本作为阴性类,典型耦合强度样本作为阳性类。

扫描阈值,计算不同阈值下的假阳性率与真阳性率。

绘制ROC曲线并计算AUC,同时计算灵敏度、特异性、精确率、F1分数。

偏差与稳定性分析

统计零耦合下条件传递熵估计的均值与标准差,评估估计量的系统性偏倚。

绘制传递熵随耦合强度变化曲线及误差棒,观察单调性与区分度。

延迟依赖性检验

固定耦合强度,改变延迟步数,计算条件传递熵,验证峰值是否出现在真实延迟处。

 

创作时间: