将ForecastCombinations包与预测包一起用于单变量预测

时间:2016-06-13 22:37:10

标签: r

我正在搞乱一些R的预测功能,并希望将一些预测整合在一起。使用预测包,我做了一些单变量预测,现在想要使用加权方案对它们进行整合。我喜欢ForecastCombinations组合包采用的方法,但似乎无法重现?Forecast_comb

中示例之外的任何内容

任何人都有这方面的建议,或者有更好的策略来使用现有的R套餐来加重整体。

这是一次显然无效的尝试。

y1 = rnorm(100)
fit1 = auto.arima(y1)
fit2 = ets(y1)
#fit3 = ma(y1, order=3)
forc1 = forecast(fit1, n=10)$mean
forc2 = forecast(fit2, n=10)$mean
#forc3 = forecast(fit3, n=10)$mean
forc_all = cbind(forc1,forc2)
forc_all = forc_all
forc_all

example0[[i]] <- Forecast_comb(obs = y1 ,
                               fhat = as.matrix(forc_all), Averaging_scheme = "best")

由于

2 个答案:

答案 0 :(得分:1)

您正在培训预测,而不是验证集(样本观察值中的10个),而是用于创建预测的原始观察结果:

dim(y1)
dim(forc_all)

您需要10个观察值,以便R知道将forc_all列与样本外观察结果进行比较。这个想法是,在两个专栏中,他会告诉你哪些要使用,前进。 Here 你可以找到更广泛的手册。

答案 1 :(得分:0)

我认为你的例子不可复制。如果我误解了你的问题,请原谅我,但我认为你可以让它成功:

library(forecast)
library(ForecastCombinations)

y1 = rnorm(100)
fit1 = auto.arima(y1)
fit2 = ets(y1)
#fit3 = ma(y1, order=3)
forc1 = forecast(fit1, n=10)$mean
forc2 = forecast(fit2, n=10)$mean
#forc3 = forecast(fit3, n=10)$mean
forc_all = cbind(forc1,forc2)
forc_all = forc_all
forc_all

fitted <- Forecast_comb(obs = y1 ,fhat = as.matrix(forc_all), Averaging_scheme = "best")$fitted

> fitted
           [,1]
 [1,] 0.1084883
 [2,] 0.1084883
 [3,] 0.1084883
 [4,] 0.1084883
 [5,] 0.1084883
 [6,] 0.1084883
 [7,] 0.1084883
 [8,] 0.1084883
 [9,] 0.1084883
[10,] 0.1084883