我有一个包含3233行和62列的训练数据集。自变量是Happy(train $ Happy),这是一个二进制变量。其他61列是分类自变量。
我创建了一个逻辑回归模型如下:
logModel <- glm(Happy ~ ., data = train, family = binary)
但是,我想减少进入模型的自变量的数量,可能减少到20左右。我想首先摆脱共线分类变量。
有人可以了解如何确定哪些分类变量是共线的,以及从模型中删除变量时应该使用的阈值?
谢谢!
答案 0 :(得分:0)
如果你的变量是分类的那么显而易见的解决方案将是R中的惩罚逻辑回归(Lasso),它在glmnet中实现。
对于分类变量,问题要困难得多。
我处于类似的情况,我使用了随机森林包中的重要图,以减少变量的数量。 这不会帮助您找到共线性,而只是按重要性对变量进行排名。
你只有60个变量,也许你对该领域有所了解,所以你可以尝试添加一些对你有意义的变量(比如z = x1-x3,如果你认为值x1-x3是重要的。)然后根据随机森林模型对它们进行排名
答案 1 :(得分:0)
您可以使用Cramer的V或相关的Phi或意外系数(参见http://www.harding.edu/sbreezeel/460%20files/statbook/chapter15.pdf的一篇好文章)来衡量分类变量之间的共线性。如果两个或更多分类变量的Cramer V值接近1,则意味着它们具有高度相关性和#34;并且您可能不需要将所有这些都保留在逻辑回归模型中。