如何从stargazer的结果表中省略回归截距?

8

我运行了一种回归类型的分析

model <- lm(y~x1+x2+x3, weights = wei, data=data1)

然后创建我的表格

,t <- stargazer(model, omit="x2", omit.labels="x1")

但我还没有找到一种方法可以从表格中省略拦截结果。我需要它在回归中,但我不想在表格中显示它。

有没有办法通过stargazer来实现?

2个回答

14

我没有你的数据集,但输入 omit = c("Constant", "x2") 应该可以解决问题。

作为一个可重现的示例(stargazer 5.2)

stargazer::stargazer(
  lm(Fertility ~ . , 
     data = swiss), 
  type = "text", 
  omit = c("Constant", "Agriculture"))

编辑:添加了omit.labels


mdls <- list(
  m1 = lm(Days ~ -1 + Reaction, data = lme4::sleepstudy),
  m2 = lm(Days ~ Reaction, data = lme4::sleepstudy),
  m3 = lm(Days ~ Reaction + Subject, data = lme4::sleepstudy)
)

stargazer::stargazer(
  mdls, type = "text", column.labels = c("Omit none", "Omit int.", "Omit int/subj"),
  omit = c("Constant", "Subject"),
  omit.labels = c("Intercept", "Subj."),
  keep.stat = "n")
#> 
#> ==============================================
#>                     Dependent variable:       
#>              ---------------------------------
#>                            Days               
#>              Omit none Omit int. Omit int/subj
#>                 (1)       (2)         (3)     
#> ----------------------------------------------
#> Reaction     0.015***  0.027***    0.049***   
#>               (0.001)   (0.003)     (0.004)   
#>                                               
#> ----------------------------------------------
#> Intercept       No        No          No      
#> Subj.           No        No          No      
#> ----------------------------------------------
#> Observations    180       180         180     
#> ==============================================
#> Note:              *p<0.1; **p<0.05; ***p<0.01

使用reprex包(v0.3.0)于2020-05-08创建

���注意,表格应该读成什么。这似乎是一个bug(stargazer 5.2.2)。

#> Intercept       No        Yes       Yes    
#> Subj.           No        No        Yes  

如果您不想使用 omit 来进行其他用途(例如折叠和命名固定效应),则此方法可行。例如,如果您还传递了 omit.labels=c("ag"),则此方法将失败。 - Max Ghenis
@MaxGhenis omitomit.labels 必须具有相同的长度,因此 omit.labels = c("Intercept", "ag") 将起作用。 - JWilliman
但是这样会显示截距。c(NULL, "ag") 会抛出一个错误。我认为没有办法在显示固定效应的同时隐藏截距。 - Max Ghenis
@MaxGhenis omit.labels 的目的是指示“在给定模型中是否省略了变量”,在我看来,这包括截距。不幸的是,目前 stargazer 存在一个错误(正如您已经注意到的那样!)。请参见 https://dev59.com/UloT5IYBdhLWcg3wngq1。 - JWilliman

3

我知道一种方法来做这件事。虽然不是最聪明的方法,但是可以解决问题。

我只需将省略命令更改为保留命令即可。在我上面的示例中:

library(stargazer) 

model <- lm(y~x1+x2+x3, weights = wei, data=data1)
t <- stargazer(model, keep=c("x1","x3"), omit.labels="x1")

然而,当你有许多想要保留在回归表中的变量时,这并不是一种有效的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接