这两天在做时间序列的编程,和predict函数算是死磕上了,好在浏览了部分论坛后有一点心得,下面就用程序表达把。
首先人为构建一个AR(1)序列:
X0 = 1;
X = zeros(1000,1);
X(1) = X0;
for k=2:1000
X(k) = 0.4*X(k-1)+0.1*randn(1);
end
其次去拟合、预测它:
model = armax(X,[1,0]);
predict1 = predict(model,X,1);
这里做的是一步预测,我就是在对predict函数的输出上卡住的,不过好在经过半天的时间弄懂了一些。
predict函数看上去是在做预测,其实实际上类似于一个评估函数,它不会生成t时刻之后的预测值,相反地,它只会生成t时刻之前的拟合值。
拿上面的代码来说,我其实是做了一步预测,但是predict1和X的样本量是一样的,这里predict1最后的一个拟合值 x ^ T \hat x_{T} x^T是通过X里的 x T − 1 ∗ ϕ 1 x_{T-1}*\phi_1