Как видно из названия, моя цель - провести перекрестную проверку временных рядов с использованием штрафа L1 (Лассо). Поскольку кадр данных представляет собой формат временного ряда, очевидно, что результаты анализа временного ряда должны быть более подходящими, чем обычное резюме.
Вот строки кода, которые я пробовал
library(caret)
library(ggplot2)
library(pls)
economics
timeSlices <- createTimeSlices(1:nrow(economics),
initialWindow = 36, horizon = 12, fixedWindow = FALSE)
trainSlices <- timeSlices[[1]]
testSlices <- timeSlices[[2]]
Это позволяет создать два среза для тренировочного набора (всегда получая еще одно наблюдение), сохраняя постоянную длину тестового набора. Здесь возникает проблема
plsFitTime <- train(unemploy ~ pce + pop + psavert,
data = economics[trainSlices[[1]],],
method = "glmnet",
alpha = 1)
Здесь ошибка
Что-то не так; все значения RMSE metri c отсутствуют:
RMSE Rsquared MAE
Min. : NA Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA Median : NA
Mean :NaN Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA Max. : NA
NA's :9 NA's :9 NA's :9
Error: Stopping
In addition: Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
Я действительно не понимаю, что с этим может быть не так.
Тогда моей конечной целью было бы выполнить
pred <- predict(plsFitTime,economics[testSlices[[1]],])
true <- economics$unemploy[testSlices[[1]]]
Любое предложение с этим?