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

时间:2016-06-22 09:50:28

标签: r machine-learning subset logistic-regression

我尝试使用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

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

谢谢!

2 个答案:

答案 0 :(得分: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,因此它不认为您正在进行逻辑回归。

答案 1 :(得分:1)

如果你确定响应变量(必须在最后一列中)是二进制的,那么试试这个:

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

然后在新对象上运行bestglm