Effektive Probengröße für Rückschlüsse aus der MCMC-Probenahme

13

Was sind gute Anhaltspunkte für die minimale Anzahl effektiver Proben , die angestrebt werden sollten, wenn MCMC-Proben abgerufen werden, um Rückschlüsse auf einen bestimmten Parameter zu ziehen?

Und ändert sich dieser Ratschlag, wenn das Modell mehr oder weniger komplex wird?

Matt Albrecht
quelle
Ich vermute, dass es wahrscheinlich von der "Konstante" im Fehler abhängen wird, der zwischen den Modellen variieren wird. O(n12)
Wahrscheinlichkeitslogik

Antworten:

15

Die Frage, die Sie stellen, unterscheidet sich von der "Konvergenzdiagnose". Nehmen wir an, Sie haben alle Konvergenzdiagnosen durchgeführt (wählen Sie Ihre Favoriten aus) und können jetzt mit der Probenahme von der posterioren Seite beginnen.

Bezüglich der effektiven Stichprobengröße (ESS) gibt es zwei Möglichkeiten. Sie können zwischen einem univariaten und einem multivariaten ESS wählen. Ein univariates ESS liefert eine effektive Stichprobengröße für jeden Parameter separat, und konservative Methoden bestimmen, dass Sie die kleinste Schätzung wählen. Diese Methode ignoriert alle Kreuzkorrelationen zwischen Komponenten. Dies ist wahrscheinlich, was die meisten Leute für eine Weile benutzt haben

Kürzlich wurde eine multivariate Definition von ESS eingeführt. Das multivariate ESS gibt eine Zahl für den effektiven Stichprobenumfang für die Mengen zurück, die Sie schätzen möchten. Dabei werden alle Kreuzkorrelationen berücksichtigt. Ich persönlich bevorzuge bei weitem multivariates ESS. Angenommen, Sie interessieren sich für den Vektor der Mittelwerte der posterioren Verteilung. Die mESS ist wie folgt definiert: mESS = n ( | Λ |p Hier

mESS=n(|Λ||Σ|)1/p.
  1. ist die Kovarianzstruktur des Seitenzahns (auch die asymptotische Kovarianz in der CLT, wenn Sie unabhängige Stichproben hatten)Λ
  2. ist die asymptotische Kovarianzmatrix in der Markov-Kette CLT (unterscheidet sich von Λ, da die Proben korreliert sind.ΣΛ
  3. ist die Anzahl der zu schätzenden Größen (oder in diesem Fall die Dimension des Seitenzahns).p
  4. ist die Determinante.||

mESS kann geschätzt werden, indem die Stichproben-Kovarianzmatrix zur Schätzung von und die Batch-Mittel-Kovarianzmatrix zur Schätzung von Σ verwendet werden . Dies wurde in der Funktion im R-Paket mcmcse codiert .ΛΣmultiESS

Diese neue Veröffentlichung liefert eine theoretisch gültige Untergrenze der Anzahl der erforderlichen effektiven Proben. Vor der Simulation müssen Sie sich entscheiden

  1. : die Präzision. ϵ ist der Fehleranteil, den Monte Carlo im Vergleich zum posterioren Fehler haben soll. Dies ähnelt der Fehlerquote bei der Berechnung der Stichprobengröße in der klassischen Umgebung.ϵϵ
  2. : das Niveau zum Konstruieren von Vertrauensintervallen.α
  3. : Die Anzahl der Mengen, die Sie schätzen.p

Mit diesen drei Mengen wissen Sie, wie viele effektive Proben Sie benötigen. Das Papier fordert Sie auf, die Simulation beim ersten Mal zu stoppen.

Chaos22/pπ(pΓ(p/2))2/pχ1-α,p2ϵ2,

wobei die Gammafunktion ist. Diese Untergrenze kann mithilfe des R-Pakets mcmcse berechnet werden .Γ()minESS

Nehmen wir also an, Sie haben Parameter im posterioren Bereich und möchten 95 % iges Vertrauen in Ihre Schätzung und möchten, dass der Monte-Carlo-Fehler 5% ( ϵ = 0,05 ) des posterioren Fehlers beträgt , den Sie benötigenp=2095%ϵ=.05

> minESS(p = 20, alpha = .05, eps = .05)
[1] 8716

Dies gilt für alle Probleme (unter normalen Bedingungen). Die Art und Weise, wie sich diese Methode von Problem zu Problem anpasst, besteht darin, dass das langsame Mischen von Markov-Ketten länger dauert, um diese Untergrenze zu erreichen, da mESS kleiner sein wird. Jetzt können Sie mehrmals überprüfen, multiESSob Ihre Markov-Kette diese Grenze erreicht hat. Wenn nicht, holen Sie sich mehr Proben.

Greenparker
quelle
(+1) Ausgezeichnete Antwort. Wissen Sie, ob die Funktion multiESSfür andere Sprachen wie MATLAB codiert wurde? (Oder wäre es schwierig, wieder zu implementieren?)
Lacerbi
1
Σ
1
Σ
1
@lacerbi Ich bin froh, dass du es in Matlab schreiben konntest. Wenn möglich, antworten Sie auf diesen Kommentar, wenn er verfügbar ist, damit ich ihn verwenden kann. Vielen Dank
Greenparker
1
Meine MATLAB-Implementierung von multiESS finden Sie hier . Es ist eine funktionierende Version, obwohl es einige weitere Tests erfordern würde (ich bin nicht mit R vertraut, sonst würde ich es mit der R-Implementierung vergleichen).
Lacerbi
2

Die Konvergenz hängt von mehreren Dingen ab: der Anzahl der Parameter, dem Modell selbst, dem Abtastalgorithmus, den Daten ...

Ich würde vorschlagen, generelle Regeln zu vermeiden und einige Konvergenzdiagnosewerkzeuge zu verwenden , um in jedem spezifischen Beispiel das richtige Einbrennen und die geringere Anzahl von Iterationen zu ermitteln. Siehe auch http://www.johnmyleswhite.com/notebook/2010/08/29/mcmc-diagnostics-in-r-with-the-coda-package/, http://users.stat.umn.edu/~geyer/mcmc/diag.html.

Monte Christo
quelle