首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当变量的顺序改变时,因果图发生变化

当变量的顺序改变时,因果图发生变化
EN

Stack Overflow用户
提问于 2019-02-12 19:18:02
回答 1查看 42关注 0票数 0

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

代码语言:javascript
复制
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)

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

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

代码语言:javascript
复制
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的方向。我是不是漏掉了什么?注意:我知道骨架没有变化(图中没有箭头)。

EN

回答 1

Stack Overflow用户

发布于 2019-02-14 13:04:57

我找到了答案。通过使用solve.confl = TRUEconservativemaj.rule设置为TRUE,可以使因果图完全与顺序无关。

代码语言:javascript
复制
pc.gmG <- pc(suffStat, indepTest = gaussCItest,skel.method = 'stable',
                  conservative = TRUE,solve.confl = TRUE,
               labels = colnames(gmG8$x)[cols], alpha = 0.01)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54648931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档