MCMC Geweke teşhisi


14

Bir Metropolis örnekleyici (C ++) çalıştırıyorum ve yakınsama oranını tahmin etmek için önceki örnekleri kullanmak istiyorum.

Bulduğum uygulaması kolay bir tanı , iki örnek aracı arasındaki farkı tahmin edilen standart hataya bölünen Geweke tanılamasıdır . Standart hata, spektral yoğunluktan sıfır olarak tahmin edilir.

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

burada , , Markov zinciri içindeki iki penceredir. ve biraz araştırma yaptım, ancak enerji spektral yoğunluğu ve güç spektraliyle ilgili literatürün bir karmaşasına giriyorum yoğunluk ama bu konularla ilgili bir uzman değilim; Sadece hızlı bir cevaba ihtiyacım var: bu miktarlar örnek varyans ile aynı mı? Değilse, bunları hesaplamanın formülü nedir?B ^ S A θ ( 0 ) ^ S B θ ( 0 )ABSθA^(0)SθB^(0)

Bu Geweke teşhisinde başka bir şüphe nasıl ? Yukarıdaki literatür bazı işlevsel ve spektral yoğunluk varlığını ima etmesi gerektiğini söyledi , ancak kolaylık sağlamak için en basit yolun özdeşlik işlevi. Bu doğru mu?θ ( x ) ^ S bir θ ( 0 )θθ(X)SθA^(0)

R coda paketinin bir açıklaması vardır, ancak değerlerinin nasıl hesaplanacağını da belirtmez .S


Ne yaptığını görmek için codafonksiyonun bağırsaklarına bakabilirsin geweke.diag...
Ben Bolker

Yanıtlar:


4

İşleve çağrı yoluyla varyansın nasıl hesaplandığını görmek geweke.diagiçin codapaketteki işlevin kodunu inceleyebilirsiniz spectrum.ar0.


İşte bir AR ( ) sürecinin spektral yoğunluğunun sıfır olarak hesaplanmasının kısa bir motivasyonu .p

Bir AR (spektral yoğunluğu frekansında) işlemiλpλ ifade ile elde edilir: burada , otoregresif parametrelerdir. αj

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

Bu ifade, bir AR ( ) işleminin spektral yoğunluğunu hesaplarken oldukça basitleşir : 0 f ( 0 ) = σ 2p0

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

Daha sonra hesaplama şu şekilde görünecektir (parametreler için olağan tahmin edicilerin yerine):

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

Sxx(ω)Sxx(0)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.