Je viens de commencer à apprendre à utiliser Stan et rstan
. À moins que je ne sois toujours confus sur le fonctionnement de JAGS / BUGS, je pensais que vous deviez toujours définir une distribution préalable d'une sorte pour chaque paramètre du modèle à partir duquel tirer. Il semble que vous n'ayez pas à le faire dans Stan en fonction de sa documentation. Voici un exemple de modèle qu'ils donnent ici .
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
ni tau
avoir prieurs définis. En convertissant certains de mes modèles JAGS en Stan, j'ai constaté qu'ils fonctionnent si je laisse beaucoup, ou la plupart, de paramètres avec des priorités non définies.
Le problème est que je ne comprends pas ce que fait Stan quand j'ai des paramètres sans priorités définies. S'agit-il par défaut de quelque chose comme une distribution uniforme? Est-ce une des propriétés spéciales de la console HMC, qu'elle ne nécessite pas de définition préalable pour chaque paramètre?
sigma
, nonlog(sigma)
. Stan accomplit cela en transformant le paramètre et en appliquant le changement correct de l'ajustement des variables en utilisant le jacobien.