以下解释不仅限于逻辑回归,而且在法线回归和其他GLM中同样适用。通常,R
不包括一个类别的分类,系数表示每个类别与该参考类别(或有时称为基准类别)之间的差异(这称为伪编码或中的处理对比度R
,有关不同对比度选项的详细概述,请参见此处)。要查看当前的对比度R
,请键入options("contrasts")
。通常,R
按字母顺序对分类变量的级别进行排序,并将第一个作为参考类。这并不总是最佳的,可以通过键入来更改(这里,我们将在新变量中将引用类设置为“ c”)new.variable <- relevel(old.variable, ref="c")
。对于分类变量的每个级别的每个系数,执行Wald检验以测试参考类别和其他类别的系数之间的成对差异是否为零。这就是回归表中的和值。如果只有一个类别类是显著,但这并不意味着整个变量是没有意义的,应该从模型中删除。可以通过执行一个检查变量的整体效果似然比检验:配合两种模式,一种具有和一个没有变量和类型中(见下例)。这是一个例子:žpanova(model1, model2, test="LRT")
R
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
rank1
rank
rank1
rank
rank1
rank2
− 0.675rank1
rank2
− 3.99 − 0.675 = − 4.67rank1
rank1
。您还可以通过添加- 1
到模型公式中以直接查看所有系数来拟合模型而不会产生截距:
my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")
summary(my.mod2) # no intercept model
Coefficients:
Estimate Std. Error z value Pr(>|z|)
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank1 -3.989979 1.139951 -3.500 0.000465 ***
rank2 -4.665422 1.109370 -4.205 2.61e-05 ***
rank3 -5.330183 1.149538 -4.637 3.54e-06 ***
rank4 -5.541443 1.138072 -4.869 1.12e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
请注意,截距现在消失了,并且的系数rank1
正好是第一个模型的截距。在此,Wald检验不是检查系数之间的成对差异,而是检查每个系数为零的假设。同样,我们有证据表明每个系数都rank
不同于零。最后,要检查整个变量是否rank
提高了模型拟合度,我们对一个带有(my.mod1
)的模型和一个没有变量rank
(my.mod2
)的模型进行拟合,然后进行似然比检验。这检验了所有系数rank
为零的假设:
my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank
anova(my.mod1, my.mod2, test="LRT")
Analysis of Deviance Table
Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 394 458.52
2 397 480.34 -3 -21.826 7.088e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
似然比检验非常重要,我们可以得出结论,该变量rank
应保留在模型中。
这篇文章也很有趣。
admit ~ 1
为vsadmit ~ rank - 1
?