Hamilton 的 Programs for estimation of Markov switching models using the EM algorithm. 程序中,Smoothing 的算法不是应该用Kalman filter的最后一个时期的结果往前递推的吗?但在Hamilton 的程序中,我怎么看好像不是这么算的呀? 参见下面Hamilton计算Smoother 的程序:
qax = pax[1,.]~pax[1,.];
qax[1,2]=0; qax[1,4]=0; qax[1,5]=0; qax[1,7]=0;
t = 2;
do until t > n;
qax = (((yxx[t,1]*qax[.,1:4])+(yxx[t,3]*qax[.,5:8]))~
((yxx[t,2]*qax[.,1:4])+(yxx[t,4]*qax[.,5:8])))/
pfx[t,1];
qax = qax | (pax[t,.] ~ pax[t,.]);
qax[t,2]=0; qax[t,4]=0; qax[t,5]=0; qax[t,7]=0;
t=t+1;
endo;
qax = qax[.,1:4] + qax[.,5:8];
程序中pax是Kalman Filter的结果,qax存储Smoothing结果,计算Smoother时,先用Kalman Filter的第一个时间点然后往后递推计算,而不是用最后一个时间点的Kalman Filter值往前递推。 请问我的理解对吗?
另外,哪里可以找到multi-variate 3- or 4- states的例子程序?如3-variate 3-state?我在编一个3-variate 4-state的 Markov Switching 程序, Transition probabilities and Covariance matrix 很麻烦的说。
谢谢高手指点。