我是贝叶斯网络的新手。我正在尝试在 R 中使用 catnet 包,但是,我很难理解 cnProb() 函数的输出。例如,这是一个新的 catnetwork 对象:
cnet_test <- cnNew(
nodes = c("a", "b", "c"),
cats = list(c("1","2"), c("1","2"), c("1","2")),
parents = list(NULL, c(1), c(1,2)))
这应该会导致这样的网络,对吧?我假设 parents = 参数在这里意味着节点 X 是...的父节点
但是,当对这个 catnet 对象执行 cnProb() 时,它会返回以下内容:
$a
1 2
0.19 0.81
$b
a 1 2
A 1 0.396 0.604
B 2 0.611 0.389
$c
a b 1 2
A 1 1 0.519 0.481
B 1 2 0.878 0.122
A 2 1 0.666 0.334
B 2 2 0.89 0.11
这似乎与网络图完全相反。根据文档,cnprob:
返回由 catNetwork 对象的哪个参数指定的节点的条件概率列表。节点概率以下列格式报告。首先,给出节点名称及其父节点,然后给出与父类别(放在括号中)和节点类别的所有组合相对应的概率值列表。例如,具有两个父节点的节点的条件概率,即节点及其父节点都具有三个类别,由 27 个值给出,每个值对应于 3 3 3 组合。
我想知道我们如何准确地解释 cnProb 的输出?还是我对cnNew的父母参数的解释错误。任何信息都会有所帮助。