Effizientes Abtasten einer Beta-Verteilung mit Schwellenwert

10

Wie soll ich effizient aus der folgenden Verteilung probieren?

xB(α,β), x>k

Wenn nicht zu groß ist, ist die Ablehnungsabtastung vielleicht der beste Ansatz, aber ich bin mir nicht sicher, wie ich vorgehen soll, wenn k groß ist. Vielleicht gibt es eine asymptotische Annäherung, die angewendet werden kann?kk

user1502040
quelle
1
Es ist nicht eindeutig klar, was Sie dort mit " " beabsichtigen . Meinen Sie eine abgeschnittene Beta-Distribution (links bei k abgeschnitten )? xB(α,β), x>kk
Glen_b -Rate State Monica
@Glen_b genau.
user1502040
5
Für beide Formparameter größer als 1 ist die Beta-Verteilung logarithmisch konkav, sodass exponentielle Hüllkurven für die Zurückweisungsabtastung verwendet werden können. Um nicht abgeschnittene Beta-Variablen zu generieren, die Sie bereits aus abgeschnittenen Exponentialverteilungen abtasten (was einfach ist), sollte es einfach sein, diese Methode anzupassen.
Scortchi - Monica wieder einsetzen

Antworten:

14

Der einfachste und allgemeinste Weg, der für jede abgeschnittene Verteilung gilt (er kann auch auf beiden Seiten abgeschnitten werden), ist die Verwendung der inversen Transformationsabtastung . Wenn die kumulative Zinsverteilung ist, dann setze p 0 = F ( k ) und nimmFp0=F(k)

UU(p0,1)X=F1(U)

wobei eine Stichprobe von F ist, die bei k links abgeschnitten ist . Die Quantilfunktion F - 1 ordnet Wahrscheinlichkeiten Stichproben von F zu . Da wir U- Werte nur aus dem "Bereich" nehmen, der mit den Werten der Beta-Verteilung aus dem nicht abgeschnittenen Bereich übereinstimmt, werden nur diese Werte abgetastet.XFkF1FU

Diese Methode ist in der Abbildung unten dargestellt, in der der abgeschnittene Bereich durch ein graues Rechteck markiert ist. Rote Punkte werden aus der -Verteilung gezogen und dann in B ( 2 , 8 ) -Proben transformiert .U(p0,1)B(2,8)

Inverse Transformationsabtastung aus abgeschnittener Verteilung

Tim
quelle
5
(+1) Bemerkenswert ist, dass die Quantilfunktion nicht so einfach zu bewerten ist.
Scortchi - Monica wieder einsetzen
1
@ Scortchi Wenn entweder a oder b 1 oder mindestens eine ganze Zahl sind, gibt es eine nicht so schlechte Form (siehe Wikipedia ). Und in Python gibt es scipy.special.betaincfür die Umkehrung und in R gibt es pbeta.
Graipherie
3
@Graipher: Ich hätte "billig im Allgemeinen" sagen sollen - es wäre besser, Newton-Raphson oder andere iterative Lösungen zu vermeiden, wenn dies möglich ist. (Übrigens ist es qbetafür die Quantilfunktion in R.)
Scortchi - Reinstate Monica
1
@ Scortchi Sie haben Recht, aber in den meisten Fällen sollte dies für moderne Computer kein großes Problem sein. Ich empfehle diesen Ansatz auch, da er in der meisten Software direkt verfügbar ist und nur dann auf eine abgeschnittene Verteilung verallgemeinert werden kann , wenn man Zugriff auf die Quantilfunktion hat.
Tim
1
kk
8

k

αβk1<k2

f(x)=x(α1)(1x)(β1)B(k2,α,β)B(k1,α,β)

xLxUα,β>1

g(x)=cλeλ(xxL)

λ

λ=a1xb11x
c
c=f(x)λeλ(xxL)

Geben Sie hier die Bildbeschreibung ein

A=c(1eλ(xUxL))
xλc

Q(x)=xa(1x)b(a+b2)xa+1[exp((b1)(xxL)1x+xL(a1)x(a1))exp((b1)(xxU)1x+xU(a1)x(a1))]

dQdxxdQdx=0

k1k2Ulog(1U)λλ

Geben Sie hier die Bildbeschreibung ein

Das Schöne an diesem Ansatz ist, dass all die harte Arbeit im Setup steckt. Sobald die Hüllkurvenfunktion definiert ist und die Normalisierungskonstante für die abgeschnittene Beta-Dichte berechnet wurde, müssen nur noch einheitliche Zufallsvariablen generiert und einige einfache arithmetische Operationen, Protokolle, Potenzen und Vergleiche durchgeführt werden. Durch Verschärfen der Hüllkurvenfunktion - mit horizontalen Linien oder exponentiellen Kurven - kann natürlich die Anzahl der Ablehnungen verringert werden.

Scortchi - Monica wieder einsetzen
quelle
1
+1 Gute Idee. Da Beta für bescheidene bis große Werte seiner Parameter ungefähr normal ist, je nachdem, wie nahe sie beieinander liegen, ist die Verwendung einer Gaußschen Hüllkurve möglicherweise noch effizienter.
whuber
α<1β<1
1
αβ
@whuber: (1) Der Ansatz, den ich hier zum Erstellen von Hüllkurven gewählt habe, würde nicht funktionieren, da die Dichten nicht logarithmisch konkav sind. (2) (a) Ich meinte sicherlich algebraische Funktionen + Logs & Potenzen, trig. Funktionen, wenn ich gefragt worden wäre, und vielleicht sogar Gammafunktionen - ich gebe zu, ich hatte keine genaue Vorstellung. (b) Punkt genommen - schnelle Funktionsbewertungen sind nicht auf solche mit geschlossenen Formen beschränkt.
Scortchi - Monica wieder einsetzen
1
α<1β<1