作者Leo816 (豪宅)
看板Statistics
标题[程式] Matlab的Metropolis-Hastings函式
时间Fri Apr 29 23:28:04 2011
------------------------------------------------------------------------
[软体程式类别]:
Matlab
[程式问题]:
Matlab的Metropolis-Hastings演算法函式mhsample
[软体熟悉度]:
中(3个月到1年)
[问题叙述]:
目前正在用MCMC方法来sampling参数,就使用matlab里面的这个函式mhsample
由於不是统计科系,所以对Metropolis-Hastings演算法的了解是参考下面这篇介绍
http://web.ntpu.edu.tw/~ccw/statmath/M_mcmc.pdf
就我看完的认知(M_mcmc.pdf中P.6的范例)
sigma = sqrt(.5);
tarpdf = @(x) normpdf(x); % target pdf
proppdf = @(x,y) normpdf(y,x,sigma); %proposal pdf q(y|x)
proprnd = @(x) normrnd(x,sigma);%generate samples from proposal pdf
nsamples = 1500;
z = mhsample(1,nsamples,’pdf’,tarpdf,’proprnd’,proprnd,’symmetric’,1);
histfit(z,50)
target pdf 应该是指一个存在的分布,这里是Gaussian
然後sample出的参数最後会稳定成target pdf这个分布
proppdf 应该是指 y(k+1) ~ Gaussian(y(k);0,sigma)
k是指时间点
proprnd 乱数产生一个Gaussian(0,sigma)分布,从这个分布来得到y
想问问看我这样的想法有没有错?
还有proppdf和proprnd这两个似乎不一定要和target pdf是相同分布?
(Matlab中的范例
http://www.mathworks.com/help/toolbox/stats/mhsample.html
就非相同 )
非常感谢<(_ _)>
想说先把观念搞清楚
-----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.165.54.226
1F:→ LiamIssac:go to "MATLAB Answers" where you'll see surprises 04/29 23:41