【项⽬实战】基于Python实现时间序列分析建模(ARIMA模
型)项⽬实战
说明:这是⼀个机器学习实战项⽬(附带数据+代码+⽂档+代码讲解),如需数据+代码+⽂档+代码讲解可以直接到⽂章最后获取。
1.项⽬背景
当今世界正处于⼀个数据信息时代,随着后续互联⽹的发展各⾏各业都会产⽣越来越多的数据,包括不限于商店、超市、便利店、餐厅等等。那么这⾥⾯很多数据都是随着时间产⽣的,这就形成了时间序列数据,⽽且很多时间序列数据都是⾮平稳时间序列数据。⽬前对⾮平稳时间序列分析应⽤最多的模型就是ARIMA模型,本项⽬也是通过Python程序来进⾏数据探索性分析、数据预处理、构建ARIMA时序模型以及如何把模型预测的结果应⽤于⽇常的实际⽣活当中。
2.数据获取
本次建模数据来源于某公司餐厅销售数据,其主要的数据基本统计概况如下:
数据项:2项(⽇期、销量),如下图所⽰
通过观察数据,发现⼀些空值和⼀些重复数据,后续章节进⾏处理。
3.数据预处理
真实数据中可能包含了⼤量的缺失值和噪⾳数据或⼈⼯录⼊错误导致有异常点存在,⾮常不利于算法模型的训练。数据清洗的结果是对各种脏数据进⾏对应⽅式的处理,得到标准的、⼲净的、连续的数据,提供给数据统计、数据挖掘等使⽤。数据预处理通常包含数据清洗、归约、聚合、转换、抽样等⽅式,数据预处理质量决定了后续数据分析挖掘及建模⼯作的精度和泛化价值。
含数据清洗、归约、聚合、转换、抽样等⽅式,数据预处理质量决定了后续数据分析挖掘及建模⼯作的精度和泛化价值。
3.1数据描述性统计与清洗
(1)导⼊程序库:将所⽤到的程序库导⼊到Python程序中,如图所⽰。
(2)读取数据:使⽤Pandas库中read_excel⽅法读取Excel数据,并转为DataFrame类型。读取数据代码如图所⽰:
3)查看统计信息和空值,代码如下:
从上图可以看到,数据总数据量40条(不包括空值),以及未去除重复值的平均值、标准差、最⼩值、最⼤值、分位数。另外可以看到销量有2条空值。
(4)查看是否有重复数据以及清理重复数据,代码如下:
从上图中的部分展⽰,可以看到是有重复数据,所以使⽤drop_duplicates()函数进⾏了重复数据清理。
(5)空值清理,本项⽬涉及2条空值数据 直接进⾏丢弃操作。空值的处理也可以⽤均值填充、分位数填充、拉格朗⽇插值填充等等(根据具体数据处理的需要进⾏即可)。代码如下:
(6)针对清洗后的数据进⾏统计分析,代码如下:
(6)针对清洗后的数据进⾏统计分析,代码如下:
从上图可以看出,清洗后数据量为37条,平均值为3542.49、标准差为543.92。
4.探索性数据分析
4.1数据分析
销量时间序列分析:
关键代码如下:
5.构建ARIMA时序模型
5.1 ARIMA模型概念
在⾃然界中绝⼤部分序列都是⾮平稳的。因⽽⾮平稳时间序列的分析更普遍、更重要,创造出来的分析⽅法也更多。
⾮平稳时间序列的分析⽅法可以分为确定性因素分解的时序分析和随机时序分析两⼤类。
确定性因素分解的⽅法把所有序列的变化都归结为4个因素(长期趋势、季节变动、循环变动和随机波动)的综合影响,其中长期趋势和季节变动的规律性信息通常⽐较容易提取,⽽由随机因素导致的波动则⾮常难以确定和分析,对随机信息浪费严重会导致模型拟合精度不够理想。
随机时序分析法的发展就是为了弥补确定性因素分解⽅法的不⾜。根据时间序列的不同特点,随机时序分析可以建⽴的模型有ARIMA模型、残差⾃回归模型、季节模型、异⽅差模型等。
本项⽬重点介绍ARIMA模型对⾮平稳时间序列进⾏建模。
差分运算:
1. p阶差分
相距⼀期的两个序列值之间的减法运算称为1阶差分运算。
1. k步差分
相距k期的两个序列值之间的减法运算称为k步差分运算。
差分运算具有强⼤的确定性信息提取能⼒,许多⾮平稳序列差分后会显⽰出平稳序列的性质,这时称这个⾮平稳序列为差分平稳序列。差分平稳序列可以使⽤ARMA模型进⾏拟合。ARIMA模型的实质就是差分运算与ARMA模型的组合。
5.2序列平稳性检验
图5.2-1 原始序列的时序图
此图显⽰该序列具有明显的单调递增趋势,可以判断为⾮平稳序列。
图5.2-1 原始序列的⾃相关图
此图的⾃相关图显⽰⾃相关系数长期⼤于零,说明序列间具有很强的长期相关性。
表5.2-1 原始序列的单位根检验
adf
cValue
p值1%5%10%
1.8138-3.7112-
2.9812-2.63010.9985      此表单位根检验统计量对应的p值显著⼤于0.05,最终将该序列判断为⾮平稳序列(⾮平稳序列⼀定不是⽩噪声序列)。
5.3对原始序列进⾏⼀阶差分,并进⾏平稳性和⽩噪声检验
1)对⼀阶差分后的序列再次做平稳性判断。
图5.3-1 ⼀阶差分之后序列的时序图
图5.3-2 ⼀阶差分之后序列的⾃相关图
表5.3-1 ⼀阶差分之后序列的单位根检验
结果显⽰,⼀阶差分之后序列的时序图在均值附近⽐较平稳地波动、⾃相关图有很强的短期相关性、单位根检验p值⼩于0.05,所以⼀阶差分之后的序列是平稳序列。
2)对⼀阶差分后的序列做⽩噪声检验
表5.3-2 ⼀阶差分之后序列的⽩噪声检验
stat p值
11.30400.0007734
此表输出的p值远⼩于0.05,所以⼀阶差分之后的序列是平稳⾮⽩噪声序列。
5.4对⼀阶差分后的序列拟合ARMA模型
python怎么读取excel的数据
下⾯进⾏模型定阶。模型定阶就是确定p和q。
第⼀种⽅法:⼈为识别,根据图5-25进⾏模型定阶

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。