【问题标题】:Mixing and matching covariates from multinom models in stargazer在观星者中混合和匹配来自多项模型的协变量
【发布时间】:2020-09-23 15:19:17
【问题描述】:

我正在尝试混合和匹配一些多项逻辑回归模型的一些系数,以显示它们如何在模型中单独进行比较。我想要的输出是来自m1var2 的选项B 和C 的系数,然后是来自m2var3 的选项B 和C 的系数,但出于我的目的,我想要它们在两列中(例如 B 和 C),而不是并排的.. 是不是因为元素 (Intercept) 和 Constant 不匹配?

# Fake data
var1<-sample(c('A', 'B', 'C'), replace = T, size=100)
var2<-sample(c(0,1), size=100, replace=T)
var3<-rnorm(100, mean=10, sd=2)
#Turn into a data frame
df<-data.frame(var1, var2, var3)
#make multinomial models
library(nnet)
m1<-multinom(var1~var2, data=df)
m2<-multinom(var1~var3, data=df)
m3<-multinom(var1~var2+var3, data=df)

#

summary(m1)$coefficients
summary(m2)$coefficients

#This doesn't work, but I thought it would
stargazer(m3, type="text", coef=list(summary(m1)$coefficients[,2], summary(m2)$coefficients[,2]))

我希望看到这样的东西。

|Covariate                   | B     | C.   |
| var2 from m1               | 0.5   | -0.2 |
| std.error for var2 from m1 | (0.1) | (0.2)|
| var3 from m2               | 0.2   | -0.4.|
| std.error for var3 from m2 | (0.3) | (0.2)|  

【问题讨论】:

  • 您介意显示您的预期输出吗?
  • 我觉得很难做到这一点。我想我可以试试。
  • 我不知道multinom 函数,但根据summary(m1)$coefficients,您的预期输出是否正确?您能否输入您的预期输出:| var2 from m1 | summary(m2)$coefficients[1,2] | summary(m1)$coefficients[1,2] |

标签: r stargazer


【解决方案1】:

我的modelsummary package 的开发版包含一个名为modelsummary_wide 的功能,可以为所欲为(包括:自我宣传提醒)。此功能在 CRAN 上出现时应该在 0.6.3 版本中可用。在此之前,您可以从 github 安装它:

library(remotes)
install_github("vincentarelbundock/modelsummary")

完全重新启动您的 R 会话以确保新安装生效。然后,使用nnet 包模拟数据并估计两个多项回归模型:

library(nnet)
library(modelsummary)

var1 <- sample(c('A', 'B', 'C'), replace = T, size=100)
var2 <- sample(c(0,1), size=100, replace=T)
var3 <- rnorm(100, mean=10, sd=2)
var4 <- rnorm(100, mean=10, sd=2)
df1 <- data.frame(var1, var2, var3, var4)

var1 <- sample(c('A', 'B', 'C'), replace = T, size=100)
var2 <- sample(c(0,1), size=100, replace=T)
var3 <- rnorm(100, mean=10, sd=2)
df2 <- data.frame(var1, var2, var3)

models <- list(
  multinom(var1~var2+var4, data=df1),
  multinom(var1~var2+var3, data=df2)
)

最后,我们使用modelsummary_wide函数来绘制表格:

modelsummary_wide(models, output="markdown")

|                    |B       |C       |
|:-------------------|:-------|:-------|
|Model 1 (Intercept) |-0.783  |0.580   |
|                    |(1.377) |(1.399) |
|Model 1 var2        |0.462   |-0.119  |
|                    |(0.479) |(0.501) |
|Model 1 var4        |0.033   |-0.091  |
|                    |(0.132) |(0.138) |
|Model 2 (Intercept) |0.635   |-0.032  |
|                    |(1.322) |(1.265) |
|Model 2 var2        |-0.457  |-0.125  |
|                    |(0.519) |(0.483) |
|Model 2 var3        |-0.045  |0.031   |
|                    |(0.127) |(0.120) |
|Model 1 AIC         |227.417 |        |
|Model 1 deviance    |215.417 |        |
|Model 1 edf         |6.000   |        |
|Model 1 nobs        |100     |        |
|Model 2 AIC         |228.988 |        |
|Model 2 deviance    |216.988 |        |
|Model 2 edf         |6.000   |        |
|Model 2 nobs        |100     |        |

请注意,modelsummary_wide 仍处于试验阶段。它的 API(甚至函数的名称)在正式发布之前可能会有所改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多