Python ARIMA时间序列模型预测航空公司的乘客数量

简介: Python ARIMA时间序列模型预测航空公司的乘客数量

全文下载链接:http://tecdat.cn/?p=20742


在本文中,时间序列 被定义为一系列按时间顺序索引的数据点。时间顺序可以是每天,每月或每年


以下是一个时间序列示例,该示例说明了从1949年到1960年每月航空公司的乘客数量。

时间序列预测


时间序列预测是使用统计模型根据过去的结果预测时间序列的未来值的过程。

一些示例

  • 预测未来的客户数量。
  • 解释销售中的季节性模式。
  • 检测异常事件并估计其影响的程度。
  • 估计新推出的产品对已售出产品数量的影响。


时间序列的组成部分:


代码:航空公司乘客的ETS分解数据集:

# 导入所需的库
import numpy as np
  
# 读取AirPassengers数据集
airline = pd.read_csv('data.csv',
                       index_col ='Month',
                       parse_dates = True)
  
# 输出数据集的前五行
airline.head()
  
# ETS分解
# ETS图
result.plot()


输出:


点击标题查阅往期内容


Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测


01

02

03

04


ARIMA时间序列预测模型


ARIMA代表自回归移动平均模型,由三个阶数参数 _(p,d,q)指定。_


ARIMA模型的类型


自动ARIMA

“ auto_arima” 函数 可帮助我们确定ARIMA模型的最佳参数,并返回拟合的ARIMA模型。

代码:ARIMA模型的参数分析

# 忽略警告
import warnings
warnings.filterwarnings("ignore")
  
# 将自动arima函数拟合到AirPassengers数据集
autoarima(airline['# Passengers'], start_p = 1, start_q = 1,
                          max_p = 3, max_q = 3, m = 12,
                          stepwise = True          # 设置为逐步
  
# 输出摘要
stepwise_fit.summary()


输出:

代码:将ARIMA模型拟合到AirPassengers数据集

# 将数据拆分为训练/测试集
test = iloc[len(airline)-12:] # 设置一年(12个月)进行测试
  
# 在训练集上拟合一个SARIMAX(0,1,1)x(2,1,1,12)
  
SARIMAX(Passengers, 
                order = (0, 1, 1), 
                seasonal_order =(2, 1, 1, 12
result.summary()


输出:

代码:ARIMA模型对测试集的预测

# 针对测试集的一年预测
predict(start, end,
                          
  
#绘图预测和实际值
predictions.plot


输出:

代码:使用MSE和RMSE评估模型

# 加载特定的评估工具
# 计算均方根误差
rmse(test["# Passengers"], predictions)
  
# 计算均方误差
mean_squared_error(test["# Passengers"], predictions)


输出:

代码:使用ARIMA模型进行预测

# 在完整数据集上训练模型
result = model.fit()
  
# 未来3年预测
result.predict(start = len(airline), 
                          end = (len(airline)-1) + 3 * 12, 
  
# 绘制预测值
forecast.plot(legend = True)


输出:

  • 趋势:趋势显示了长时间序列数据的总体方向。趋势可以是增加(向上),减少(向下)或水平(平稳)。
  • 季节性:季节性成分在时间,方向和幅度方面表现出重复的趋势。一些例子包括由于炎热的天气导致夏季用水量增加,或每年假期期间航空公司乘客人数增加。
  • 周期性成分: 这些是在特定时间段内没有稳定重复的趋势。周期是指时间序列的起伏,通常在商业周期中观察到。这些周期没有季节性变化,但通常会在3到12年的时间范围内发生,具体取决于时间序列的性质。
  • 不规则变化: 这些是时间序列数据中的波动,当趋势和周期性变化被删除时,这些波动变得明显。这些变化是不可预测的,不稳定的,并且可能是随机的,也可能不是随机的。
  • ETS分解
    ETS分解用于分解时间序列的不同部分。ETS一词代表误差、趋势和季节性。
  • AR(_p_)自回归 –一种回归模型,利用当前观测值与上一个期间的观测值之间的依存关系。自回归(_AR(p)_)分量是指在时间序列的回归方程中使用过去的值。
  • I(_d_) –使用观测值的差分(从上一时间步长的观测值中减去观测值)使时间序列稳定。差分涉及将序列的当前值与其先前的值相减d次。
  • MA(_q_)移动平均值 –一种模型,该模型使用观测值与应用于滞后观测值的移动平均值模型中的残留误差之间的相关性。移动平均成分将模型的误差描述为先前误差项的组合。 _q_ 表示要包含在模型中的项数。
  • ARIMA:非季节性自回归移动平均模型
  • SARIMA季节性ARIMA
  • SARIMAX:具有外生变量的季节性ARIMA
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
在现代数据分析中,高维时间序列数据的处理和预测极具挑战性。基于矩阵分解的长期事件(MFLEs)分析技术应运而生,通过降维和时间序列特性结合,有效应对大规模数据。MFLE利用矩阵分解提取潜在特征,降低计算复杂度,过滤噪声,并发现主要模式。相比传统方法如ARIMA和深度学习模型如LSTM,MFLE在多变量处理、计算效率和可解释性上更具优势。通过合理应用MFLE,可在物联网、金融等领域获得良好分析效果。
60 0
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
|
26天前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
231 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
1月前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
79 37
Python时间序列分析工具Aeon使用指南
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
68 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
193 73
|
2月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
96 21
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
使用Python实现智能食品消费偏好预测的深度学习模型
使用Python实现智能食品消费偏好预测的深度学习模型
113 23
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费模式预测的深度学习模型
使用Python实现智能食品消费模式预测的深度学习模型
81 2
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。

热门文章

最新文章