温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R基于ARIMA模型的方法怎么用

发布时间:2022-01-12 17:13:46 来源:亿速云 阅读:150 作者:iii 栏目:大数据

这篇文章主要介绍“R基于ARIMA模型的方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R基于ARIMA模型的方法怎么用”文章能帮助大家解决问题。

1、平稳性检验


绘制河南省社会消费品零售总额与年度关系的时序图。从图中可以看出,社会消费品零售总额随时间的变化逐年增加。
R基于ARIMA模型的方法怎么用
图1 原始序列的时序图
R基于ARIMA模型的方法怎么用
图2 原始序列的自相关图
做出了原始序列的自相关图,并作出两条辅助的虚线,由图像可以明显看出,系数长期大于零,序列间的相关性很强。
R基于ARIMA模型的方法怎么用
接下来做单位根检验,我们得到的p值大于0.05,这我们可以说序列是不显著的,由此判断该序列为非平稳的。

 

2、差分运算

第一步要对最初的序列进行一阶差分后,可得到所要研究的最初序列是不平稳。
R基于ARIMA模型的方法怎么用
图3 原始序列一阶差分图
对最初序列进行一阶差分后,发现最初序列表现为不平稳的,接下来,接着对于最初的序列做二阶差分。
R基于ARIMA模型的方法怎么用
图4 原始序列二阶差分图  
二阶差分之后序列的时序图在均值附近比较平稳的波动我们可以判断为其序列为平稳序列,那么我们可以接着作平稳性检验。
R基于ARIMA模型的方法怎么用
图5 二阶差分之后序列的自相关图  
做出直观的图像如上所示,我们另外做两条虚线的辅助线,通过对比,我们看到,二阶差分之后序列的自相关图有短期相关性。
R基于ARIMA模型的方法怎么用
二阶差分后,我们再次做单位根检验以验证模型是否平稳,二阶差分后序列的单位根检验的结果如上所示,我们看到,此时p值是小于0.05的,我们得出该模型显著,二阶差分后的序列是平稳序列。  
   
   
   二阶差分后继续做白噪声的检验,检验的数据结果如下。
R基于ARIMA模型的方法怎么用
我们得出,此时的p值为0.004043,显然,该结果小于显著性水平,因此由上面的数据结果,我们可以得出一阶差分之后的序列是平稳非白噪声序列,所以,我们可以作接下来的检验。  

 

3、模型定阶

那么接下来开始对于ARMA模型进行拟合,那么拟合的方式是通过构造平稳白噪声序列进行趋势拟合,这样我们可以得到p和q的数值,确定了模型的拟合数值,最后的话进行模型定阶。  
第一步开始做出模型的偏自相关图。
R基于ARIMA模型的方法怎么用
图6 二阶差分后序列的偏自相关图  
做出二阶差分后序列的偏自相关图如上所示,首先,做出一条虚的辅助线,可以明显的看出,该序列具有一阶截尾和偏自相关图拖尾性,构建ARIMA(0,1,1)模型进行模型分析以及研究。
并计算BIC信息量的值,用BIC值最小的数,进行模型定阶。BIC图如下。
R基于ARIMA模型的方法怎么用
图7 BIC图  
通过BIC最小原则,对原始序列建立ARIMA(1,1,0)模型。

 

4、ARIMA模型预测

应用ARIMA(1,1,0)的时间序列模型预测河南省社会消费品未来5年的零售总额,得出2019~2023年河南省社会消费品的零售总额分别为21166.3、21517.8、21734.4、21867.7、21949.8亿元,并且,从预测图像上可以看出,河南省社会消费品的零售总额的数值随时间的增加逐年增加。
R基于ARIMA模型的方法怎么用
图8 社会消费品零售总额预测图
#ARIMA模型R程序library(forecast)library(fUnitRoots)Data <- read.csv("C:\\Users\\27342\\Desktop\\河南省社会消费品零售总额数据.csv", header = TRUE)[, 2]sales <- ts(Data)plot.ts(sales, xlab = "年份", ylab = "社会消费品零售总额/亿元")# 单位根检验unitrootTest(sales)# 自相关图acf(sales)# 一阶差分difsales <- diff(sales)plot.ts(difsales, xlab = "年份", ylab = "社会消费品零售总额/亿元")# 二阶差分difsales <- diff(difsales)plot.ts(difsales, xlab = "年份", ylab = "社会消费品零售总额/亿元")# 自相关图acf(difsales)# 单位根检验unitrootTest(difsales) # 白噪声检验Box.test(difsales,type="Ljung-Box")# 偏自相关图pacf(difsales)# ARIMA(1,1,0)模型arima <- arima(sales, order = c(1, 1,0))arima #河南省社会消费品零售总额预测forecast <- forecast(arima, h = 5, level= c(99.5))forecast library(TSA)Data <-read.csv("C:\\Users\\27342\\Desktop\\河南省社会消费品零售总额数据.csv", header = TRUE)[, 2]sales <- ts(Data)plot.ts(sales, xlab = "年份", ylab = "社会消费品零售总额/亿元")# 一阶差分difsales <- diff(sales) # 二阶差分difsales <- diff(difsales) # BIC图res <- armasubsets(y = difsales, nar =5, nma = 5, y.name = 'test',ar.method = 'ols')plot(res)

关于“R基于ARIMA模型的方法怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI