Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201867

lambda.1se not being in one standard error of the error

$
0
0

In the documentation of the function cv.glmnet(), it is given that:

lambda.1se :
largest value of lambda such that error is within 1 standard error of the minimum.

Which means that lambda.1se gives the lambda, which gives an error (cvm) which is one standard error away from the minimum error.

So, while trying to check this fact:
There is a data set Boston in the library MASS. I performed a cross validation, using the lasso:

x = model.matrix(crim~.-1,data=Boston)#-1 for removing the intercept column
y = Boston$crim
cv.lasso = cv.glmnet(x,y,type.measure = "mse",alpha=1)

And the value of cv.lasso$lambda.min comes out to be:

> cv.lasso$lambda.min
[1] 0.05630926

And, the value of cv.lasso$lambda.1se is:

> cv.lasso$lambda.1se
[1] 3.375651

Now, look at this:

> std(cv.lasso$cvm)
[1] 0.7177808

Where std is a function, that returns the standard error of the values inserted in it.1
And the minimum value of cvm can be found as:

> cv.lasso$cvm[cv.lasso$lambda==cv.lasso$lambda.min]
[1] 42.95009

So, we add the standard error to the value of cvm and we get:

> 42.95009+0.7177808
[1] 43.66787

Even though there is no lambda value corresponding to this cvm value, we can have an idea on the basis of existing data:
enter image description here

Which means lambda.1se should be between 0.4784899 and 0.4359821. But that's absolutely not the case. So, there's a gut feeling that says I'm making a blunder here. Can you help me point at that?


1:Definition of std:

std<-function(x)
  sd(x)/sqrt(length(x))

Viewing all articles
Browse latest Browse all 201867

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>