0

我正在学习准分离如何影响 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 fit 不会失败:

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 拟合结果?

4

1 回答 1

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 的 beta 系数: 隐含优势比 i:

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

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

于 2016-06-01T02:03:31.977 回答