【问题标题】:Remove GOF rows from texreg regression table从 texreg 回归表中删除 GOF 行
【发布时间】:2021-09-02 03:57:08
【问题描述】:

如何从 texreg 表中删除 gof 行?在我的具体情况下,我想删除 R2,Adj。 R2 和 F 统计行。

我使用的是 texreg 版本 1.37.5 和 R 版本 4.1.1。除了标题和系数之外,我从 texreg 获得的默认表格行是 R2,Adj。 R2,编号。 obs. 和 RMSE。

这里的答案(R texreg: How can I select the gof statistics to be displayed?)在下面的代码中实现但不起作用。自从发布此回复以来,该软件包可能在过去几年内发生了变化。

查看 omit.coef 部分下的 texreg 文档 here,表明您可以使用 extract 删除 gof 行,但链接已损坏。

SSCCE:

library(estimatr)
library(texreg)

set.seed(42)
x1 <- rnorm(1000)
x2 <- rnorm(1000)
y <- 0.5*x1 + x2 + rnorm(1000)

mod1 <- lm_robust(y ~ x1)
mod2 <- lm_robust(y ~ x1 + x2)

texreg(list(mod1, mod2), 
       include.rsquared = F, 
       include.adjrs = F)

【问题讨论】:

  • textreg() 函数中的参数已经排除了 R^2 ,adj。 R^2 和 F。我不明白你的问题。
  • 同意@ArielSC;除了系数之外,我还得到了 obs 数和 RMSE 的行。你能显示你得到的输出吗?
  • 我编辑了问题以阐明版本和默认输出

标签: r texreg


【解决方案1】:

此答案基于 texreg 版本 1.37.5。

观察对象属于lm_robust类:

> class(mod1)
## [1] "lm_robust"

可以显示对应extract方法的帮助页面如下:

?extract.lm_robust

## [..]
##
## extract.lm_robust(
##   model,
##   include.ci = TRUE,
##   include.rsquared = TRUE,
##   include.adjrs = TRUE,
##   include.nobs = TRUE,
##   include.fstatistic = FALSE,
##   include.rmse = TRUE,
##   include.nclusts = TRUE,
##   ...
##   )
##
## [...]

在您的示例中,您可以删除所有 GOF 行,如下所示:

screenreg(list(mod1, mod2),
  include.rsquared = FALSE,
  include.adjrs = FALSE,
  include.nobs = FALSE,
  include.rmse = FALSE)

## =========================================
##              Model 1        Model 2      
## -----------------------------------------
## (Intercept)   -0.01          -0.00       
##              [-0.10; 0.08]  [-0.07; 0.06]
## x1             0.49 *         0.48 *     
##              [ 0.40; 0.58]  [ 0.41; 0.54]
## x2                            0.98 *     
##                             [ 0.92; 1.05]
## =========================================
## * Null hypothesis value outside the confidence interval.

从 screenreg 更改为 texreg 以获得 LaTeX 输出。省略最后两个参数以仅删除 R 平方和调整后的 R 平方。默认情况下不报告 F 统计量。 (也许您使用的是旧版本的texreg?)

要在不使用这些参数的情况下删除统计信息,您还可以将 texreg 对象保存到中间对象中并在将它们交给相应的表格布局函数之前对其进行操作,如下例所示:

tr1 <- extract(mod1)
tr1@gof.names <- tr1@gof.names[-(1:2)]
tr1@gof.decimal <- tr1@gof.decimal[-(1:2)]
tr1@gof <- tr1@gof[-(1:2)]
screenreg(list(tr1, mod2))

## =========================================
##              Model 1        Model 2      
## -----------------------------------------
## (Intercept)   -0.01          -0.00      
##              [-0.10; 0.08]  [-0.07; 0.06]
## x1             0.49 *         0.48 *    
##              [ 0.40; 0.58]  [ 0.41; 0.54]
## x2                            0.98 *    
##                             [ 0.92; 1.05]
## -----------------------------------------
## Num. obs.    1000           1000         
## RMSE            1.41           1.03      
## R^2                            0.53      
## Adj. R^2                       0.53      
## =========================================
## * Null hypothesis value outside the confidence interval.

这需要更多的努力,但可以让您完全控制,如果您只想更改部分模型,这也适用。

【讨论】:

  • 来自 sessionInfo():我使用的是 texreg 版本 1.37.5。 R 版本 4.1.1 (2021-08-10)。平台:x86_64-apple-darwin17.0(64 位)。运行于:macOS Big Sur 11.3.1。使用 extract(mod1) 的答案底部的代码有效,谢谢!奇怪的是,上面使用 include.rsquared=F 等的代码不起作用,但在重新启动 Rstudio 后它会起作用。我会多玩一点,看看我是否可以重现以前的奇怪行为。可能是意外的包交互?
  • 我建议不要将TRUE 缩写为T,将FALSE 缩写为F,因为很容易用其他值覆盖T 和F。这可能是原因吗?只是猜测。
猜你喜欢
  • 2022-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多