Я использую пакеты bnlearn
и pcalg
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.Я что-то здесь упускаю?Примечание: я знаю, что скелет не изменился (график без стрелок).