1

我正在使用贝叶斯网络。在学习了参数之后,我在使用 gRain 包中的 setEvidence 函数时遇到了一些麻烦。

数据: https ://drive.google.com/file/d/1Cmpz5efBQleb0edmavjWIois4e8Ui8xL/view?usp=sharing

Libray(bnlearn)

#Discreditizing and structure learning:

dsachs <- discretize (sachs.data, method = "hartemink", breaks = 3, ibreaks = 60, idisc = "quantile")
boot <- boot.strength(dsachs, R = 500, algorithm = "hc",algorithm.args = list(score = "bde", iss=10))
avg.boot <- averaged.network (boot, threshold = 0.85)
graphviz.plot(avg.boot)
bnlearn::score(avg.boot, dsachs, type = "bde")

# Parameter learning and predictions----
fitted <- bn.fit (avg.boot, dsachs, method = "bayes")
fitted

library(gRain)
jtree <- compile (as.grain (fitted))


# CTP of p44.42
querygrain (jtree, nodes = "p44.42")$p44.42
querygrain (jtree, nodes = "pakts473")$pakts473

# Pakts473 | p44.42
jlow <- setEvidence(jtree, nodes = c("p44.42"), states = c("15.3,25.3"))
querygrain (jlow, nodes = "pakts473")$pakts473

如下图所示 Pakts473 的概率 | p44.42 与单独的 p44.42 的 CPT 相同。

我被要求讨论 p44.42 中有多少变化会影响 pakts473。如图所示解释结果,我会说 pakts473 不受影响。

如果您了解这些内容,我将不胜感激您就如何解释这些结果或某处是否确实存在错误提供反馈。

结果

4

0 回答 0