您的位置:首页 > 其它

R时间序列举例(预测未来几个月的用气量)

2016-08-31 10:55 267 查看
一、数据准备

见数据:

1179.8945
1380.502
1213.4335
1609.2345
1202.7765
1413.3885
1338.052
1598.848
1374.6365
1411.9695
1236.4185
1146.867
1004.8555
1493.0305
1207.844
1285.773
1206.2815
1169.292
1167.0495
1402.294
958.091
599.3945
1123.6035
1145.016
1179.8945
1380.502
1169.542847
1178.448372
1187.353897
1196.259422
1205.164947
1214.070472
1222.975997
1231.881522
1240.787047
1249.692572
1258.598097
1267.503622
1276.409147
1285.314672
1294.220197
1303.125722
1312.031247
1320.936772
1329.842297
1338.747822
1347.653347
1356.558872
1179.8945
1380.502
1213.4335
1609.2345
1202.7765
1413.3885
1338.052
1598.848
1374.6365
1411.9695
1236.4185
1146.867
1004.8555
1493.0305
1207.844
1285.773
1206.2815
1169.292
1167.0495
1402.294
958.091
599.3945
1123.6035
1145.016
1179.8945
1380.502
1169.542847
1178.448372
1187.352322
1196.259422
1205.164947
1214.070472
1222.97222
1231.881522
1240.787047
1249.692572
1258.598097
1267.503622
1276.409147
1285.314672
1294.220197
1303.125722
1312.031247
1320.936772
1329.842297
1338.747822
1347.653347


二、代码编写

Aram.R文件内容如下:

#加载每月的用气量数据

#skirts <- scan("http://robjhyndman.com/tsdldata/roberts/skirts.dat",skip=8)

skirts <- read.csv("E:/R_project/20160830/times.csv")

skirtsts<- ts(skirts, frequency=12,start = c(2015))

#可以打印序列

print(skirtsts)

#显示图形

plot.ts(skirtsts)

#通过键入下面的代码来得到时间序列(数据存于“skirtsts”) 的一阶差分, 并画出差分序列的图

skirtstsdiff<-diff(skirtsts,differences=1)

#显示

plot.ts(skirtstsdiff)

#从一阶差分的图中可以看出,数据仍是不平稳的,继续差分

skirtstsdiff2<-diff(skirtsts,differences=5)

plot.ts(skirtstsdiff2)

#找到合适的ARIMA模型

#期望 1 到 20 之间的会偶尔超出 95%的置信边界

acf(skirtstsdiff2,lag.max=20)

acf(skirtstsdiff2,lag.max=20,plot=FALSE)

# 偏自相关值选5、3、2阶试试

library(forecast)

skirtsarima<-arima(skirtsts,order=c(1,2,5))

skirtsarimaforecast<-forecast.Arima(skirtsarima,h=2,level=c(11.5))

#预测后2个月的用气量

print(skirtsarimaforecast)

#显示图形

plot.forecast(skirtsarimaforecast)

三、模型验证

……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: