R Forecast包中的Auto.Arima()行为不稳定
我正在使用Rob Hyndman的forecast version 5.4插件。这是一个非常好的软件包,但它似乎表现得很奇怪,对相似数据的预测结果大不相同。我很确定这与数据末尾生成的警告消息有关,但我不确定如何修复它R Forecast包中的Auto.Arima()行为不稳定,r,time-series,forecasting,jri,R,Time Series,Forecasting,Jri,我正在使用Rob Hyndman的forecast version 5.4插件。这是一个非常好的软件包,但它似乎表现得很奇怪,对相似数据的预测结果大不相同。我很确定这与数据末尾生成的警告消息有关,但我不确定如何修复它 library(forecast) v <- vector("numeric") v <- append(v,0.0) v <- append(v,115.0) v <- append(v,0.0)
library(forecast)
v <- vector("numeric")
v <- append(v,0.0)
v <- append(v,115.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,115.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,115.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,117.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,117.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,117.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,113.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,112.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,120.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,119.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
series <- ts(v, frequency=12)
series
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 0 115 0 0 0 115 0 0 0 115 0 0
2 0 0 117 0 0 0 117 0 0 0 117 0
3 0 0 0 0 113 0 0 0 112 0 0 0
4 0 0 0 0 120 0 0 0 119 0 0 0
a <- auto.arima(series)
// Note there is no error
v <- vector("numeric")
v <- append(v,0.0)
v <- append(v,109.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,120.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,114.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,125.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,135.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,130.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,104.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,114.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,126.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,114.0)
v <- append(v,0.0)
v <- append(v,0.0)
v <- append(v,0.0)
series <- ts(v, frequency=12)
a <- auto.arima(series)
Warning message:
In max(which(abs(testvec) 1e-08)) :
no non-missing arguments to max; returning -Inf
series
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 0 109 0 0 0 120 0 0 0 114 0 0
2 0 0 125 0 0 0 135 0 0 0 130 0
3 0 0 0 0 104 0 0 0 114 0 0 0
4 0 0 0 0 126 0 0 0 114 0 0 0
库(预测)
v这是您的数据,输入效率更高。为什么要使用append
语句
library(forecast)
v1 <- ts(c(0, 115, 0, 0, 0, 115, 0, 0, 0, 115, 0, 0, 0, 0, 117, 0, 0,
0, 117, 0, 0, 0, 117, 0, 0, 0, 0, 0, 113, 0, 0, 0, 112, 0, 0,
0, 0, 0, 0, 0, 120, 0, 0, 0, 119, 0, 0, 0), frequency=12)
fit1 <- auto.arima(v1)
plot(forecast(fit1))
v2 <- ts(c(0, 109, 0, 0, 0, 120, 0, 0, 0, 114, 0, 0, 0, 0, 125, 0, 0,
0, 135, 0, 0, 0, 130, 0, 0, 0, 0, 0, 104, 0, 0, 0, 114, 0, 0,
0, 0, 0, 0, 0, 126, 0, 0, 0, 114, 0, 0, 0), frequency=12)
fit2 <- auto.arima(v2)
plot(forecast(fit2))
库(预测)
v1谁教你使用append创建向量,每次只添加一个值?非常感谢建设性的批评或指点。也许教授正确的创建向量的方法更合适?谢谢Rob。我以为这是因为一个背景被引爆了。感谢您提供了创建向量的正确方法。是否记录了这种情况下auto.arima
的行为?从答案中显示的行为来看,预测结果似乎只是结转的序列的平均值,这很好。但我需要对自己对auto.arima
如何在不合适的时间序列上工作的理解充满信心。
library(forecast)
v1 <- ts(c(0, 115, 0, 0, 0, 115, 0, 0, 0, 115, 0, 0, 0, 0, 117, 0, 0,
0, 117, 0, 0, 0, 117, 0, 0, 0, 0, 0, 113, 0, 0, 0, 112, 0, 0,
0, 0, 0, 0, 0, 120, 0, 0, 0, 119, 0, 0, 0), frequency=12)
fit1 <- auto.arima(v1)
plot(forecast(fit1))
v2 <- ts(c(0, 109, 0, 0, 0, 120, 0, 0, 0, 114, 0, 0, 0, 0, 125, 0, 0,
0, 135, 0, 0, 0, 130, 0, 0, 0, 0, 0, 104, 0, 0, 0, 114, 0, 0,
0, 0, 0, 0, 0, 126, 0, 0, 0, 114, 0, 0, 0), frequency=12)
fit2 <- auto.arima(v2)
plot(forecast(fit2))