So erhalten Sie multivariate glaubwürdige Intervallschätzungen / Regionen mit der höchsten Dichte (HDR) nach MCMC

8

Ich schätze 15 Parameter meines Modells unter Verwendung eines Bayes'schen Ansatzes und einer Markov-Ketten-Monte-Carlo-Methode (MCMC). Meine Daten nach dem Ausführen einer MCMC-Kette von 100000 Proben sind daher eine 100000 × 15-Tabelle mit Parameterwerten.

Ich möchte 15-dimensionale Regionen mit der höchsten Dichte meiner posterioren Verteilung finden.

Mein Problem: Das Clustering der Samples, um sie HDRs zuzuweisen (Beispiel unten mit dichtebasiertem Clustering), erfordert eine Distanzmatrix aller Samples. Für 100000 Samples würde diese Matrix 37 GiB RAM benötigen, was ich nicht habe, ohne von der Rechenzeit zu sprechen. Wie kann ich meine HDRs mit angemessenen Rechenressourcen finden? Jemand muss dieses Problem schon einmal gehabt haben?!

Bearbeitet, um hinzuzufügen: Gemäß dieser SO-Frage und der DBSCAN-Wikipedia-Seite kann DBSCAN unter Verwendung eines räumlichen Index und unter Vermeidung einer Distanzmatrix auf Zeitkomplexität und Raumkomplexität reduziert werden . Immer noch auf der Suche nach einer Implementierung oder einer Beschreibung davon ...O(nlogn)O(n)


Multivariate Regionen mit der höchsten Dichte mithilfe von dichtebasiertem Clustering (DBSCAN)

Der Bereich mit der höchsten Dichte von AX% ist der Bereich einer Verteilung, der X% der Wahrscheinlichkeitsmasse umfasst. Da mit einer MCMC-Methode gezogene Proben mit einer Häufigkeit (asymptotisch) proportional zur gesuchten posterioren Verteilung erscheinen, umfasst mein X% HDR auch X% meiner Proben.

Ich hatte vor, den dichtebasierten Clustering-Algorithmus DBSCAN zu verwenden, um meine Proben zu clustern, da die Dichte der Proben direkt mit der Peakhöhe meines Seitenzahns zusammenhängt.

In Analogie zur Methode von Hyndman (1996) ( Papier , SO-Frage ) plante ich, den maximalen Abstand einer einzelnen Stichprobe von einem Cluster zu erhöhen, um iterativ als Teil davon betrachtet zu werden, bis X% meiner Stichproben Teil einiger sind Cluster:

DBSCAN wurde auf MCMC-Proben angewendet

Nach diesem Schritt würde ich den Bereich jedes Clusters in jeder Dimension berechnen, um meine Regionen mit der höchsten Dichte darzustellen.

In diesem Beispiel können Sie sehen, dass der 80% HDR zwei unterschiedliche Regionen umfasst, während der 50% HDR nur einen Cluster enthält. Ich könnte dies wie unten gezeigt visualisieren, da die obige Darstellung nicht auf mehr als 2 Dimensionen anwendbar ist:

HDR-Bereiche visualisiert

akraf
quelle
1
Wenn Sie eine MCMC ausführen, beobachten Sie den Wert des Ziels bei jeder Iteration (bis zur gleichen Normalisierungskonstante), sodass Sie Simulationen mit hoher Dichte viel genauer als anhand von Frequenzen identifizieren können. Sie können HPD-Regionen auch identifizieren, indem Sie einen Standard-Clustering-Algorithmus für Simulationen mit den höchsten Werten für die hintere Dichte ausführen.
Xi'an
1
Vielen Dank für Ihren Vorschlag, @ Xi'an. Aber können Sie angeben, was Ihrer Meinung nach ein "Standard-Clustering-Algorithmus" ist? Welchen Algo könnten Sie außer DBSCAN (oder {single | complete} -Verbindungsclustering, was dieselbe Idee ist) vorschlagen, wenn meine Vorstellungen von Clustern "Punkte mit hoher Dichte" sind? Darüber hinaus befinden sich die meisten Proben in den Regionen mit der höchsten Dichte. Wenn ich beispielsweise den 90% HDI berechnen möchte, kann ich nur damit rechnen, etwa 10% meiner Proben auszuschließen.
Akraf
Samworth & Wand (2010, Annals of Statistics ) bieten möglicherweise einen alternativen Ansatz.
Stephan Kolassa

Antworten:

1

Ich habe einen Matlab Wrapper für ANN gefunden . ANN ist eine Bibliothek für die ungefähre Suche nach nächsten Nachbarn ( Homepage ). Neben den üblichen Parametern einer räumlichen Indexbereichsabfrage wird ein zusätzlicher Fehlerparameter verwendet, epsder die "Annäherung" der Suche angibt: Ein zurückgegebener nächster Nachbar ist höchstens 1+epsweiter vom Abfragepunkt entfernt als der wahre (nicht ungefähre) nächste Nachbar. Suchen Sie im Programmierhandbuch nach dem Begriff "fehlergebunden" , um Informationen zu zu finden eps.

Auf diese Weise kann ich eine schnelle Suche nach dem nächsten Nachbarn in meine DBSCAN-Implementierung aufnehmen, wodurch der in meiner Frage beschriebene Prozess auf eine realisierbare Dauer beschleunigt wird. Ich werde einen Link bereitstellen, sobald die Implementierung abgeschlossen ist.

akraf
quelle