R - S 和 F 计数中的 bestglm 问题不能 <0

问题描述 投票:0回答:4

我尝试使用

bestglm
进行子集回归,但是当我执行它时,出现以下错误

Error in bestglm(Xy=H.bestglm2, family = binomial, IC ="AC", method = "exhaustive": 
Binomial non-logistic regression: S and F counts can not be <0

我不知道这意味着什么,也找不到有关此问题的任何信息。

谢谢!

r machine-learning subset logistic-regression
4个回答
3
投票

如果您确定响应变量(必须位于最后一列)是二进制的,请尝试以下操作:

H.bestglm2 <- data.frame(H.bestglm2)

然后在新对象上运行 bestglm


1
投票

bestglm 的文档似乎不完整。我也遇到了这个错误,并且找不到我的数据框有任何问题。最终,在将我的数据列替换为现有的工作 data.frame(来自 bestglm 示例的 SAheart)时,我发现 Xy 数据框似乎只使用最后一列作为结果变量。

这失败了:

> set.seed(1)
> test.data=data.frame(y=rbinom(100,1,.5),X=rnorm(100))
> bestglm(test.data,family=binomial)
Error in bestglm(test.data, family = binomial) : 
  Binomial nonlogistic-regression: S and F counts can not be <0

但这有效:

> set.seed(1)
> test.data=data.frame(X=rnorm(100),y=rbinom(100,1,.5))
> bestglm(test.data,family=binomial)
Morgan-Tatar search since family is non-gaussian.
BIC
Best Model:
              Estimate Std. Error   z value   Pr(>|z|)
(Intercept) -0.4895482  0.2060214 -2.376201 0.01749194

无论我的变量如何命名,它似乎总是抓住最后一列用作结果(y)变量。在第一种情况下,会产生错误,因为该列不是严格的 0/1,因此它认为您没有进行逻辑回归。


0
投票

对于仍然遇到此问题的任何人,将 tibble 传递给该函数是行不通的。当我将其转换为数据框时,它工作得很好。


0
投票

转换为数据框有助于解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.