【问题标题】:Causality map changing when order of the variables are changed当变量的顺序改变时,因果图发生变化
【发布时间】:2019-02-12 11:18:02
【问题描述】:

我正在使用bnlearnpcalg R 包从数据集中获取因果关系图。有一种声称与变量无关的顺序无关算法作为输入给出。当我改变变量的顺序时,箭头的方向正在改变。以下是我正在使用的代码:

data("gmG")
set.seed(101)
cols = sample(ncol(gmG8$x))
suffStat <- list(C = cor(gmG8$x[,cols]), n = nrow(gmG8$x))
pc.gmG <- pc(suffStat, indepTest = gaussCItest,
               labels = colnames(gmG8$x)[cols], alpha = 0.01)
plot(pc.gmG)

上面的代码给了我以下输出:

现在我用不同的数据顺序运行相同的代码。

data("gmG")
set.seed(102)
cols = sample(ncol(gmG8$x))
suffStat <- list(C = cor(gmG8$x[,cols]), n = nrow(gmG8$x))
pc.gmG <- pc(suffStat, indepTest = gaussCItest,
               labels = colnames(gmG8$x)[cols], alpha = 0.01)
plot(pc.gmG)

正如人们可以看到的那样,箭头已经改变了 v6 和 v7 的方向。 我在这里错过了什么吗? 注意:我知道骨架没有改变(没有箭头的图表)。

【问题讨论】:

    标签: r bayesian-networks bnlearn causality


    【解决方案1】:

    我找到了答案。 通过将conservativemaj.rule 设置为TRUEsolve.confl = TRUE,可以使因果图完全独立于顺序。

    pc.gmG <- pc(suffStat, indepTest = gaussCItest,skel.method = 'stable',
                      conservative = TRUE,solve.confl = TRUE,
                   labels = colnames(gmG8$x)[cols], alpha = 0.01)
    

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 2022-07-29
      • 1970-01-01
      • 2021-09-28
      • 2020-10-17
      • 1970-01-01
      • 2021-03-17
      • 2017-05-09
      • 1970-01-01
      相关资源
      最近更新 更多