2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法一次移动平均实际上认为最近 N 期数据对未来值影响相同 都加权 1 N 而 N 期以前的数据对未来值没有影响 加权为 0

大家好,欢迎来到IT知识分享网。

       一次移动平均实际上认为最近 N 期数据对未来值影响相同, 都加权1/N ;而 N 以前的数据对未来值没有影响, 加权为 0。但是,二次及更高次移动平均数的权数却不是1/N,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,中间项权数大, 不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间 间隔的增长而递减的。所以, 更切合实际的方法应是对各期观测值依时间顺序进行加权 平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式。

       指数平滑法根据平滑次数的不同,又分为一次指数平滑法、二次指数平滑法和三 次指数平滑法等,分别介绍如下。

3.1    一次指数平滑法

1 .预测模型

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2.加权系数的选择

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

      则从上式可看出,新预测值是根据预测误差对原预测值进行修正而得到的。α 的大小则体现了修正的幅度,α 值愈大,修正幅度愈大;α 值愈小,修正幅度也愈小。

3.初始值的确定

用一次指数平滑法进行预测,除了选择合适的α 外,还要确定初始值 。初始值是由预测者估计或指定的。当时间序列的数据较多,比如在20 个以上时,初始值对以后的预测值影响很少,可选用第一期数据为初始值。如果时间序列的数据较少,在20个以下时,初始值对以后的预测值影响很大,这时,就必须认真研究如何正确确定初始值。一般以最初几期实际值的平均值作为初始值。

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

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

计算的 MATLAB 程序如下:

clc,clear load dianqi.txt %原始数据以列向量的方式存放在纯文本文件中 yt=dianqi; n=length(yt); alpha=[0.2 0.5 0.8];m=length(alpha); yhat(1,1:m)=(yt(1)+yt(2))/2; for i=2:n yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:); end yhat err=sqrt(mean((repmat(yt,1,m)-yhat).^2)) xlswrite('dianqi.xls',yhat) yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)

3.2 二次指数平滑法

一次指数平滑法虽然克服了移动平均法的缺点。但当时间序列的变动出现直线趋势时,用一次指数平滑法进行预测,仍存在明显的滞后偏差。因此,也必须加以修正。修正的方法与趋势移动平均法相同,即再作二次指数平滑,利用滞后偏差的规律建立直线趋势模型。这就是二次指数平滑法。其计算公式为:

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

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

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

计算的MATLAB 程序如下:

clc,clear load fadian.txt %原始数据以列向量的方式存放在纯文本文件中 yt=fadian; n=length(yt); alpha=0.3; st1(1)=yt(1); st2(1)=yt(1); for i=2:n st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1); st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1); end xlswrite('fadian.xls',[st1',st2']) a=2*st1-st2 b=alpha/(1-alpha)*(st1-st2) yhat=a+b; xlswrite('fadian.xls',yhat','Sheet1','C2') str=char(['C',int2str(n+2)]); xlswrite('fadian.xls',a(n)+2*b(n),'Sheet1',str)

3.3 三次指数平滑法

当时间序列的变动表现为二次曲线趋势时,则需要用三次指数平滑法。三次指数平滑是在二次指数平滑的基础上,再进行一次平滑,其计算公式为:

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

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

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

解 从图 2 可以看出,投资总额呈二次曲线上升,可用三次指数平滑法进行预测。

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

2025美赛数学建模MCM/ICM常用数学建模时间序列模型之——指数平滑法

clc,clear load touzi.txt %原始数据以列向量的方式存放在纯文本文件中 yt=touzi; n=length(yt); alpha=0.3; st1_0=mean(yt(1:3)); st2_0=st1_0;st3_0=st1_0; st1(1)=alpha*yt(1)+(1-alpha)*st1_0; st2(1)=alpha*st1(1)+(1-alpha)*st2_0; st3(1)=alpha*st2(1)+(1-alpha)*st3_0; for i=2:n st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1); st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1); st3(i)=alpha*st2(i)+(1-alpha)*st3(i-1); end xlswrite('touzi.xls',[st1',st2',st3']) st1=[st1_0,st1];st2=[st2_0,st2];st3=[st3_0,st3]; a=3*st1-3*st2+st3; 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); yhat=a+b+c; xlswrite('touzi.xls',yhat','Sheet1','D1') plot(1:n,yt,'*',1:n,yhat(1:n),'O') legend('实际值','预测值',2) xishu=[c(n+1),b(n+1),a(n+1)]; yhat1990=polyval(xishu,2) 关注:建模忠哥。微信公众号获得更多资源 Q:

           指数平滑预测模型是以时刻 t 为起点,综合历史序列的信息,对未来进行预测的。选择合适的加权系数α 是提高预测精度的关键环节。根据实践经验,α 的取值范围一般以0.1~0.3 为宜。α 值愈大,加权系数序列衰减速度愈快,所以实际上α 取值大小起着控制参加平均的历史数据的个数的作用。α 值愈大意味着采用的数据愈少。因此,可以得到选择α 值的一些基本准则。
(1)如果序列的基本趋势比较稳,预测偏差由随机因素造成,则α 值应取小一些,以减少修正幅度,使预测模型能包含更多历史数据的信息。(2)如果预测目标的基本趋势已发生系统地变化,则α 值应取得大一些。这样,可以偏重新数据的信息对原模型进行大幅度修正,以使预测模型适应预测目标的新变化。 另外,由于指数平滑公式是递推计算公式,所以必须确定初始值 
可以取前3~5 个数据的算术平均值作为初始值。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160567.html

(0)
上一篇 2024-12-04 22:33
下一篇 2024-12-05 07:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信