Wie zeichne ich frühere Verteilungen in Stan?

10

Ich habe versucht, ein Stan-Modell ohne Daten auszuführen, um Diagramme für die vorherigen Verteilungen zu erhalten. Dies scheint jedoch nicht möglich zu sein. Ich erhalte eine Fehlermeldung, dass mein Modell keine Muster enthält. Gibt es also eine Möglichkeit, zu den vorherigen Distributionen zu gelangen? Vielleicht ist es möglich, Stan ohne den Sampler auszuführen?

Jens Kouros
quelle

Antworten:

7

Da meine vorherige Antwort gelöscht wurde, ist hier eine explizitere mit einem Beispiel, das eine einfache Stichprobe aus der vorherigen verwendet:

library(rstan)

model = "
parameters {
  real p;
}
model {
  p ~ normal(1,3);
}
"

fit = stan(model_code = model, 
           pars = c('p'),
           control=list(adapt_delta=0.99, max_treedepth=10),
           iter = 5000, chains = 1, 
           warmup = 1000, verbose=FALSE)

print(fit)

mit Ausgabe:

Inference for Stan model: a067aa7e9d60dcf5fa2c08c3db339374.
1 chains, each with iter=5000; warmup=1000; thin=1; 
post-warmup draws per chain=4000, total post-warmup draws=4000.

      mean se_mean  sd  2.5%   25%   50%   75% 97.5% n_eff Rhat
p     1.02    0.07 3.0 -4.84 -1.02  1.01  3.07  6.83  1607    1
lp__ -0.50    0.02 0.7 -2.47 -0.66 -0.23 -0.05  0.00  1346    1

Hoffe das hilft...

Pascal
quelle
Eine Sache, die ich hinzugefügt habe, um die Verteilung zu visualisieren, war p <- extract (fit, "p") $ p, gefolgt von einem hist (p). Ich habe auch den Aufwärmparameter auf Null gesetzt, weil ich nicht dachte, dass dies hier notwendig ist.
Ben Ogorek