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.
où , 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?
la source
coda
fonctiongeweke.diag
pour voir ce qu'elle fait ...Réponses:
Vous pouvez parcourir le code de la
geweke.diag
fonction dans lecoda
package pour voir comment la variance est calculée, via l'appel à laspectrum.ar0
fonction.Le calcul ressemblerait alors à ceci (en substituant les estimateurs habituels aux paramètres):
la source
Consultez la page wikipedia . Tu verrasSx x( ω ) , qui est la densité spectrale. Dans votre cas, vous devez utiliserSx x( 0 ) .
la source