数学建模——确定性时间序列分析方法(一)

简介: 数学建模——确定性时间序列分析方法

介绍

  将预测对象按照时间顺序排成一组序列,称为时间序列。从时间序列过去的变化规律,推断今后变化的可能性及变化趋势、变化规律,这就是时间序列预测法。

  时间序列模型,其实也是一种回归模型。其基本原理是,一方面承认事物发展的延续性,运用过去时间序列进行统计分析就能推断事物发展趋势;另一方面又充分考虑到偶然因素影响产生的随机性,为了消除随机波动的影响,利用历史数据,进行统计分析,并对数据做适当的处理,进行趋势预测。

  • 优点:简单易行,便于掌握,能重复利用时间序列各项数据,计算速度快,对模型参数动有态确定能力,精度较好。
  • 缺点 : 不能反映事物内在联系,不能分析两个因素的相关关系,只适合作短期预测

确定性时间序列分析方法

1、时间序列的常见趋势

(1)长期趋势

时间序列朝着一定的方向持续上升或下降或留在某个水平的倾向。它反映了客观事物主要变化趋势,记为Tt;

(2)季节变动

序列按时间呈现短周期变化的规律,记为St;

(3)循环变动

通常是周期为一年以上的,由非季节因素一起的起伏波相似的波动,记为Ct;

(4)不规则变动

通常分为突然变动和随机扰动(变动),记为Rt。

常见的时间序列模型有以下几类

  • 加法模型   yt=Tt+St+Ct+Rt;(常用)
  • 乘法模型   yt=Tt×St×Ct×Rt;
  • 混合模型   yt=Tt×St+Rt;yt=St+Tt×Ct×Rt;

其中,yt为观测值,随机变动Rt满足

如果在预测时间范围内,无突然变动或者随机波动的方差σ2较小,并且有理由认为现在的演变趋势将持续发展到未来,可用一些经验方法进行预测。

2、时间序列预测的具体方法

2.1 移动平均法

设观测时间序列为y1,y2,…,yT。

一次移动平均值计算公式:

二次移动平均值计算公式:

这里N<T,一般5≤N≤200.

(1)当预测目标的基本趋势在某一水平上下波动时,采用一次移动平均方法计算预测,即

(2)当预测目标的基本趋势与某一直线相吻合时,采用二次移动平均法.

以上预测标准误差为

一般来说,N取多少为好,S越小越好。如果数据自带周期,N最好取周期值。

案例1

某企业1-11月的销售收入时间序列如表1所列,试用一次移动平均法预测12月的销售收入。

表1 1-11月销售收入记录

月份t

1

2

3

4

5

6

销售收入yt

533.8

574.6

606.9

649.8

705.1

772.0

月份t

7

8

9

10

11

销售收入yt

816.4

892.7

963.9

1015.1

1102.7

【符号说明】
  • t  时间变量t=1,2,…,11
  • yt 销售量记录值
  • n  移动平均项数
  • Mt 一次移动平均值,t=n,n+1,…,11
  • y(1) 预测值,t=5,6,…,12
【预测模型】

一次移动平均预测模型为:

针对n=3,4,5,都做一次移动平均预测,将计算结果和误差都反映在表2.

先编写一个时间序列为yt,移动平均项n的预测与误差的程序yd1.m,再调用此函数计算不同n值的预测与误差,存放在表2进行对比

表2 n分别取3,4,5的预测对比

t

5

6

7

8

9

10

11

标准误差

yt

705.10 

772.00 

816.40 

892.70 

963.90 

1015.10 

1102.70 

0.00 

n=3

653.93 

708.97 

764.50 

827.03 

891.00 

957.23 

1027.23 

60.73 

n=4

634.10 

683.45 

735.83 

796.55 

861.25 

922.03 

993.60 

92.37 

n=5

614.04 

661.68 

710.04 

767.20 

830.02 

892.02 

958.16 

124.63 

function [M1,s]=yd1(yt,n)
t=length(yt);
yt1=[];
for k=n:t
    yr=yt(k-n+1:k);
    yr1=mean(yr);
    yt1=[yt1,yr1];
end
M1=[zeros(1,n-1),yt1];
yt21=yt(n+1:t);
yt22=M1(n+1:t);
yts=yt22-yt21;
s=(sum(yts.^2)/(t-n))^0.5;
yt=[533.8 574.6 606.9 649.8 705.1 772 816.4 892.7 963.9 1015.1 1102.7];
n=5;
[m1,s1]=yd1(yt,3);
[m2,s2]=yd1(yt,4);
[m3,s3]=yd1(yt,5);
S=[0,s1,s2,s3];
Y=[yt;m1;m2;m3];
B=[Y,S'];
xlswrite('d:\yidong1.xlsx',B);

由表2可见,n=3比n=4预测效果好,n=4比n=5预测效果好。用n=3的计算作预测,12月份销售量为1027.23.

2.2 一次指数平滑预测法

(1)预测模型

设时间序列为y1,y2,…,yt,…,α为加权系数,0<α<1,一次指数平滑公式为

预测模型为

(2)加权系数的选择

(1)如果时间序列波动不大,比较平稳,则α取小一点,0.1-0.5,减小修正幅度,使预测模型包含较长的序列信息;

(2)如果序列具有迅速增加的变动趋势,α取大一点,0.6-0.8,使得预测模型灵敏度高一些,以便迅速跟上数据的变化。

(3)初始值的确定

一般选取最初几期实际值的平均值作为初始值。

案例2

就案例1中问题,用指数平滑预测法预测12月销售量。

就α=0.2,0.5,0.8分别作一次指数平滑预测,初始值为

按照预测模型计算不同α预测结果与误差,计入表3,进行对比做出决策。

function [s1,s]=expph1(yt,a)
n=length(yt);
s1(1)=mean(yt(1:2));
for k=2:n
    s1(k)=a*yt(k)+(1-a)*s1(k-1);
end
y11=s1-yt;
s=std(y11);
yt=[533.8 574.6 606.9 649.8 705.1 772 816.4 892.7 963.9 1015.1 1102.7];
[m1,s1]=expph1(yt,0.2);
[m2,s2]=expph1(yt,0.5);
[m3,s3]=expph1(yt,0.8);
s=[0,s1,s2,s3];
m=[yt;m1;m2;m3];
B=[m,s'];
xlswrite('d:\yd1.xlsx',B);

表3 不同权系数的指数平滑预测及其标准误差

月份

1

2

3

4

5

6

yt

533.80

574.60

606.90

649.80

705.10

772.00

a=0.2

554.20

558.28

568.00

584.36

608.51

641.21

a=0.5

554.20

564.40

585.65

617.73

661.41

716.71

a=0.8

554.20

570.52

599.62

639.76

692.03

756.01

月份

7

8

9

10

11

误差

yt

816.40

892.70

963.90

1015.10

1102.70

0.00

a=0.2

676.25

719.54

768.41

817.75

874.74

81.82

a=0.5

766.55

829.63

896.76

955.93

1029.32

28.33

a=0.8

804.32

875.02

946.12

1001.30

1082.42

11.20

由表3可以看出,α=0.8误差最小,选择系数α=0.8进行预测,12月份的销售量为

                                                 图2  预测值与实际值对比

从表2、表3和图2可以看出,预测值总是滞后于实际值。原因就是数据不满足模型要求(平稳型)。


相关文章
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
559 0
|
9月前
|
存储 传感器 算法
农业+大数据=?看 TDengine 如何刷新智慧农业新速度
在智慧农业的发展过程中,高效的数据管理与智能分析至关重要。某农业研究所智慧农业团队在实验温室集成了温控、智能水肥一体化、环境控制等系统,以优化果蔬作物的智能化管理。
160 9
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
737 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
机器学习/深度学习 算法 数据挖掘
稀疏促进动态模态分解(SPDMD)详细介绍以及应用
稀疏促进动态模态分解(SPDMD)结合了动态模态分解(DMD)的数学优雅性和稀疏优化技术,有效提取高维数据中的关键特征。SPDMD通过稀疏约束自动筛选出最重要模态,去除冗余信息,提升模型的可解释性和计算效率。该方法在流体动力学、图像处理、时间序列分析及金融数据等领域广泛应用,能够识别主要趋势、周期性模式及异常现象。SPDMD不仅提高了数据分析效率,还为各领域研究提供了强有力的工具。通过自动选择最相关的模态,SPDMD尤其适用于大规模数据集和实时应用。
378 4
|
机器学习/深度学习 算法 数据挖掘
K-means聚类模型算法
K-means聚类模型算法
|
传感器 人工智能 安全
大数据与农业:精准农业的发展趋势
【10月更文挑战第31天】在数字化时代,大数据正推动农业的现代化转型。本文探讨了大数据在精准农业中的应用,包括精准决策支持、智能种植与养殖、市场预测与资源优化、质量追溯与安全保障、农业风险管理等方面,以及精准农业的发展趋势,如农业信息快速低成本实时采集、农业专家决策系统的普及、智能化农机设备的广泛应用等。大数据为农业的高效、可持续发展提供了新的机遇。
数学建模——确定性时间序列分析方法(二)
数学建模——确定性时间序列分析方法
218 0
|
机器学习/深度学习 数据采集 数据可视化
【机器学习】样本、特征、标签:构建智能模型的三大基石
【机器学习】样本、特征、标签:构建智能模型的三大基石
6080 0
|
机器学习/深度学习 算法 vr&ar
【数学建模竞赛】预测类赛题常用算法解析
【数学建模竞赛】预测类赛题常用算法解析
498 0
|
机器学习/深度学习 数据采集 运维
时间序列预测:轻松拿捏趋势、季节性和周期性
「时间序列预测」是指基于历史数据对未来进行预测。它通常被应用于诸如经济、金融、股票、气象、市场营销和运营管理等领域中。 具体来说,「时间序列预测」是对时间序列数据的趋势、季节性和周期性进行分析并建立数学模型,通过这些模型的拟合和预测,来描述时间序列中的趋势变化及规律,进而进行未来变化的预测。
3819 0