В конце есть секция сгенерированных количеств, которая, как предполагается, способна обрабатывать моделирование, но документация (по состоянию на версию 1.3, но версия 2 должна скоро выйти) не объясняет в деталях, как этого добиться. Вы могли бы рассмотреть вопрос о списке рассылки.
В Stan последующее моделирование может быть сгенерировано двумя способами. Первый подход состоит в том, чтобы рассматривать предсказанные переменные как параметры, а затем определять их распределения в блоке модели. Второй подход, который также работает для дискретных переменных, заключается в генерации реплицированных данных с использованием генераторов случайных чисел в блоке генерируемых количеств.
Следующее не является полным ответом, но, надеюсь, это лучше, чем отсутствие ответа. В моих собственных приложениях я применяю апостериорные прогностические проверки для проверки прогнозирования модели для единственной зависимой меры, которая была сгенерирована из линейной модели. Это просто в JAGS, но несколько более непрозрачно в 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);
}
Там должен быть лучший способ сделать это, поэтому кто-то, пожалуйста, опубликуйте лучший ответ. Но приведенный выше код генерирует N апостериорных предсказательных распределений, по одному на каждое наблюдение. Я делаю это так, чтобы можно было найти прогнозирующее распределение экстремумов, но если вас интересует только задняя прогнозирующая величина, y_tildeвы можете обойтись без всех них. Для больших наборов данных вышеуказанное решение, очевидно, слишком много места.
Ответы:
Согласно Руководству пользователя Stan v2.2.0 (стр. 361–362):
Я обычно использую последнее.
источник
Следующее не является полным ответом, но, надеюсь, это лучше, чем отсутствие ответа. В моих собственных приложениях я применяю апостериорные прогностические проверки для проверки прогнозирования модели для единственной зависимой меры, которая была сгенерирована из линейной модели. Это просто в JAGS, но несколько более непрозрачно в Stan.
Там должен быть лучший способ сделать это, поэтому кто-то, пожалуйста, опубликуйте лучший ответ. Но приведенный выше код генерирует N апостериорных предсказательных распределений, по одному на каждое наблюдение. Я делаю это так, чтобы можно было найти прогнозирующее распределение экстремумов, но если вас интересует только задняя прогнозирующая величина,
y_tilde
вы можете обойтись без всех них. Для больших наборов данных вышеуказанное решение, очевидно, слишком много места.источник