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()

R语言:时间序列ARIMA模型使用_第1张图片
R语言:时间序列ARIMA模型使用_第2张图片

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

R语言:时间序列ARIMA模型使用_第3张图片

m1 = Arima(gnp.value,lambda = 0,order = c(3,1,0),include.drift = T) # 建立模型
m1

R语言:时间序列ARIMA模型使用_第4张图片

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

R语言:时间序列ARIMA模型使用_第5张图片

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

R语言:时间序列ARIMA模型使用_第6张图片

你可能感兴趣的:(时间序列,r语言)