Ich versuche, ein Modell zu erstellen, bei dem die Antwort ein Anteil ist (es ist tatsächlich der Stimmenanteil, den eine Partei in Wahlkreisen erhält). Die Verteilung ist nicht normal, daher habe ich beschlossen, sie mit einer Beta-Verteilung zu modellieren. Ich habe auch mehrere Prädiktoren.
Ich weiß jedoch nicht, wie ich es in BUGS / JAGS / STAN schreiben soll (JAGS wäre meine beste Wahl, aber es spielt keine Rolle). Mein Problem ist, dass ich eine Summe von Parametern durch Prädiktoren mache, aber was kann ich dann damit machen?
Der Code wäre ungefähr so (in JAGS-Syntax), aber ich weiß nicht, wie ich die y_hat
und y
-Parameter "verknüpfen" soll .
for (i in 1:n) {
y[i] ~ dbeta(alpha, beta)
y_hat[i] <- a + b * x[i]
}
( y_hat
ist nur das Kreuzprodukt von Parametern und Prädiktoren, daher die deterministische Beziehung. a
Und b
sind die Koeffizienten, die ich x
als Prädiktor zu schätzen versuche ).
Vielen Dank für Ihre Vorschläge!
Antworten:
Möglicherweise so etwas wie:
quelle
Greg Snow gab eine großartige Antwort. Der Vollständigkeit halber ist hier das Äquivalent in der Stan-Syntax. Obwohl Stan eine Beta-Verteilung hat, die Sie verwenden könnten, ist es schneller, den Logarithmus der Beta-Dichte selbst zu berechnen, da die Konstanten
log(y)
undlog(1-y)
zu Beginn einmal berechnet werden können (anstatt jedes Mal,y ~ beta(alpha,beta)
wenn dies aufgerufen wird). Durch Inkrementieren der reserviertenlp__
Variablen (siehe unten) können Sie den Logarithmus der Beta-Dichte über die Beobachtungen in Ihrer Stichprobe summieren. Ich benutze die Bezeichnung "Gamma" für den Parametervektor im linearen Prädiktor.quelle