使用套索回归指定测量类型

Specifying type of measure with lasso regression

我正在尝试使用 glmnet 和套索泊松回归进行变量选择。

它运行如果我使用:

model.lasso <- glmnet(X,ED.visits, family="poisson", alpha=1, nlambda=1000)

但有人要求我使用 "deviance" 作为衡量标准。当我 运行:

时出现错误
model.lasso <- glmnet(X,ED.visits, type.measure=c("deviance"), family="poisson", alpha=1, nlambda=1000)

type.measure 是根据 the documentation.

的正确规范

参数:type.measure,不是 glmnet 函数的一部分,而是 cv.glmnet 函数的一部分。您正在调用不属于上述函数的参数。

对于泊松族回归,默认情况下它使用偏差(最小化偏差)进行拟合。 cv.glmnet 的目的是使用交叉验证找到最佳 lambda,但是由于您已经指定了它,因此使用 cv.glmnet 和 glmnet 的结果是相同的:

library(glmnet)
x = matrix(rnorm(10000),1000,10)
y = rpois(1000,10)
cv.lasso <- cv.glmnet(x,y, 
type.measure="deviance", family="poisson", 
alpha=1, nlambda=1000)

model.lasso <- glmnet(x,y, family="poisson", 
alpha=1, nlambda=1000)

> identical(cv.lasso$glmnet.fit$beta,model.lasso$beta)
[1] TRUE

您需要找到最优的 lambda 吗?如果不只是使用没有 type="measure" 参数的 glmnet。