我有一大组预测变量(超过 43,000 个)用于预测可以取 2 个值(0 或 1)的因变量。观察次数超过 45,000 次。大多数预测因子是单词的一元、二元和三元,因此它们之间存在高度的共线性。我的数据集中也有很多稀疏性。我正在使用 glmnet 包中的逻辑回归,它适用于我拥有的那种数据集。我的问题是如何报告预测变量的 p 值显着性。我确实得到了 beta 系数,但是有没有办法声称 beta 系数在统计上是显着的?
这是我的代码:
library('glmnet')
data <- read.csv('datafile.csv', header=T)
mat = as.matrix(data)
X = mat[,1:ncol(mat)-1]
y = mat[,ncol(mat)]
fit <- cv.glmnet(X,y, family="binomial")
另一个问题是:我使用的是默认的 alpha=1,套索惩罚会导致额外的问题,即如果两个预测变量共线,套索将随机选择其中一个并将零 beta 权重分配给另一个。我还尝试了岭惩罚(alpha=0),它将相似的系数分配给高度相关的变量,而不是选择其中一个。然而,带有套索惩罚的模型给我的偏差比带有脊惩罚的模型要低得多。有没有其他方法可以报告高度共线的两个预测变量?