; s4 ]9 Z* E- s3 `自适应滤波法 9 I9 m) e: A+ l
自适应滤波法的基本过程 8 M& h+ {) H% h# [自适应滤波法与移动平均法、指数平滑法一样,也是以时间序列的历史观测值进行 某种加权平均来预测的,它要寻找一组“佳”的权数,其办法是先用一组给定的权数 来计算一个预测值,然后计算预测误差,再根据预测误差调整权数以减少误差。这样反 复进行,直至找出一组“佳”权数,使误差减少到低限度。由于这种调整权数的过 程与通讯工程中的传输噪声过滤过程极为接近,故称为自适应滤波法。 9 h4 n f1 U0 E$ |, p4 y
( N' [7 D/ P: {! T3 [) V y6 \3 k& f( q9 o, N% p) t( n8 X
8 ^# z- K* R$ g9 s
& `0 p7 G/ J1 f
- G6 H0 h+ M& J5 p
下面举一个简单的例子来说明此法的全过程。设有一个时间序列包括 10 个观测值, 如表 9 所示。试用自适应滤波法,以两个权数来求第 11 期的预测值。 6 h- `2 B% `* _ 9 p7 D% B( {4 I7 E% w- j& n0 s5 K9 o) `& g
: r6 f- d9 D* j& ]& w. f' S6 N, ~8 m, r* n
! i/ @1 s" Q- o0 ]0 t, M a
在实际应用中,权数调整计算工作量可能很大,必须借助于计算机才能实现。 9 {. W3 k/ Z9 S% {, |; q8 v8 \! K+ s) C1 p5 x* }5 ?
计算的 MATLAB 程序如下: 7 W3 ^ V3 w- T! [
# z0 N( E4 h- r" R# u& l! ~) K uclc,clear ; R) K/ b$ A* s- W* F7 z2 w
yt=0.1:0.1:1; 4 x5 ~0 N& Y7 {' X6 J8 _; u8 `
m=length(yt); % `+ \7 h9 Z2 @/ r6 u
k=0.9; N=2; Terr=10000; 5 l2 p( t a! \# \- W7 U( i9 K/ J
w=ones(1,N)/N; / D: a: [+ W- l' D7 c+ T7 M
while abs(Terr)>0.00001 7 E2 L0 W3 ~! H; @4 z+ S: T' q+ B Terr=[]; 6 I4 B( I% s8 Y8 K8 n1 r/ _$ ]
for j=N+1:m-1 & q2 N+ p9 K( B% h- ^
yhat(j)=w*yt(j-1:-1:j-N)'; & [+ Y5 D1 E/ m2 m! Y; r( Y/ k
err=yt(j)-yhat(j); 4 b5 \$ Z5 h. [9 U" Q! K Terr=[Terr,abs(err)]; 5 A% z1 W5 G1 V% S- O- e6 O
w=w+2*k*err*yt(j-1:-1:j-N); ; O5 R/ y( g. p end * Z8 U ?& `, M" C# r' ~3 C6 | Terr=max(Terr); , I3 U% x0 B0 G" y2 L4 eend 5 R2 W \5 [& U# f* \
w, yhat 9 B4 S' y6 J7 h& ?7 }* b2 g
$ z4 N: N/ _; x+ w N, k 值和初始权数的确定 7 A6 P$ l! g N" B在开始调整权数时,首先要确定权数个数 N 和学习常数k 。一般说来,当时间序 列的观测值呈季节变动时, N 应取季节性长度值。如序列以一年为周期进行季节变动 时,若数据是月度的,则取 N =12 。若季节是季度的,则取N=4 。如果时间序列无 明显的周期变动,则可用自相关系数法来确定,即取 N 为高自相关系数的滞后时期。# E: A5 o. {& E7 v% m
3 l. O0 h C- x8 r
k 的取值一般可定为1 / N,也可以用不同的k 值来进行计算,以确定一个能使S 小的k 值。 ' x3 n- G) p4 C2 E( H. W; e- r& t' o, Q1 [0 m ( R! t( m. ?6 l2 j* Z" U , z+ i4 z. ~/ N 自适应滤波法有两个明显的优点:一是技术比较简单,可根据预测意图来选择权数 的个数和学习常数,以控制预测。也可以由计算机自动选定。二是它使用了全部历史数 据来寻求佳权系数,并随数据轨迹的变化而不断更新权数,从而不断改进预测。 由于自适应滤波法的预测模型简单,又可以在计算机上对数据进行处理,所以这种 预测方法应用较为广泛. - a, g4 P/ q' ]2 z) O+ k& `- `! S% I8 f$ S: z7 N# J9 n$ v