我有一组多重共线性变量,尝试使用岭回归来解决这个问题。我正在使用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)
我已经成功进行了到这一步,但我还需要检查特定λ值的VIF,以确保系数已稳定,并且控制了多重共线性。但我不确定如何在GLMNET中检查VIF,因为通常的vif()函数会抛出此错误。 错误信息如下:
请问是否能帮我确定我的方法是否有问题或者如何解决这个问题?Error in vcov.default(mod) : there is no vcov() method for models of class elnet, glmnet
在GLMNET中验证时,VIF是否不适用?
提前感谢您的帮助。