为什么 Pearson 的卡方检验可以检测 GLM 模型无法检测到的差异?

机器算法验证 广义线性模型 卡方检验 列联表
2022-04-14 04:11:24

如何解释以下结果?我有 4 个组,每个组大约有 300 个观察值:

        Black  Red
Group A   296   14
Group B   292   16
Group C   301    7
Group D   289   23

我想测试这些群体是否有不同的Red结果倾向。

当我使用 Pearson 的卡方检验时,p.value 为 0.03,这似乎表明群体具有不同的倾向。但是,如果我将差异建模为二项式,则估计的 GLM 不会检测到组间的显着差异。

1个回答

我没有看到结果有很大的不同:

d = read.table(text="Group Black  Red
                         A   296   14
                         B   292   16
                         C   301    7
                         D   289   23", header=T)

chisq.test(d[,2:3])
#  Pearson's Chi-squared test
# 
# data:  d[, 2:3]
# X-squared = 8.893, df = 3, p-value = 0.03075
mod = glm(cbind(Black, Red)~Group, data=d, family=binomial)
summary(mod)
# ...
# Coefficients:
#             Estimate Std. Error z value Pr(>|z|)    
# (Intercept)   3.0513     0.2735  11.156   <2e-16 ***
# GroupB       -0.1471     0.3751  -0.392    0.695    
# GroupC        0.7099     0.4701   1.510    0.131    
# GroupD       -0.5204     0.3489  -1.491    0.136    
# ...
# 
#     Null deviance: 9.3651e+00  on 3  degrees of freedom
# Residual deviance: 1.1902e-13  on 0  degrees of freedom
# AIC: 25.699
1-pchisq((9.3651 - 1.1902e-13), df=(3-0))
# [1] 0.02481063

如果有的话,GLM 稍微重要一些。我想知道这是否是关于如何解释具有分类变量的模型的统计输出的混淆。当你有一个分类变量时,大多数软件(包括上面的 R)都使用参考单元编码(见这里)。变量的第一个级别成为截距,其他级别与截距进行比较。因此,输出显示B,C和 与D没有显着差异A,但这并不意味着它们彼此没有差异(CD看起来他们会的,例如)。要测试整个因子/分类变量是否显着,您需要拟合没有该变量的新模型并执行嵌套模型测试。由于您只有一个变量,您可以直接使用零偏差和残差来计算整个模型的显着性(参见此处)。