R 我正在使用glmnet来解决多重共线性问题,为了得到最好的lambda,我想计算变量之间的VIF

R 我正在使用glmnet来解决多重共线性问题,为了得到最好的lambda,我想计算变量之间的VIF,r,regression,linear-regression,glmnet,R,Regression,Linear Regression,Glmnet,我正在使用glmnet,为了获得最好的lambda,我想检查变量之间的VIF。有人能建议我如何做到这一点吗 下面是我要遵循的代码,fielddfm是包含自变量的数据框: x<- model.matrix(depvar ~ ., fielddfm) [,-1] y <- depvar lambda <- 10^seq(10, -2, length = 100) ridge.mod <- glmnet(x, y, alpha = 0, lambda = lambda) pre

我正在使用glmnet,为了获得最好的lambda,我想检查变量之间的VIF。有人能建议我如何做到这一点吗

下面是我要遵循的代码,fielddfm是包含自变量的数据框:

x<- model.matrix(depvar ~ ., fielddfm) [,-1]
y <- depvar
lambda <- 10^seq(10, -2, length = 100)
ridge.mod <- glmnet(x, y, alpha = 0, lambda = lambda)
predict(ridge.mod, s = 0, exact = T, type = 'coefficients')
cv.out <- cv.glmnet(x, y, alpha = 0, nfolds = 3)
bestlam <- cv.out$lambda.min
ridge.pred <- predict(ridge.mod, s = bestlam, newx = x)
predict(ridge.mod, type = "coefficients", s = bestlam)'
x由于a)VIF是预测值的函数,而不是模型的函数;b)岭回归保持所有变量,而不考虑λ,因此可以从任意拟合的线性模型中获得VIF。例如:

vifs = car::vif(lm(y ~ ., data = X)) 
其中,
y
是您的响应,
X
是您的预测数据帧。请注意,结果与
y
中包含的值无关


然而,考虑到上述情况,这个问题首先是否有意义有点可疑…

请在您的问题中包含
dput(fielddfm)
的输出。