Właśnie zacząłem uczyć się używać Stana i rstan
. Chyba że zawsze byłem zdezorientowany, jak działały JAGS / BŁĘDY, myślałem, że zawsze musisz zdefiniować jakiś wcześniejszy rozkład dla każdego parametru w modelu, z którego chcesz czerpać. Wygląda na to, że nie musisz tego robić w Stanie na podstawie jego dokumentacji. Oto przykładowy model, który tutaj podają .
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);
}
Nie zdefiniowano mu
też tau
priorytetów. Konwertując niektóre z moich modeli JAGS na Stan, przekonałem się, że działają one, jeśli zostawię wiele lub większość parametrów z nieokreślonymi priorytetami.
Problem polega na tym, że nie rozumiem, co robi Stan, gdy mam parametry bez zdefiniowanych priorytetów. Czy domyślne ustawienie to coś w rodzaju jednolitego rozkładu? Czy jest to jedna ze specjalnych właściwości konsoli HMC, że nie wymaga zdefiniowanego wcześniej dla każdego parametru?
sigma
, nielog(sigma)
. Stan dokonuje tego poprzez transformację parametru i zastosowanie poprawnej zmiany dopasowania zmiennych za pomocą jakobianu.