跳转至

第13章:Causal Discovery and Machine Learning – from Assumptions to Applications

作者

本章由 Aleksander Molak 撰写。技术审稿:Nicole Königstein。本章引用的核心理论文献:Spirtes, Glymour & Scheines (2000) Causation, Prediction, and Search、Shimizu et al. (2006/2011) LiNGAM / DirectLiNGAM、Zheng et al. (2018) NOTEARS、Ng et al. (2020) GOLEM、Hoyer et al. (2008) ANM、Heckerman et al. (1995) Bayesian network learning、Chickering (2003/2020) GES、Colombo & Maathuis (2012) PC-stable、Peters & Bühlmann (2015) SID、Peters et al. (2017) Elements of Causal Inference、Zhang et al. (2021) gCastle、Reisach et al. (2021) "Causal Discovery Benchmarks May Be Easy To Game"、Kaiser & Sipos (2021) NOTEARS critique。

内容概述

本章是因果发现的算法章——把 Ch 12 提到的 "causal structure learning" 形式化为四大家族 + 半个家族:(1) Constraint-based(PC 算法、inductive causation,TETRAD 起源);(2) Score-based(GES、Bayesian scoring);(3) Functional causal discovery(ANM 用非线性打破对称性、LiNGAM 用非高斯性打破对称性);(4) Gradient-based(NOTEARS 连续优化 + acyclicity constraint + GOLEM 改进);(5) "半个家族" 包括 hybrid / RL-based / BCD-Nets 等。本章以 gCastle 库(Huawei Noah's Ark Lab, Zhang et al. 2021)为主线,给出完整的 Python 代码与实验对比——data generation(DAG 类型 + IIDSimulation)→ model fit → visualization(GraphDAG)→ evaluation(MetricsDAG, F1/SHD/FDR/TPR/gscore/SID)。最后讲"专家知识注入"——gCastle 的 PrioriKnowledge.add_required_edges()add_forbidden_edges()——只有 PC 算法支持,开发者计划扩展。Molak 的核心洞察:没有"万能算法"——PC / GES / LiNGAM / NOTEARS / GOLEM 各自假设不同(F1 从 0 到 1 取决于数据是否满足假设),生产中必须多算法并行 + 共识边

核心方程与概念

  • 三大核心假设(多数 causal discovery 算法的基础):
  • Causal sufficiency(无 unobserved confounding):所有相关变量都在图中。
  • Faithfulness:如果 \(X \perp\!\!\!\perp_P Y \mid Z\)(在分布上条件独立),则 \(X \perp\!\!\!\perp_G Y \mid Z\)(在图上条件独立)——即独立性是图结构的忠实反映
  • Minimality:DAG \(G\) minimal 当且仅当 \(G\) 引发 \(P\)\(G\) 的任何真子图不引发 \(P\)
  • 注意:Faithfulness 的反向(global Markov)是因果推断的支柱(Ch 4–5),Faithfulness 是从分布回推图结构的关键——两端"方向"不同。

  • Faithfulness 的违反

  • 有限样本下 CI 测试的采样误差(Uhler et al. 2013)。
  • 路径对消(path cancellation):两个通路效应刚好相互抵消——Spirtes et al. (2000) 指出实践中极少见(虽然理论上常见)。

  • 四大家族的历史(Glymour et al. 2019 + Molak 扩展):

  • 起源:Pearl & Rebane (1987) poly-tree 因果恢复——三大学术中心 UCLA / CMU / Stanford。
  • Constraint-based(UCLA + CMU):基于 CI 测试 + 图形结构(chain/fork/collider)→ IC 算法 + TETRAD 软件。
  • Score-based(Stanford):Bayesian network + search → GES(Heckerman et al. 1995 → Chickering 2003/2020)。
  • Functional causal discovery(Shimizu et al.):基于 ICA (Hyvärinen 2001) → LiNGAM。
  • Gradient-based(Zheng et al. 2018):连续优化 + acyclicity constraint → NOTEARS。
  • 半个家族:hybrid + RL-based + BCD-Nets + DECI (Ch 14) + others。

  • PC 算法 5 步(Spirtes, Glymour, Scheines):

  • Start:完全图(fully connected)。
  • Test unconditional:删除 \(X \perp\!\!\!\perp Y\)(无 conditioning)的边。
  • Test conditional:迭代地,对每对剩余边 \((A, B)\),删除如果 \(A \perp\!\!\!\perp B \mid C\) for some \(C\)(cond set 大小从 1 递增)。
  • Orient colliders:对三元组 \(A - B - C\)\(A\)\(C\) 不邻接),若 \(A \not\perp\!\!\!\perp C \mid B\) 则定向 \(A \to B \leftarrow C\)
  • Orient propagated:对 \(A \to B - C\)\(A\)\(C\) 不邻接),定向 \(B \to C\)(避免引入新 collider)。
  • 输出:CPDAG(completed partially directed acyclic graph)= Markov equivalence class。

  • PC 算法的两个变体

  • PC-stable(Colombo & Maathuis 2012):解决"skeleton 发现阶段"的 ordering sensitivity,但仍对 collider 发现和定向阶段敏感
  • Parallel PC(Le et al. 2015):并行化 CI 测试。
  • gCastle API:PC(variant='stable')PC(variant='parallel')

  • PC 的 CI 测试选项

  • 默认:Fisher's z-test(连续 + linear-Gaussian)。
  • 类别变量:\(\chi^2\)(chi2) 或 \(G^2\)(g2)(Tsamardinos et al. 2006)。
  • 自定义:Neyman test / Cressie-Read test(CITest object)。
  • API 设计哲学:把 CI test 作为可插拔组件(不像 scipy 的固定接口)——这是 gCastle / DoWhy / EconML 的共同特点。

  • GES 算法(Chickering 2003):

  • 两阶段 greedy 搜索
    1. Forward phase:从空图开始,贪心加边,每步选最高分。
    2. Backward phase:贪心删边,每步选最高分。
  • 评分:BIC(连续)或 BDeu(类别)。
  • GES 性质:在 large sample limit 收敛到与 PC 相同解;GES 是 GES(Greedy Equivalence Search);返回 CPDAG。
  • Molak 个人观察:GES 经验上不如 PC(无系统性研究)。

  • Functional causal discovery 核心思想

  • 问题:在线性-Gaussian 情况下 \(X = aY + \epsilon\),无论假设 \(X \to Y\) 还是 \(Y \to X\),回归残差独立——无法识别方向
  • 解决:打破对称性——非线性(ANM)或非高斯(LiNGAM)。

  • ANM(Additive Noise Model)(Hoyer et al. 2008):

  • 模型:\(Y = f(X) + \epsilon\),其中 \(\epsilon \perp\!\!\!\perp X\)噪声独立)。
  • 关键判别:causal 方向 \(X \to Y\) 的残差独立;anti-causal 方向 \(Y \to X\) 的残差不独立("X-shape pattern")。
  • HSIC(Hilbert-Schmidt Independence Criterion):非线性 CI 测试——比 Pearson r / Spearman ρ 更通用。
  • gCastle API:from castle.common.independence_tests import hsic_testANMNonlinear 类(内部用 GP 而非 spline)。

  • LiNGAM(Linear Non-Gaussian Acyclic Model, Shimizu et al. 2006):

  • 模型:\(Y = aX + \epsilon\)\(X\)\(\epsilon\) 非高斯
  • 核心假设:(a) 线性;(b) 非高斯 noise 或 non-Gaussian 源;(c) 无 unobserved confounding。
  • 不需要 faithfulness 假设——这是相对 PC 的优势。
  • ICA-based(ICALiNGAM):内部用 ICA 找源信号——鸡尾酒会问题同源。
  • DirectLiNGAM(Shimizu et al. 2011):不用 ICA,纯回归,在 infinite sample limit 保证收敛到真解,步骤数 \(O(D)\)解决了 scaling 问题;代价是计算时间 \(\sim O(D^{\text{power}})\)
  • LiNGAM 优势:不仅恢复结构,还恢复系数(end-to-end 推断)——weight_causal_matrix 属性。
  • LiNGAM 劣势:ICA 随机性,需调整 max_iter(默认可能不够);非 scale-invariant。

  • NOTEARS 核心:可微的 acyclicity 约束(Zheng et al. 2018): $\(\mathcal{R}(A) \;=\; \mathrm{tr}(e^{A \odot A}) - d\)$

  • \(A\):adjacency matrix;\(\odot\):Hadamard product;\(\mathrm{tr}\):trace;\(d\):节点数。
  • 当且仅当 \(\mathcal{R}(A) = 0\) 时,\(A\) 是 DAG
  • NOTEARS 总损失: $\(\mathcal{L}(A) \;=\; \|X - XA\|_F^2 + \lambda_1 \|A\|_1 + \lambda_2 \mathcal{R}(A) + \frac{\rho}{2} \mathcal{R}(A)^2 + \alpha h(A)\)$
  • 最后三项是 augmented Lagrangian(Niemirovski 1999)——硬约束 \(\mathcal{R}(A) = 0\) 通过 Lagrangian 软化。
  • Python 实现(Molak 给的):

    def check_if_dag(adj_matrix):
        A = adj_matrix
        return np.trace(linalg.expm(A * A)) - A.shape[0] == 0
    

  • NOTEARS 的两个关键批评

  • Kaiser & Sipos (2021):NOTEARS 对数据缩放敏感——不同量纲产生不同结果。
  • Reisach et al. (2021) "Causal Discovery Benchmarks May Be Easy To Game":合成数据的未意图的规律性被算法利用——normalize 后 NOTEARS 性能崩溃。
  • 生产含义:NOTEARS 在 synthetic benchmarks 上 F1=0.9+,在实际数据上可能 F1=0.5——不要单看 benchmark 数字

  • GOLEM(Ng et al. 2020):

  • 改进:(a) likelihood-based objective(MSE → likelihood);(b) soft DAG-ness constraint(硬约束 → 软惩罚)。
  • 更快收敛 + 在 synthetic 上 outperforms NOTEARS。
  • 仍受 Reisach et al. (2021)批评:在 normalized data 上性能崩溃。

  • MetricsDAG 评估指标(gCastle 1.0.3):

  • FDR = \(\mathrm{rev} / (\mathrm{TP} + \mathrm{FP})\)——False Discovery Rate
  • TPR = \(\mathrm{TP} / (\mathrm{TP} + \mathrm{FN})\)——True Positive Rate
  • FPR = \(\mathrm{rev} / (\mathrm{TN} + \mathrm{FP})\)——False Positive Rate
  • SHD(Structural Hamming Distance)= 预测图到真图的"边操作数"(additions + flips + deletions)
  • NNZ = TP + FP(non-zero entries)
  • Precision = TP / (TP + FP)
  • Recall = TP / (TP + FN)
  • F1 = 2 × precision × recall / (precision + recall)
  • gscore = \(\max(0, \mathrm{TP}/(\mathrm{TP}+\mathrm{FN}) - \mathrm{FP})\)
  • SID(Structural Intervention Distance, Peters & Bühlmann 2015)= 干预图分布的距离(在 CDT 包里)

  • 专家知识注入(gCastle 1.0.3)

  • PrioriKnowledge object
    priori_knowledge = PrioriKnowledge(n_nodes=10)
    priori_knowledge.add_required_edges([(7, 3)])      # 必须存在
    priori_knowledge.add_forbidden_edges([(0, 9), (8, 6)])  # 必须不存在
    pc_priori = PC(priori_knowledge=priori_knowledge)
    pc_priori.learn(data)
    
  • 当前局限:gCastle 1.0.3 中只有 PC 算法支持 prior injection——开发者计划扩展。
  • 生产经验:加 prior 后 PC 的所有指标提升——这是 hybrid methods 的工程化突破。

  • gCastle IIDSimulation 参数

  • 图类型scale_free, erdos_renyi, bipartite, hierarchical, low_rank
  • 结构方程类型linear(含 gauss / exp / gumbel / uniform 噪声)或 nonlinear(含 mlp / gp / gp-add / quadratic / mim)。
  • THPSimulation:Topological Hawkes Processes(Cai et al. 2021)——事件序列因果。
  • 生产经验:scale-free + linear + gauss 是最常见的"易算法" benchmark——也是最容易被算法"game"的设置。

  • 5 算法对比(Molak 的实验结果,scale-free n=11 e=15, n=2000):

算法 linear-gauss linear-exp nonlinear-quadratic
PC 中等 较好 较好
GES 较好 中等 中等
DirectLiNGAM gauss 差,exp 好 极好 不适用
NotearsNonlinear 较好 较好 较好
GOLEM 较好 较好 中等

关键观察:没有算法"全胜"——LiNGAM 在 exp 噪声上 PC 算法在结构清晰的简单图上完胜,但 Gaussian 假设下 NOTEARS/GOELEM 表现更稳。

关键结论

  • 没有"万能 causal discovery 算法"——Molak 的实验清楚表明:PC/GES/LiNGAM/NOTEARS/GOLEM 在不同数据假设下各有强弱。生产中必须 multiple algorithms + 共识边
  • PC 算法是入门首选——简单、可解释、gCastle API 友好、支持 prior injection劣势:order sensitivity(用 PC-stable 缓解)+ 假设 faithfulness + 假设 causal sufficiency。
  • ANM 打破对称性靠"非线性"LiNGAM 打破对称性靠"非高斯"——这是因果发现"无信息"问题的关键认识:仅在线性 + Gaussian 假设下,因果方向理论上不可识别
  • NOTEARS 创新点是"可微 acyclicity"——把组合搜索转为连续优化,开启了"gradient-based causal discovery"时代。但 Reisach et al. 2021 + Kaiser & Sipos 2021 的批评揭示:NOTEARS 对数据缩放 + 合成数据的非意图规律性敏感——不能直接信任 benchmark F1。
  • GOLEM 改进:likelihood objective + soft DAG constraint——更快收敛,但仍受 Reisach 批评。生产中 GOLEM 比 NOTEARS 略稳。
  • LiNGAM 的 hidden power:不只恢复结构,还恢复系数(end-to-end)——在"因果发现 + 效应估计"双任务场景下特别有用。DirectLiNGAM 解决了 ICALiNGAM 的 scale 问题。
  • 专家知识注入是 hybrid methods 的工程化突破——gCastle 1.0.3 中只有 PC 支持,但生产经验:加 prior 后所有指标提升未来方向:扩展到所有算法 + 让专家指定方向 prior 而非仅边 prior。
  • DAG-ness 检验的工程实现:Molak 给的 Python 函数 check_if_dag 简洁实用——np.trace(linalg.expm(A * A)) - d == 0——生产中可作为 sanity check
  • MetricsDAG 9 指标是完整的"图结构评估"——F1 看总体质量,gscore 看准确性 vs 假阳性的相对成本,SHD 看"修正距离"——生产中应同时报告多个指标
  • 因果发现 vs 因果推断:本章是 causal discovery(结构),Ch 6–11 是 causal inference(效应)——两者是因果分析的两端。生产 pipeline:discovery → 验证 graph → identification → estimation。
  • gCastle 的"模块化"哲学:CI test、scoring、prior injection 都是可插拔的——与 DoWhy / EconML 一致。生产建议:选择 gCastle 优先于实现自定义算法。

挑战和开放性问题

  • Causal sufficiency(无 hidden confounding)的可证伪性:当前没有统计 test 能可靠检测 unobserved confounding——所有算法都"假设"它。生产中:用 negative controls、Cinelli & Hazlett (2020) sensitivity analysis、placebo tests 间接验证。
  • CPDAG → DAG 的额外信息:PC / GES 只返回 CPDAG(Markov equivalence class)——若需唯一 DAG,必须借助干预数据生产中:active experimentation + algorithm 的组合。
  • NOTEARS 缩放敏感性:Kaiser & Sipos 2021 + Reisach 2021 揭示——数据标准化的方式显著影响结果生产中:(a) 多 standardization 策略(z-score / min-max / quantile);(b) ensemble 多个标准化结果。
  • 合成数据"被 game"的风险:所有 gradient-based 算法在 synthetic benchmarks 上 F1 普遍高,但实际数据表现可能差。生产中:把"在 simulated data 上"和"在 real-world data 上"分开报告;永远先在 holdout 真实数据上验证
  • 高维(D > 50)causal discovery 仍不成熟:NOTEARS / GOLEM 可处理,但 PC / GES 计算量爆炸。生产中:先用 feature selection 把 D 降到 20–30 再跑 discovery。
  • LiNGAM 的"非高斯性"在真实数据中常被违反:医学数据常近似 Gaussian,LiNGAM 表现差——必须先检验 marginal 分布再决定算法。
  • 专家知识的形式化:gCastle 的 PrioriKnowledge 只能 freeze 边,不能指定"边存在但方向不确定"——这是工业级需求。未来:partial prior / soft prior / probabilistic prior。
  • 多种算法共识的工程化:Molak 实验中 5 算法"共识"是手工完成的——生产中应自动化(交集图 + 加权投票)。
  • 时序因果发现(Cai et al. 2021 THP):事件序列的因果发现——ch 14 提到 DECI 也在做 observational + interventional 混合学习。生产中:医疗电子健康记录(EHR)事件因果是核心场景。

个人反思与批判性分析

本章是因果发现的"工程核心"——四大家族 + gCastle 实践 + 专家知识注入。值得深入讨论的几个层面:

  • Molak 的"开源工具哲学":DoWhy / EconML / gCastle / causal-learn 都是统一接口 + 模块化——把 CI test、scoring、prior、visualization、evaluation 都做成可插拔。生产启示"不要把算法写死,要用组合框架"——生产 pipeline 应支持 PC + GES + LiNGAM + NOTEARS + GOLEM 五种算法并行跑,再 consensus。
  • NOTEARS 是"算法创新的范式突破":把 DAG 约束编码为 \(\mathrm{tr}(e^{A \odot A}) - d = 0\)——这是把"组合约束"转为"连续可微约束"的漂亮例子。生产启示任何"离散搜索"问题(如 feature selection / neural architecture search)都可学习 NOTEARS 思路——用 Lagrangian 把硬约束变为可微的软约束
  • Reisach 2021 的"反 benchmark"思想:合成数据有"被算法利用的非意图规律"——这是 ML 领域普遍性的认识(类似 ImageNet 的"shortcut learning")。生产启示:(a) 永远在真实数据 holdout set 上验证;(b) benchmark F1 > 0.9 不代表生产有效;(c) 多种 synthetic data 生成器 + 真实数据 同时测试。
  • Faithfulness 的"实践稀有性":Spirtes et al. 2000 指出"路径对消"在真实数据中极少见——但 Uhler et al. 2013 表明有限样本的 CI 测试会"伪对消"(实际独立但测试不显著)。生产中:(a) 使用保守的 alpha 阈值(如 0.01 而非 0.05);(b) 用 HSIC 等 robust CI 测试;(c) 多次 bootstrap 取 consensus 边。
  • LiNGAM 的"end-to-end"优势:相比 PC(只给 CPDAG),LiNGAM 给完整有向图 + 系数——这是"结构发现" + "效应估计"的合一。生产含义:在低维 + 非高斯场景下(如金融、医学图像),LiNGAM 是首选——但高斯场景必须改用 NOTEARS/GOELEM
  • 专家知识注入是"hybrid methods 的工程化":gCastle 1.0.3 中 PC 是唯一支持 prior 的算法——这暗示prior injection 本身是个研究方向生产中:(a) 强制要求专家画 prior 图(画 high-confidence 边、画 forbidden 边);(b) 把 prior 与 data-driven discovery 一起跑;(c) 对比"with prior" vs "without prior"——F1 提升的部分归功于专家。
  • 算法对比表的"工程含义":Molak 的实验显示没有算法全胜——生产 pipeline 必须 multi-algorithm + consensus建议:(a) 跑 PC + GES + DirectLiNGAM + GOLEM 4 种算法;(b) 取出现在 ≥ 3 种算法中的边作为 high-confidence set;(c) 其余边进入"待专家确认"队列。
  • gCastle 的"统一 API"哲学pc.learn(data) / ges.learn(data) / lingam.learn(data)——所有算法同一接口。生产启示抽象出"learn(X) → B"模式——任何 causal discovery 库都应支持。当前 gCastle 仍是 best 实践——但 causal-learn(微软)的 API 更丰富。
  • THP(Topological Hawkes Processes):Cai et al. 2021 提到的 THP 是事件序列因果发现——这对医学 EHR / 工业 sensor / IT 事件日志有巨大价值。生产中:医院的"患者就诊 → 处方 → 检查 → 随访"序列本身就是 event sequence——THP 可能比 i.i.d. 假设的 PC 更合适。
  • 对本人的研究启发:我做血管生物力学时,因果发现的"算法"层面反而不是难点——真正难的是"图从哪来"。Molak 的 hybrid 思路(专家 + 算法 + 实验)与我的实践完全一致:(a) 专家画图(生理学家 + 临床医生);(b) PC + GES + GOLEM 跑 consensus;(c) 关键边用小规模 RCT 验证;(d) sensitivity analysis(Robust 值)评估算法对未观察 confounder 的敏感性。gCastle 的 PrioriKnowledge 给了我"把专家图直接编码到算法"的具体方法——这是 Ch 13 最实用的工程创新。
  • 对生产 pipeline 的整体设计:基于本章,我建议一个7-step 因果发现 pipeline
  • 数据预处理:缺失值 / 异常值 + multiple standardization。
  • 专家 prior 图:画"required edges" + "forbidden edges"——必须写明 confidence(high/medium/low)。
  • 多算法并行:PC / GES / DirectLiNGAM / GOLEM 各跑一遍,记录各自的 causal_matrix。
  • 共识边提取:出现在 ≥ 3 个算法中的边 → high-confidence;出现在 2 个 → medium;1 个 → low。
  • DAG-ness 检验:用 check_if_dag() 验证每个结果——避免算法输出的"循环图"。
  • 专家 review:对 medium + low 边,专家标"accept/reject/need experiment"。
  • 实验验证:对"high uncertainty + high stakes"边设计小实验(A/B test 或 RCT)。
  • 这 7 步是 "专家 + 算法 + 实验" 的工程化实现——与 Molak Ch 12 的 "hybrid methods" 哲学一致。
  • 本章没教的"工程化"细节:(a) 如何处理相关变量(如血压 / 心率强相关)——是否合并或保留?(b) 如何处理时间维度——cross-sectional data 与 time series 用不同算法;(c) 如何处理类别变量——\(\chi^2\) test 的 small sample 偏差;(d) 如何处理非线性关系——spline / GP 哪个更稳?这些是"生产中必有但本章没教"的细节——需要团队在工程实践中补全。

重要参考文献

  • [X1] Spirtes, P., Glymour, C., & Scheines, R. (2000). Causation, Prediction, and Search (2nd ed.). MIT Press — PC 算法 + 整个因果发现领域的开创性教材。
  • [X2] Glymour, C., Zhang, K., & Spirtes, P. (2019). Review of Causal Discovery Methods Based on Graphical Models. Frontiers in Genetics, 10, 524 — 家族分类的来源。
  • [X3] Verma, T., & Pearl, J. (1990). Equivalence and synthesis of causal models. UAI-90 — IC 算法 + observational equivalence 基础。
  • [X4] Rebane, G., & Pearl, J. (1987). The recovery of causal poly-trees from statistical data. International Journal of Approximate Reasoning — 现代 causal discovery 起源。
  • [X5] Heckerman, D., Geiger, D., & Chickering, D. M. (1995). Learning Bayesian Networks: The Combination of Knowledge and Statistical Data. Machine Learning, 20, 197–243 — Bayesian network + scoring。
  • [X6] Chickering, D. M. (2003). Optimal structure identification with greedy search. JMLR, 3, 507–554 — GES 算法原始论文。
  • [X7] Chickering, M. (2020). Statistically Efficient Greedy Equivalence Search. UAI 2020 — GES 改进版。
  • [X8] Shimizu, S., Hoyer, P. O., Hyvärinen, A., & Kerminen, A. J. (2006). A Linear Non-Gaussian Acyclic Model for Causal Discovery. JMLR, 7, 2003–2030 — LiNGAM 原始论文。
  • [X9] Shimizu, S., Inazumi, T., Sogawa, Y., Hyvärinen, A., Kawahara, Y., Washio, T., Hoyer, P. O., & Bollen, K. A. (2011). DirectLiNGAM: A Direct Method for Learning a Linear Non-Gaussian Structural Equation Model. JMLR, 12, 1225–1248 — DirectLiNGAM。
  • [X10] Hoyer, P., Janzing, D., Mooij, J. M., Peters, J., & Schölkopf, B. (2008). Nonlinear causal discovery with additive noise models. NeurIPS 21 — ANM 算法。
  • [X11] Hyvärinen, A., Karhunen, J., & Oja, E. (2001). Independent Component Analysis. Wiley — ICA 基础。
  • [X12] Zheng, X., Aragam, B., Ravikumar, P., & Xing, E. P. (2018). DAGs with NO TEARS: Continuous Optimization for Structure Learning. NeurIPS 2018 — NOTEARS 原始论文。
  • [X13] Ng, I., Ghassami, A., & Zhang, K. (2020). On the Role of Sparsity and DAG Constraints for Learning Linear DAGs. ArXiv:2006.10201 — GOLEM。
  • [X14] Ng, I., Ghassami, A., & Zhang, K. (2020). On the Role of Sparsity and DAG Constraints for Learning Linear DAGs. ArXiv:2006.10201 — 软 DAG 约束。
  • [X15] Kaiser, M., & Sipos, M. (2021). Unsuitability of NOTEARS for Causal Graph Discovery. ArXiv:2104.05441 — NOTEARS 缩放敏感性的批评。
  • [X16] Reisach, A. G., Seiler, C., Weichwald, S. (2021). Causal Discovery Benchmarks May Be Easy To Game. NeurIPS 2021 — 合成数据被 game 的批评。
  • [X17] Colombo, D., & Maathuis, M. H. (2012). Order-independent constraint-based causal structure learning. JMLR, 15, 3741–3782 — PC-stable。
  • [X18] Le, T. D., Hoang, T., Li, J., Liu, L., Liu, H., & Hu, S. (2015). A Fast PC Algorithm for High Dimensional Causal Discovery with Multi-Core PCs. IEEE/ACM TCBB, 16, 1483–1495 — Parallel PC。
  • [X19] Tsamardinos, I., Brown, L. E., & Aliferis, C. F. (2006). The max-min hill-climbing Bayesian network structure learning algorithm. Machine Learning, 65(1), 31–78 — \(\chi^2\) / \(G^2\) 测试。
  • [X20] Cressie, N., & Read, T. R. (1984). Multinomial goodness-of-fit tests. JRSS B, 46(3), 440–464 — Cressie-Read 统计量。
  • [X21] Peters, J., & Bühlmann, P. (2015). Structural intervention distance for evaluating causal graphs. Neural Computation, 27(3), 771–799 — SID 指标。
  • [X22] Peters, J., Janzing, D., & Schölkopf, B. (2017). Elements of Causal Inference: Foundations and Learning Algorithms. MIT Press — Faithfulness / minimality 的形式化。
  • [X23] Uhler, C., Raskutti, G., Bühlmann, P., & Yu, B. (2013). Geometry of the faithfulness assumption in causal inference. Annals of Statistics, 436–463 — 有限样本 faithfulness 违反。
  • [X24] Zhang, K., Zhu, S., Kalander, M., Ng, I., Ye, J., Chen, Z., & Pan, L. (2021). gCastle: A Python Toolbox for Causal Discovery. ArXiv — gCastle 库。
  • [X25] Barabási, A. L. (2009). Scale-free networks: a decade and beyond. Science, 325(5939), 412–413 — scale-free 网络。
  • [X26] Barabási, A. L., & Albert, R. (1999). Emergence of Scaling in Random Networks. Science, 286(5439), 509–512 — Barabási-Albert 模型。
  • [X27] Erdős, P., & Rényi, A. (1959). On Random Graphs I. Publicationes Mathematicae Debrecen, 6, 290–297 — Erdős–Rényi 随机图。
  • [X28] Lacerda, G., Spirtes, P. L., Ramsey, J., & Hoyer, P. O. (2008). Discovering Cyclic Causal Models by Independent Components Analysis. UAI 2008 — 循环因果 + ICA。
  • [X29] Cai, R., Wu, S., Qiao, J., Hao, Z., Zhang, K., & Zhang, X. (2021). THP: Topological Hawkes Processes for Learning Granger Causality on Event Sequences. ArXiv — THP 事件序列因果。
  • [X30] Huang, B., Zhang, K., Lin, Y., Schölkopf, B., & Glymour, C. (2018). Generalized score functions for causal discovery. KDD 2018 — RHKS 评分。
  • [X31] Fisher, R. A. (1921). On the "Probable Error" of a Coefficient of Correlation Deduced from a Small Sample. Metron, 1, 1–32 — Fisher's z-test 原始论文。
  • [X32] Johnston, I. G., Dingle, K., Greenbury, S. F., Camargo, C. Q., Doye, J. P. K., Ahnert, S. E., & Louis, A. A. (2022). Symmetry and simplicity spontaneously emerge from the algorithmic nature of evolution. PNAS, 119(11), e2113883119 — 对称性 + 进化。
  • [X33] Blake, W. (1794/2009). The Tyger. Songs of Experience — William Blake 诗作(章节开篇引用)。
  • [X34] Nemirovski, A. (1999). Optimization II: Standard Numerical Methods for Nonlinear Continuous Optimization [Lecture notes] — Augmented Lagrangian 方法。
  • [X35] Zheng, X., Dan, C., Aragam, B., Ravikumar, P., & Xing, E. P. (2020). Learning Sparse Nonparametric DAGs. AISTATS 2020 — 非参数 NOTEARS 扩展。
  • [X36] Pearl, J. (2009). Causality: Models, Reasoning and Inference (2nd ed.). Cambridge University Press — 因果图论的奠基。
  • [X37] Cinelli, C., & Hazlett, C. (2020). Making Sense of Sensitivity: Extending Omitted Variable Bias. JRSS B, 81(1), 39–67 — 隐式引用,敏感性分析。
  • [X38] Pearl, J., & Mackenzie, D. (2019). The Book of Why. Penguin Books — 因果推断科普背景。
  • [X39] Hernán, M. A., & Robins, J. M. (2020). Causal Inference: What If. Boca Raton: Chapman & Hall/CRC — 隐式引用,CI testing 标准教材。
  • [X40] Sharma, A., & Kiciman, E. (2020). DoWhy: An End-to-End Library for Causal Inference. ArXiv — DoWhy 库(隐式引用,与 gCastle 的模块化设计对照)。