Parameter ohne definierte Prioritäten in Stan


13

Ich habe gerade angefangen zu lernen, wie man mit Stan und rstan. Es sei denn, ich war immer verwirrt über die Funktionsweise von JAGS / BUGS, ich dachte, Sie müssten immer eine vorherige Verteilung für jeden Parameter im Modell definieren, aus dem gezogen werden soll. Es scheint, dass Sie dies in Stan nicht tun müssen, basierend auf seiner Dokumentation. Hier ist ein Beispielmodell, das sie hier geben .

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);
} 

Weder haben munoch tauPrioritäten definiert. Bei der Konvertierung einiger meiner JAGS-Modelle nach Stan habe ich festgestellt, dass sie funktionieren, wenn ich viele oder die meisten Parameter mit undefinierten Prioritäten belasse.

Das Problem ist, dass ich nicht verstehe, was Stan macht, wenn ich Parameter ohne definierte Prioritäten habe. Ist es so etwas wie eine einheitliche Verteilung standardmäßig? Ist dies eine der besonderen Eigenschaften von HMC, dass nicht für jeden Parameter ein definiertes Prior erforderlich ist?

Antworten:


18

Aus einer früheren Version des Stan-Referenzhandbuchs:

Das Fehlen eines Priores ist gleichbedeutend mit dem Festlegen eines einheitlichen Priores.

Ein einheitlicher Prior ist nur dann angebracht, wenn der Parameter [...] begrenzt ist.

In Stan-Programmen sind auch unsachgemäße Priors erlaubt. Sie ergeben sich aus uneingeschränkten Parametern ohne Stichprobenanweisungen. In einigen Fällen kann ein unkorrekter Prior zu einem korrekten Posterior führen, es ist jedoch Sache des Benutzers, sicherzustellen, dass Einschränkungen der Parameter oder Daten die Richtigkeit des Posterior gewährleisten.

(Siehe auch Abschnitt C.3 in der Version 1.0.1 ).

Der zugrunde liegende Grund, warum dies in Stan in Ordnung ist, aber nicht in BUGS, hat möglicherweise damit zu tun, dass in BUGS das "Programm" Ihres Modells ein formales grafisches Modell angibt, während Sie in Stan eine kleine Funktion zur Berechnung der Gelenkwahrscheinlichkeit schreiben Dichtefunktion. Wenn Sie nicht für alle Variablen einen richtigen Prior angeben, kann dies die formalen Eigenschaften grafischer Modelle beeinträchtigen.

Für Hamilton-MC müssen Sie jedoch nur die Gelenkdichtefunktion (numerisch) berechnen. Ein flacher (auch unpassender) Prior trägt nur einen konstanten Term zur Dichte bei, und solange der Posterior geeignet ist (endliche Gesamtwahrscheinlichkeitsmasse) - was mit einer vernünftigen Wahrscheinlichkeitsfunktion möglich ist - kann er in der HMC vollständig ignoriert werden planen.


8

Aus der Stan-Referenz v1.0.2 (S. 6, Fußnote 1)

Wenn im Modellblock kein Prior angegeben wurde, stellen die Einschränkungen für Theta sicher, dass es zwischen 0 und 1 liegt, wodurch Theta ein implizites einheitliches Prior erhält. Für Parameter ohne zuvor festgelegte und unbegrenzte Unterstützung ist das Ergebnis eine falsche Priorität. Stan akzeptiert unangemessene Priors, aber die Posteriors müssen korrekt sein, damit die Probenahme erfolgreich ist.

Beide muund sigmahaben unangemessene einheitliche Prioren.

Unter der Haube muund sigmawerden unterschiedlich behandelt. sigmawird mit einer Untergrenze definiert; Stan probiert aus log(sigma)(mit einer Jacobian-Anpassung für die Transformation). Weitere Informationen zu Transformationen finden Sie in Kapitel 27 (S. 153).


Nur damit ich mir darüber im Klaren bin, ob STAN-Samples auf der Log-Ebene (Sigma), die Flat-Prior immer noch über Sigma und nicht über Log (Sigma) sind?
Rasmus Bååth

1
Ja, der Uniformprior ist noch vorbei sigma, nicht log(sigma). Stan erreicht dies, indem er den Parameter transformiert und die korrekte Änderung der Variablenanpassung unter Verwendung des Jacobian anwendet.
syclik
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.