R语言 ARIMA时间序列模型

1.数据介绍

  1. 本实验使用R的fEcofin包中的CPI.dat数据集。CPI是一个经季节调整的美国消费价格指数,此数据是月度的。
  2. 数据载入方法:
    1. 首先安装该数据所在包:install.packages("fEcofin", repos="http://R-Forge.R-project.org")
    2. 载入数据:originalData=CPI.dat

2.实验 ARMA时间序列数据分析

  1. 应用ARIMA(p,i,q)对1977/1到1987/12月的数据建模,确定ARIMA模型三个参数p,q,i的取值。
  2. 应用ARIMA(p,i,q)对1977/1到1987/12月的数据建模,且预测之后5个月的CPI值,并计算出相应误差
#rm(list=ls())
#setwd("D:/AUniversity/GameDesign/R/Project/ARIMA")
#library(forecast)
#library(fUnitRoots)
#library(fEcofin)

#绘制时间-CPI坐标图
data=CPI.dat
cpi=ts(data$CPI)
plot.ts(cpi,xlab="时间",ylab="cpi")
#单位根检验
unitrootTest(cpi)
#自相关图
acf(cpi)
#一阶差分
difsales1=diff(cpi)
plot.ts(difsales1,xlab="时间",ylab="CPI残差")
#自相关图
acf(difsales1)
#单位根检验
unitrootTest(difsales1)
#二阶差分
difsales2=diff(difsales1)
plot.ts(difsales2,xlab="时间",ylab="CPI残差")
#自相关图
acf(difsales2)
#单位根检验
unitrootTest(difsales2)

# #三阶差分
# difsales3=diff(difsales2)
# plot.ts(difsales3,xlab="时间",ylab="CPI残差")
# #自相关图
# acf(difsales3)
# #单位根检验
# unitrootTest(difsales3)

#白噪声检验
Box.test(difsales2,type="Ljung-Box")
pacf(difsales2)
#BIC图
library(TSA)
res=armasubsets(y=difsales1,nar=5,nma=5,y.name='test',ar.method='ols')
plot(res)
#p=1,q=3,i=2
#ARIMA(1,2,3)模型
# arimaModel=arima(cpi,order=c(1,2,3))
# arimaModel
library(stats)
arimaModel=stats::arima(cpi,order=c(1,2,3))
forecastdata=forecast(arimaModel,h=5,level=c(99.5))
forecastdata

得P=1,Q=3,I=2

预测:

  • 3
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值