2015-01-13 6 views
2

Я использую пакет R2WinBugs. Я хотел бы передать два параметра, которые рассчитаны ранее в R скрипте функции моделиПередача переменной в модель WinBugs в R

c0yy <- 0.1 
syy <- 0.0001 
#Model 
model <- function(c0yy,syy){ 

    #Likelihood 
    for(i in 1:n){ 
    y[i] ~ dnorm(mu[i],cyy) 
    } 

    #Regression formula 
    for(i in 1:n){ 
    mu[i] <- alpha + gamma * x[i] 
    } 

    #Priors for the regression parameters 
    alpha ~ dnorm(0,0.000001) 
    gamma ~ dnorm(0,0.000001) 

    #Priors for the precision parameter 
    cyy ~ dnorm(c0yy,syy) 

    #Monitored variables 
    beta <- gamma/(alpha-1) 
} 
filename <- file.path(tempdir(), "Olm.txt") 
write.model(model, filename) 

, но я получаю эту ошибку

made use of undefined node c0yy 

в то время как если бы я подставлять значения для c0yy и syy внутри Функция модели работает. Любая помощь?

Благодаря

ответ

1

Значения вы обвязки для перехода к модели данных. В BUGS (и R2WinBUGS) данные передаются программе как отдельный объект из модели, которую вы определили. Чтобы включить данные, вы можете поместить их в список, что-то вроде;

my.mcmc <- bugs(data = list(c0yy = 0.1, syy= 0.0001), params = "beta', model.file = "Olm.txt", n.iter=10000) 

Вам также нужно будет удалить <- function(c0yy,syy) из вашего сценария модели.