如果你查看数据,你的依赖是连续的,所以它应该是高斯的,以 mse 为度量:
head(anscombe,3)
x1 x2 x3 x4 y1 y2 y3 y4
1 10 10 10 8 8.04 9.14 7.46 6.58
2 8 8 8 8 6.95 8.14 6.77 5.76
3 13 13 13 8 7.58 8.74 12.74 7.71
出现错误是因为您在函数需要一个矩阵时提供了一个向量,并且为 glmnet 输入 1 个变量没有意义,您最好进行回归。如果我们强制它,你会得到一个错误,这几乎可以概括:
cv.glmnet(x=as.matrix(anscombe$x1,ncol=1), y=anscombe$y1, family= "gaussian",
type.measure = "mse", alpha = 1, nlambda = 100)
Error in glmnet(x, y, weights = weights, offset = offset, lambda = lambda, :
x should be a matrix with 2 or more columns
如果你使用超过 1 个,它可以工作:
cv.glmnet(x=as.matrix(anscombe[,c("x1","x2")]), y=anscombe$y1, family= "gaussian",
type.measure = "mse", alpha = 1, nlambda = 100)