小编srt*_*srt的帖子

R中glmnet的岭回归;使用 glmnet 包计算不同 lambda 值的 VIF

我有一组多重共线变量,我正在尝试使用岭回归来解决这个问题。我glmnet在 R 中使用 alpha = 0的包(用于岭回归)。

library(glmnet)
Run Code Online (Sandbox Code Playgroud)

我有一系列 lambda 值,我正在通过 cv.glmnet 选择最佳的 lambda 值

lambda <- 10^seq(10, -2, length = 100)
Run Code Online (Sandbox Code Playgroud)

-- 创建模型矩阵并分配 y 变量

x <- model.matrix(dv ~ ., datamatrix) [,-1]
y <- datamatrix$dv
Run Code Online (Sandbox Code Playgroud)

-- 使用交叉验证来确定最佳 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)
Run Code Online (Sandbox Code Playgroud)

我能够成功做到这一点,但我还必须检查这个特定 lambda 值的 VIF,以确保系数已经稳定并且多重共线性得到控制。但我不确定如何在 GLMNET 中检查 VIF,因为通常的vif()函数会引发此错误。

vcov.default(mod) …

modeling regression r glmnet

6
推荐指数
1
解决办法
1779
查看次数

标签 统计

glmnet ×1

modeling ×1

r ×1

regression ×1