我在R中的时间序列图中遇到了问题。更具体地说,是对它的预测。
这是数据集,它是从英格兰中部温度(CET)数据集中获取的气象数据。我已将其削减至仅包括过去6年,并包含月平均温度。
Year JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
2007 7.0 5.8 7.2 11.2 11.9 15.1 15.2 15.4 13.8 10.9 7.3 4.9
2008 6.6 5.4 6.1 7.9 13.4 13.9 16.2 16.2 13.5 9.7 7.0 3.5
2009 3.0 4.1 7.0 10.0 12.1 14.8 16.1 16.6 14.2 11.6 8.7 3.1
2010 1.4 2.8 6.1 8.8 10.7 15.2 17.1 15.3 13.8 10.3 5.2 -0.7
2011 3.7 6.4 6.7 11.8 12.2 13.8 15.2 15.4 15.1 12.6 9.6 6.0
2012 5.4 3.8 8.3 7.2 11.7 13.5 15.5 16.6 13.0 9.7 6.8 4.8
但是,我的数据集没有年份列,它只列出1-6作为行名称,因为我遇到了问题。
现在我使用了arima()
函数,数据集称为数据
m <- arima(data, order = c(2, 0, 0), seasonal = list(order = c(1, 0, 0)))
我在季节性部分中使用了其他数字,但这给出了最低的AIC。
然后我用
pm <- predict(m, n.ahead = 12, se.fit = TRUE)
ts.plot(cbind(f, pm$pred, pm$pred-2*pm$se, pm$pred+2*pm$se), col = ("black", "black", "red", "red"))
这应生成一个时间序列图,该特定模型的预测间隔为95%。
但是,我收到此错误:
Error in xy.coords(x = matrix(rep.int(tx, k), ncol = k), y = x, log = log) :
(list) object cannot be coerced to type 'double'
非常感谢任何帮助/建议。
答案 0 :(得分:9)
安装forecast
包。它提供了一种计算间隔的预测方法,以及一种情节方法。
install.packages("forecast")
library(forecast)
pm <- forecast(m, h=12)
plot(pm)