Estou executando um amostrador Metropolis (C ++) e quero usar os exemplos anteriores para estimar a taxa de convergência.
Um diagnóstico fácil de implementar que encontrei é o diagnóstico Geweke , que calcula a diferença entre as duas médias da amostra divididas pelo erro padrão estimado. O erro padrão é estimado a partir da densidade espectral em zero.
onde , B são duas janelas dentro da cadeia de Markov. Eu fiz algumas pesquisas sobre o que são ^ S A θ ( 0 ) e ^ S B θ ( 0 ), mas entrei em uma confusão de literatura sobre densidade espectral de energia e densidade espectral de potência, mas não sou especialista nesses tópicos; Eu só preciso de uma resposta rápida: essas quantidades são iguais à variação da amostra? Se não, qual é a fórmula para calculá-los?
Outra dúvida sobre esse diagnóstico de Geweke é como escolher ? A literatura acima disse que é algum θ ( X ) funcional e deveria implicar a existência de uma densidade espectral ^ S A θ ( 0 ) , mas por conveniência, acho que a maneira mais simples é usar a função de identidade (use as próprias amostras). Isso está correto?
O pacote R coda tem uma descrição, mas também não especifica como calcular os valores
fonte
coda
funçãogeweke.diag
para ver o que ele faz ...Respostas:
Você pode procurar no código a
geweke.diag
função nocoda
pacote para ver como a variação é calculada, através da chamada para aspectrum.ar0
função.Aqui está uma breve motivação do cálculo da densidade espectral de um processo AR ( ) em zero.p
A densidade espectral de um processo AR ( ) na frequência λp λ é dada pela expressão:
ondeαjsão os parâmetros autorregressivos.
Essa expressão simplifica consideravelmente ao calcular a densidade espectral de um AR (p 0 0
A computação ficaria assim (substituindo os estimadores usuais por parâmetros):
fonte
fonte