算法描述:PC算法是一种模式搜素算法,该模式假定输入数据的潜在因果结构是非循环的,并且没有两个变量是由相同的潜在(不可测量)变量引起的。另外,假设输入数据集是完全连续的或完全离散的。如果数据集是连续的,则假定任何两个变量之间的因果关系均为线性,并且每个变量的分布为正态。理想情况下样本应为i.i.d..(独立同分布) 只要有独立性和条件独立性的决策程序可用,PC算法就是正确的。该过程将执行一系列独立性和条件独立性测试,并根据这些测试的结果有效地构建一种模式。测试需要有一个alpha值拒绝无效假设(null hypothesis),无效假设总是一个独立或条件独立的假设。对于连续变量,PC分别针对独立性或条件独立性使用零相关(zero correlation )或零偏相关(zero partial correlation )的测试。对于离散或类别变量,PC使用独立性或条件独立性的卡方检验( chi square)或g平方检验(g square)
输入假设:适用于条件独立性事实已知的任何类型的数据,在本工具中支持线性高斯数据(Fisher Z检验),离散多项式数据(卡方检验)和混合多项式/高斯数据(条件高斯检验)
输出格式:算法结果输出一个模式(pattern)或者紧凑前缀有向无环图(CP-DAG),属于DAG的等价类。等价类中的每个DAG都具有该模式的所有邻接关系(且无更多关系)。图中每个定向的边在等价类中的每个DAG中都相同且等价类中未定向的边不能通过条件独立事实来定向。例如,如果模型为X-> Y-> Z,则输出将为X-Y-Z,模型中不存在对撞,则算法不会检测到对撞,由于缺乏对撞,算法无法定向其他边,如果模型为X <-Y <-Z,则输出也将为X-Y-Z;该模型与X-> Y-> Z在相同的等效类中。模型x->y<-z将是它自己的等价类,因为该模型中存在对撞可以用来定向