Diagnostic MCMC Geweke


14

J'utilise un échantillonneur Metropolis (C ++) et je veux utiliser les échantillons précédents pour estimer le taux de convergence.

Un diagnostic facile à mettre en œuvre que j'ai trouvé est le diagnostic de Geweke , qui calcule la différence entre les deux moyennes d'échantillon divisée par son erreur standard estimée. L'erreur standard est estimée à partir de la densité spectrale à zéro.

Zn=θ¯Aθ¯B1nASθA^(0)+1nBSθB^(0),

, B sont deux fenêtres de la chaîne de Markov. J'ai fait quelques recherches sur ce que sont ^ S A θ ( 0 ) et ^ S B θ ( 0 ) mais je suis entré dans un désordre de littérature sur la densité spectrale d'énergie et la densité spectrale de puissance mais je ne suis pas un expert sur ces sujets; J'ai juste besoin d'une réponse rapide: ces quantités sont-elles identiques à la variance de l'échantillon? Sinon, quelle est la formule pour les calculer?ABSθA^(0)SθB^(0)

θθ(X)SθA^(0)

S


vous pouvez regarder dans les entrailles de la codafonction geweke.diagpour voir ce qu'elle fait ...
Ben Bolker

Réponses:


4

Vous pouvez parcourir le code de la geweke.diagfonction dans le codapackage pour voir comment la variance est calculée, via l'appel à la spectrum.ar0fonction.


p

pλ

f(λ)=σ2(1j=1pαjexp(2πιjλ))2
αj

p0

f(0)=σ2(1j=1pαj)2

Le calcul ressemblerait alors à ceci (en substituant les estimateurs habituels aux paramètres):

tsAR2 = arima.sim(list(ar = c(0.01, 0.03)), n = 1000)  # simulate an AR(2) process
ar2 = ar(tsAR2, aic = TRUE)  # estimate it with AIC complexity selection

# manual estimate of spectral density at zero
sdMan = ar2$var.pred/(1-sum(ar2$ar))^2

# coda computation of spectral density at zer0
sdCoda = coda::spectrum0.ar(tsAr2)$spec

# assert equality
all.equal(sdCoda, sdMan)

0

Consultez la page wikipedia . Tu verrasSXX(ω), qui est la densité spectrale. Dans votre cas, vous devez utiliserSXX(0).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.