我在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
Run Code Online (Sandbox Code Playgroud)
但是,我的数据集没有年份列,它只列出1-6作为行名称,因为我遇到了问题.
现在我使用了该arima()函数,数据集称为数据
m <- arima(data, order = c(2, 0, 0), seasonal = list(order = c(1, 0, 0)))
Run Code Online (Sandbox Code Playgroud)
我在季节性部分使用了其他数字,但这给出了最低的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"))
Run Code Online (Sandbox Code Playgroud)
这应该产生一个时间序列图,该特定模型的预测间隔为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'
Run Code Online (Sandbox Code Playgroud)
任何帮助/建议将不胜感激.
安装forecast包.它提供了一种计算间隔的预测方法,以及一种绘图方法.
install.packages("forecast")
library(forecast)
pm <- forecast(m, h=12)
plot(pm)
Run Code Online (Sandbox Code Playgroud)