Ошибка в cv.lars в R

У меня есть вопрос относительно cv.lars. Ниже приведено описание данных, которые я использую:

is.numeric(Y$Y1)
[1] TRUE

length(Y$Y1)
[1] 589


dim(Training_XX[7:ncol(Training_XX)])
[1]  589 5677

Я уже запустил лассо, используя пакет lars. Мой код выглядит следующим образом:

LASSO_1<-lars(as.matrix(X[7:ncol(X)]), 
              Y$Y1,type=c("lasso"), 
              normalize=TRUE, use.Gram=FALSE).

Вышеуказанная процедура, кажется, работает нормально. Однако, когда я пытаюсь провести перекрестную проверку лямбда- значения, я получаю следующую ошибку:

Error in if (zmin < gamhat) { : missing value where TRUE/FALSE needed

Мой код для перекрестной проверки:

CV<-cv.lars(as.matrix(X[7:ncol(X)]),Y$Y1,use.Gram=FALSE,max.steps=500)
lambda_Y1=CV$index[which.min(CV$cv)]

Кто-нибудь знает, что происходит? Я действительно не знаю, что означает эта ошибка и что не так с моими данными (и / или кодом).

2 ответа

Я получил ту же ошибку, и проблема (по крайней мере, в моем случае) состояла в том, что два столбца моей матрицы данных были равны. Кажется, Ларс плохо с этим справляется. Просто фильтруйте столбцы с очень высокой корреляцией.

Я получил ту же ошибку, когда забыл масштабировать переменные-предикторы.

Другие вопросы по тегам