我想没有拦截运行逻辑回归。首先,我试过功能glm
,但我得到了以下错误:
Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred
由于这是不可能改变的数据集在所有给我的工作性质,我决定使用过的代码bayesglm
一个不同的R程序包。
当我使用这个功能,包括拦截,我没有得到任何错误信息如上。然而,当我通过我的函数的末尾添加-1
排除截距我仍然得到上面下面的输出相同的错误:
> regress=bayesglm(y~x1*x2+x3+x4-1, data = DATA, family=binomial(link="logit"))
> summary(regress)
Call:
bayesglm(formula = y ~ x1 * x2 + x3 + x4 - 1, family = binomial(link = "logit"),
data = DATA, maxit = 10000)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.01451 -0.43143 -0.22778 -0.05431 2.89066
Coefficients:
Estimate Std. Error z value Pr(>|z|)
x1 -20.45537 9.70594 -2.108 0.03507 *
x2 -7.04844 2.87415 -2.452 0.01419 *
x1:x2 0.13409 17.57010 0.008 0.99391
x3 -0.17779 0.06377 -2.788 0.00531 **
x4 -0.02593 0.05313 -0.488 0.62548
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 494.91 on 357 degrees of freedom
Residual deviance: 124.93 on 352 degrees of freedom
(165 observations deleted due to missingness)
AIC: 134.93
Number of Fisher Scoring iterations: 123
并得到了同样的错误,如下:
Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred
其中,如果我不加-1
删除拦截我不明白。
因此,我有两个问题要问:
1.是否有可能对我来说,忽略此警告消息?
2.否则,可能我知道我可以根据这个警告信息解决这一问题?
我会尽量提供一个答案的问题。
什么是警告的意思吗?警告时给出的数值精度可能会在某些观察问题。小量或等效0 +ε - 更确切地说,它在拟合模型,返回1的概率的情况下,给定的。作为标准这个边界是1-10 ^ -8和10 -8分别^为标准glm.fit功能(如由给定glm.control)。
当可能出现这种情况?我的体验,这个最经常发生的情况下,是其结局只有一个在一个产品类别观察到其中的因素(或虚拟变量)都包括在内,该情况。这种情况最常见的相互作用时,包括在很多层面,并为分析数据有限的因素。类似地,如果一个相比观测值的数目有许多变量(计数中使用的变量,交互变换等作为单独的变量,所以总数将是所有这些的总和),类似的图像将成为可能。在你的情况,如果你有因素,消除截距将增加1级到每一个因素,这可能会降低精度0的概率边缘情况附近,1。总之,如果我们的数据的某些部分,我们没有(或很少)的不确定性,那么,该警报将会给我们的指示。
可我,否则我怎么能解决这个问题忽略它?这是依赖于手头的问题,而问题的规模。一些消息来源,像John Fox,可能会考虑这些意见可能的异常,并有很好的论点提出了基地GLM使用影响的措施(在car
包基地GLM菱)之后除去这些或执行一些异常测试(在car
包也菱),如果这是你的工作领域中的一个选项。如果这些显示它们不会影响健康,你就不会删除它们,因为会有这样做没有统计参数。
如果异常值去除是不是在你的工作领域中的选项,然后降阶模型(一般不太变量)可能会帮助,如果是这样的原因,或者如果要素的数量事业合并范围内的因素水平可能给一些更好的结果。
其他来源可能有其他的建议,但John Fox是对这些模型类型对象的可靠来源。它成为一个问题“是我的模型正确指定?”,“如何严重不会影响我的模型?和“多少钱你允许你的工作行吗?”,而下面的统计范围内的一般理论和指导方针。接近0和1的概率是不太可能精确,更可能是由于数值的印象,但如果这些都没有,你有可能预测的情况下,并没有对模型的其余部分没有显著的影响,这不一定是一个问题,可能会被忽略。
正确回答这个问题的是,拦截不应在回归去除。固定警告消息,而无需固定模型的误规范是不恰当的做法。
在正确地完成逻辑回归,此错误信息可以显示出来时,有完美的分离(预测完全解释手头的数据样本中的类成员的组合),并有完善的方式来处理这一现象为例子来说明上this page。
它是,但是,不适当去除拦截在逻辑回归模型。见this page和评论的广泛讨论上Cross Validated这个问题的重复张贴,尤其https://stats.stackexchange.com/questions/11109/how-to-deal-with-perfect-separation-in-logistic-regression其中包括许多建议。