【问题标题】:R stargazer package: eliminate "t =" label from reported test statisticsR stargazer 包:从报告的测试统计中消除“t =”标签
【发布时间】:2017-03-24 09:33:43
【问题描述】:

我目前正在使用 stargazer 准备一个回归结果表。在此,我还想展示 t 统计量。为此,我使用以下简化规范,如http://jakeruss.com/cheatsheets/stargazer.html#report-t-statistics-or-p-values-instead-of-standard-errors 中所示

stargazer(output, output2, type = "html",
      report = "vc*t")

结果表报告 t 统计量如下:

0.088    
t = 5.822***

现在我的问题是:每个模型和每个系数都重复“t =”。这在某种程度上是多余的,并降低了表格的可读性。

有没有办法只报告没有“t =”标签的 t-statistic 的值?最好只在括号中显示值。

谢谢!

【问题讨论】:

    标签: r stargazer


    【解决方案1】:

    这是可能的,但您必须编辑 stargazer 函数的源代码:

    1. 使用以下命令访问观星功能的编辑屏幕 trace(stargazer:::.stargazer.wrap, edit = T)
    2. 转到第 7103/7104 行(可能因您的观星者而异 版本,例如,对于版本 5.2.2,它现在的第 7053 和 7054 行。 2021 年 4 月)并寻找 .format.t.stats.left <- "t = ".format.t.stats.right <- "" 并根据自己的喜好对其进行编辑,例如, .format.t.stats.left <- "[".format.t.stats.right <- "]"
    3. 点击“保存”确认。
    4. 每次重新启动 R 会话时都必须重新执行此步骤,因为对源代码的更改只是暂时的。

    您的 stargazer(model1, type = "text", report = "vc*t")stargazer 输出应如下所示:

    =======================================================================
                                             Dependent variable:           
                                  -----------------------------------------
                                               daily_invcount2             
                                                  negative                 
                                                  binomial                 
    -----------------------------------------------------------------------
    log(lag_raised_amount + 1)                    -0.466***                
                                                  [-7.290]                 
                                                                           
    lag_target1                                   -0.661***                
                                                  [-7.680]                 
                                                                                                                                                                  
    Constant                                      -3.480**                 
                                                  [-5.490]                 
                   
    -----------------------------------------------------------------------
    Observations                                    6,513                  
    Log Likelihood                                 -8,834                
    theta                                     1.840*** (0.081)             
    Akaike Inf. Crit.                              17,924                
    =======================================================================
    Note:                         + p<0.1; * p<0.05; ** p<0.01; *** p<0.001
    

    【讨论】:

    • 很好的答案,但有没有办法永久应用更改,除非用户更新包?
    • 谢谢。不是真的——至少据我所知。这个答案:stackoverflow.com/questions/24331690/modify-package-function 提供了一些关于如何编写自定义函数然后用这个覆盖现有函数的想法。
    • 2021 年 4 月更新:如果您使用的是 stargazer 5.2.2,则要更改的行是 7053 和 7054。
    【解决方案2】:

    一种解决方法是捕获 stargazer 输出并对其进行编辑。这是一个示例,我将 stargazer 输出保存到文件中,然后从该文件中编辑出“t =”。

    stargazer.save <- function(f.out, ...) {
    # This is a wrapper function for saving stargazer output to file
    output <- capture.output(stargazer(...))
    cat(paste(output, collapse = "\n"), "\n", file=f.out, append=TRUE)
    }
    
    #save stargazer output (to e.g. a tex file)
    stargazer.save(outfile, model.fit, report = "vc*t")
    
    # read file back into R
    u = readChar(outfile, file.info(outfile)$size)
    
    # replace "t = " with a blank space
    u = gsub("t = ","", u, ignore.case = F)
    
    #write back to file
    cat(u, file = outfile, append = F)
    

    【讨论】:

      猜你喜欢
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多