Kann ich bei jeder MCMC-Iteration einen großen Datensatz unterabtasten?


8

Problem: Ich möchte eine Gibbs-Stichprobe durchführen, um einen posterioren Wert über einen großen Datensatz abzuleiten. Leider ist mein Modell nicht sehr einfach und daher ist die Abtastung zu langsam. Ich würde Variations- oder Parallelansätze in Betracht ziehen, aber bevor ich so weit gehe ...

Frage: Ich möchte wissen, ob ich bei jeder Gibbs-Iteration zufällig (mit Ersetzung) aus meinem Datensatz eine Stichprobe ziehen kann, damit ich bei jedem Schritt weniger Instanzen habe, aus denen ich lernen kann.

Meine Intuition ist, dass selbst wenn ich die Stichproben ändere, ich die Wahrscheinlichkeitsdichte nicht ändern würde und daher die Gibbs-Stichprobe den Trick nicht bemerken sollte. Habe ich recht? Gibt es Hinweise darauf, dass Menschen dies getan haben?


1
Nebenbei: Eine andere Idee wäre, mehrere Analysen an zufälligen Teilstichproben des großen Datensatzes durchzuführen. Auf diese Weise können Sie auch eine Kreuzvalidierung durchführen.
Vermutungen

2
Ich kann Ihre genaue Frage mit keiner Autorität beantworten (obwohl ich den Verdacht habe, dass Sie nur den mit Monte Carlo verbundenen Approximationsfehler erhöhen würden), ist die traurige Wahrheit, dass dies nur ein unglücklicher Aspekt der Bayes'schen MCMC-Analysen ist: Sie sind rechnerisch teuer. @conjectures Kommentar ist eine großartige Idee, aber nicht wirklich der Kern des Problems: Es ist zu teuer, alle diese Stichproben für jede Person zu zeichnen. Meine Empfehlung ist, einen eigenen C-Code für die schwere Arbeit zu schreiben (Rcpp in R, Cython in Python usw.) und auch zu parallelisieren (wenn keine Verzweigungsabhängigkeiten bestehen).

1
@conjectures Das klingt nach Michael Jordans Tasche mit kleinen Bootstraps.
Jaradniemi

1
Ich würde vorschlagen, Ihren Sampler zu ändern, um die latente Variablenvergrößerung insgesamt zu vermeiden. Sie haben keinen Gibbs-Sampler mehr, aber ein Metropolis-Hastings-Algorithmus mit einem Vorschlag, der auf einer normalen Annäherung an die Wahrscheinlichkeit basiert, sollte einwandfrei funktionieren. Siehe Abschnitt 16.4 der 2. Ausgabe der Bayesian Data Analysis.
Jaradniemi

6
Dies ist ein Bereich aktiver Forschung, den ich nicht gut genug kenne, um ihn genau zusammenzufassen. Siehe zum Beispiel jmlr.org/proceedings/papers/v32/bardenet14.pdf und arxiv.org/pdf/1304.5299v4.pdf
Andrew M

Antworten:


1

X1N(μ1,σ12)X2N(μ2,σ22)θ=(μ1,μ2,σ12,σ22)

f(θ|X1,X2)f(X1|θ)f(X2|θ)f(θ)
δB(0.5)δ=0X1δ=1X2
f(θ,δ|X1,X2)f(X1,X2|δ,θ)f(θ)f(δ)
f(X1,X2|δ,θ)=f(X1|θ)δf(X2|θ)1δf(δ)=0.5δf(X1|θ)f(X2|θ)P(δ=1)=f(X1|θ)f(X1|θ)+f(X2|θ)δf(X1|θ)f(X2|θ)f(X1|θ)f(X2|θ)δδ
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.