Спасибо вам, ребята, я получил помощь и элегантный код от одного из опытных программистов, но у меня все еще есть проблема и ошибка. У меня есть несколько временных рядов с данными одной серии за период 1970–2015 годов, и я хочу использовать период 1970–1999 годов для учебного набора и 2000–2015 годы для испытательного комплекта, но я хочу построить модель с использованием 1999 года и прогнозировать 2001 год; 1999 и 1998 годы и тест 2001 года; 1998, 1997 и 1996 (в обратном направлении), чтобы предсказать 2001 год, и он снова повторяется, чтобы предсказать 2002,… .2015, и l oop должен работать с интервалом 1, 3, 5, .., чтобы предсказать каждый год в набор для тестирования, а также, возможно, любая комбинация обучающего набора в стиле 1, 3, 5,…. Я приложил код и моя переменная - Count. Как я могу также прикрепить эти индексы 1, 3, 5, .. к своему результату, чтобы я знал количество тренировок с соответствующей ошибкой прогнозирования? Надеюсь, ты поможешь мне!
test_yrs <- c(2000:2015)
train_yrs <- lapply(seq(1,(2015-1970), by=2), function(i)
c(1970:1999)[c(1:i)]
)[seq_along(test_yrs)]
model_func <- function(train_yrs, test_yrs) {
train_df <- df[df$Year %in% train_yrs,]
test_df <- df[df$Year %in% test_yrs,]
mod <- auto.arima(train_df$Count)
yhat <- predict(mod, test_df$Count)
yhat$pred<- as.numeric(yhat$pred)
In addition: Warning message:
In test_df$Count - yhat$pred :
longer object length is not a multiple of shorter object length
(Does this affect my result?)
error <- abs(test_df$Count - yhat$pred)
return (list(pred = pred, error = error))
}
results_list <- Map(model_func, train_yrs, test_yrs)
write.table (error, file="C:\\Documents\\ARIMA\\output.txt) ---
how can I attach those indices (1,3,5,…..) in this result to recognize their corresponding error?