Me enteré de que la función jags()
en la R2jags
paquete a veces no quitar la quemadura en la parte incluso con la opción n.burnin=##
. Aquí es un ejemplo muy simple en R
(un simple modelo lineal):
library(R2jags)
N <- 1000
y <- rnorm(N)
x <- rnorm(N)
data <- list("N", "y", "x")
inits <- function(){list(beta0=rnorm(1), beta1=rnorm(1), tau=1)}
parameters <- c("beta0", "beta1", "tau")
el modelo m.bug
es como este:
model{
for (i in 1:N){
y[i] ~ dnorm(mu[i], tau)
mu[i] <- beta0 + beta1*x[i]
}
beta0 ~ dnorm(0, 0.00001)
beta1 ~ dnorm(0, 0.00001)
tau ~ dgamma(0.001, 0.001)
sigma2 <- 1/tau
}
el uso de "puntas()" R2jags
paquete como este:
m <- jags(data, inits, parameters, "m.bug",
n.chains=3, n.iter=2000, n.burnin=1000, n.thin=1)
Mi pregunta:
En la salida de m
, la parte posterior de las estimaciones se basan en el número de la derecha de interations (1000), pero si revisamos las traceplot (usando traceplot(m)
), el burnin parte parece que todavía existe(por ejemplo, el primer par de valores de "tau" no son convergentes). Por qué?
y sólo hay una barra de progreso (uaually dos, uno para la quemadura, uno para el resto).
también, si yo cambio n.iter=2000, n.burnin=1000
a n.iter=2001000, n.burnin=2000000
el tiempo transcurrido no cambia, lo que es "demasiado rápido" para tantas iteraciones.
ps. Yo solía R
versión 2.15.2 y R2jags
versión 0.03-08