【问题标题】:Order variables with interaction in stargazer regression output在观星者回归输出中具有交互作用的顺序变量
【发布时间】:2018-11-22 20:39:27
【问题描述】:

我有以下回归:

fit1 <- lm(y ~ x1, data = data)
fit2 <- lm(y ~ x1 + x2, data = data)
fit3 <- lm(y ~ x3 * x1, data = data)

我希望输出中的解释变量是有序的(x1、x2、x3,最后是交互)。我按顺序尝试以下操作,但交互仍然出现在 x1 之后。这里可能有什么问题?

stargazer(fit1, fit2, fit3, align=TRUE, table.placement="H",omit.stat=c("f", "ser"), order=c("x1", "x2", "x3", "x3:x1"))

【问题讨论】:

    标签: r stargazer


    【解决方案1】:

    order 的帮助文件指出“order - 正则表达式(或数字索引)的向量,指示变量在输出中出现的顺序”。所以你的字符串被解析为正则表达式,x1 匹配 x3:x1。你可以做一个数字顺序:

    stargazer(fit1, fit2, fit3, align=TRUE, 
     table.placement="H",omit.stat=c("f", "ser"), order=c(2,3,1,4,5))
    

    【讨论】:

    • 为什么你的订单向量中有五个元素?
    • 因为有一个常数
    【解决方案2】:

    如果您只有几个变量,数字顺序可以正常工作。如果您经常更改解释变量,您可能希望以自动方式设置顺序。

    假设您有一个变量名称向量,已经按正确的顺序排列。您可以将它们转换为“精确匹配正则表达式”:

        vars.order <- c("x1", "x2", "x3", "x3:x1")
        stargazer(fit1, fit2, fit3, align=TRUE, 
        table.placement="H",omit.stat=c("f", "ser"), order=paste0("^", vars.order , "$")
    

    到目前为止,这对我有用,但如果变量名包含特殊字符,您可能会遇到一些问题,例如:“。”或“*”。

    【讨论】:

      【解决方案3】:

      如果您也来这里寻找答案,我还注意到以下几点:

      首先,我同意 tino_ladino。如果你有很多变量,数字排序是不切实际的。因此,更重要的是让 RegEx 正确恕我直言。他与完全匹配的评论已经非常有价值(“^ $”),其中 ^ 表示开始,$ 表示术语的结束)。

      但请注意,如果您的交互变量是分类变量(例如,值为 TRUE / FALSE),Stargazer 的输出将不会在输出中显示该值,但要对其进行排序,您需要像在交互项中一样调用它(使用值,如 ModeratorTRUE)。所以:

      lm <- lm(DV ~ IV * Moderator) #Moderator being either TRUE or FALSE
      

      会产生这样的观星输出:

      IV
      Moderator
      IV:ModeratorTRUE
      Constant
      

      现在要订购版主,您不能只调用“^Moderator$”

      stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^Moderator$", "^IV:Moderator$"))
      

      它不会像您期望的那样捕获主持人,因为 stargazer 创建的内容似乎与它在内部处理变量的方式不同。要订购它,您需要调用“^ModeratorTRUE$”:

      stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", "^IV:Moderator$"))
      

      另一个注意事项:您也可以使用 RegEx 方式,例如有很多交互项你要在最后都显示在彼此的下面,只需用“:”调用它们,当然这里你不能调用完全匹配(“^ $”)

      stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", ":"))
      

      如果你想把交互放在主效应之下,你只能表示变量的结尾。然后交互将显示在下方,因为在 ModeratorTRUE:IV 格式中它也适合“IV$”。在这个例子中,只剩下一行显然没有意义,但你明白了。

      stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", "IV$"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        相关资源
        最近更新 更多