【MATLAB 】 CEEMD-ARIMA联合时序预测算法,科研创新优选算法
微信公众号由于改变了推送规则,为了每次新的推送可以在第一时间出现在您的订阅列表中,记得将本公众号设为星标或置顶哦~
有意向获取代码,请转文末观看代码获取方式~
1 CEEMD信号分解算法
CEEMD 分解又叫互补集合经验模态分解,英文全称为 Complementary Ensemble Empirical Mode Decomposition。
CEEMD是对EEMD的改进,它在EEMD的基础上引入了一个自适应的扩展方法,可以更好地解决EMD/EEMD中存在的模态混叠问题。CEEMD的主要步骤如下:
- 对原始信号进行若干次随机噪声扰动,得到多个噪声扰动数据集。
- 对每个噪声扰动数据集进行EMD分解,得到多个EMD分解集合。
- 对于每个EMD分解集合,通过一个自适应的扩展方法,将每个局部模态函数分配到它所属的固有模态函数上,消除模态混叠的影响。
- 将每个扩展后的 EMD 分解集合的对应分量进行平均,得到最终的 CEEMD 分解结果。 CEEMD 分解具有良好的局部性和自适应性,能够更准确地分解信号,同时避免了 EEMD 中的模态混叠问题。因此,CEEMD 在信号处理、图像处理和模式识别等领域也得到了广泛的应用。
要想在 MATLAB 中使用 EMD 分解首先要安装 EMD 分解的 MATLAB 工具包。
关于简短的代码视频教程均可关注B站、小红书、知乎同名账号(Lwcah)观看教程~
EMD 工具包的安装:在 MATLAB 打开 package_emd 文件夹,运行 install_emd. M 以及 index_emd. M 两个函数如下图所示即可完成工具包的安装。
MATLAB 信号分解第三期-CEEMD:
https://mbd.pub/o/bread/ZJWZmplv
信号分解全家桶详情请参见:
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 CEEMD-ARIMA联合时序预测算法
接下来详细介绍一下最新的 CEEMD-ARIMA 联合时序预测算法的原理和思路。
信号分解可以将原始数据分解为 N 层 imf 分量,然后本研究对每层的 imf 分量展开 ARIMA 时序预测,并将预测后的 imf 分量的预测值进行重构,即可得到 CEEMD-ARIMA 联合时序预测值。
将该CEEMD-ARIMA 联合时序预测值与单纯的 ARIMA 时序预测值分别与真实值进行对比,求其相关系数、均方根误差以及平均误差可以发现,CEEMD-ARIMA 联合时序预测算法有较好的预测效果。究其原因不难发现,信号分解是将原始数据分解为不同频率的数据,也即每一层imf分量的频率大致相同,是具有较好的周期性和规律性的数据、因而当采用 ARIMA 时序预测算法对每一层 imf 分量展开预测的时候其预测效果会更加接近真值。
如下为预测过程中的一些示意图。
如下为简短的视频操作教程。
CEEMD-ARIMA 联合时序预测算法代码获取:
https://mbd.pub/o/bread/ZJqcmZ1s
关于代码有任何疑问,均可关注公众号(Lwcah)后,后台回复关键词:微信号。
获取 up 的个人微信号,添加微信号后可以一起探讨科研,写作,代码等诸多学术问题,我们一起进步~
1、感谢关注 Lwcah 的个人公众号,有关资源获取,请公众号后台发送推文末的关键词,自助获取。
2、若要添加个人微信号,请后台发送关键词:微信号。
3、若要进微信群:Lwcah 科研技巧群 3。请添加个人微信号后进群(大家沉浸式科研,广告勿扰),不定时更新科研技巧类推文。可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。
记得关注公众号,并设为星标哦~谢谢啦~