【发布时间】:2017-12-05 07:57:34
【问题描述】:
我有一组多重共线性变量,我正在尝试使用岭回归来解决这个问题。我在 R 中使用 glmnet 包,alpha = 0(用于岭回归)。
library(glmnet)
我有一系列 lambda 值,我正在通过 cv.glmnet 选择最佳 lambda 值
lambda <- 10^seq(10, -2, length = 100)
--创建模型矩阵并分配y变量
x <- model.matrix(dv ~ ., datamatrix) [,-1]
y <- datamatrix$dv
-- 使用交叉验证来确定最佳 lambda 并使用该 lambda 值预测 y
ridge.mod <- glmnet(x, y, alpha = 0, lambda = lambda)
cv.out <- cv.glmnet(x, y, alpha = 0)
ridge.pred <- predict(ridge.mod, s = cv.out$lambda.min, newx = x)
到目前为止,我能够成功地做到这一点,但我还必须检查这个特定 lambda 值的 VIF,以确保系数已经稳定并且多重共线性得到控制。但我不确定如何在 GLMNET 中检查 VIF,因为通常的 vif() 函数会引发此错误。
vcov.default(mod) 中的错误: elnet、glmnet 类的模型没有 vcov() 方法
您能否帮我确定我的方法是否有问题或如何解决此问题?
VIF 是否不适用于 GLMNET 中的验证?
提前致谢。
【问题讨论】:
标签: r regression modeling glmnet