准二分法GLM中的准分离是否重要?

时间:2016-06-01 01:45:51

标签: r glm logistic-regression mle

我正在学习准分离如何影响R二项式GLM。我开始认为在某些情况下无关紧要

在我的理解中,我们说数据具有准分离的时候 因子水平的某些线性组合可以完全识别故障/非故障。

所以我创建了一个在R中具有准分离的人工数据集:

fail <- c(100,100,100,100)
nofail <- c(100,100,0,100)
x1 <- c(1,0,1,0)
x2 <- c(0,0,1,1)
data <- data.frame(fail,nofail,x1,x2)
rownames(data) <- paste("obs",1:4)

然后当x1 = 1且x2 = 1(obs 3)时,数据始终不会失败。 在这个数据中,我的协变量矩阵有三列:截距,x1和x2。

在我的理解中,准分离导致无穷大的估计。所以glm fit应该失败。但是,以下glm适合不会失败:

summary(glm(cbind(fail,nofail)~x1+x2,data=data,family=binomial))

结果是:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.4342     0.1318  -3.294 0.000986 ***
x1            0.8684     0.1660   5.231 1.69e-07 ***
x2            0.8684     0.1660   5.231 1.69e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

标准。即使准分离,错误似乎也很合理。 谁能告诉我为什么准分离不影响glm拟合结果?

1 个答案:

答案 0 :(得分:3)

您构建了一个有趣的示例,但您没有测试实际检查您描述为准分离的情况的模型。当你说:“当x1 = 1且x2 = 1(obs 3)时,数据总是失败。”,你暗示在模型中需要一个交互项。请注意,这会产生“更有趣”的结果:

> summary(glm(cbind(fail,nofail)~x1*x2,data=data,family=binomial))

Call:
glm(formula = cbind(fail, nofail) ~ x1 * x2, family = binomial, 
    data = data)

Deviance Residuals: 
[1]  0  0  0  0

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.367e-17  1.414e-01   0.000        1
x1           2.675e-17  2.000e-01   0.000        1
x2           2.965e-17  2.000e-01   0.000        1
x1:x2        2.731e+01  5.169e+04   0.001        1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1.2429e+02  on 3  degrees of freedom
Residual deviance: 2.7538e-10  on 0  degrees of freedom
AIC: 25.257

Number of Fisher Scoring iterations: 22

人们通常需要非常怀疑β系数为2.731e + 01:隐式比值比i:

 > exp(2.731e+01)
[1] 725407933166

在这种工作环境中,Inf和725,407,933,166之间确实没有实质性区别。