当前位置: 首页 > news >正文

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

目录

介绍

确定性时间序列分析方法

1、时间序列的常见趋势

(1)长期趋势

(2)季节变动

(3)循环变动

(4)不规则变动

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

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

2.1 移动平均法

案例1

【符号说明】

 【预测模型】

2.2 一次指数平滑预测法

(1)预测模型

 (2)加权系数的选择

 (3)初始值的确定

案例2

 3、差分指数平滑法

案例3

4、具有季节性特点的时间序列的预测

 案例4


介绍

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

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

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

确定性时间序列分析方法

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

 3、差分指数平滑法

差分是改变数据趋势的根本方法(就像导数改变幂函数阶数一样)。如果数据呈现直线吻合型,差分后就呈现平稳性。

一阶差分指数平滑预测模型公式如下

 【1】

公式【1】的第三个表示是就相当于:预测值=原值+差分(微分)的预测值.

案例3

对案例1问题用差分指数平滑法预测第12月的销售量。(取α=0.5).

 (1)先计算原始数据xt的差分,得到yt;

(2)对数据yt,取α=0.5做一次指数平滑预测,得到St;

(3)作预测

先编制一个给定时间序列和α的计算差分指数平滑预测的m函数,再调用m这个函数将计算结果汇总到表4.将预测结果与实测值对比如图3.差分指数平滑预测当α=0.5时,误差较小。

function [yc,err]=diffexpph(yt,a)
y=diff(yt);
[ym,s]=expph1(y,a);
y=[0,y];
ym=[0,ym];
n=length(y);
r=a*y(n)+(1-a)*ym(n);
ym=[ym,r];
for k=1:nyc(k+1)=ym(k+1)+yt(k);
end
xy=yc(2:end-1)-yt(2:end);
err=(sum(xy.^2)/10)^0.5;
yt=[533.8 574.6 606.9 649.8 705.1 772 816.4 892.7 963.9 1015.1 1102.7]; a=0.5;
[yc,err]=diffexpph(yt,a);plot(2:11,yt(2:end),'*',2:11,yc(2:end-1),'+'),
legend('实测值','预测值')
>> A1=[yt,0];
>> A=[A1;yc];
>> xlswrite('d:\diffexpph.xlsx',A)

                图3 差分指数平滑预测于实测对比

月份

1

2

3

4

5

6

实测yt

533.8

574.6

606.9

649.8

705.1

772

预测yc

 

570.35

609.025

645.5625

696.7813

762.0406

月份

7

8

9

10

11

12

实测yt

816.4

892.7

963.9

1015.1

1102.7

 

预测yc

822.6703

879.8852

960.0426

1023.171

1088.536

1183.218

                                 表4 案例3差分指数平滑预测有关数据

由表4可以得到预测值,第12月销售量为1183.218.将不同α取值(0.1,0.3,0.6,0.9)计算结果汇总到表5,对比显示,差分指数平滑对线性吻合型数据,α取值越大,预测越准确。

yt=[533.8 574.6 606.9 649.8 705.1 772 816.4 892.7 963.9 1015.1 1102.7];
[yc1,s1]=diffexpph(yt,0.1);
[yc2,s2]=diffexpph(yt,0.3);
[yc3,s3]=diffexpph(yt,0.6);
[yc4,s4]=diffexpph(yt,0.9);
A1=[0,yt(2:end),0];
A2=[0,s1,s2,s3,s4];
A=[A1;yc1;yc2;yc3;yc4]';
B=[A;A2];
xlswrite('d:\diffexpph1.xlsx',B)

月份\α

 

0.1

0.3

0.6

0.9

1

0

0

0

0

0

2

574.6

570.35

570.35

570.35

570.35

3

606.9

610.725

609.875

608.6

607.325

4

649.8

643.7025

644.4625

646.24

648.7825

5

705.1

688.4523

692.6838

698.716

703.7583

6

772

746.577

755.1886

764.8064

770.7058

7

816.4

813.7693

820.382

822.5226

818.5206

8

892.7

861.6224

873.1574

882.389

889.7221

9

963.9

940.5202

953.7902

961.8156

964.1122

10

1015.1

1012.058

1022.023

1022.266

1017.121

11

1102.7

1067.202

1082.066

1091.006

1099.262

12

0

1158.352

1175.856

1185.623

1189.956

误差

0

19.44747

12.10722

6.799773

2.281841

                                         表5 指数平滑不同α预测对比

4、具有季节性特点的时间序列的预测

 具有季节特性的时间序列预测方法很多,这里介绍季节系数法,步骤如下:

(1)收集m年的每年各个季度或者各个月份(n个季度)的时间序列aij,i表示年份,i=1,2,…,m;j表示季度,j=1,2,…,n;

(2)计算所有数据的平均值

(3)计算同季度的算数平均数

(4)计算季度系数

(5)预测计算

 当时间序列是按季度给出,先求初预测年份(下一年)的年加权平均

再计算预测年份季度平均

最后预测当年第j季度的预测值

 案例4

某商店某类商品1999-2000年各季度销售额如表6所示,预测2004年各季度销售额。

                         表6 1999-2003各季度销售额   (单位:元)

年份\季度

1

2

3

4

1999

137920

186742

274561

175422

2000

142814

198423

265419

183512

2001

131002

193987

247556

169847

2002

157436

200144

283002

194319

2003

149827

214301

276333

185204

2004

145573

201170

272696

183901

 模型求解:按照上面的规范步骤,2004年个季度销售额预测填入表6最后一行

B=xlsread('d:\jidu.xlsx');
A=B(:,2:end);
[m,n]=size(A);
a=sum(sum(A))/m/n;
aj=mean(A);
bj=aj/a;
yi=sum(A');
w=1:m;
yc=sum(yi.*w)/sum(w)/n;
ycj=yc*bj

相关文章:

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

目录 介绍 确定性时间序列分析方法 1、时间序列的常见趋势 &#xff08;1&#xff09;长期趋势 &#xff08;2&#xff09;季节变动 &#xff08;3&#xff09;循环变动 &#xff08;4&#xff09;不规则变动 常见的时间序列模型有以下几类 2、时间序列预测的具体方法 …...

Opencv——颜色模型+通道分离与合并

视频加载/摄像头调用 VideoCapture允许一开始定义一个空的对象 VideoCapture video VideoCapture(const String &filename,int apiPreferenceCAP_ANY) filename:读取的视频文件或者图像序列名称 apiPreference:读取数据时设置的属性&#xff0c;例如编码格式、是否调用Op…...

解码自然语言处理之 Transformers

自 2017 年推出以来&#xff0c;Transformer 已成为机器学习领域的一支重要力量&#xff0c;彻底改变了翻译和自动完成服务的功能。 最近&#xff0c;随着 OpenAI 的 ChatGPT、GPT-4 和 Meta 的 LLama 等大型语言模型的出现&#xff0c;Transformer 的受欢迎程度进一步飙升。这…...

【前端设计模式】之迭代器模式

迭代器模式是一种行为设计模式&#xff0c;它允许我们按照特定的方式遍历集合对象&#xff0c;而无需暴露其内部实现。在前端开发中&#xff0c;迭代器模式可以帮助我们更好地管理和操作数据集合。 迭代器模式特性 封装集合对象的内部结构&#xff0c;使其对外部透明。提供一…...

【Android知识笔记】图片专题(BitmapDrawable)

如何计算一张图片的占用内存大小? 注意是占用内存,不是文件大小可以运行时获取重要的是能直接掌握计算方法基础知识 Android 屏幕像素密度分类: (其实还有一种 ldpi = 120,不过这个已经绝种了,所以最低的只需关心mdpi即可) 上表中的比例为:m : h : xh : xxh: xxxh = …...

前端工程化知识系列(10)

目录 91. 了解前端工程化中的容器化和云部署概念&#xff0c;以及如何使用Docker和Kubernetes等工具来实现它们&#xff1f;92. 你如何管理前端项目的文档和知识共享&#xff0c;以确保团队成员都能理解和使用前端工程化工具和流程&#xff1f;93. 了解前端开发中的大规模和跨团…...

大数据flink篇之三-flink运行环境安装(一)单机Standalone安装

一、安装包下载地址 https://archive.apache.org/dist/flink/flink-1.15.0/ 二、安装配置流程 前提基础&#xff1a;Centos环境&#xff08;建议7以上&#xff09; 安装命令&#xff1a; 解压&#xff1a;tar -zxvf flink-xxxx.tar.gz 修改配置conf/flink-conf.yaml&#xff1…...

Redisson使用延时队列

延时队列 在开发中&#xff0c;有时需要使用延时队列。 比如&#xff0c;订单15分钟内未支付自动取消。 jdk延时队列 如果使用 jdk自带的延时队列&#xff0c;那么服务器挂了或者重启时&#xff0c;延时队列里的数据就会失效&#xff0c;可用性比较差。 Redisson延时队列 …...

基于php 进行每半小时钉钉预警

前言 业务场景&#xff1a;监控当前业务当出现并发情况时技术人员可以可以及时处理 使用技术栈&#xff1a; laravelredis 半小时触发一次报警信息实现思路 1、xshell脚本 具体参数就不详细解释了&#xff0c;想要详细了解可以自行百度 curl -H "Content-Type:appl…...

5.Python-使用XMLHttpRequest对象来发送Ajax请求

题记 使用XMLHttpRequest对象来发送Ajax请求&#xff0c;以下是一个简单的实例和操作过程。 安装flask模块 pip install flask 安装mysql.connector模块 pip install mysql-connector-python 编写app.py文件 app.py文件如下&#xff1a; from flask import Flask, reque…...

八皇后问题的解析与实现

问题描述 八皇后问题是一个古老而又著名的问题。 时间退回到1848年,国际西洋棋棋手马克斯贝瑟尔提出了这样的一个问题: 在88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。 如何找到这所有的…...

论文浅尝 | 深度神经网络的模型压缩

笔记整理&#xff1a;闵德海&#xff0c;东南大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://arxiv.org/abs/1412.6550 动机 提高神经网络的深度通常可以提高网络性能&#xff0c;但它也使基于梯度的训练更加困难&#xff0c;因为更深的网络往往更加强的非线…...

进阶JAVA篇- DateTimeFormatter 类与 Period 类、Duration类的常用API(八)

目录 1.0 DateTimeFormatter 类的说明 1.1 如何创建格式化器的对象呢&#xff1f; 1.2 DateTimeFormatter 类中的 format&#xff08;LocalDateTime ldt&#xff09; 实例方法 2.0 Period 类的说明 2.1 Period 类中的 between(localDate1,localDate2) 静态方法来创建对象。 3.…...

1.1 Windows驱动开发:配置驱动开发环境

在进行驱动开发之前&#xff0c;您需要先安装适当的开发环境和工具。首先&#xff0c;您需要安装Windows驱动开发工具包&#xff08;WDK&#xff09;&#xff0c;这是一组驱动开发所需的工具、库、示例和文档。然后&#xff0c;您需要安装Visual Studio开发环境&#xff0c;以便…...

Jetpack:009-kotlin中的lambda、匿名函数和闭包

文章目录 1. 概念介绍2. 使用方法2.1 函数类型的变量2.2 高阶函数 3. 内容总结4.经验分享 我们在上一章回中介绍了Jetpack中Icon和Imamg相关的内容&#xff0c;本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&…...

openGauss指定schema下全部表结构备份与恢复

本次测试针对openGauss版本为2.0.5 gs_dump指定schema下全部表结构信息备份 gs_dump database_name -U username -p port -F c -s -n schema_name -f schema.sqldatabase_name&#xff1a;数据库名&#xff0c;要备份的数据库名称 username&#xff1a;用户名&#xff0c;数据…...

干货:如何在前端统计用户访问来源?

在前端统计用户访问来源是一个常见的需求&#xff0c;通过获取访问来源信息&#xff0c;我们可以了解用户是通过直接访问、搜索引擎、外部链接等途径进入我们的网站或应用。下面是一个详细的介绍&#xff0c;包括方法和实现步骤。 一、获取HTTP Referer HTTP Referer是HTTP请…...

李宏毅生成式AI课程笔记(持续更新

01 ChatGPT在做的事情 02 预训练&#xff08;Pre-train&#xff09; ChatGPT G-Generative P-Pre-trained T-Transformer GPT3 ----> InstructGPT&#xff08;经过预训练的GPT3&#xff09; 生成式学习的两种策略 我们在使用ChatGPT的时候会注意到&#xff0c;网站上…...

nodejs+vue+elementui酒店客房服务系统mysql带商家

视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术&#xff1a;nodejsvueel…...

【网络协议】聊聊网络分层

常用的网络协议 首先我们输入www.taobao.com&#xff0c;会先经过DNS进行域名解析&#xff0c;转换为59.82.122.115的公网IP地址。然后就会发起请求&#xff0c;一般来说非加密的使用http&#xff0c;加密的使用https。上面是在应用层做的处理&#xff0c;那么接下来就是到传输…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...