我尝试评估逻辑回归问题在自变量之间是否存在多重共线性。 通过这样做,我了解到R中的扰动包将是一个不错的选择。 我已经尝试了小插图中的示例
library(perturb)
library(glmnet)
data(consumption)
ct1 <- with(consumption, c(NA,cons[-length(cons)])) #evaluate a condition
m1 <- lm(cons ~ ct1+dpi+rate+d_dpi, data = consumption)
cd<-colldiag(m1, center=T)
cd
,并注意到以下内容:
colldiag
为Cond提供了不错的输出。指数和方差分解。可以很容易地弄清哪些是var。这可能会导致问题。但是,仅对连续变量实施。
尝试添加分类类别时,它崩溃了:
library(car)
data(Duncan)
attach(Duncan)
m2<-lm(prestige~income+education+type, data=Duncan)
colldiag(m2)
“ v ^ 2中的错误:二进制运算符的非数字参数”。
是否必须将分类类别(type
)显式编码为虚拟变量才能使用colldiag
或colldiag
实际上仅适用于连续var?
在运行上面的代码时,perturb函数似乎可以解决此问题,但输出完全不同,并且由于摘要中没有任何条件编号,因此我不知道如何读取/解释它。
p2<- perturb(m2,pvars=c("income","education"),prange=c(1,1),pfac=list("type",pcnt=95))
summary(p2)
有人对如何从中获得意义有想法吗? 我分析的最终目标实际上是使用条件索引来评估连续和分类变量混合的多重共线性。