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

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

介绍

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

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

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

确定性时间序列分析方法

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可以看出,预测值总是滞后于实际值。原因就是数据不满足模型要求(平稳型)。


相关文章
|
7月前
|
机器学习/深度学习 监控 安全
实验室监控的实时目标检测系统|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
基于YOLOv8与PyQt5的实验室实时监控系统,支持人员进出检测、未穿防护服报警、视频回放等功能。提供完整源码、数据集、权重文件及训练教程,开箱即用,可快速部署于实验室安全监管场景,实现智能可视化管理。
实验室监控的实时目标检测系统|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
9月前
|
人工智能 监控 Kubernetes
稳定支撑大规模模型调用,携程旅游的 AI 网关实践
为了进一步提升服务水平和服务质量,携程很早就开始在人工智能大模型领域进行探索。而随着工作的深入,大模型服务的应用领域不断扩大,公司内部需要访问大模型服务的应用也越来越多,不可避免的就遇到了几个问题,我们自然就会想到使用网关来对这些服务接入进行统一管理,并增加各种切面上的流量治理功能。
929 87
|
机器学习/深度学习 数据可视化 算法
经典时间序列分析概述:技术、应用和模型
时间序列数据按时间顺序收集,具有时间维度的重要性,需专门技术和模型进行分析预测。其应用广泛,涵盖经济预测、风险管理、天气预报、气候建模、流行病学、患者监测、需求预测、客户行为分析及预测性维护等领域。时间序列特征包括趋势、季节性和周期性模式。自相关和偏自相关用于衡量数据点间关系,白噪声表示无自相关的时间序列。平稳性指统计特性随时间保持一致,对建模至关重要。常见模型包括ARMA、ARIMA、SARIMA、ARCH和GARCH,用于捕捉复杂动态并预测未来模式。选择合适模型和确定顺序对准确预测至关重要。掌握这些基础知识不仅增强对复杂模型的理解,还能确保预测方法的稳健性和可靠性。
3950 2
经典时间序列分析概述:技术、应用和模型
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
机器学习/深度学习 数据可视化 测试技术
统计学入门:时间序列分析基础知识详解
本文探讨了时间序列分析的核心概念,包括自协方差、自相关和平稳性。通过Python实现和图形化展示了这些概念,以增进理解。时间序列涉及观察随时间变化的数据,如心率或温度。自协方差和自相关衡量数据点之间的关系,滞后表示时间间隔。弱平稳性意味着均值、方差和协方差不随时间变化。文章介绍了自回归(AR)、移动平均(MA)、ARMA和ARIMA模型,用于描述不同类型的序列行为。统计检验如ADF和Durbin-Watson用于检测平稳性和残差自相关。ARIMA模型特别适用于非平稳数据,通过差分实现平稳化。文章还提供了代码示例和可视化来辅助学习。
1161 4
Jstack 查看线程状态及定位占用 cpu 较高的 java 线程
Jstack 查看线程状态及定位占用 cpu 较高的 java 线程
1658 2
|
机器学习/深度学习 算法 数据挖掘
K-means聚类模型算法
K-means聚类模型算法
|
算法 数据可视化 数据挖掘
时间序列模型算法 - ARIMA (一)
时间序列模型算法 - ARIMA (一)
2708 0
|
存储 算法 程序员
【C/C++ 随机数】深入探索C++随机数生成,random 模块的应用
【C/C++ 随机数】深入探索C++随机数生成,random 模块的应用
1090 0