QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3270|回复: 0
打印 上一主题 下一主题

[建模教程] 时间序列模型 (三):指数平滑法

[复制链接]
字体大小: 正常 放大
浅夏110 实名认证       

542

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2020-11-14 17:15
  • 签到天数: 74 天

    [LV.6]常住居民II

    邮箱绑定达人

    群组2019美赛冲刺课程

    群组站长地区赛培训

    群组2019考研数学 桃子老师

    群组2018教师培训(呼伦贝

    群组2019考研数学 站长系列

    跳转到指定楼层
    1#
    发表于 2020-5-30 15:06 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    一次移动平均实际上认为近 N 期数据对未来值影响相同,都加权;而 N 期以前的数据对未来值没有影响,加权为 0。但是,二次及更高次移动平均数的权数却不是 ,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,, [7 g- Y& Y* X5 d
    中间项权数大,不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间间隔的增长而递减的。所以,更切合实际的方法应是对各期观测值依时间顺序进行加权平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式。$ M6 r& t" i+ P& O: t* k6 g
    . i, }7 W; f+ q% @
    指数平滑法根据平滑次数的不同,又分为一次指数平滑法、二次指数平滑法和三 次指数平滑法等,分别介绍如下。9 I5 R; H. c4 o: B( ^
    3 m" p# }0 G1 R- e
    一次指数平滑法1.预测模型

    2.加权系数的选择

    3.初始值的确定

    例 4  某市 1976~1987 年某种电器销售额如表 4 所示。试预测 1988 年该电器销售 额。

    " s9 K5 Q, R, ]8 [9 X
    clc,clear " ?/ o: ^. G7 _; K1 B0 x4 S/ C* E! P
    load dianqi.txt   %原始数据以列向量的方式存放在纯文本文件中
    5 H% V9 T+ ?1 E5 B8 @6 g& zyt=dianqi;) U9 b6 J/ |3 K4 X
    n=length(yt);
    ) W$ W; f: t  n' ^7 v& dalpha=[0.2 0.5 0.8];' ]; l6 u6 K# h0 N9 }
    m=length(alpha);
    6 y' R' v* o7 nyhat(1,1:m)=(yt(1)+yt(2))/2;
    , |$ V2 H( _5 b6 C6 O5 efor i=2:n     
    - n" c# M% s3 N. ?8 a    yhat(i,=alpha*yt(i-1)+(1-alpha).*yhat(i-1,; / [" O/ `( h! Y1 ?' J
    end : A) K% y7 L. @  A! |
    yhat / t9 \  T. k& {: r, y4 S
    err=sqrt(mean((repmat(yt,1,m)-yhat).^2))   v" w; K6 {4 y9 H1 {
    xlswrite('dianqi.xls',yhat) ! ^( u' k% ~. ^# R/ n& m
    yhat1988=alpha*yt(n)+(1-alpha).*yhat(n, ( A4 u: |- r. b
    ( H" c0 n: c" d6 f; y' ^' a( D
    二次指数平滑法

    例 5  仍以例 3 我国 1965~1985 年的发电总量资料为例,试用二次指数平滑法预 测 1986 年和 1987 年的发电总量


    + b" ?1 K3 ]  w* `4 H, p/ `" {3 y# k7 J9 x1 i
    clc,clear . H! b* ^" q. [; v: G4 _6 ?% J
    load fadian.txt   %原始数据以列向量的方式存放在纯文本文件中 9 \# c* n0 U4 W4 N. r( |9 s
    yt=fadian; , {3 s6 b# L, |8 j! k
    n=length(yt); 5 Z3 e- R- a0 @3 P: r" @
    alpha=0.3;
    : D" l* ^1 t% v# {7 {6 Y  mst1(1)=yt(1);
      b( l2 v. ]% `3 \* Z/ Dst2(1)=yt(1); & n! R" U, M0 z" e; u$ d: C
    for i=2:n     * a2 B% U% g, Q9 ~4 k2 r' t
        st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);    4 F9 X# H% M5 d/ J% h) ?$ I* I
        st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1); % [" b2 u8 }) @: q8 w5 a
    end 9 P4 f0 `) c9 u8 q. D3 ^- N0 Y6 x, A
    xlswrite('fadian.xls',[st1',st2']) 3 ]& a' A+ `, U
    a=2*st1-st2 b=alpha/(1-alpha)*(st1-st2) ( \1 Y% t" r0 Q2 I; o, D
    yhat=a+b;
    * Z$ b! \9 M6 o- G$ r* `+ s& Y. Bxlswrite('fadian.xls',yhat','Sheet1','C2')
    3 q3 B. F0 {( y) T  Q& I: j9 E- v- |str=char(['C',int2str(n+2)]); 7 R2 f7 m1 f: L3 w7 x" g( F+ r
    xlswrite('fadian.xls',a(n)+2*b(n),'Sheet1',str)
    % ~8 U; m  o4 F( s- f1 g* k; r9 q/ B% F$ t9 U, ^) W1 b# C" @) D
    三 次指数平滑法

    例 6  某省 1978~1988 年全民所有制单位固定资产投资总额如表 7 所示,试预测 1989 年和 1990 年固定资产投资总额。

    ) u! r8 [6 x$ `) N  U" K

    计算的 MATLAB 程序如下:

    0 n/ H* i8 b: C. Q: Z
    clc,clear $ h- F2 J" ^2 ~* T
    load touzi.txt   %原始数据以列向量的方式存放在纯文本文件中 * B) n$ u+ }+ _
    yt=touzi;
      z8 v, u* {& X5 W& Wn=length(yt); $ M3 W; ]0 L7 V# p5 @" K
    alpha=0.3; 0 G6 f9 Q5 f' N6 _0 e! A& S) k7 X
    st1_0=mean(yt(1:3));
    * J" j) [, L+ g5 Q6 O; Vst2_0=st1_0;; x  g( H+ M. j+ Q, q
    st3_0=st1_0; / i# x4 G# k# s7 D0 e- d- p1 {
    st1(1)=alpha*yt(1)+(1-alpha)*st1_0;
    ; Z# a4 j+ {' _( wst2(1)=alpha*st1(1)+(1-alpha)*st2_0; % l4 e) V- S! O( h
    st3(1)=alpha*st2(1)+(1-alpha)*st3_0; 1 u1 t# v, X5 x. D
    for i=2:n     
    4 \# x) n- K% e0 O5 b9 s    st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);     ' X9 }; n" j4 I4 p
        st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);       @0 n9 Z0 m* {2 m
        st3(i)=alpha*st2(i)+(1-alpha)*st3(i-1); ' _3 U3 ^  M+ [/ J" e. K5 D: X
    end 7 d' d4 @+ \! P, j
    xlswrite('touzi.xls',[st1',st2',st3'])
    8 C2 F" j1 A" [( K% D6 ust1=[st1_0,st1];
    ! C* J) r8 J0 J) U# a2 g" }  k) v2 F! a6 Sst2=[st2_0,st2];
    6 O" D2 W6 Y4 Z) E8 n# @; x" U' t$ Sst3=[st3_0,st3];
    % c! [3 e1 B- e2 I7 J  ia=3*st1-3*st2+st3;
    & l6 \# X$ f' R1 o$ _5 }# \b=0.5*alpha/(1-alpha)^2*((6-5*alpha)*st1-2*(5-4*alpha)*st2+(4-3*alpha)*st3); c=0.5*alpha^2/(1-alpha)^2*(st1-2*st2+st3); + x4 G7 O. x! r+ A
    yhat=a+b+c;
    : n( q) b* [) p0 n' x' S! @xlswrite('touzi.xls',yhat','Sheet1','D1') 7 V9 }% U6 G9 E! J/ T  \, b
    plot(1:n,yt,'*',1:n,yhat(1:n),'O') 0 h9 }3 D( g# Q' J& M
    legend('实际值','预测值',2)
    , A; b7 N. [( {2 Lxishu=[c(n+1),b(n+1),a(n+1)];
    7 c9 w* h! s* N2 ^6 S" Xyhat1990=polyval(xishu,2)
    ! O0 Z  C  Z- [+ A" s6 j3 c; S" E
    6 o! d' x7 {7 ^! [$ G: O指数平滑预测模型的评价
    , f) f4 S# v3 _) P指数平滑预测模型是以时刻t为起点,综合历史序列的信息,对未来进行预测的。 选择合适的加权系数 α 是提高预测精度的关键环节。根据实践经验, α 的取值范围一 般以 0.1~0.3 为宜。 α 值愈大,加权系数序列衰减速度愈快,所以实际上 α 取值大小 起着控制参加平均的历史数据的个数的作用。 α 值愈大意味着采用的数据愈少。因此, 可以得到选择 α 值的一些基本准则。
    - g/ C3 w% ^! D+ i1 m" y( Z9 Y- w, G, F. }( q) I/ k
    (1)如果序列的基本趋势比较稳,预测偏差由随机因素造成,则 α 值应取小一些, 以减少修正幅度,使预测模型能包含更多历史数据的信息。
    ( C9 j- P% |- c. x+ D
    5 N- t6 s% V' \2 T( w" X4 |5 I(2)如果预测目标的基本趋势已发生系统地变化,则 α 值应取得大一些。这样, 可以偏重新数据的信息对原模型进行大幅度修正,以使预测模型适应预测目标的新变 化。 ; J* ~: ]  R+ |4 j/ J
    9 F2 e  v' }( q0 k+ g; C2 Y- m

    4 g/ P" p' o! @- Z# K7 r3 E' f$ d3 H
    ; X$ v) z7 F% U6 e& `
    ————————————————; t+ {8 s0 I) ?9 y; {/ s
    版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。' j4 m, }' Q( j6 z' H3 |8 c9 G
    原文链接:https://blog.csdn.net/qq_29831163/article/details/89441085* }, z  F/ f2 p0 ?4 R
      w6 R9 y$ _* W8 Q! Z5 n. ]7 D

    ( g3 y% ~) N8 {9 @+ O3 b
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-13 06:41 , Processed in 0.322585 second(s), 50 queries .

    回顶部