2013-04-25 63 views
3

我通過R2WinBUGSBRugs包使用WinbugsR,我寫的模型,並嘗試運行它,但結果沒有出來,我看了WinBUGS日誌,似乎沒有得到錯。 這裏是模型:有什麼不對的WinBUGS軟件模型

require(BRugs) 
require(R2WinBUGS) 
# MCMC mosel 
model<-function(){ 
    for(i in 1:M){ 
    y[i] ~ dnorm(x[i], sigma.y) 
    } 
    x[1] ~ dnorm(theta[1], sigma.x) 
    theta[1] <- 0 
    for(j in 2:M){ 
    x[j] ~ dnorm(theta[j], sigma.x) 
    theta[j] <- a + b*x[j-1] 
    } 
    a ~ dunif(0, 1) 
    b ~ dunif(-1, 1) 
    tau.y ~ dgamma(0.1, 0.1) 
    tau.x ~ dgamma(0.1, 0.1) 
    sigma.y <- 1/sqrt(tau.y) 
    sigma.x <- 1/sqrt(tau.x) 
} 

write.model(model, con = "model.bug") 
modelCheck("model.bug") 
# model is syntactically correct 

data=list(M = 90, y = rnorm(90) 

inits = function(){ 
    list(tau.x = rgamma(1, 0.1, 0.1), tau.y = rgamma(1, 0.1, 0.1), a = runif(0, 1), b = runif(-1, 1)) 
} 
parameters=c("a", "b", "x") 

ret.sim <- bugs(data, inits, parameters, "model.bug", 
      n.chains = 1, n.iter = 1000, 
      n.sims = 500, 
      program= "winbugs", 
      working.directory = NULL, 
      debug = T) 

模型校驗通過,並WinBUGS日誌是在這裏:

display(log) 
check(C:/Users/ADMINI~1.PC-/AppData/Local/Temp/Rtmp2LfZTu/model.bug.txt) 
model is syntactically correct 
data(C:/Users/ADMINI~1.PC-/AppData/Local/Temp/Rtmp2LfZTu/data.txt) 
data loaded 
compile(1) 
model compiled 
inits(1,C:/Users/ADMINI~1.PC-/AppData/Local/Temp/Rtmp2LfZTu/inits1.txt) 
this chain contains uninitialized variables 
gen.inits() 
initial values generated, model initialized 
thin.updater(1) 
update(500) 

WinBUGS沒下去,並且不顯示任何錯誤信息,所以我無法找到任何錯誤。

回答

0

這個錯誤信息顯然是關於初始值的。 嘗試運行R控制檯上runif(-1, 1),你會看到:-)你的意思runif(1, -1, 1)(也runif(1, 0, 1)的前一個。

祝你好運!

相關問題