Ich verwende einen Metropolis-Sampler (C ++) und möchte die Konvergenzrate anhand der vorherigen Samples schätzen.
Eine einfach zu implementierende Diagnose, die ich gefunden habe, ist die Geweke-Diagnose , die die Differenz zwischen den beiden Stichprobenmitteln dividiert durch ihren geschätzten Standardfehler berechnet. Der Standardfehler wird aus der spektralen Dichte bei Null geschätzt.
wobei , B zwei Fenster innerhalb der Markov-Kette sind. Ich habe einige Nachforschungen angestellt, was ^ S A θ ( 0 ) und ^ S B θ ( 0 ) sind , bin aber in ein Durcheinander von Literatur über spektrale Energiedichte und -leistung geratenLeistungsdichtespektrum , aber ich bin kein Experte zu diesen Themen; Ich brauche nur eine kurze Antwort: Entsprechen diese Größen der Stichprobenvarianz? Wenn nicht, wie lautet die Formel für die Berechnung?
Ein weiterer Zweifel an dieser Geweke-Diagnose ist, wie man auswählt . Die obige Literatur gesagt , dass es einige funktionelle ist θ ( X ) und sollte eine Existenz einer Spektraldichte implizieren ^ S A θ ( 0 ) halber besteht der einfachste Weg jedoch darin, die Identitätsfunktion zu verwenden (verwenden Sie die Proben selbst). Ist das richtig?
Das R- Coda-Paket enthält eine Beschreibung, gibt jedoch auch nicht an, wie die Werte berechnet werden sollen.
coda
Funktion schauen, umgeweke.diag
zu sehen, was es tut ...