7 votos

La primera iteración en la cadena de coda MCMC es diferente de los valores iniciales

Tengo mi objeto de salida jags. Para entender cómo funcionan las cadenas de coda MCMC, he intentado ver si la primera iteración en cada cadena MCMC es igual a los valores iniciales suministrados. ¡Y es diferente! ¡El valor inicial no está ahí! ¿Es un error?

Tenga en cuenta que he especificado burnin = 0 para este propósito.

Cómo he corrido juergas:

inits = function () { list(
    alpha = rnorm(no_crit, 0, 10000),
    beta = rnorm(no_crit, 0, 10000)
    ,eps_tau = 7.9
    ,gamma_tau = 3.1
    ,delta_tau = 213 
) 
}

params = c("alpha", "beta", "eps_tau", "gamma_tau", "delta_tau")

ni <- 5000
nt <- 8
nb <- 0
nc <- 3

out <- R2jags::jags(win.data, inits, params, "model.txt",
    nc, ni, nb, nt,  
    working.directory = paste(getwd(), "/tmp_bugs/", sep = "")
)

Una vez terminado el cálculo de los jags, volqué la primera iteración de cada cadena de coda MCMC:

> mm = as.mcmc(out)
> mm[1, c("delta_tau", "eps_tau")]
> mm[1, c("delta_tau", "eps_tau")]
[[1]]
   delta_tau      eps_tau 
4426.7716020    0.4825011 

[[2]]
   delta_tau      eps_tau 
4811.3174529    0.5240721 

[[3]]
   delta_tau      eps_tau 
4406.2672016    0.5351576 

Como puede ver, la primera iteración en todas estas cadenas es diferente de lo que suministré como valores iniciales (eps_tau = 7,9, delta_tau = 213).

2voto

DanH Puntos 153

No he investigado el código fuente de JAGS, pero a menudo la gente considera que los valores iniciales son la iteración 0, y que la iteración 1 es el resultado después de una sola pasada por el muestreador de Gibbs.

Además, si hay algún paso de Metrópolis, es probable que haya una breve fase de adaptación antes de la iteración 1, independientemente de la configuración del burn-in.

0voto

Cory Puntos 4442

En primer lugar, JAGS no hace recorte de quemado - R2jags hace algo, pero no sé lo que es. En segundo lugar, la adaptación (véase el manual de usuario de JAGS) puede afectar a los valores iniciales. En tercer lugar, incluso si se desactiva la adaptación, R2jags solía tener un error con los valores iniciales . Mejor usar rjags en su lugar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X