Am Ende befindet sich ein Abschnitt mit generierten Mengen, in dem die Simulation ausgeführt werden soll. In der Dokumentation (ab Version 1.3, Version 2 sollte jedoch bald veröffentlicht werden) wird nicht ausführlich erläutert, wie dies erreicht werden kann. Sie können die Mailingliste fragen.
In Stan können posteriore Simulationen auf zwei Arten erzeugt werden. Der erste Ansatz besteht darin, die vorhergesagten Variablen als Parameter zu behandeln und dann ihre Verteilungen im Modellblock zu definieren. Der zweite Ansatz, der auch für diskrete Variablen funktioniert, besteht darin, replizierte Daten unter Verwendung von Zufallszahlengeneratoren im generierten Mengenblock zu generieren.
Das Folgende ist keine gründliche Antwort, aber hoffentlich ist es besser als keine Antwort. In meinen eigenen Anwendungen wende ich posteriore Vorhersageprüfungen an, um Modellvorhersagen für ein einzelnes abhängiges Maß zu untersuchen, das aus einem linearen Modell generiert wurde. Dies ist in JAGS einfach, in Stan jedoch etwas undurchsichtiger.
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);
}
Es muss einen besseren Weg geben, also bitte jemand eine bessere Antwort posten. Der obige Code erzeugt jedoch N posteriore Vorhersageverteilungen, eine für jede Beobachtung. Ich mache das so, dass eine prädiktive Verteilung der Extrema gefunden werden kann, aber wenn Sie nur an der posterioren prädiktiven Größe interessiert sind y_tilde, können Sie möglicherweise auf alle verzichten. Für große Datenmengen ist die obige Lösung offensichtlich zu platzintensiv.
Antworten:
Gemäß dem Stan-Benutzerhandbuch v2.2.0 (Seiten 361–362):
Ich benutze normalerweise letzteres.
quelle
Das Folgende ist keine gründliche Antwort, aber hoffentlich ist es besser als keine Antwort. In meinen eigenen Anwendungen wende ich posteriore Vorhersageprüfungen an, um Modellvorhersagen für ein einzelnes abhängiges Maß zu untersuchen, das aus einem linearen Modell generiert wurde. Dies ist in JAGS einfach, in Stan jedoch etwas undurchsichtiger.
Es muss einen besseren Weg geben, also bitte jemand eine bessere Antwort posten. Der obige Code erzeugt jedoch N posteriore Vorhersageverteilungen, eine für jede Beobachtung. Ich mache das so, dass eine prädiktive Verteilung der Extrema gefunden werden kann, aber wenn Sie nur an der posterioren prädiktiven Größe interessiert sind
y_tilde
, können Sie möglicherweise auf alle verzichten. Für große Datenmengen ist die obige Lösung offensichtlich zu platzintensiv.quelle