#r #directed-acyclic-graphs #causality
Вопрос:
Здесь есть документация (https://www.rdocumentation.org/packages/pcalg/versions/2.7-3/topics/pc) о том, как запустить алгоритм ПК для двоичных данных.
library(pcalg)
##################################################
## Using discrete data
##################################################
## Load data
data(gmD)
V <- colnames(gmD$x)
## define sufficient statistics
suffStat <- list(dm = gmD$x, nlev = c(3,2,3,4,2), adaptDF = FALSE)
## estimate CPDAG
pc.D <- pc(suffStat,
## independence test: G^2 statistic
indepTest = disCItest, alpha = 0.01, labels = V, verbose = TRUE)
if (require(Rgraphviz)) {
## show estimated CPDAG
par(mfrow = c(1,2))
plot(pc.D, main = "Estimated CPDAG")
plot(gmD$g, main = "True DAG")
}
Мне интересно, могу ли я в любом случае использовать pc.D
объект для визуализации этого в ggdag
(https://cran.r-project.org/web/packages/ggdag/vignettes/intro-to-ggdag.html).
Есть ли способ?
Комментарии:
1. Похоже , что ggdag использует
igraph
для своих графических инструментов. Таким образом, вы можете преобразовать свой график вigraph
объект.2. … быстрый взгляд-это то, с помощью чего вы можете получить матрицу смежности
as(pc.D@graph, "matrix")
. Затем вы можете использовать любое графическое программное обеспечение, которое вы хотите создать, для создания графика. РЕДАКТИРОВАТЬ:: или формироватьigraph
объект непосредственно с помощьюigraph::graph_from_graphnel(pc.D@graph)
3.
ggdag()
принимает в себя объект daggity. есть ли какой-либо способ преобразованияpc.D
в объект daggity?