【问题标题】:Regression table with clustered standard errors in R jupyter notebook?R jupyter笔记本中具有聚集标准错误的回归表?
【发布时间】:2019-12-23 05:18:06
【问题描述】:

我在 R 中使用 export_summs 制作回归表,但是当我使用 coeftest 获得聚集标准错误时,该表不再正确地在这些列中报告 NR^2。系数和标准误差看起来不错,只是缺少那些额外的统计数据。 (我习惯在Stata中使用outreg2,这要简单得多。)

我尝试使用tidy_override(),如此处最后一个示例中所建议的那样 (https://hughjonesd.github.io/huxtable/huxreg.pdf),没有任何变化。

# Reproducible example
datareg <- NULL
datareg$y <- rnorm(1000)
datareg$x <- rnorm(1000)
datareg$cluster_var <- rnorm(1000)
datareg <- data.frame(datareg)

reg0 <- lm(y ~ x
           , data = datareg)

reg1 <- coeftest(
            lm(y ~ x
           , data = datareg)
            , vcovCL, cluster = datareg$cluster_var)

export_summs(reg0, reg1,
   model.names = c("Basic", "Cluster SE"))

问题警告和输出:

【问题讨论】:

    标签: r regression


    【解决方案1】:

    Huxtable 作者在这里。这是使用tidy_override的方法:

    library(generics)
    library(huxtable)
    library(jtools)
    library(lmtest)
    library(sandwich)
    
    datareg <- NULL
    datareg$y <- rnorm(1000)
    datareg$x <- rnorm(1000)
    datareg$cluster_var <- rnorm(1000)
    datareg <- data.frame(datareg)
    
    reg0 <- lm(y ~ x, data = datareg)
    
    reg1 <- coeftest(reg0, vcovCL, cluster = datareg$cluster_var)
    
    reg1 <- tidy_override(reg1, glance = list(nobs = 1000L, r.squared = 0.000), 
          extend = TRUE) # extend = TRUE is important
    export_summs(reg0, reg1, model.names = c("Basic", "Cluster SE"))
    

    这给出了:

    ────────────────────────────────────────────────────
                           Basic          Cluster SE    
                     ───────────────────────────────────
      (Intercept)              -0.01            -0.01   
                               (0.03)           (0.03)  
      x                        -0.05            -0.05   
                               (0.03)           (0.03)  
                     ───────────────────────────────────
      N                      1000             1000      
      R2                        0.00             0.00   
    ────────────────────────────────────────────────────
      *** p < 0.001; ** p < 0.01; * p < 0.05.           
    
    Column names: names, Basic, Cluster SE
    

    这相当棘手,我感谢您的困难...因此我改进了huxreg 中的错误报告!

    【讨论】:

      【解决方案2】:

      这是一个错误消息相当清楚的情况:broom 包没有用于coeftest 对象的glance 方法。这并非偶然——coeftest 对象的性质不允许broom 计算模型汇总统计。它保留了关于原始模型的非常少的信息:

      > str(reg1)
       'coeftest' num [1:2, 1:4] 0.0483 0.0153 0.0329 0.0341 1.4668 ...
       - attr(*, "dimnames")=List of 2
        ..$ : chr [1:2] "(Intercept)" "x"
        ..$ : chr [1:4] "Estimate" "Std. Error" "t value" "Pr(>|t|)"
       - attr(*, "method")= chr "t test of coefficients"
       - attr(*, "df")= int 998
      

      一种选择是使用estimatr 包中的lm_robust 函数。它返回具有鲁棒标准错误的对象,这些错误适用于glancetidy

       reg2 <- estimatr::lm_robust(y ~ x
                  , data = datareg)
       export_summs(reg0, reg2,
          model.names = c("Basic", "Cluster SE"), number_format = NA )
      
      
      ──────────────────────────────────────────────────────────────────
                               Basic                  Cluster SE        
                    ────────────────────────────────────────────────────
        (Intercept)      0.0482678107925753        0.0482678107925755   
                        (0.032842483472098)       (0.0329070612421128)  
        x                0.0152928320138191        0.015292832013819    
                        (0.0333488383365212)      (0.034094868727288)   
                    ────────────────────────────────────────────────────
        N             1000                      1000                    
        R2               0.000210664993144995      0.000210665          
      ──────────────────────────────────────────────────────────────────
        *** p < 0.001; ** p < 0.01; * p < 0.05.                         
      
      Column names: names, Basic, Cluster SE
      

      【讨论】:

        猜你喜欢
        • 2013-05-06
        • 2021-12-25
        • 1970-01-01
        • 2023-03-24
        • 2017-08-18
        • 1970-01-01
        • 2018-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多