|
自己在网上找到一些资料,应该可以作为一些参考,自问自答一下
以下资料引用自http://www.dxy.cn/bbs/topic/26225587
“MCMC究竟是做什么的?
在MCMC 中Markov 链到达stationary distribution 是就与目标分布相同了。这时,我们用Glibbs 从Markov 链采样大量样本就能再现我们需要的分布了。但是我们怎么知道已经到达那种stationary 分布了呢?
数学家说最终总会到达stationary distribution 的,但是却没说是什么时候!
当后验分布达到stationary distribution的时候,我们就说他收敛了。
但是当达收敛时,模拟Markov 链却不定很好。
一种方法是延长时间。因为,最终总会到达stationary distribution 的,时间越长,拟合越好。
但是如果跑很长时间,Markov 链会很长,大量的数据占用宝贵的内存。这时就需要减肥(thin),每10个取一个吧,顺便减少了迭代间的 autocorrelation。
要得到好的分布需要多少点呢?某高人总结说要10 000个。当然具体问题,具体对待。有时不用那么多。
我们可以通过比较样本的均值与真实后验分布的差值评价estimation的好坏。
另外,我们可以多跑几个链,这也是最常用的方法。
其实作图,用自己的眼睛检阅,是最简单、最可靠的方法。可以看看那几条链是否汇聚到了一块。
说说学术界的方法吧!
Gelman-Rubin
用于观察单变量。用了类似ANOVA的方法。假设有m条链,每条长度为 n。得到两种方差。
1.W 每条链组内的方差。(within)
2.B/n 所有链的方差。(between)
如果达到了到达stationary distribution 。应当出现B=W
R统计量 R=B/W,如果R>1 ,就提示没有收敛。
R统计量并不一定保险。Gelman-Rubin-Brooks plot 应运而生。
在图中,B与W稳定在一个水平及Gelman-Rubin 统计量约等于1,就说明收敛。”
个人认为,多取几条链只是为了之后分析链的收敛性,暂时先这样理解吧。不知有没有高人来指点以下
|