Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model 错误传递模型JAGS_Model_Jags_Runjags - Fatal编程技术网

Model 错误传递模型JAGS

Model 错误传递模型JAGS,model,jags,runjags,Model,Jags,Runjags,我目前正忙于使用JAGS工具箱进行多元回归分析。 我正在使用runjags,但仍会出现错误: Error parsing model file: syntax error on line 3 near "," 我的模型是这样的: modelString2 = " model { for ( i in 1:Ntotal ) { y[i] ~ dnorm( beta[s[i],1] + beta[s[i],2] * x[i,1] + betax[1] * x[i,2] + betax[2] *

我目前正忙于使用JAGS工具箱进行多元回归分析。 我正在使用runjags,但仍会出现错误:

Error parsing model file:
syntax error on line 3 near "," 
我的模型是这样的:

modelString2 = "
model {
for ( i in 1:Ntotal  ) {
y[i] ~ dnorm( beta[s[i],1] + beta[s[i],2] * x[i,1] + betax[1] * x[i,2] + betax[2] * x[i,3] + betax[3] * x[i,4]), 1/sigma^2 )  
}
for( j in 1 : Nsubj ) {  
beta[j , 1 : 2] ~ dnorm(betamu, R) 
}
for ( k in 1:NxO ){
betax[k] ~ dnorm( 0 , 1/(10)^5 )
}
betamu[1 : 2] ~ dnorm(mean, prec) 
R[1 : 2 , 1 : 2] ~ dwish(Omega, df) 
S<-inverse(R) 
ss[1]<-sqrt(S[1,1]) #var to sd
ss[2]<-sqrt(S[2,2]) #var to sd
ss[3]<-S[1,2]/(ss[1]*ss[2]) #cov to cor 
sigma ~ dunif( 1.0E-3 , 1.0E+3 )
}
"
writeLines(modelString2, con = "multiple_regression.txt")

然而,我不知道错误来自哪里。谁能帮我

看起来好像有两个右括号,而该行中只有一个

你有:

y[i]~dnorm(beta[s[i],1]+beta[s[i],2]*x[i,1]+betax[1]*x[i,2]+betax[2]*x[i,3]+betax[3]*x[i,4]),1/sigma^2)

x[i,4]
后面有一个右括号,
1/sigma^2
后面有一个右括号,表示
dnorm
。它的正确位置在
1/sigma^2
之后,因此该行应改为:

y[i]~dnorm(beta[s[i],1]+beta[s[i],2]*x[i,1]+betax[1]*x[i,2]+betax[2]*x[i,3]+betax[3]*x[i,4],1/sigma^2)

您还可以创建一个平均值(或mu)对象,而不是将线性预测器放在
dnorm
中,这可能会降低此类错误的可能性:

for(i in 1:Ntotatl){
y[i] ~ dnorm(mu[i], 1/sigma^2)
mu[i] <- beta[s[i],1] + beta[s[i],2] * x[i,1] + betax[1] * x[i,2] + 
betax[2] * x[i,3] + betax[3] * x[i,4]
}
for(1中的i:ntotal){
y[i]~dnorm(mu[i],1/sigma^2)
mu[i]
for(i in 1:Ntotatl){
y[i] ~ dnorm(mu[i], 1/sigma^2)
mu[i] <- beta[s[i],1] + beta[s[i],2] * x[i,1] + betax[1] * x[i,2] + 
betax[2] * x[i,3] + betax[3] * x[i,4]
}