通俗易懂!利用SARIMA做季节性时间序列预测全流程与实现代码 |
您所在的位置:网站首页 › 时间序列模型arima步骤代码 › 通俗易懂!利用SARIMA做季节性时间序列预测全流程与实现代码 |
目录 SARIMA模型 那么,SARIMA相比于ARIMA有什么区别和优势呢? SARIMA公式简单回顾 SARIMA模型使用要求 SARIMA实现全流程讲解与代码 1.加载数据与参数设置(Excel格式输入即可!) 2.确定季节性与非季节性差分数 3.确定SARIMA模型阶数(可自动确定) 4.残差检验 5.预测 6.绘制结果图 完整代码 今天为大家带来一期利用SARIMA做季节性时间序列预测全流程与实现代码,适合作为创新点!用于各类时间序列预测!也可用作对比方法!具体代码已放在最后,需要代码的朋友可直接拉到最后~ SARIMA模型是一种用于时间序列预测的统计模型,全称为“季节性自回归积分滑动平均模型”(Seasonal Autoregressive Integrated Moving Average Model)。为了更容易理解,我们可以将这个模型名称拆解来看: 季节性(Seasonal): 这一部分考虑了数据随时间变化可能出现的周期性模式,比如说每年的某个季节销量上升或下降这样的季节性规律。 自回归(Autoregressive, AR): 这表示模型会用前一段时间内的数据来预测未来的值。想象一下,如果你在观察股市,你可能会发现今天的股价与过去几天的股价有关。 积分(Integrated, I): 这部分涉及到将时间序列转换为稳定的形式,使得序列的统计特性(如均值)不随时间改变。这通常通过差分完成,也就是计算连续观测之间的变化量。 滑动平均(Moving Average, MA): 这表示模型利用时间序列过去误差的平均值来做预测。这可以看作是一种平滑技术,有助于消除预测中的随机波动。 将这四部分结合起来,SARIMA模型就能够同时处理时间序列数据的季节性变化、趋势和随机波动。 那么,SARIMA相比于ARIMA有什么区别和优势呢?ARIMA模型:这个模型像是一个有三个魔法镜的预言家。每个镜子都有它的特殊功能: 1.第一个镜子(自回归)可以让你看到过去的天气情况,帮你发现昨天和今天天气之间的联系。 2.第二个镜子(积分)是一个调整器,它可以调整你看到的信息,确保你不会因为时间的长短而迷失方向,让预测更加稳定。 3.第三个镜子(滑动平均)则可以展示过去预测的错误,帮你从以前的错误中学习,使你的预测更加准确。 SARIMA模型:这个模型是ARIMA的升级版,除了有ARIMA的三个魔法镜之外,它还有一个特别的季节性镜子。这个镜子让你能够看到像夏天经常下雨这样的季节性规律,帮助你更好地预测那些每年这个时候会发生的事情。 简单来说,ARIMA是一个很棒的预测工具,适用于很多情况,但如果你要预测的事情中有明显的季节性变化(比如夏天比冬天更热),SARIMA模型就能提供额外的帮助。它就像是一个特别为处理季节性变化而加装了一个超级镜子的ARIMA模型。 所以,如果你只需要基本的预测,ARIMA就足够了;但如果你需要考虑到一年中不同时间的特殊情况,SARIMA会是更好的选择。 SARIMA公式简单回顾SARIMA 模型是在 ARIMA 模型的基础上增加了3个超参数P、D、Q,以及一个额外的季节性周期参数S,能够采用 Box-Jenkins 方法的模型识别、估计和预测程序,因此方便随着更多历史数据的获得而对模型进行实时调整,其一般表达式为: 其中,P为季节自回归的最大滞后阶数,Q为周期性移动平均算子的最大滞后阶数,D 是季节性差分次数。当P=D=Q=0时,SARIMA模型就相当于ARIMA模型。 SARIMA模型使用要求数据要求有周期性,样本量不能少于10个(越多越好,也跟周期性和需要预测未来的步长有关) SARIMA实现全流程讲解与代码下图为1949年到1960年每月国际航空公司的乘客人数。从中可以看到明显的季节性,该周期为12个月。 Excel数据格式输入,只需输入一列数据即可~非常方便 与ARIMA模型一样,使用SARIMA模型也要求数据平稳。不同的是SARIMA的差分项有两个,分别是季节性差分与非季节性差分。通常季节性差分经过一次即可,非季节性差分通常在0~3之间。 使用下述代码将原始序列进行差分计算,需要注意差分后的序列长度将会缩短。 for d = 0:3 D1 = LagOp({1 -1},'Lags',[0,d]); %非季节差分项的滞后算子 D12 = LagOp({1 -1},'Lags',[0,1*S]); %季节差分项的滞后算子 D = D1*D12; %相乘 dY = filter(D,data); %对原数据进行差分运算 if(getStatAdfKpss(dY)) %数据平稳 disp(['非季节性差分数为',num2str(d),',季节性差分数为1']); break; endend 3.确定SARIMA模型阶数(可自动确定)用简单粗暴的暴力定阶方法,确定AR阶数p,MA阶数q,SAR阶数P,SMA阶数Q: 4.残差检验为了确保确定的阶数合适,还需要进行残差检验。残差即原始信号减掉模型拟合出的信号后的残余信号。如果残差是随机正态分布的、不自相关的,这说明残差是一段白噪声信号,也就说明有用的信号已经都被提取到ARMA模型中了。 Standardized Residuals是查看残差是否接近正态分布,理想的残差要接近正态分布; ACF和PACF检验残差的自相关和偏自相关,理想的结果应该在图中不存在超出蓝线的点; 最后一张QQ图是检验残差是否接近正太分布的,理想的结果中蓝点应该靠近红线。 5.预测进行预测,并输出95%置信区间! 6.绘制结果图最后绘制结果图,大功告成!可以看到预测效果还是非常不错的,能够反映未来的趋势~ 点击下方小卡片,后台回复关键字,不区分大小写: SARIMA 其他更多需求或想要的代码均可点击下方小卡片后后台私信,看到后会秒回~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |