Почему RMSE увеличивается с горизонтом при использовании метода таймслейса в функции trainControl карета? - PullRequest
3 голосов
/ 24 июня 2019

Я использую метод timeslice в функции trainControl каретки для выполнения перекрестной проверки на модели временных рядов.Я заметил, что RMSE увеличивается с аргументом horizon.

Я понимаю, что это может произойти по нескольким причинам, например, если прогнозируемые переменные прогнозируются и / или существует автокорреляция в данных, так что модель может лучше прогнозировать наблюдения ближе к дальнейшим наблюдениям.Тем не менее, я наблюдаю такое же поведение, даже когда ни один из них не является случаем (см. Приведенный ниже примерный воспроизводимый пример).

Может кто-нибудь объяснить, почему RSME увеличиваются с horizon?

# Make data
X = data.frame(matrix(rnorm(1000 * 3), ncol = 3))
X$y = rowSums(X) + rnorm(nrow(X))

# Iterate over different different forecast horizons and record RMSES
library(caret)
forecast_horizons = c(1, 3, 10, 50, 100)
rmses = numeric(length(forecast_horizons))
for (i in 1:length(forecast_horizons)) {
  ctrl = trainControl(method = 'timeslice', initialWindow = 500, horizon = forecast_horizons[i], fixedWindow = T) 
  rmses[i] = train(y ~ ., data = X, method = 'lm', trControl = ctrl)$results$RMSE
}
print(rmses) #0.7859786 0.9132649 0.9720110 0.9837384 0.9849005
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...