3

我有一个关于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).

上述过程似乎运行良好。但是,当我尝试对lambda值进行交叉验证时,出现以下错误:

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)]

有谁知道发生了什么?我真的不知道那个错误是什么意思以及我的数据(和/或代码)有什么问题。

4

1 回答 1

1

我遇到了同样的错误,问题(至少在我的情况下)是我的数据矩阵的两列是相等的。看来 lars 不能很好地处理这个问题。只需过滤相关性非常高的列。

于 2017-05-25T22:48:53.313 回答