R语言:时间序列ARIMA模型使用

ARIMA(p,d,q)模型

一、ARIMA模型建模的基本步骤
  1. 首先导入数据,构造时间序列;
  2. 绘制时间序列数据的时序图、 A C F ACF ACF 图以及 P A C F PACF PACF 图,观察时间序列是否平稳,如果是趋势非平稳则做趋势差分或者对数变换消除趋势,如果是季节非平稳则做季节差分消除趋势;
  3. 如果序列方差不稳定,可用 Box-Cox 变换再做差分;
  4. 对平稳后的序列定阶,即确定 ARIMA(p,d,q) 模型中的 p,d,q ;
  5. 建立 ARIMA 模型,估计出模型的系数;
  6. 检验模型的残差是否是白噪声,若不是则重新建立 ARIMA 模型;
  7. 对模型进行优化;
  8. 如果有多个模型可以选择,可通过 AIC,BIC 进行比较,选择比较小的模型;
  9. 用模型进行预测。
二、ARIMA模型建模操作过程

R语言为例:美国GNP增长率

library(forecast)    # 时间序列常用的包
library(TSA)

da = read.table("D:/Database/data1/q-gnp4710.txt",header=T)  # 读取数据
G = da$VALUE
gnp.value = ts(G,start=c(1947,1),frequency = 12)     # 转化为时间序列数据
plot(gnp.value)     # 观察序列是否平稳
# tsdisplay(gnp.value)  或者使用这个函数,可以同时观察序列的时序图、ACF图、pacf图。
diff(log(gnp.value)) %>% plot()

在这里插入图片描述
在这里插入图片描述
将数据对数然后做差分

gnp = log(gnp.value) %>% diff()
tsdisplay(gnp,lag.max = 12)

在这里插入图片描述
构建 ARIMA(3,1,0)模型

# 建立模型命名为 m2.1 可以随便命名比如 m1
m2.1 = Arima(gnp.value,lambda = 0,order = c(3,1,0),include.drift = T) 
m2.1

在这里插入图片描述

Box.test(resid(m2.1),lag = 6,type = "Ljung",fitdf = 3) # 检验残差

在这里插入图片描述

用模型预测后面 8 期的数据

fm1 = forecast(m1,h=8)  # 预测
plot(fm1)

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值