指数平滑法是布朗(Robert G..Brown)所提出,布朗(Robert G..Brown)认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延;他认为最近的过去态势,在某种程度上会持续到最近的未来,所以将较大的权数放在最近的资料。 9 D9 u4 y, I3 m
1 i! G' Y H# m
指数平滑法是生产预测中常用的一种方法。也用于中短期经济发展趋势预测,所有预测方法中,指数平滑是用得最多的一种。简单的全期平均法是对时间数列的过去数据一个不漏地全部加以同等利用;移动平均法则不考虑较远期的数据,并在加权移动平均法中给予近期资料更大的权重;而指数平滑法则兼容了全期平均和移动平均所长,不舍弃过去的数据,但是仅给予逐渐减弱的影响程度,即随着数据的远离,赋予逐渐收敛为零的权数。 # Q5 }# F$ U. k: x a! t @% f [- {5 c' D2 D& z# |8 T. A. _
也就是说指数平滑法是在移动平均法基础上发展起来的一种时间序列分析预测法,它是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测。其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均。 # L6 P: l6 n2 U, l( b U9 h 指数平滑法的基本公式是:St=ayt+(1-a)St-1 式中, 6 O/ c) |3 |+ M( R( \- O+ ~9 S) v# H* {, O l3 x3 m9 |& n& d ^
, ?+ o- ^4 U: L. m- L6 }. ~
St--时间t的平滑值; 9 N" c! a' s7 ~5 L9 Q% t& b* T; F# X
, }4 w$ p4 e: G. j! H+ W yt--时间t的实际值; 8 A* _( z G8 v, @2 D$ ^: J* W 9 q6 c4 Y4 T' g( J( x: M: z) E( ~- G3 c) ]# h# w0 d9 f
St-1--时间t-1的实际值; ! }. |2 P8 y% n" }1 x. g$ b) l* Y% _9 v/ s1 |! v* _1 H
) x+ B" s+ Y$ O" V a--平滑常数,其取值范围为[0,1]; " E7 \8 J: T- O" p; J
" G4 b# c' O$ H: v' D
6 ]' j" e8 _4 B' L& J4 e( b 由该公式可知: 2 f+ Q" n. j7 b. i5 ^7 ~, ]; g% j7 _2 g0 q8 h
& H5 o p& {* k* q9 ^& h
1.St是yt和 St-1的加权算数平均数,随着a取值的大小变化,决定yt和 St-1对St的影响程度,当a取1时,St= yt;当a取0时,St= St-1。 ! v7 Y9 t) z9 L$ H. S
, x, c+ x: E+ O n$ Y* C! G7 _3 v/ Q
2.St具有逐期追溯性质,可探源至St-t+1为止,包括全部数据。其过程中,平滑常数以指数形式递减,故称之为指数平滑法。指数平滑常数取值至关重要。平滑常数决定了平滑水平以及对预测值与实际结果之间差异的响应速度。平滑常数a越接近于1,远期实际值对本期平滑值的下降越迅速;平滑常数a越接近于 0,远期实际值对本期平滑值影响程度的下降越缓慢。由此,当时间数列相对平稳时,可取较大的a;当时间数列波动较大时,应取较小的a,以不忽略远期实际值的影响。生产预测中,平滑常数的值取决于产品本身和管理者对良好响应率内涵的理解。 - ^# A, Q& A% E+ G) [% A. `, A 2 r2 c& O# R7 A5 z& Z0 D5 m - A4 q$ D( ~% z3 \5 c5 B* Q 3.尽管St包含有全期数据的影响,但实际计算时,仅需要两个数值,即yt和 St-1,再加上一个常数a,这就使指数滑动平均具逐期递推性质,从而给预测带来了极大的方便。 9 C3 Z5 n& L7 I7 n/ ~( M3 Y- C5 f) F; A
6 ~, N' g3 k$ O A: G
4.根据公式S1=ay1+(1-a)S0,当欲用指数平滑法时才开始收集数据,则不存在y0。无从产生S0,自然无法据指数平滑公式求出S1,指数平滑法定义S1为初始值。初始值的确定也是指数平滑过程的一个重要条件。 ( R& v6 i' Q+ {2 U; M
我觉得daly555说得很对,误差只能是计算值跟实际值的比较。楼主的意思可能是想要知道模型的精确度,不妨参考灰色预测模型的c检验值和p检验值法,如果p>0.95 & c<0.35,那么此模型还是不错的。具体分析如下:, c# s- e) |) {0 U/ I9 C" i
if p>0.95 & c<0.35 4 t% G5 b% q1 ]# t! F" g8 d disp('The model is good,and the forecast is:'), 5 X1 N+ E2 \5 \5 c3 a disp(Hatx0(length(x0)+T)) 6 q/ X3 W) t$ q% t. Z# Velseif p>0.85 & c<0.51 N9 N |8 B6 n1 s, _8 S
disp('The model is eligibility,and the forecast is:'),9 o& T: {# C7 i
disp(Hatx0(length(x0)+T)); A' y6 v4 l0 j( Z
elseif p>0.70 & c<0.65 / i A1 W3 d" {( V$ ?+ [ disp('The model is not good,and the forecast is:'),! A, e* p# M! N6 N3 s. M
disp(Hatx0(length(x0)+T))$ f) R3 z( x% U
else p<=0.70 & c>0.65' h/ t7 u' K+ q8 c6 D
disp('The model is bad,and try again'), K4 G1 b3 _% q8 V! V
我有一篇关于灰色模型和指数预测模型matlab程序的帖子,楼主可以参考,共同学习~~