MCMC Geweke诊断


14

我正在运行Metropolis采样器(C ++),并希望使用以前的示例来估计收敛速度。

我发现一种易于实施的诊断程序是Geweke诊断程序,它可以计算两个样本平均值之间的差除以其估计的标准误差。由零处的光谱密度估计标准误差。

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

其中B是马尔可夫链中的两个窗口。我做了什么有一些研究^ 小号一个θ0 ^ 小号θ0 ),但进入文学的能量谱密度和功率一塌糊涂谱密度,但我不会在这些议题的专家; 我只需要一个简单的答案:这些数量是否与样本方差相同?如果没有,计算它们的公式是什么?AB小号θ一种^0SθB^(0)

对Geweke诊断的另一个疑问是如何选择?上述文献所述,这是一些功能θ X 和应该意味着频谱密度的存在^ 小号θ0 ,但为了方便起见,我想的最简单的方法是使用恒等函数(使用样品本身)。它是否正确?θθ(X)SθA^(0)

R coda程序包有描述,但也没有指定如何计算值。小号


您可以查看该coda函数的内容geweke.diag以了解其功能...
Ben Bolker 2012年

Answers:


4

您可以通过调用该函数查看包中该geweke.diag函数的代码,coda以了解如何计算方差spectrum.ar0


这是计算AR光谱密度的简短动机(p

pλ

Fλ=σ21个-Ĵ=1个pαĴ经验值-2πιĴλ2
αĴ

p0

F0=σ21个-Ĵ=1个pαĴ2

然后,计算将如下所示(将常用的估算器替换为参数):

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

检查Wikipedia页面。你会看到的小号XXω,这是频谱密度。在您的情况下,您应该使用小号XX0

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.