Hay una sección de cantidades generadas al final que se supone que puede manejar la simulación, pero la documentación (a partir del ver. 1.3, pero el ver. 2 debería estar disponible pronto) no explica con mucho detalle cómo lograr esto. Puede considerar preguntar en la lista de correo.
En Stan, las simulaciones posteriores se pueden generar de dos maneras. El primer enfoque es tratar las variables predichas como parámetros y luego definir sus distribuciones en el bloque modelo. El segundo enfoque, que también funciona para variables discretas, es generar datos replicados utilizando generadores de números aleatorios en el bloque de cantidades generadas.
La siguiente no es una respuesta exhaustiva, pero espero que sea mejor que ninguna respuesta. En mis propias aplicaciones, aplico verificaciones predictivas posteriores para examinar las predicciones del modelo para una sola medida dependiente que se ha generado a partir de un modelo lineal. Esto es simple en JAGS, pero algo más opaco en Stan.
data{
int<lower=1> N; // no. rows
real x[N]; // predictor
real y[N]; // dependent variable
}
parameters{
real alpha; // int.
real beta; // slope
real<lower=0> sigma_e; // resid. var.
real y_tilde[N]; // post. pred.
}
model{
real mu[N];
for(i in 1:N){
mu[i] <- alpha + beta*x[i];
}
y ~ normal(mu,sigma_e); //lik
y_tilde ~ normal(mu,sigma_e);
alpha ~ normal(0,5);
beta ~ normal(0,5);
sigma_e ~ cauchy(0,5);
}
generated quantities{
real minimum;
real maximum;
minimum <- min(y_tilde);
maximum <- max(y_tilde);
}
Debe haber una mejor manera de hacer esto, así que alguien publique una mejor respuesta. Pero el código anterior genera N distribuciones predictivas posteriores, una para cada observación. Hago esto para que se pueda encontrar una distribución predictiva de los extremos, pero si solo le interesa la cantidad predictiva posterior y_tilde, puede prescindir de todos ellos. Para grandes conjuntos de datos, la solución anterior obviamente requiere demasiado espacio.
Respuestas:
De acuerdo con el Manual del usuario de Stan v2.2.0 (páginas 361–362):
Usualmente uso el último.
fuente
La siguiente no es una respuesta exhaustiva, pero espero que sea mejor que ninguna respuesta. En mis propias aplicaciones, aplico verificaciones predictivas posteriores para examinar las predicciones del modelo para una sola medida dependiente que se ha generado a partir de un modelo lineal. Esto es simple en JAGS, pero algo más opaco en Stan.
Debe haber una mejor manera de hacer esto, así que alguien publique una mejor respuesta. Pero el código anterior genera N distribuciones predictivas posteriores, una para cada observación. Hago esto para que se pueda encontrar una distribución predictiva de los extremos, pero si solo le interesa la cantidad predictiva posterior
y_tilde
, puede prescindir de todos ellos. Para grandes conjuntos de datos, la solución anterior obviamente requiere demasiado espacio.fuente