有意向获取代码,请转文末观看代码获取方式~
1 EEMD信号分解算法
EEMD 分解又叫集合经验模态分解,英文全称为 Ensemble Empirical Mode Decomposition
EEMD是对EMD的改进,可以克服EMD的一些缺点。EEMD的主要思想是通过对原始数据集进行多次噪声扰动,获得多个EMD分解的集合,然后将这些EMD集合求平均,得到最终的EEMD分解结果。EEMD的主要步骤如下:
- 对原始信号进行若干次随机噪声扰动,得到多个噪声扰动数据集。
- 对每个噪声扰动数据集进行EMD分解,得到多个EMD分解集合。
- 将每个 EMD 分解集合的对应分量进行平均,得到最终的 EEMD 分解结果。 EEMD 分解的优点是能够克服 EMD 的局限性,如基函数的选择和模态重叠等问题。同时,EEMD 还可以提供更好的信噪比和更高的分解精度。因此,EEMD 在信号处理、图像处理和模式识别等领域也得到了广泛的应用。
要想在 MATLAB 中使用 EMD 分解首先要安装 EMD 分解的 MATLAB 工具包。
关于简短的代码视频教程均可关注B站、小红书、知乎同名账号(Lwcah)观看教程~
EMD 工具包的安装:在 MATLAB 打开 package_emd 文件夹,运行 install_emd. M 以及 index_emd. M 两个函数如下图所示即可完成工具包的安装。
MATLAB 信号分解第二期-EEMD:
https://mbd.pub/o/bread/ZJWZmplt
信号分解全家桶详情请参见:
https://mbd.pub/o/author-aWWWnHBsYw==/work
2 ARIMA时序预测算法
ARIMA(Autoregressive Integrated Moving Average)模型是一种基于时间序列分析的预测模型,可以用于分析和预测具有时间依赖性和随机性的数据。ARIMA 模型最初是由 Box 和 Jenkins 等人于 1976 年提出的,是一种广泛使用的时间序列模型,被用于生产和金融等领域的数据预测。 ARIMA 模型的核心思想是对时间序列数据进行差分,使得序列变得平稳,然后通过自回归(AR)和移动平均(MA)的组合来建立模型,并利用该模型进行预测。ARIMA 模型中的“AR”表示自回归,即当前数据与前面若干时刻的数据相关;“I”表示差分,即对数据进行差分使其平稳;“MA”表示移动平均,即当前数据与前面若干时刻的误差相关。 ARIMA 模型的建立过程包括模型识别、参数估计和模型检验三个步骤。在模型识别阶段,需要确定 ARIMA 模型的阶数和差分次数;在参数估计阶段,需要对模型进行参数估计;在模型检验阶段,需要对模型进行检验并判断模型的预测精度是否满足要求。 ARIMA 模型的优点是可以充分利用时间序列数据的历史信息进行预测,能够适应多种不同类型的时间序列数据,并且模型具有较好的解释性。但是 ARIMA 模型也有一些缺点,如对于非平稳的时间序列数据需要进行差分处理,同时模型的参数估计过程较为繁琐。
MATLAB | 时间序列预测 | ARIMA 预测模型:
https://mbd.pub/o/bread/ZJaXlJpw
5 种时序预测方案全家桶详情请参见:
https://mbd.pub/o/bread/ZJaXlJts
3 EEMD-ARIMA联合时序预测算法
接下来详细介绍一下最新的 EEMD-ARIMA 联合时序预测算法的原理和思路。
信号分解可以将原始数据分解为 N 层 imf 分量,然后本研究对每层的 imf 分量展开 ARIMA 时序预测,并将预测后的 imf 分量的预测值进行重构,即可得到 EEMD-ARIMA 联合时序预测值。
将该EEMD-ARIMA 联合时序预测值与单纯的 ARIMA 时序预测值分别与真实值进行对比,求其相关系数、均方根误差以及平均误差可以发现,EEMD-ARIMA 联合时序预测算法有较好的预测效果。究其原因不难发现,信号分解是将原始数据分解为不同频率的数据,也即每一层imf分量的频率大致相同,是具有较好的周期性和规律性的数据、因而当采用 ARIMA 时序预测算法对每一层 imf 分量展开预测的时候其预测效果会更加接近真值。
如下为简短的视频操作教程。
关于代码有任何疑问,均可关注公众号(Lwcah)后,后台回复关键词:微信号。
获取 up 的个人微信号,添加微信号后可以一起探讨科研,写作,代码等诸多学术问题,我们一起进步~