相关文章:时间序列分析之ARIMA模型预测__SAS篇
之前一直用SAS做ARIMA模型预测,今天尝试用了一下R,发现灵活度更高,结果输出也更直观。现在记录一下如何用R分析ARIMA模型。
1. 处理数据
1.1. 导入forecast包
forecast包是一个封装的ARIMA统计软件包,在默认情况下,R没有预装forecast包,因此需要先安装该包
> install.packages("forecast')
导入依赖包zoo,再导入forecast包
> library("zoo") > library("forecast")
1.2. 导入数据
博主使用的数据是一组航空公司的销售数据,可在此下载数据:airline.txt,共有132条数据,是以月为单位的销售数据。
> airline <- read.table("airline.txt")
> airline
V1 V2
1 1 112
2 2 118
3 3 132
4 4 129
5 5 121
6 6 135
7 7 148
8 8 148
9 9 136
10 10 119
(........)
1.3. 将数据转化为时间序列格式(ts)
由于将数据转化为时间序列格式,我们并不需要时间字段,因此只取airline数据的第二列,即销售数据,又因为该数据是以月为单位的,因此Period是12。
> airline2 <- ariline[2] > airts <- ts(airline2,start=1,frequency=12)
2. 识别模型
2.1. 查看趋势图
> plot.ts(airts)
由图可见,该序列还不平稳,先做一次Log平滑,再做一次差分:
> airlog <- log(airts)
> airdiff <- diff(airlog, differences=1)
> plot.ts(airdiff)
这次看上去就比较平稳了,现在看看ACF和PACF的结果
2.2. 查看ACF和PACF
> acf(airdff, lag.max=30) > acf(airdff, lag.max=30,plot=FALSE)
Autocorrelations of series ‘airdiff’, by lag 0.0000 0.0833 0.1667 0.2500 0.3333 0.4167 0.5000 0.5833 0.6667 0.7500 0.8333 1.000 0.188 -0.127 -0.154 -0.326 -0.066 0.041 -0.098 -0.343 -0.109 -0.120 0.9167 1.0000 1.0833 1.1667 1.2500 1.3333 1.4167 1.5000 1.5833 1.6667 1.7500 0.199 0.833 0.198 -0.143 -0.110 -