Acabo de empezar a aprender a usar Stan y rstan
. A menos que siempre haya estado confundido acerca de cómo funcionaba JAGS / BUGS, pensé que siempre tenía que definir una distribución previa de algún tipo para cada parámetro del modelo que se extraería. Sin embargo, parece que no tiene que hacer esto en Stan según su documentación. Aquí hay un modelo de muestra que dan aquí .
data {
int<lower=0> J; // number of schools
real y[J]; // estimated treatment effects
real<lower=0> sigma[J]; // s.e. of effect estimates
}
parameters {
real theta[J];
real mu;
real<lower=0> tau;
}
model {
theta ~ normal(mu, tau);
y ~ normal(theta, sigma);
}
Ni mu
tampoco se tau
han definido antecedentes. Al convertir algunos de mis modelos JAGS a Stan, descubrí que funcionan si dejo muchos o la mayoría de los parámetros con antecedentes indefinidos.
El problema es que no entiendo lo que está haciendo Stan cuando tengo parámetros sin precedentes definidos. ¿Está predeterminado a algo como una distribución uniforme? ¿Es esta una de las propiedades especiales de HMC, que no requiere un previo definido para cada parámetro?
sigma
, nolog(sigma)
. Stan logra esto transformando el parámetro y aplicando el cambio correcto de ajuste de variables usando el jacobiano.