Estoy ejecutando una muestra de Metropolis (C ++) y quiero usar las muestras anteriores para estimar la tasa de convergencia.
Un diagnóstico fácil de implementar que encontré es el diagnóstico de Geweke , que calcula la diferencia entre las dos medias de muestra divididas por su error estándar estimado. El error estándar se estima a partir de la densidad espectral en cero.
donde , son dos ventanas dentro de la cadena de Markov. Investigué un poco sobre qué son y pero me meto en un lío de literatura sobre densidad espectral de energía y espectro espectral de potencia densidad pero no soy un experto en estos temas; Solo necesito una respuesta rápida: ¿son estas cantidades iguales a la varianza muestral? Si no, ¿cuál es la fórmula para calcularlos?B ^ S A θ ( 0 ) ^ S B θ ( 0 )
Otra duda sobre este diagnóstico de Geweke es cómo elegir ? La literatura anterior dice que es algo funcional y debería implicar la existencia de una densidad espectral , pero por conveniencia supongo que la forma más simple es usar el función de identidad (usar muestras ellos mismos). ¿Es esto correcto?
El paquete R coda tiene una descripción, pero tampoco especifica cómo calcular los valores de
fuente
coda
funcióngeweke.diag
para ver qué hace ...Respuestas:
Puede buscar la
geweke.diag
función en elcoda
paquete a través del código para ver cómo se calcula la varianza, a través de la llamada a laspectrum.ar0
función.Aquí hay una breve motivación del cálculo de la densidad espectral de un proceso AR ( ) en cero.pag
La densidad espectral de un proceso AR ( ) a frecuenciaλpag λ viene dada por la expresión:
donde son los parámetros autorregresivos.
Esta expresión se simplifica considerablemente cuando se calcula la densidad espectral de un proceso AR ( ) en :pag 0 0
El cálculo entonces se vería así (sustituyendo los estimadores habituales por parámetros):
fuente
Consulta la página de wikipedia . Verá , que es la densidad espectral. En su caso, debe usar .Sx x( ω ) Sx x( 0 )
fuente