gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:49:59 27 4
gpt4 key购买 nike

我有一组多重共线变量,我正在尝试使用岭回归来解决这个问题。我正在使用 glmnet在 R 中封装 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()函数抛出此错误。

Error in vcov.default(mod) : there is no vcov() method for models of class elnet, glmnet



您能否帮助我确定我的方法是否有问题或如何解决此问题?

VIF 是否不适用于 GLMNET 中的验证?

提前致谢。

最佳答案

VIF 只是一组自变量的属性。只要不改变独立变量(例如加性模型),因变量是什么以及使用什么样的模型(线性回归、广义模型)都没有关系。见 vif函数来自 car包裹。所以,VIF应用于弹性网络回归,不会告诉你是否处理过多重共线性。它只能告诉您存在多重共线性需要处理。

关于R中glmnet的岭回归;使用 glmnet 包计算不同 lambda 值的 VIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com