【问题标题】:Why does summary() show different standard errors than coeftest()?为什么 summary() 显示的标准错误与 coeftest() 不同?
【发布时间】:2021-12-26 10:40:47
【问题描述】:

我使用稳健的标准错误运行 glm()。对于随后的模型比较,我计算了两个回归模型的差异(系数和 se)。对于该计算,我使用 summary() 函数。但是,模型的汇总函数显示的标准错误与我从 coeftest() 获得的标准错误不同。系数值保持不变。

输入:

mod.01 <- glm(dep ~ indep1 + indep2 + indep3,
          family = binomial (link = "logit"), data = data)
coeftest(mod.01, vcov. = vcovHC, type= "HC3", df = NULL)

summary(mod.01, robust=T)

输出:

coeftest()      
                           Estimate  Std. Error  t value  Pr(>|t|)    
    (Intercept)         -2.72917626  0.16367787 -16.6741 < 2.2e-16 ***
    indep1               0.00427870  0.41928906   0.0102  0.991859    
    indep2               2.00243724  0.19757861  10.1349 < 2.2e-16 ***
    indep3               0.36385098  0.32783817   1.1098  0.267159    


summary()
                           Estimate Std. Error z value Pr(>|z|)    
    (Intercept)          -2.7291763  0.1758744 -15.518  < 2e-16 ***
    indep1                0.0042787  0.3389472   0.013  0.98993    
    indep2                2.0024372  0.1746829  11.463  < 2e-16 ***
    indep3                0.3638510  0.2604196   1.397  0.16236  

如何将 mod.01 的强大 se 放入汇总函数中?所以最终我的后续计算包括正确的鲁棒性 se 也将显示在回归表中。

提前致谢!

【问题讨论】:

    标签: r glm summary


    【解决方案1】:

    lmtest::coeftest 的优点是可以使用不同于lm() 计算的协方差矩阵。

    fit <- glm(am ~ hp + cyl, family=binomial(link="logit"), mtcars)
    
    summary(fit)
    #             Estimate Std. Error z value Pr(>|z|)   
    # (Intercept)  5.83220    2.06595   2.823  0.00476 **
    # hp           0.02775    0.01366   2.031  0.04228 * 
    # cyl         -1.70306    0.60286  -2.825  0.00473 **
    

    如果将lm() 的初始协方差矩阵放入coeftest,则标准误差是相同的。

    library(sandwich); library(lmtest)
    
    coeftest(fit, vcov.=vcov(fit))
    #              Estimate Std. Error z value Pr(>|z|)   
    # (Intercept)  5.832204   2.065949  2.8230 0.004757 **
    # hp           0.027748   0.013664  2.0307 0.042282 * 
    # cyl         -1.703064   0.602862 -2.8250 0.004729 **
    

    计算稳健的标准误差

    现在,使用coeftest,我们可以指定不同的协方差矩阵。 (旁注: 具有“稳健”标准错误的实际一个,也称为白色标准错误,用type='HC0' 指定,另一个'HC*' 是细化的,例如Stata 使用'HC1') .

    (ct <- coeftest(fit, vcov.=vcovHC(fit, type='HC0')))
    #              Estimate Std. Error z value Pr(>|z|)   
    # (Intercept)  5.832204   2.139307  2.7262 0.006407 **
    # hp           0.027748   0.012254  2.2643 0.023553 * 
    # cyl         -1.703064   0.572045 -2.9772 0.002909 **
    

    这就是您从coeftest 获得不同标准错误的方式。

    发布具有稳健标准误差的表格

    要将这些已更正的标准错误放在一个表格中,这里有一种使用texreg::screenreg 的方法。你也可以给我们texreg::texreg 用于 LaTeX 或texreg::htmlreg 用于 HTML,正文基本保持不变。

    这里有传统的标准错误,

    texreg::screenreg(fit)
    # =========================
    #                 Model 1  
    # -------------------------
    # (Intercept)       5.83 **
    #                  (2.07)  
    # hp                0.03 * 
    #                  (0.01)  
    # cyl              -1.70 **
    #                  (0.60)  
    # -------------------------
    # AIC              34.63   
    # BIC              39.02   
    # Log Likelihood  -14.31   
    # Deviance         28.63   
    # Num. obs.        32      
    # =========================
    # *** p < 0.001; ** p < 0.01; * p < 0.05
    

    这里有强大的标准错误,p-值和标准错误都需要被覆盖。

    texreg::screenreg(fit, 
                      override.pvalues=ct[, 4],
                      override.se=ct[, 3])
    # =========================
    #                 Model 1  
    # -------------------------
    # (Intercept)       5.83 **
    #                  (2.73)  
    # hp                0.03 * 
    #                  (2.26)  
    # cyl              -1.70 **
    #                 (-2.98)  
    # -------------------------
    # AIC              34.63   
    # BIC              39.02   
    # Log Likelihood  -14.31   
    # Deviance         28.63   
    # Num. obs.        32      
    # =========================
    # *** p < 0.001; ** p < 0.01; * p < 0.05
    

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 2021-01-20
      相关资源
      最近更新 更多