Ich versuche, eine vorherige Verteilung für eine Bayes'sche Metaanalyse anzugeben.
Ich habe die folgenden Informationen zu einer Zufallsvariablen:
- Zwei Beobachtungen: 3.0, 3.6
- Ein Wissenschaftler, der die Variable untersucht, hat mir gesagt, dass ist und dass Werte bis 6 eine Wahrscheinlichkeit ungleich Null haben.
Ich habe den folgenden Optimierungsansatz verwendet (der Modus von log-N = :
prior <- function(parms, x, alpha) {
a <- abs(plnorm(x[1], parms[1], parms[2]) - (alpha/2))
b <- abs(plnorm(x[2], parms[1], parms[2]) - (1-alpha/2))
mode <- exp(parms[1] - parms[2]^2)
c <- abs(mode-3.3)
return(a + b + c)
}
v = nlm(prior,c(log(3.3),0.14),alpha=0.05,x=c(2.5,7.5))
x <- seq(1,10,0.1)
plot(x, dlnorm(x, v$estimate[1], v$estimate[2]))
abline(v=c(2.5,7.5), lty=2) #95%CI
In der Abbildung sehen Sie die Verteilung, die dies zurückgibt, aber ich würde gerne etwas ähnlicheres wie die roten Linien finden, die ich gezeichnet habe.
Dies liefert die gleiche Formverteilung unter Verwendung von Lognormal, Gamma oder Normal und führt zu einer Verteilung mit und , dh:
plnorm(c(5,6), v$estimate[1],v$estimate[2])
Kann jemand Alternativen vorschlagen? Ich würde mich lieber an eine einzelne Verteilung als an eine Mischung halten.
Vielen Dank!
r
distributions
probability
bayesian
optimization
David LeBauer
quelle
quelle
Antworten:
Wenn Sie angesichts der Antwort auf meinen obigen Kommentar den Bereich der Verteilung begrenzen möchten, passen Sie einfach eine Beta-Verteilung an, in der Sie das Einheitenintervall neu skalieren. Mit anderen Worten, wenn Sie wissen, dass der interessierende Parameter zwischen , definieren Sie . Wo ich zuerst das Intervall auf Null zentriert habe, geteilt durch die Breite, so dass Y einen Bereich von 1 hat, und dann zurück hinzugefügt habe, so dass der Bereich von Y . (Sie können es sich so oder so vorstellen: direkt aus oder ausY = X - 5[2,8] 1Y=X−56+12=X−26 [0,1][2,8]→[0,1][2,8]→[-112 [0,1] [2,8]→[0,1] [2,8]→[−12,12]→[0,1] , aber ich dachte, letzteres könnte zunächst einfacher sein).
Dann könnten Sie mit zwei Datenpunkten einen Beta-Posterior mit einem einheitlichen Beta-Prior anpassen?
quelle
Was ist mit der Kumaraswamy- Distribution, die das folgende PDF enthält:
a > 0 b > 0 0 < x < 1
quelle
Da die logarithmische Normalverteilung zwei Parameter enthält, können Sie sie nicht zufriedenstellend an drei Einschränkungen anpassen, die natürlich nicht dazu passen. Bei extremen Quantilen von 2,5 und 7,5 beträgt der Modus ~ 4, und Sie können nicht viel dagegen tun. Da das Ausmaß der Fehler für
a
undb
viel kleiner als für istc
, wird einer von ihnen bei der Optimierung so gut wie ignoriert.Für eine bessere Anpassung können Sie entweder eine Drei-Parameter-Verteilung auswählen, beispielsweise die verallgemeinerte Gamma-Verteilung (im
VGAM
Paket implementiert ), oder der lognormalen (oder Gamma, ...) Verteilung einen Verschiebungsparameter hinzufügen.Da die gesuchte Verteilung eindeutig nicht symmetrisch ist, ist der Durchschnitt der beiden angegebenen Beobachtungen nicht der richtige Wert für den Modus. Ich würde die Summe der Dichten bei 3,0 und 3,6 maximieren, während die extremen Quantile bei 2,5 und 7,5 bleiben - dies ist möglich, wenn Sie drei Parameter haben.
quelle
Sie können auch die Dreiecksverteilung ausprobieren. Um dies anzupassen, geben Sie grundsätzlich eine Untergrenze (dies wäre X = 2), eine Obergrenze (dies wäre X = 8) und einen "wahrscheinlichsten" Wert an. Auf der Wikepedia-Seite http://en.wikipedia.org/wiki/Triangular_distribution finden Sie weitere Informationen zu dieser Distribution. Wenn nicht viel Vertrauen in den "wahrscheinlichsten" Wert besteht (wie es scheint, bevor Daten beobachtet werden), ist es möglicherweise eine gute Idee, eine nicht informative vorherige Verteilung darauf zu platzieren und dann die beiden Daten zu verwenden Punkte, um diesen Wert zu schätzen. Ein guter ist der Prior von Jeffrey, der für dieses Problem p (c) = 1 / (pi * sqrt ((c-2) * (c-8))) wäre, wobei "c" der "wahrscheinlichste Wert" ist "(im Einklang mit der Wikipedia-Notation).
Vor diesem Hintergrund können Sie die posteriore Verteilung von c analytisch oder durch Simulation berechnen. Die analytische Form der Wahrscheinlichkeit ist nicht besonders gut, daher scheint die Simulation attraktiver zu sein. Dieses Beispiel eignet sich besonders gut für die Ablehnungsstichprobe (eine allgemeine Beschreibung der Ablehnungsstichprobe finden Sie auf der Wiki-Seite), da die maximierte Wahrscheinlichkeit 1/3 ^ n beträgt, unabhängig vom Wert von c, der die "Obergrenze" liefert. Sie generieren also einen "Kandidaten" aus dem Prior des Jeffrey (nennen Sie ihn c_i) und bewerten dann die Wahrscheinlichkeit bei diesem Kandidaten L (x1, .., xn | c_i) und dividieren durch die maximierte Wahrscheinlichkeit, um (3 ^ n) zu geben ) * L (x1, .., xn | c_i). Sie generieren dann eine U (0,1) -Zufallsvariable, und wenn u kleiner als (3 ^ n) * L (x1, .., xn | c_i) ist, akzeptieren Sie c_i als posterior abgetasteten Wert, andernfalls werfen Sie c_i weg und wieder von vorne beginnen. Wiederholen Sie diesen Vorgang, bis Sie genügend akzeptierte Proben haben (100, 500, 1.000 oder mehr, je nachdem, wie genau Sie möchten). Nehmen Sie dann einfach den Stichprobenmittelwert der Funktion von c, an der Sie interessiert sind (die Wahrscheinlichkeit einer neuen Beobachtung ist ein offensichtlicher Kandidat für Ihre Bewerbung).
Eine Alternative zum Akzeptieren-Ablehnen besteht darin, den Wert der Wahrscheinlichkeit als Gewicht zu verwenden (und nicht das u zu generieren) und dann mit allen Kandidaten gewichtete Durchschnittswerte zu erstellen, anstatt mit den akzeptierten Kandidaten ungewichtete Durchschnittswerte
quelle