【问题标题】:How to output several variables in the same row using stargazer in R如何使用R中的stargazer在同一行中输出多个变量
【发布时间】:2015-04-05 23:01:25
【问题描述】:

我想在同一行中输出多个回归的交互项,并将其称为“交互”。到目前为止,我所拥有的是交互项显示在两个不同的行中,称为“交互”(参见下面的代码)。

此问题已在此处提出,但我的分数还不够高,无法对其进行投票或评论:https://stackoverflow.com/questions/28859569/several-coefficients-in-one-line

library("stargazer")
stargazer(attitude)
stargazer(attitude, summary=FALSE)
# 2 OLS models with Interactions
linear.1 <- lm(rating ~ complaints + privileges + complaints*privileges
           , data=attitude)
linear.2 <- lm(rating ~ complaints + learning + complaints*learning, data=attitude)
stargazer(linear.1, linear.2, title="Regression Results", type="text", 
      covariate.labels=c("Complaints", "Privileges", "Interaction", "Learning", "Interaction"))

感谢您的帮助。

【问题讨论】:

  • 帖子链接已被删除。

标签: r latex regression interaction stargazer


【解决方案1】:

我认为这不是本机支持的,因为这不是一个好主意。您要求混淆表格中数字的含义,这对您的读者没有帮助。

现在声明的警告,您可以通过修改 lm 对象的内容来做到这一点:

# copy objects just for demonstration
m1 <- linear.1
m2 <- linear.2

# see names of coefficients
names(m1$coefficients)
# [1] "(Intercept)"           "complaints"            "privileges"            "complaints:privileges"
names(m2$coefficients)
# [1] "(Intercept)"         "complaints"          "learning"            "complaints:learning"

# replace names
names(m1$coefficients)[names(m1$coefficients) == "complaints:privileges"] <- "interaction"
names(m2$coefficients)[names(m2$coefficients) == "complaints:learning"] <- "interaction"

结果:

> stargazer(m1, m2, title="Regression Results", type="text")

Regression Results
==========================================================
                                  Dependent variable:     
                              ----------------------------
                                         rating           
                                   (1)            (2)     
----------------------------------------------------------
complaints                       1.114**         0.307    
                                 (0.401)        (0.503)   

privileges                        0.434                   
                                 (0.570)                  

learning                                        -0.171    
                                                (0.570)   

interaction                       -0.007         0.006    
                                 (0.008)        (0.009)   

Constant                          -7.737        31.203    
                                 (27.409)      (31.734)   

----------------------------------------------------------
Observations                        30            30      
R2                                0.692          0.713    
Adjusted R2                       0.657          0.680    
Residual Std. Error (df = 26)     7.134          6.884    
F Statistic (df = 3; 26)        19.478***      21.559***  
==========================================================
Note:                          *p<0.1; **p<0.05; ***p<0.01

【讨论】:

  • 谢谢,这正是我所需要的。在我的情况下这不会产生误导的原因是,在我的回归中,我有不同的 2 个回归量集及其交互(即 (x1, x2, x1*x2) 和 (x2, x3, x2*x3))。很抱歉在这里选择了一个带有 3 个回归量和 1 个交互的糟糕示例。
【解决方案2】:

以下回复:

reg ~ felm(....)
rownames(reg$coefficients)[rownames(reg$coefficients)=='oldname']<-'newname'
rownames(reg$beta)[rownames(reg$beta)=='oldname']<-'newname'

似乎适用于大多数情况。

虽然我有时会遇到问题。当 IV 与 felm 一起使用时,这是需要的。虽然可以很好地区分适合和不适合 IV 的变量,但与其他模型相比,表格会变得很麻烦!这种语法很有帮助。

【讨论】:

    【解决方案3】:

    如果有人想知道,我需要这个用于 felm 包的不同目的。为此需要以下代码:

    reg ~ felm(....)
    rownames(reg$coefficients)[rownames(reg$coefficients)=='oldname']<-'newname'
    rownames(reg$beta)[rownames(reg$beta)=='oldname']<-'newname'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多