我尝试使用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
我不知道这意味着什么,我无法找到有关此问题的任何信息。
谢谢!
答案 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