我正在尝试用glmnet和lasso-poisson回归进行变量选择。
如果我使用,它就会运行
model.lasso <- glmnet(X,ED.visits, family="poisson", alpha=1, nlambda=1000)
但我被要求用"偏差"作为衡量标准。运行时出现错误:
model.lasso <- glmnet(X,ED.visits, type.measure=c("deviance"), family="poisson", alpha=1, nlambda=1000)
根据以下文件,type.measure
是正确的规范。
参数:type.measure不是glmnet函数的一部分,而是cv.glmnet函数。您调用的参数不是上述函数的一部分。
对于poisson族回归,默认情况下,它使用偏差进行拟合(最小化偏差(。cv.glmnet的目的是使用交叉验证来找到最佳lambda,但由于您已经指定了它,因此使用cv.glmet和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
你需要找到最佳λ吗?如果不是,只使用不带type="measure"参数的glmnet。