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?

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...


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.