Я только начал учиться использовать Стэн и rstan
. Если я не всегда был озадачен тем, как работают JAGS / BUGS, я думал, что вы всегда должны были определять какое-то предварительное распределение для каждого параметра в модели, из которой нужно извлечь. Похоже, что вам не нужно делать это в Stan на основании его документации. Вот пример модели, которую они дают здесь .
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);
}
Ни , mu
ни tau
не имеют априорные определены. Преобразовывая некоторые из моих моделей JAGS в Stan, я обнаружил, что они работают, если я оставлю многие или большинство параметров с неопределенными априорными значениями.
Проблема в том, что я не понимаю, что делает Стэн, когда у меня есть параметры без определенных априоров. По умолчанию это что-то вроде равномерного распределения? Является ли это одним из специальных свойств HMC, что для каждого параметра не требуется определенный приоритет?
sigma
, неlog(sigma)
. Стэн выполняет это путем преобразования параметра и применения корректной корректировки переменных с использованием якобиана.