时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较

引言

近年来,民航旅客周转量一直是衡量国家或地区民航运输总量的重要指标之一。为了揭示民航旅客周转量背后的规律和趋势,本研究旨在综合分析1990年至2023年的相关数据。

通过单位根检验和序列分解,我们确定了民航旅客周转量数据的非平稳性,并采用ARIMA模型进行建模和拟合。在模型选择过程中,我们比较了Holt-Winters三参数指数平滑模型、SARIMA模型和LSTM模型的拟合效果,以确定最佳的预测模型。

1 数据描述

根据1990-2023年的我国民航旅客周转量的月统计资料,绘制其趋势图如图所示。

为了更好观察民航旅客周转量的季度变化趋势,绘制民航旅客周转量的年度趋势箱线图和月度趋势箱线图如图所示。

我们可以明显地看出旅客周转量具有季节波动趋势,由于第一季中的春运结束,旅客周转量会到第二季度有明显的下降趋势;第三季度的数据7、8月份暑假是旅客周转量的高峰,然后九月又有下降趋势;第四季度的10月为国庆黄金周,旅客周转量有明显上升趋势,然后下降到季度末尾,迎来春运又呈现出上升趋势。

2 理论模型简述

2.1 Holt-Winters 三参数指数平滑模型表

Holt-Winters三参数指数平滑模型通过考虑数据的趋势、季节性和平稳成分来进行预测。它使用三个参数:平滑系数(smoothing coefficients)α、β和γ,分别用于平滑数据的级别(level)、趋势(trend)和季节性(seasonality)。这些平滑操作使得模型能够适应数据的变化,并预测未来的趋势和季节性变动。

基于加法的Holt-Winters季节模型,其三参数指数平滑模型的构造如下所示:

基于乘法的Holt-Winters季节模型,其三参数指数平滑模型的构造如下所示:

2.2 ARIMA模型

ARIMA(Autoregressive Integrated Moving Average)模型是一种常用的时间序列分析和预测方法。它结合了自回归(AR)模型、差分(I)和移动平均(MA)模型的特点,用于捕捉数据的自相关性、趋势性和季节性。具有如下结构的模型成为求和自回归移动平均模型,简记为ARIMA(p,d,q)模型:

ARIMA模型的建立通常包括三个主要步骤:

确定模型阶数、估计模型参数和模型诊断。首先,确定模型的阶数。ARIMA模型由p、d和q三个参数组成,分别代表自回归阶数(AR)、差分阶数(I)和移动平均阶数(MA)。通过观察时间序列数据的自相关图(ACF)和偏自相关图(PACF),可以初步确定模型的阶数。

第二步是估计模型参数。使用最大似然估计(Maximum Likelihood Estimation)等方法,根据历史数据对AR、I和MA的参数进行估计。这些参数反映了数据的自相关性、趋势性和季节性的影响程度。

最后一步是模型诊断。通过对残差序列进行检验,判断模型的拟合效果和残差序列是否符合模型假设。常用的诊断方法包括检查残差的自相关性、白噪声检验、残差的正态性等。ARIMA模型可以应用于各种类型的时间序列数据,包括经济数据、气象数据、股票价格等。它可以用于预测未来的数值、分析数据的趋势和季节性,并对数据进行平滑处理。

2.3 SARIMA模型

SARIMA(Seasonal Autoregressive Integrated Moving Average)模型是在ARIMA模型的基础上添加了季节性成分的一种时间序列分析和预测方法。它用于处理具有明显季节性模式的数据。其模型的数学表示如下:

其中,小写字母p、d和q分别表示非季节性自回归、差分和移动平均项的阶数,而大写字母P、D、Q和s分别表示季节性自回归、差分、移动平均项的阶数和季节性周期的长度。SARIMA模型的表达式可以分为两个部分:非季节性部分和季节性部分。

非季节性部分:

其中,Yₜ表示时间序列的观测值,B是向后滞后算子(Backshift Operator),εₜ是白噪声误差项,φ₁, φ₂, ..., φₚ和θ₁, θ₂, ..., θq分别是非季节性自回归和移动平均项的系数,p是自回归项的阶数,q是移动平均项的阶数,d是差分次数。

季节性部分:

其中,Bˢ是季节性向后滞后算子,Φ₁, Φ₂, ..., ΦPₚ和Θ₁, Θ₂, ..., ΘQₚ分别是季节性自回归和移动平均项的系数,P是季节性自回归项的阶数,Q是季节性移动平均项的阶数,D是季节性差分次数,s是季节性周期的长度。

2.4 LSTM模型

LSTM(Long Short-Term Memory)是一种常用于处理序列数据的深度学习模型,特别适用于处理具有长期依赖性的序列数据。它是一种循环神经网络(RNN)的变体,通过引入门控机制来有效地捕捉和记忆序列数据中的长期依赖关系。

LSTM模型的核心思想是利用门控单元来控制信息的流动和存储。如图所示,它包含三个关键的门控单元:遗忘门、输入门和输出门。

3 数据检验与分解

3.1 单位根检验

时间序列的平稳性是时间序列建模的重要前提。选用单位根ADF检验来判断民航旅客周转量时间序列的平稳性。

旅客周转量序列的ADF检验结果如表1所示,其P值为0.74,远大于0.05,故原数据为非平稳数据;而其一阶差分后的结果如表2所示,P值远小于0.05,接近0,故拒绝原假设,即一阶差分后的数据是平稳的时间序列数据,即为一阶单整模型,也确定了d=1。其一阶差分后的序列图如图所示。

3.2 序列分解

根据前面旅客周转量趋势图和旅客周转量季度趋势图综合观察,其序列变动随季节变化大致相等,每年有大致相等的增量,所以采用加法模型来分离长期趋势和季节变动。

旅客周转量序列其加法分解如图5所示,将时间序列数据分解为趋势、季节性和残差。可以明显的看出趋势一直处于不断上升的状态,对于季节性,十分明显在规律的间隔后能看出峰值,且频率为12个月,而残差从前期到后期的波动在一定范围。

4 建立时间序列模型

4.1 模型识别

对旅客周转量序列一阶差分后的自相关和偏相关分析进行可视化,ACF图中在1阶后的自相关系数基本上都落在95%的置信区间上,p值取1;PACF图中,也在1阶后的偏相关系数基本上的落在95%的置信区间上,q取1。

通过看图判断具有一定的主观性,通过遍历可能的参数选择统计量最小的模型相对更适合对数据的分析,把旅客周转量序列数据2021年前的数据划分为训练集,把2022年至今的数据划分为测试集,预测14期的数据,然后选择p从0-3,q从0-3,d=1,进行参数遍历拟合模型,采用AIC指标进行参数评估,得到结果如图所示:

采用AIC指标进行参数选择,得到最小的AIC值的组合为p=3,q=3,选择其作为模型进行拟合,因此针对原数据可知最终确定模型为ARIMA(3,1,3)。

4.2 ARIAM模型

4.2.1 ARIMA(3,1,3)模型拟合

模型拟合效果良好。

4.2.2 参数估计和模型检验

ARIAM(3,1,3)模型结果如表所示,一阶延迟下的LB统计量显著大于0.05,可以认为这个拟合模型的残差序列属于白噪声序列,即该拟合模型显著有效。P>|z|列是对每个参数系数的检验。大部分参数的P值均小于0.05,所以在0.05的显著性水平下,拒绝原假设,模型中大部分参数的系数通过显著性检验。

检验模型的残差是否满足均值为0,方差为常数的正太分布,结果如图所示:左上角为残差曲线,右下角为残差自相关图,其一阶后相关系数比较小;右上方的图绿色的线是标准正态分布N(0,1),橙色的线是残差的分布情况,也可以通过左下方的QQ图来判断,残差趋近于正态分布,可以认为这个拟合模型的残差序列属于白噪声序列,即该拟合模型显著有效。

综上分析,ARIMA(3,1,3)模型的拟合效果较好。

5 模型比较与预测

5.1 三参数指数平滑模型拟合

Holt-Winters 三参数指数平滑预测如图所示,其序列变动随季节变化大致相等,每年有大致相等的增量,所以采用加法模型,模型拟合得较好,既考虑了季节性波动,又考虑了趋势变化。

5.2 ARIMA(3,1,3)模型拟合

ARIMA模型在时间序列数据的拟合和预测中被广泛应用,它考虑了数据的自回归、差分和移动平均特性。通过对旅客周转量进行ARIMA(3,1,3)模型的拟合,可以获得较好的拟合效果和预测准确性。

5.3 SARIMA模型拟合

为了更好地捕捉旅客周转量序列的季节性变化,引入了SARIMA模型。如图所示,SARIMA模型是ARIMA模型的扩展,加入了季节性因素的考虑。通过调整SARIMA模型的季节性参数,周期性参数设置为12,可以更准确地预测旅客周转量在不同季节的变化趋势。与ARIMA模型相比,SARIMA模型在拟合和预测上表现更加显著,能够更好地适应数据的季节性波动。

5.4 LSTM模型拟合

旅客周转量的LSTM模型拟合如图所示,LSTM 主要是基于窗口滑动取数据训练来预测滞后数据,LSTM模型在此测试集上的预测较真实值偏高,拟合效果不如传统时间序列模型,其模型参数有待进一步优化。

5.5 模型对比

模型对比如表所示,分别用Holt-Winters 三参数模型、ARIMA(3,1,3)模型、SARIMA模型、LSTM模型对旅客周转量序列数据进行拟合分析,加入季节性的SARIMA模型相比ARIMA模型的效果更好,SARIMA模型的AIC、MAE、RMSE均为最小,可见用SARIMA模型来对旅客周转量进行预测的效果最佳。SARIMA模型能够更准确地预测旅客周转量的变化,并提供可靠的决策依据。相比之下,Holt-Winters模型、ARIMA模型和LSTM模型在某些评估指标上表现稍逊一筹,但仍然具有一定的预测能力和应用价值。

5.6 SARIMA模型预测

5.6.1 参数估计和模型检验

图片

SARIMA模型参数如表所示,一阶延迟下的LB统计量大于0.05,可以认为这个拟合模型的残差序列属于白噪声序列,即该拟合模型显著有效。大部分参数的P值均小于0.05,所以在0.05的显著性水平下,拒绝原假设,模型中大部分参数的系数通过显著性检验。

SARIMA模型残差检验结果如图所示:左上角为残差曲线,右下角为残差自相关图,其一阶后相关系数比较小;右上方的图绿色的线是标准正态分布N(0,1),橙色的线是残差的分布情况,也可以通过左下方的QQ图来判断,残差趋近于正态分布,可以认为这个拟合模型的残差序列属于白噪声序列,即该拟合模型显著有效。

由此,可以得出结论,SARIMAX(3,1,3)x(1,1,1,12)模型的拟合效果很好,可以帮助我们理解原始的时间序列数据并对未来的数值做出预测。

5.6.2 模型预测

经过前面对民航旅客周转量数据的分析我们得到了SARIMA模型SARIMAX(3,1,3)x(1,1,1,12),通过建立SARIMA模型对2023年2月后的12期进行预测,预测结果如下所示:

通过预测时序图可知,未来时间序列总体呈季节性波动趋势上升,未来12个月旅客周转量将缓速上升,具体预测数据如下表所示。这一趋势可能受到多种因素的影响,如节假日、旅游季节、经济状况等。

6 结论分析

本文首先对我国民航旅客周转量进行趋势分析,然后用ARIMA模型研究其变动趋势,在不考虑周期的影响下建立了ARIMA(3,1,3)模型,然后考虑其序列数据具有周期性波动,分别建立了Holt-Winters 三参数指数平滑模型和SARIMA模型进行分析,最后建立LSTM模型进行预测分析,通过模型的比较,得出加入周期性SARIMA模型在旅客周转量数据上的预测效果最好,并预测了未来12其的周转量数据。

虽然LSTM模型能够很好的捕捉序列之间的联系,但是可解释性没有传统模型好,传统模型的一个优势是模型参数可以得到不确定性估计,而对于模型预测的泛化能力,SARIMA和LSTM模型仍然有提升的空间,如果进一步优化,对于预测性能的提升,会有不错的效果。首先,可以进一步改进SARIMA模型和LSTM模型,提高它们在预测民航旅客周转量方面的准确性和鲁棒性。

其次,可以考虑使用其他的深度学习模型,如Transformer模型等,来进一步改善预测效果。此外,可以结合其他领域的数据和信息,如经济指标、航空运输政策等,来构建更加综合和准确的预测模型。最后,还可以研究民航旅客周转量与其他相关因素的关系,如旅游业发展、人口迁移等,以便更好地理解和预测旅客周转量的变化趋势。

理论部分 参考书籍

王燕. 时间序列分析基于R. 中国人民大学出版社.

7 代码、数据整理如下:

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1545099.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL(面试题 - 同类型归纳面试题)

目录 一、MySQL 数据类型 1. 数据库存储日期格式时,如何考虑时区转换问题? 2. Blob和text有什么区别? 3. mysql里记录货币用什么字段类型比较好? 4. MySQL如何获取当前日期? 5. 你们数据库是否支持emoji表情存储&…

也遇到过 PIL Image “image file is truncated“的问题

背景前言 属于活久见系列,最近工作上遇了该问题! 背景:前端 APP使用 Android CameraX 的接口,拍摄并上传图片,然后 Python后端服务对图片裁剪与压缩处理。后端服务处理图片时有遇到image file is truncated的情况。还…

Leetcode 螺旋矩阵

算法思想: 这个算法的目标是按照顺时针螺旋的顺序从矩阵中取出元素。为了做到这一点,整个思路可以分成几个关键步骤: 定义边界:首先需要定义四个边界变量: left:当前左边界的索引。right:当前右…

R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析

随机森林作为一种集成学习方法,在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性,随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中,使用Bootstrap抽样生成不同的训练集&#xff…

夜间车辆 信号灯识别检测数据集 共3500张 YOLO数据集

夜间车辆 信号灯识别检测数据集 共3500张 YOLO数据集 夜间车辆与交通信号识别检测数据集(Nighttime Vehicle & Traffic Signal Recognition Dataset) 数据集概述 这是一个专为夜间环境设计的车辆和交通信号识别检测数据集,共包含3500张…

将python代码文件转成Cython 编译问题集

准备setup.py from distutils.core import setup from Cython.Build import cythonize import glob# 指定目标目录 python setup.py build -c mingw32 target_dir "src"# 使用glob模块匹配目录中的所有.pyx文件 pyx_files glob.glob(target_dir "/**/*.py&q…

基于STM32F103C8T6单片机的农业环境监测系统设计

本设计是基于STM32F103C8T6单片机的农业环境监测系统,能够完成对作物的生长环境进行信息监测和异常报警,并通过手机APP来实现查看信息和设定阈值的功能。为了实现设计的功能,该系统应该有以下模块:包括STM32单片机模块、水环境PH值…

STM32基础学习笔记-ADC面试基础题6

第六章、ADC 常见问题 1、基本概念:什么是ADC ?作用 ?逐次逼近型 2、传感器本质 ?传感器、电压、ADC数值转化 ? 3、ADC的特征 ? 转化时间、分辨率、精度、量化误差 ? 4、ADC框图组成部分 &…

如何安全有效地进行Temu自养号测评,提升账号权重防关联

在当今市场环境中,许多现成的系统或软件包往往缺乏全面的风险控制能力。掌握自养号测评技术,确保在运营过程中减少对外部系统的依赖。以下是搭建安全、高效运营环境的详细指导,特别针对手机端与电脑端环境的设置,以及关键资源的获…

计算机毕业设计Hadoop+Spark知识图谱体育赛事推荐系统 体育赛事热度预测系统 体育赛事数据分析 体育赛事可视化 体育赛事大数据 大数据毕设

《HadoopSpark知识图谱体育赛事推荐系统》开题报告 一、研究背景及意义 随着互联网技术的迅猛发展和大数据时代的到来,体育赛事数据的数量呈爆炸式增长。用户面对海量的体育赛事信息,常常感到信息过载,难以快速找到感兴趣的赛事内容。如何高…

虚拟机屏幕分辨率自适应VMWare窗口大小

文章目录 环境问题解决办法其它虚拟机和主机间复制粘贴 参考 环境 Windows 11 家庭中文版VMWare Workstation 17 ProUbuntu 24.04.1 问题 虚拟机的屏幕大小,是固定的。如下图,设置的分辨率是800*600,效果如下: 可见&#xff0c…

【PyTorch】数据读取和处理

数据读取机制DataLoader与Dataset 数据处理过程 DataLoader torch.utils.data.DataLoader 功能:构建可迭代的数据装载器 dataset:Dataset类,决定数据从哪里读取及如何读取batchsize:批大小num_works:是否多进程读取…

jvm专题 之 内存模型

文章目录 前言一个java对象的运行过程jvm内存分布程序的基本运行程序什么是对象?对象与类的关系?由类创建对象的顺序 前言 一个程序需要运行,需要在内存中开辟一块空间类是构建对象的模板,只有类加载到内存中才能创建对象 一个j…

Python神经求解器去耦合算法和瓦瑟斯坦距离量化评估

🎯要点 神经求解器求解对偶方程,并学习两个空间之间的单调变换,最小化它们之间的瓦瑟斯坦距离。使用概率密度函数解析计算,神经求解器去耦合条件正则化流使用变量变换公式的生成模型瓦瑟斯坦距离量化评估神经求解器 &#x1f36…

SqlSugar的where条件中使用可空类型报语法错误

SQLServer数据表中有两列可空列,均为数值类型,同时在数据库中录入测试数据,Age和Height列均部分有值。   使用SqlSugar的DbFirst功能生成数据库表类,其中Age、Height属性均为可空类型。   当Where函数中的检索条件较多时&a…

针对国产化--离线安装Nginx rpm包下载 ARM64(.aarch64.rpm) 版本下载

源地址:https://nginx.org/packages/centos/7/aarch64/RPMS/ 可以选择系统分别进行下载对应的rmp包

Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】

Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】 目录 Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】 一、简单介绍 二、中介者模式(Mediator Pattern) 1、什么时候使用中介者模式 2、使用…

记一次sql查询优化

记一次sql查询优化 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 今天测试环境发现一个问题,就是测试同事在测试的时候,发现cpu一直居高不下,然…

SDK(2 note)

复习上一次内容&#xff1a; 把前一次笔记中的代码&#xff0c;简写一下 #include <windows.h> #include<tchar.h> #include <stdio.h> #include <strsafe.h> VOID showerrormassage() {LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFF…

【春秋云境】CVE-2024-23897-Jenkins 2.441之前版本存在任意文件读取漏洞

一、靶场介绍 Jenkins 2.441及更早版本&#xff0c;以及LTS 2.426.2及更早版本没有禁用其CLI命令解析器的一个功能&#xff0c;该功能会将参数中’字符后跟的文件路径替换为该文件的内容&#xff0c;允许未经身份验证的攻击者读取Jenkins控制器文件系统上的任意文件。 二、P…