R glm包中协变量的最大数量为128?

mum43rcc  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(152)

我有一个包含146个协变量的数据集,正在训练一个逻辑回归。

logit = glm(Y ~ .,
        data = pred.dataset[1:1000,],
        family = binomial)

模型训练非常快,但当我尝试查看Beta版时

logit

在第128个变量之后,β均为“NA”
我注意到这一点时,试图将其导出为pmml,并注意到它停止列出测试后,128预测。
我已经浏览了文档,但找不到最大协变量数的参考,而且还在60 k行上进行了训练--我仍然在第128个预测值之后看到NA。
这是glm的限制,还是我的系统的限制?我运行的是64位的R 3. 1. 2。我怎样才能增加预测器的数量?

thtygnil

thtygnil1#

这是我刚刚在Stack Exchange上问的一个问题,也是这个问题应该出现的地方。https://stats.stackexchange.com/questions/159316/logistic-regression-in-r-with-many-predictors?noredirect=1#comment303422_159316和后续链接包含在线程中。回答你的问题,但基本上,这是太多的预测因素的逻辑回归,和OLS可以用在这种情况下,即使它没有产生最好的结果,为二元结果,结果仍然是有效的,可以使用。

r55awzrz

r55awzrz2#

您没有提供可重复的数据,因此很难准确地判断发生了什么--是否存在一些变量的编码问题?看起来一致的变量是否根本不一致?这些情况可以通过可重复的代码示例来排除。
然而,我回答这个问题是因为我认为你可能有一个合理的担忧。你能对这些其他变量说些什么?它们是什么类型的?我一直试图运行一些Logit,它们似乎正在下降因子水平超过48。
对我有效的(至少是让模型完全运行)是进入glm()函数并进行更改

mf$drop.unused.levels <- TRUE

mf$drop.unused.levels <- FALSE

然后以不同的名称保存该函数,并使用它来运行我的分析。(我受到了X1 E0 F1 X Answer的启发。)
不过,要注意!它给了我一些警告信息:

Warning messages:
1: In predict.lm(object, newdata, se.fit, scale = 1, type = if (type ==  :
  prediction from a rank-deficient fit may be misleading
2: In predict.lm(object, newdata, se.fit, scale = 1, type = if (type ==  :
  prediction from a rank-deficient fit may be misleading
3: In predict.lm(object, newdata, se.fit, scale = 1, type = if (type ==  :
  prediction from a rank-deficient fit may be misleading

我知道数据中某些群体存在频率问题;我必须分别分析这些,我也会这样做。但就目前而言,我已经实现了我想要的各个层面的预测。
不过,第一步是检查您的数据。我的数据出现这种情况的部分原因几乎可以肯定是由于数据本身的问题,但这种方法让我可以覆盖它。这可能是也可能不是适合您的解决方案。

相关问题