编辑: 梦三石 | 2013-01-08 |
5 .
9 ,所以可将
1989 年的预测值修正为
4788 .
10 %
5 .
9 1
48 .
9 = ? 计算的 MATLAB 程序如下: y=[6.35 6.20 6.22 6.66 7.15 7.89 8.72 8.94 9.28 9.8];
w=[1/6;
2/6;
3/6];
m=length(y);
n=3;
for i=1:m-n+1 yhat(i)=y(i:i+n-1)*w;
end yhat err=abs(y(n+1:m)-yhat(1:end-1))./y(n+1:m) T_err=1-sum(yhat(1:end-1))/sum(y(n+1:m)) y1989=yhat(end)/(1-T_err) 在加权移动平均法中, t w 的选择,同样具有一定的经验性.一般的原则是:近期 数据的权数大,远期数据的权数小.至于大到什么程度和小到什么程度,则需要按照预 测者对序列的了解和分析来确定. 2.3 趋势移动平均法 简单移动平均法和加权移动平均法, 在时间序列没有明显的趋势变动时, 能够准确 反映实际情况. 但当时间序列出现直线增加或减少的变动趋势时, 用简单移动平均法和 加权移动平均法来预测就会出现滞后偏差.因此,需要进行修正,修正的方法是作二次 移动平均, 利用移动平均滞后偏差的规律来建立直线趋势的预测模型. 这就是趋势移动 平均法. 一次移动的平均数为 -284- ) (
1 1
1 )
1 ( + ? ? + + + = N t t t t y y y N M L 在一次移动平均的基础上再进行一次移动平均就是二次移动平均,其计算公式为 ) (
1 ) (
1 )
1 ( )
1 ( )
2 (
1 )
1 (
1 )
1 ( )
2 ( N t t t N t t t M M N M M M N M ? ? + ? ? + = + + = L (6) 下面讨论如何利用移动平均的滞后偏差建立直线趋势预测模型. 设时间序列 } { t y 从某时期开始具有直线趋势,且认为未来时期也按此直线趋势变 化,则可设此直线趋势预测模型为 T b a y t t T t + = + ? , L ,
2 ,
1 = T (7) 其中t 为当前时期数;
T 为由t 至预测期的时期数;
t a 为截距;
t b 为斜率.两者又称为 平滑系数. 现在,我们根据移动平均值来确定平滑系数.由模型(7)可知 t t y a = t t t b y y ? = ?1 t t t b y y
2 2 ? = ? … t t N t b N y y )
1 (
1 ? ? = + ? 所以 t t t t t t t t t N t t t t b N y N b N Ny N b N y b y y N y y y M
2 1 )]
1 (
2 1 [ ] )
1 ( [ ) (
1 1 )
1 ( ? ? = ? + + + ? = ? ? + + ? + = + + + = + ? ? L L L 因此 t t t b N M y
2 1 )
1 ( ? = ? (8) 由式(7) ,类似式(8)的推导,可得 t t t b N M y
2 1 )
1 (
1 1 ? = ? ? ? (9) 所以 t t t t t b M M y y = ? = ? ? ? )
1 (
1 )
1 (
1 (10) 类似式(8)的推导,可得 t t t b N M M
2 1 )
2 ( )
1 ( ? = ? (11) 于是,由式(8)和式(11)可得平滑系数的计算公式为 ? ? ? ? ? ? ? = ? = ) (
1 2
2 )
2 ( )
1 ( )
2 ( )
1 ( t t t t t t M M N b M M a (12) 例3我国 1965~1985 年的发电总量如表
3 所示,试预测
1986 年和
1987 年的发 电总量. -285- 表3我国发电量及
一、二次移动平均值计算表 年份 t 发电总量 yt 一次移动平均,N=6 二次移动平均,N=6
1965 1
676 1966
2 825
1967 3
774 1968
4 716
1969 5
940 1970
6 1159 848.3
1971 7
1384 966.3
1972 8 1........