基于ARIMA-LSTM组合模型的预测方法研究(Python代码实现)

简介: 基于ARIMA-LSTM组合模型的预测方法研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


1.1 ARIMA模型


1.2 LSTM神经网络


📚2 运行结果



🎉3 参考文献


🌈4 Python代码实现


💥1 概述

1.1 ARIMA模型

ARIMA模型,即差分整合移动平均自回归模型,又称整合滑动平均自回归模型﹐是经典的时间序列预测方法之一。20世纪70年代,由统计学家Box 和Jenkins提出。ARIMA (p,d,q)模型是ARMA(p,q)模型的扩展,是ARMA(p, q)模型的一般表达形式。但ARMA(p,q)模型对时间序列要求平稳,而在实际生活中的大多变量包含白噪声及其他随机因素,导致ARMA (p,q)模型不再适用。此时需要用到ARIMA(p,d,q)模型将非平稳的时间序列进行一次或多次差分,转化为平稳的时间序列14。

ARIMA(p, d,q)表达式为:


c113778df7974695a652c9ae2f5cf535.png


其中,d为差分阶次。如d= 1时,对原序列进行一阶差分运算,d = 2,时进行二阶差分运算,以此类推。差分次数直到序列平稳为止。

建模过程步骤如下:

(1)数据预处理:将得到时间序列中的异常值和缺失值进行处理,同时对序列进行零均值化处理以及差分平稳化处理。

(2)确定结构:对预处理过的时间序列进行自相关(ACF)15]和偏自相关(PACF)1的分析,通过判断自相关和偏白相关的图像来初步确定所选择的模型类型。依据赤池信息准则(AIC)7和贝叶斯信息准则(BIC)&来确定模型的阶次。

(3)确定模型参数:通过运用计算机软件工具(例如Matlab或 Python)来对模型进行参数估计,确定模型的变量系数。

(4)残差检验:对模型的残差进行判断﹐其是否满足白噪声检验。若不满足﹐则需要返回步骤2对其模型结构重新进行确定。

(5)利用所建立模型对时间序列进行预测。


1.2 LSTM神经网络

长短期记忆网络(LSTM)1是一种时间循环神经网络,它的提出是为了解决一般循环神经网络I网络的长期依赖问题,同时可以避免梯度消失的问题。

长短期记忆神经网络在循环网络2的隐藏层的神经单元中增加了一种用来记忆过去信息的记忆单元结构,增加了input 、 forget 和 output三种门来使用历史信息。其神经单元结构如图所示。


737922e087da40579c3325f5baaee9e2.png

275f337d799747e48cecc07c7a3750ac.png


长短期记忆神经网络解决了循环神经网络存在的梯度消失的问题,而且长短期记忆神经网络通过增加了门控制单元来控制当前信息对历史信息的影响程度,能够对长时间历史信息进行保存和传递21。所以长短期记忆神经网络对于长序列具有良好的拟合效果。


18c5aee3dfa14d61922d0a43e8cb6f83.png

a6eb0de882d94e508ac661b82ba5f07c.png

d7773d3e2c454548acaf5c4d1776fb0d.png


📚2 运行结果


# 显示原数据
plt.figure(figsize=(10, 3))
plt.title('数据AQI')
plt.xlabel('time')
plt.ylabel('AQI')
plt.plot(data_raw, 'blue', label='AQI')
plt.legend()
plt.show()


089168dfde7d45d88905ef233a3135fa.png


# 获取残差
resid = fit.resid
# 画qq图
qqplot(resid, line='q', fit=True)
plt.show()


fa67415881fd4480a177df08fabb068e.png


plt.figure(figsize=(9, 2))
plt.plot(history.history['loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.show()


d2caae2a8cd64eab8fc79aedcbc861c7.png


plt.figure(figsize=(10, 4),dpi=200)
plt.plot(test_data, label="Actual", color='red',linewidth=4)
plt.plot(range(len(x_train)+timestep+1,len(new_data)),draw_test, color='blue',label='Prediction',linewidth=2.5,linestyle="--")
plt.title('ARIMA-LSTM Prediction', size=15)
plt.ylabel('AQI',size=15)
plt.xlabel('time/day',size=15)
plt.legend()
plt.show()

bdbee3eb08a94d8abeddfd0591cb5113.png



🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]沈露露,梁嘉乐,周雯.基于ARIMA-LSTM的能量预测算法[J].无线电通信技术,2023,49(01):150-156.


[2]李孟特,于晟华,王森,曹戈,戴雨聪.一种基于ARIMA-LSTM组合模型的电压偏差预测方法[J].电力大数据,2022,25(05):28-35.DOI:10.19317/j.cnki.1008-083x.2022.05.009.


🌈4 Python代码实现


相关文章
|
2月前
|
存储 运维 监控
基于跳表数据结构的局域网上网记录监控时序查询优化算法研究与 Python 实现
本文探讨跳表(Skip List)在局域网上网记录监控中的应用,分析其在快速范围查询、去重与异常检测中的优势,并提供 Python 实现示例,为高效处理海量时序数据提供参考。
54 0
|
26天前
|
机器学习/深度学习 算法 调度
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
|
26天前
|
机器学习/深度学习 PyTorch 算法框架/工具
Python|【Pytorch】基于小波时频图与SwinTransformer的轴承故障诊断研究
Python|【Pytorch】基于小波时频图与SwinTransformer的轴承故障诊断研究
|
27天前
|
机器学习/深度学习 算法 调度
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)
|
29天前
|
机器学习/深度学习 算法 Python
谐波平衡,高效辨识研究(Matlab、Python代码实现)
谐波平衡,高效辨识研究(Matlab、Python代码实现)
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
60 1
|
26天前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
6月前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
7月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。

热门文章

最新文章

推荐镜像

更多