Eviews状态空间模型季节调整
每次做一些不知所以然的时间序列处理都会拿Eviews出来折腾一下,放回去之后又其实什么都没搞懂。
状态空间模型做季节调整,思路是将一个序列分解成时间趋势t1、季节波动t2和不规则因素t3。其中季节波动用三角函数拟合,时间因素和不规则因素用AR过程拟合,在Eviews中表示如下,c(*)是参数:
1 | @signal totalpt=t1+t2+t3+[var=exp(c(2))] |
如果仅仅是这样,那也没什么好说的,点一点估计,结果出来了,Finished!但这时出现了两个问题,1)参数初值设定会改变结果,2)不指定初始值或随意指定,产生的分离序列会很奇怪:我采用的原始序列都是小于1的,拟合出来的趋势序列绝对值甚至出现几十上百的情况。
在不懂原理的情况下怎么解决?后来在人大经济论坛上看到了一种思路。首先,将状态方程(所有state)后面的var项去掉,然后进行估计,根据结果可以产生t1-t18序列;其次,用产生的18个序列,还有原始序列,对所有state方程进行回归,如c(2)就可以用totalpt-(t1+t2+t3)的方差算出来,c(7)可以用t6,t6(-1),t7(-1)回归的残差平方和比样本数算出来,而c(1)取2;最后,把这些c(*)作为初值,增加一行,就可以得出比较理想的拟合序列了。
@param c(1) 2 c(2) -5 c(3) -9 c(4) -9 c(5) -9 c(6) -9 c(7) -10 c(8) -10 c(9) -10 c(10) -10 c(11) -10 c(12) -10 c(13) -10 c(14) -10 c(15) -10 c(16) -10 c(17) -10 c(18) -10 c(19) 0 c(20) 0 c(21) -19 c(22) -19
至于原理,以后有机会再研究。