首页 > 解决方案 > 如何修复 R2jags::jags 中的“节点与父母不一致”错误

问题描述

我正在尝试尝试“Yet, B., & Şakar, CT (2019). Estimating criteria weight distributions in multiple criteria decision making: a Bayesian approach. Annals of Operations Research, 1-25”的案例研究示例。提出了使用MCMC方法解决“多属性决策”问题。

我想根据条件计算权重的分布(由 b1~b5 表示)

y = 1 if (b[i]*x[i]) >= 0
y = 0 if (b[i]*x[i]) < 0 

我的问题是

  1. 我认为'y'的先验分布不适合这个问题。

  2. 我不知道如何将权重之和表示为 1 到锯齿模型。

  3. 运行我在下面附加的代码后,R 产生了错误消息:“节点与父节点不一致”。我认为这是因为问题1中的问题。

这是我的 R 代码

myData = read.csv("School.csv")
View(myData)
y=myData$y
Ntotal =length(y)
Datalist=list(y=y, Ntotal = Ntotal)
View(Datalist)
x1=myData$x1
x2=myData$x2
x3=myData$x3
x4=myData$x4
x5=myData$x5
Datalist=list(y=y, x1=x1, x2=x2, x3=x3, x4=x4, x5=x5, Ntotal = Ntotal)

sim.dat.jags <- list("y", "x1", "x2", "x3", "x4", "x5", "Ntotal")
bayes.mod.params <- c("b1", "b2", "b3", "b4", "b5")

和 rjags 模型

bayes.mod <-function() {
for(i in 1:Ntotal) {
y[i] ~ dbern(d.bound[i])
d.bound[i] <- max(0, differ[i])
differ[i] <- b1*x1[i]+b2*x2[i]+b3*x3[i]+b4*x4[i]+b5*x5[i]
}
b1~dunif(0,1)
b2~dunif(0,1)
b3~dunif(0,1)
b4~dunif(0,1)
b5~dunif(0,1)
}

“School.csv”的内容如下:

x1,x2,x3,x4,x5,y
-0.001,0.157,0.233,-0.175,0.075,1
0.083,-0.314,-0.148,0.171,-0.114,1
0.072,0.199,0.054,-0.121,0.068,1
-0.064,-0.188,0.033,0.378,-0.493,1
0.033,-0.184,0.083,0.024,-0.249,1
0.045,0.271,0.113,-0.147,0.377,1
-0.169,-0.267,-0.078,0.303,0.151,1
0.118,0.161,-0.219,0.315,-0.674,1
-0.324,0.33,-0.288,0.614,-0.1,1
0.156,-0.04,0.259,-0.29,-0.344,1
-0.157,-0.149,-0.131,0.423,0.462,1
0.35,-0.446,0.271,-0.372,-0.171,1
0.006,0.035,-0.018,0.026,0.072,1
0.012,0.025,0.022,0.022,-0.323,1
-0.126,0.599,0.051,0.113,-0.39,1
0.006,0.079,-0.182,0.167,0.036,1
0.001,-0.157,-0.233,0.175,-0.075,0
-0.083,0.314,0.148,-0.171,0.114,0
-0.072,-0.199,-0.054,0.121,-0.068,0
0.064,0.188,-0.033,-0.378,0.493,0
0.001,-0.157,-0.233,0.175,-0.075,0
-0.083,0.314,0.148,-0.171,0.114,0
-0.072,-0.199,-0.054,0.121,-0.068,0
0.064,0.188,-0.033,-0.378,0.493,0
0.001,-0.157,-0.233,0.175,-0.075,0
-0.083,0.314,0.148,-0.171,0.114,0
-0.072,-0.199,-0.054,0.121,-0.068,0
0.064,0.188,-0.033,-0.378,0.493,0
0.001,-0.157,-0.233,0.175,-0.075,0
-0.083,0.314,0.148,-0.171,0.114,0
-0.072,-0.199,-0.054,0.121,-0.068,0
0.064,0.188,-0.033,-0.378,0.493,0

接下来我可以尝试什么来解决这个问题?

标签: rmontecarlomcmcr2jags

解决方案


推荐阅读