首页 > 解决方案 > 如何在 dagitty 图中将变量圈到观察(非潜在)变量

问题描述

在下面的图中,我如何在某些变量周围画一个圆圈?

library(dagitty)
g = dagitty('dag{
  
  A [pos="-1,0.5"]
  W [pos="0.893,-0.422"]
  X [adjusted,pos="0,-0.5"]
  Y [pos="1,0.5"]
  A -> Y
  X -> A
  X -> W
  X -> Y
}')

png("mp.png", width = 500, height = 500,res=300)
plot(g)
dev.off()

基于网络的工具中,您可以指示例如潜在的或调整的,它会改变圆圈的颜色,但这并不是我想要的,尽管如果有可能从 R 的图中得到这些就足够了,虽然我真的不喜欢变量在基于网络的版本中的圆圈旁边的方式。我真的很想圈出观察到的变量,而不是圈出未观察到的变量。

标签: r

解决方案


我在 中没有找到任何信息dagitty,但bnlearn包可以轻松添加圆形/或其他形状。但我只是注意到您只想将圆圈添加到观察到的特征而不是潜在变量(在您的标题中更好地提到这一点)。那么我的代码可能不是你要找的。我仍然在此处附上代码供您参考。或者,您可以用不同的颜色区分观察到的/潜在的特征。这可以使用bnlearnhttps://www.bnlearn.com/examples/graphviz-plot/)轻松完成

library(bnlearn)
tree = model2network("[X][W|X][A|X][Y|A:X]")
graphviz.plot(tree, main = "DAG structure", shape = "circle", 
              layout = "circo")

在此处输入图像描述


推荐阅读