ARIMA工具箱使用手册(完整版)

最后更新于:2024-04-07 21:49:13



一、获取ARIMA工具箱使用手册(完整版)

获取通道一(淘宝):点击此处获取完整版程序

获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需53元)。 付款完成后刷新一下本页面即可看到下载链接

(注意支付跳转失败的话,请使用浏览器打开本页面)

您需要先支付 53元 才能查看此处内容!立即支付

二、代码运行环境

MATLAB2016~2022

三、工具箱介绍

注:图标代表该m文件为脚本文件,可以直接运行;图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里

1.demos文件夹

        demos文件夹中全部为脚本文件,其中的文件使用了funs文件夹中的函数文件实现各种功能。

1.1.Demo_ARIMA.m

        调用funs中的Fun_ARIMA_Forecast函数进行多步预测的例子,演示了Fun_ARIMA_Forecast函数的常规用法。

1.2.Demo_ARMA_MulComp.m

        调用funs中的RUL_ARIMA函数实现剩余寿命预测,该功能处于测试阶段。

1.3.Demo_ARMA_onestep_new.m

        调用funs中的Fun_ARIMA_Forecast_Onestep函数进行单步预测的例子,演示了Fun_ARIMA_Forecast_Onestep函数的常规用法。

2.funs文件夹

        funs文件夹中为该工具箱相关的函数文件,该文件夹中的文件无法直接运行,需要在其他文件或命令行窗口中对入口参数赋值并调用。

2.1.ARMA_Order_Select.m

        通过AIC,BIC等准则暴力选定阶数,带有差分项。

        调用该函数可以得到通过准则选定的p、q值,准则可以从”aic”、”bic”、”aic+bic”三种模式中任意选择。

        函数参数说明如下:

function [AR_Order,MA_Order,aicorbic] = ARMA_Order_Select(data,max_ar,max_ma,di,criterion)
% 通过AIC,BIC等准则暴力选定阶数,带有差分项
% 输入:
% data对象数据
% max_ar为AR模型搜寻的最大阶数
% max_ma为MA模型搜寻的最大阶数
% di差分阶数
% criterion 为定阶准则,'aic'/'bic'/'aic+bic'三种选择,此变量可以不输入或者输入为[],此时将使用默认'aic+bic'准则
% 输出:
% AR_Orderr为AR模型输出阶数
% MA_Orderr为AR模型输出阶数
% aicorbic为aic+bic在所有pq组合下的值,返回值为矩阵,
% 例如当设置max_ar= 1,max_ma=2时
% 则返回矩阵为: a b c
% d e f
% a代表 p=0,q=0时的aic+bic的值,b代表p=0,q=1时的值,d代表p=1,q=0时的值,以此类推
% 矩阵中可能会存在NaN值,比如a必定为NaN,当p、q的阶数较高时,也会因为软件无法正确估计参数而产生NaN值
Code language: Matlab (matlab)
2.2.Fun_ARIMA_Forecast.m

        封装好的使用ARIMA方法进行多步预测的程序,可以通过输入原始数据、预测步数等直接获得预测结果。该函数的调用方法在Demo_ARIMA.m文件中演示。

        可以直接调用,差分阶数、p、q值自动确定。

        可以输出预测结果、预测置信区间上下限、aicbic值、残差值。

        可以直接画出预测结果图、ACF图、PACF图、残差检验图,如下:

        函数参数说明如下:

function [forData,lower,upper,aicorbic,res] = Fun_ARIMA_Forecast(data,step,max_ar,max_ma,figflag,criterion)
% 使用ARIMA进行预测的函数(使用n阶差分、不使用对数),可以直接调用,差分阶数自动确定。
% 输入:
% data为待预测数据,一维数据,最小11个数据。但是数据长度处于11~15时依旧可能出现报错的情况。
% step为拟预测步数
% max_ar 为最大p值
% max_ma 为最大q值
% figflag 为画图标志位,'on'为画图,'off'为不画
% criterion 为定阶准则,'aic'/'bic'/'aic+bic'三种选择,此变量可以不输入或者输入为[],此时将使用默认'aic+bic'准则
% 输出:
% forData为预测结果,其长度等于step
% lower为预测结果的95%置信下限值
% upper为预测结果的95%置信上限值
% aicorbic为aic+bic在所有pq组合下的值,返回值为矩阵,
% 例如当设置max_ar= 1,max_ma=2时
% 则返回矩阵为: a b c
% d e f
% a代表 p=0,q=0时的aic+bic的值,b代表p=0,q=1时的值,d代表p=1,q=0时的值,以此类推
% 矩阵中可能会存在NaN值,比如a必定为NaN,当p、q的阶数较高时,也会因为软件无法正确估计参数而产生NaN值
% res:拟合残差值
2.3.Fun_ARIMA_Forecast_Onestep

        封装好的“单步”预测程序,现在这个最常用的图可以傻瓜式实现啦。

可以指定训练集/测试集比例,使用训练集数据训练模型,使用测试集数据对比验证。

        可以直接调用,差分阶数、p、q值自动确定。

        可以输出预测结果、训练集数据、测试集数据、aicbic值、残差值。

  可以直接画出预测结果图、ACF图、PACF图、残差检验图,其中预测结果图如下:

单步预测结果图

function [forData,dataTrain,dataTest,aicorbic,res] = Fun_ARIMA_Forecast_Onestep(data,TrainR,max_ar,max_ma,figflag,criterion)
% 使用ARIMA进行单步预测的函数(使用n阶差分、不使用对数),可以直接调用,差分阶数自动确定。
% 输入:
% data 为全部数据,要求为一维数据。该数据在程序中会依照TrainR的数值被进一步划分为训练集和测试集
% TrainR 为训练集比例,如果TrainR为小于1的小数,则代表比例值,如果Train为大于1的整数,则代表训练集数据点数。
% max_ar 为最大p值
% max_ma 为最大q值
% figflag 为画图标志位,'on'为画图,'off'为不画
% criterion 为定阶准则,'aic'/'bic'/'aic+bic'三种选择,此变量可以不输入或者输入为[],此时将使用默认'aic+bic'准则
% 输出:
% forData为预测结果
% dataTrain为训练集数据
% dataTest为测试集数据
% aicorbic为aic+bic在所有pq组合下的值,返回值为矩阵,
% 例如当设置max_ar= 1,max_ma=2时
% 则返回矩阵为: a b c
% d e f
% a代表 p=0,q=0时的aic+bic的值,b代表p=0,q=1时的值,d代表p=1,q=0时的值,以此类推
% 矩阵中可能会存在NaN值,比如a必定为NaN,当p、q的阶数较高时,也会因为软件无法正确估计参数而产生NaN值
% res:拟合残差值
2.4.Fun_ARIMA_Forecast_MulComp

        划分训练集、测试集进行使用ARIMA进行“多步”预测,并进行预测效果对比的函数。

可以直接画出预测结果图、ACF图、PACF图、残差检验图,其中预测结果图如下:

多步预测对比图
function [forData,dataTrain,dataTest,aicorbic,res] = Fun_ARIMA_Forecast_MulComp(data,TrainR,max_ar,max_ma,figflag,criterion)
% 使用ARIMA进行多步预测的函数(使用n阶差分、不使用对数),可以直接调用,差分阶数自动确定。
% 输入:
% data   为全部数据,要求为一维数据。该数据在程序中会依照TrainR的数值被进一步划分为训练集和测试集
% TrainR 为训练集比例,如果TrainR为小于1的小数,则代表比例值,如果Train为大于1的整数,则代表训练集数据点数。
% max_ar 为最大p值
% max_ma 为最大q值
% figflag 为画图标志位,'on'为画图,'off'为不画
% criterion 为定阶准则,'aic'/'bic'/'aic+bic'三种选择,此变量可以不输入或者输入为[],此时将使用默认'aic+bic'准则
% 输出:
% forData为预测结果
% dataTrain为训练集数据
% dataTest为测试集数据
% aicorbic为aic+bic在所有pq组合下的值,返回值为矩阵,
% 例如当设置max_ar= 1,max_ma=2时
% 则返回矩阵为: a b c
%               d e f
% a代表 p=0,q=0时的aic+bic的值,b代表p=0,q=1时的值,d代表p=1,q=0时的值,以此类推
% 矩阵中可能会存在NaN值,比如a必定为NaN,当p、q的阶数较高时,也会因为软件无法正确估计参数而产生NaN值
% res:拟合残差值

3.install_funs.m

        工具箱快速安装函数,使用方法见第四节。

4.uninstall_funs.m

        工具箱快速卸载函数,使用方法见第四节。

5.工具箱介绍.docx

   有关该工具箱的一些说明(word版)。

四、快速开始

1.一键式安装工具箱

使用前建议先执行安装,安装方法为:

(1)右键点击“install_funs.m”,再点运行。

(2)当在命令行窗口出现下图提示时说明安装完成

2.使用你的数据快速获取预测结果

(1)导入数据

根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以看博主针对常用文件的导入方法的这个教程,教程上未包含的数据类型,大家可以再参考这个文档

如果你已经实现了数据导入,这时候应该拥有了一个一维数据变量,这时候就可以调用函数进行预测了。

(2)实现预测

a. 多步预测的一般实现方法在demos文件夹中的Demo_ARIMA文件中有所展示,代码分为导入数据和调用函数两步。用户只需要将导入数据部分换成自己的导入程序,再设置好调用函数的入口参数即可。

b. 单步预测的一般实现方法在demos文件夹中的Demo_ARIMA文件中有所展示,可以参照代码的实现方法自行按照需求修改。

3.卸载工具箱

这步通常是不需要的,如果一定要卸载(从MATLAB路径中去除)该工具箱,则右键uninstall_funs.m运行即可。

五、重要更新

20230312 (重要)可以自动绘制差分后的图像。

20230114 支持MATLAB2022

20220123 加入了多步预测的训练集/测试集划分及预测对比(Fun_ARIMA_Forecast_MulComp函数和Demo_ARMA_MulComp文件)

20211114  改进一:现在可以指定定阶准则,’aic’/’bic’/’aic+bic’三种选择选其一;改进二:现在可以导出残差res值了(可以用于计算拟合结果)。

20210408 支持MATLAB2021

20210324 现在可以导出各p、q组合下对应的aic+bic值

20210206 加入了单步预测的封装函数Fun_ARIMA_Forecast_Onestep及其相关测试程序

20200805 解决了小概率出现的频繁弹窗报错的bug

20200526 优化了pq阶数选定算法

20200430 兼容了MATLAB2016

20200419 加入了工具箱快速安装/卸载函数,完善了函数参数说明

20200325 增加了在已经估计pq阶数后,再进行模型估计是无法正常估计的警告

20200313 修改了阶数选择的函数,在定阶时不会再因为阶数高而报错

20200309 加入了寿命预测相关函数和脚本

20200308 加入了单步预测的程序,修改了部分程序bug

20190920 更新了关于需要字符串标量或字符串向量形式的参数名称的问题说明

20190919 使用MATLAB内置函数作为定阶依据

20190130 创建ARMA时间序列的初始版本代码