本笔记中原始数据及代码均来源于李东风先生的R语言教程,在此对李东风先生的无私分享表示感谢。
对平稳列, 已知自协方差列时用Levinson递推计算逐个一步预报系数(Y-W系数)和一步预测误差方差。 输入gams[1:n] 为γk,k=0,1,...,n-1。 输出是对Y1,Y2,...,Yn做滚动向前一步预报所需的系数和均方误差。 结果中元素coef.YW是(n-1)×(n-1)矩阵, 第k行的1:k元素为ak1,ak2,...,akk , 用来预报Yk+1:
结果中sigmasq是长度为n的向量, 保存预报Y1,Y2,...,Yn的一步预报均方误差。
Levinson.coef function(gams){
n ## ayw保存Y-W系数a[i,j], i=1,2,\dots,n-1, j=1,2,\dots,i ayw 0, n ## ss保存一步预报误差方差 ss ss[1] 0+ ayw[1,1] 1+ ss[2] 1] * ( if(n>2) for(k in 1:(n-2)){
## 用Y_1, \dots, Y_{k+1}预报Y_{k+2}的系数 ayw[k+1,k+1] 1)+ ayw