ошибка в as.mcmc применительно к выводу jags() в R?

Я только что перешел с R2jags с R2OpenBUGS и заметил кое-что, чего не понимаю. После запуска симуляции с использованием jags() и преобразования вывода с помощью as.mcmc() первая выборка всегда имеет очень высокое отклонение и обычно очень далека от оценки конвергентного параметра. Запуск тех же данных с bugs() в этом образце не отображается. Похоже, что первый семпл — это фактический первый семпл с этапа приработки.

Воспроизводимый код, включая неверную начальную оценку, чтобы показать неверный параметр в первой выборке выходных данных jags(), но не bugs().

require(R2jags); require(R2OpenBUGS); require(mcmcplots)

set.seed(1)
x <- rnorm(100)
y <- 2*x + rnorm(100)

jags.model <- function()
{
    # likelihood
    for( i in 1:n ){
        mu[i] <- alpha + beta * x[i]
        y[i] ~ dnorm( mu[i], tau )
    }

    # priors
    alpha ~ dnorm(0,0.001)
    beta ~ dnorm(1,0.001)

    tau ~ dgamma(1,1)
    sigma <- 1/sqrt(tau)
}

n <- length(x)

inits <- function() list( "alpha"=5,"beta"=5,"tau"=5 ) # very far initial estimate

dat <- list("x","y","n")

out.jags <- jags( dat, 
    inits=inits, model=jags.model, 
    n.iter=1000, n.thin=1, n.chains=2,
    DIC=TRUE,
    parameters.to.save=c("alpha","beta") )
codaout.jags <- as.mcmc(out.jags)

out.bugs <- bugs( dat, 
    inits=inits, model=jags.model, 
    n.iter=1000, n.thin=1, n.chains=2,
    DIC=TRUE,
    parameters.to.save=c("alpha","beta") )
codaout.bugs <- as.mcmc.bugs(out.bugs)


plot(codaout.jags)
x11(); plot(codaout.bugs)

person noname    schedule 31.10.2014    source источник


Ответы (1)


Для потомков проблема заключается в том, что R2jags не всегда правильно обрабатывает период записи, как обсуждалось здесь.

person noname    schedule 22.12.2014