我对使用 R 还是很陌生(只有几个月),我正在尝试为我的研究(生物学)建立一个贝叶斯网络(BN)。我已经用离散变量完成了所有这些,但是,我现在也在尝试整合连续变量,我知道这可能是一个问题。现在我只是在构建一个 BN 以在MoTBFs
包中使用来构建一个混合网络,使用bnlearn
包。这是我的数据:
head(training)
Sample rs12913832 rs16891982 rs12203592 rs1800407 rs3829241 rs1805007 rs1408799 rs683 rs3737576
1 1078 CT GG GG CT GG CC GG TT TT
2 1254 TT CC GG CC GG CC AG GG TT
3 1285 CT GG GG CC GG CC GG TT TT
4 1308 CT GG GG CC AG CT AG GT TT
5 1382 CC GG GG CC AA CT AG GT TT
我在下面得到了这个字符串,因为我只针对上述数据中的几个 SNP:
bn.bayes.Leye<-mmhc(trainingmotbf2[,c(2:6,8,18,26)])
但是,它没有创建正确的弧,因此我尝试创建一个白名单,如下所示(L 是上面子集中未显示的列):
from to
1 L rs12913832
2 L rs1800407
3 L rs16891982
4 L rs1408799
5 L rs3829241
6 L rs12203952
7 L rs12896399
当我尝试添加此白名单时,调用white
bn 函数:
bn.bayes.Leye<-mmhc(trainingmotbf2[,c(2:6,8,18,26)],whitelist=white)
Error in build.whitelist(whitelist, nodes = names(x), data = x, algo = method, :
unknown node label present in the whitelist.
现在错误并不神秘,但白名单中的所有名称都在数据框中。它们出现在白名单中成功创建的 bn 中。我已经尝试将数据作为因素和字符认为必须是某种格式,但同样的错误。我错过了什么?
有没有人有经验或建议的包来构建具有连续父节点和离散子节点的 BN?也许这个MoTBFs
包不是我应该使用的。