这个工具提供了哪些能力
点开任一能力,看清怎么用
每个能力展开后是三件事:它会给你什么、你需要准备什么、哪些必须由你把关。
常见场景:有观测数据但没有干预实验,需要探索变量间可能的因果结构时;需要用因果图指导后续的因果效应识别和估计时;需要比较不同因果发现方法对同一数据的不同结论时
帮你搭建因果分析的底层工具箱:它提供因果图的标准表示和转换、多种给图打分的函数,以及把发现结果和真值对比的评估指标,是其他因果算法能跑起来、被评价的基础。
它会给你什么
- 一个标准图对象,可以画成图片或转成其他格式。
- 转换后的另一种因果图。
- 一个打分数值,好坏含义取决于所用评分。
你需要准备
- 一张图的节点清单和边的定义。
- 一张有向无环图。
- 一张部分有向图的邻接矩阵。
由你把关
- 跨工具迁移或比较时图的读法约定是否一致,由你核对。
- 选的评分函数是否匹配你的数据类型,由你核对。
- 对比真值和结果时两边是否用同一套图的记法,由你核对。
帮你判断到底是谁影响了谁:它利用数据里的统计特性(比如非高斯、非线性噪声)来确定因果方向,而不只是给出一族说不清方向的等价图,适合满足相应假设的数据。
它会给你什么
- 一张带系数的因果矩阵,以及变量的因果先后顺序。
- 时间序列版本的系数、同期因果图和稳定性检验结果。
- 一对变量之间谁是因谁是果的判定。
你需要准备
- 一份数值表格数据,每行一个样本、每列一个变量。
- 随机种子、你已知的因果先后关系和度量方式选择。
- 求解的最大迭代次数。
由你把关
- 数据是否满足所用方法的核心假设,这决定结果可不可信,由你核对。
- 得出的因果先后是否和你领域的常理相符,由你核对。
- 自动选的滞后阶数是否合理,由你核对。
帮你给候选因果图打分挑最优:它给每个候选结构打一个分数,然后在各种可能的结构里搜索得分最高的那个,输出一张因果图;内含贪心、精确、排序和连续优化几类搜索方法。
它会给你什么
- 一份包含搜索过程的记录。
- 搜出的最优因果图。
- 搜出的因果等价类图。
你需要准备
- 一份数值表格数据,部分方法也可直接给协方差矩阵和样本量。
- 用哪种评分函数。
- 每个变量最多允许有多少个直接原因。
由你把关
- 评分函数是否匹配你的数据类型,这直接影响结果,由你核对。
- 控制图复杂度的参数设置是否合理,由你核对。
- 贪心搜索的结果要不要用精确搜索复核一遍,由你决定。
帮你从数据里学出变量间的因果骨架:它反复检验哪些变量独立、哪些相关,先画出无向关系网,再逐步定方向,得到一张因果图;如果怀疑有没观测到的混杂因素,也能给出带保留意见的图。
它会给你什么
- 一张学出的因果图。
- 一张允许混杂的因果图,标明哪些方向还不确定。
你需要准备
- 一份数值表格数据,每行一个样本、每列一个变量。
- 判断独立性时的显著性水平。
- 用哪种独立性检验方法。
由你把关
- 检验方法是否匹配你的数据类型,这决定骨架对不对,由你核对。
- 你是否相信数据里没有未观测的混杂因素,这决定选哪种方法,由你决定。
- 显著性水平设得是否合适,太严会漏边、太松会多出假边,由你核对。
帮你分析时间序列里谁影响谁:一种方法看加入某变量的历史值能否更好地预测另一个变量,另一种方法进一步区分是同一时刻的影响还是滞后影响。
它会给你什么
- 各滞后阶的检验结果和影响关系表。
- 同期与滞后的因果系数、因果顺序和稳定性检验结果。
你需要准备
- 用 Granger 方法所需的检验参数。
- 用 VAR-LiNGAM 方法所需的模型参数。
由你把关
- 序列是否平稳,这决定 Granger 方法能不能用,由你核对。
- 残差是否满足非高斯要求,这决定同期因果能不能识别,由你核对。
- 自动选的滞后阶数是否合理,由你核对。
帮你判断两个变量在给定条件下是否还有关系:给出变量和条件,它返回一个统计判断(含 p 值),支持多种检验方法应对不同类型的数据,重复计算还会走缓存省时间。
它会给你什么
- 一个 p 值,越小越说明两者在给定条件下仍有关系。
- 检验器可直接交给因果发现算法使用。
- 缓存的中间计算结果,避免重复算。
你需要准备
- 一份完整的数值表格数据,初始化时给一次。
- 用哪种检验方法。
- 要检验的两个变量的编号。
由你把关
- 检验方法是否匹配你的数据类型,选错会得出错误判断,由你核对。
- 判断独立性的显著性水平是否合适,由你核对。
- 数据量大时用慢方法是否要降采样或换快速方法,由你核对。
第一次这样开始
把仓库地址直接交给 AI
先让 AI 说明环境和风险,再完成最小安装验证。开始前想清楚要用哪个能力、把对应材料备在手边——每张能力卡展开后有具体清单。
第一次直接复制
帮我安装这个库:https://github.com/py-why/causal-learn 安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。
别这样用
这些判断,仍然由你负责
- 把PC算法输出的等价类(CPDAG)当作确定因果方向
- 对非线性数据用fisherz检验导致错误骨架
- 在存在潜在混杂时仍用假设因果充分的PC算法而非FCI
- 用Granger因果(预测性因果)替代结构因果解释
技术依据
查看能力拆解、验证范围与来源
技术依据
查看能力拆解、验证范围与来源
处理机制
- 01
核心处理链
从观测数据中自动学习变量间的因果结构图,覆盖三大流派
已核对范围
- 静态读取 causallearn/graph/(GeneralGraph、Dag、Edge、Endpoint、GraphClass、GraphUtils、SHD、AdjacencyConfusion、ArrowConfusion)
- 静态读取 causallearn/utils/DAG2CPDAG.py、DAG2PAG.py、PDAG2DAG.py、TXT2GeneralGraph.py
- 静态读取 causallearn/score/LocalScoreFunction.py(6 类评分)、LocalScoreFunctionClass.py
- 静态读取 causallearn/utils/GraphUtils.py
- 静态读取 causallearn/search/FCMBased/lingam/(directlingam、icalingam、varlingam、varmalingam、rcd、CAMUV、multigroupdirectlingam、longitudinallingam、causaleffect、bottomupparcelingam)
- 静态读取 causallearn/search/FCMBased/ANM/ANM.py
- 静态读取 causallearn/search/FCMBased/PNL/PNL.py
- 静态读取 causallearn/search/FCMBased/lingam/hsic.py、hsic2.py(HSIC 独立性检验)
仍待核对
- 未运行图转换(dag2cpdag/pdag2dag),未验证转换输出
- 未运行 SHD 评估,未验证指标计算
- 未验证 LocalScoreFunction 各类的实际评分值
- 未运行任何 LiNGAM/ANM/PNL,未验证邻接矩阵和因果顺序输出
- 未验证 ICA-LiNGAM 与 Direct-LiNGAM 在同一数据上的差异
- 未验证 VAR-LiNGAM 的时间序列滞后因果输出
- 未运行 ges/exactsearch/boss/grasp,未验证实际评分搜索输出
- 未验证 BIC 与 BDeu 在离散数据上的评分差异
读取版本
e30895b7ad41c429be73975a6a0b6bdea8146a7e许可
MIT
最近核对
内容 2026-07-10
Stars 2026-07-11
相关文章
科研之我见
AI 可以参与科研的哪些环节?一张 11 环节工作流全景图
从选题、文献、理论、数据到投稿,逐环节判断 AI 可以主导、需要人工校验和必须由研究者把关的工作。
查看内容具备相关能力的其他库
相关课程
把单项工具放进完整研究设计流程
课程一从研究问题、文献判断、理论假设和方法骨架继续推进,帮助你建立可以复用的研究设计档案。