2

我在 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'

任何帮助/建议将不胜感激。

4

1 回答 1

9

安装forecast软件包。它提供了一种计算间隔的预测方法和一个绘图方法。

install.packages("forecast")
library(forecast)
pm <- forecast(m, h=12)
plot(pm)
于 2013-03-18T21:57:19.950 回答