使用stargazer()函数报告回归边际效应

3

我想使用stargazer()报告边际效应,而不是常规估计效应。

当估计边际效应时,结果被转换为矢量,如果它是glm/lm对象,我将无法以实用的方式和相同类型的信息进行报告。

以下是一个简单的示例:

library(dplyr)
library(stargazer)

#we create a toy data frame
pikachu <- data.frame(
employed=c(0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,1,1,0,1,0,1,0),
                      highiq=c(1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,0),
                      income=set.seed(6)%>%
                        c(rnorm(25,mean = 600,sd=400)))

#and run a probit regression
reg01 <- glm(employed ~ income + highiq,
             family = binomial(link="probit"),
             data = pikachu)

#next we estimate the marginal effects
ProbitScalar <- mean(dnorm(predict(reg01, type = "link")))
meffects <- ProbitScalar * coef(reg01)

#then we report the marg. effects
stargazer(meffects, type = "text")

我希望能够像通常的结果(glm类对象)一样表达边际效应。最好包括标准误和显著性。

#desired result's form:
stargazer(reg01, type = "text")

pikachu 中没有 sex 变量。如果您想要您的示例可重现,请提供正确的数据框。 - Vitali Avagyan
谢谢,Vitali!现在应该可以工作了。 - Flower
2
也许你可以使用stargazer(margins::marginal_effects(reg01), type = "text", summary = T)。虽然这不是你真正想要的,但它可以更快地计算边际效应并呈现一些摘要统计信息?! - Vitali Avagyan
1
虽然这不是答案,但肯定会有所帮助。顺便问一下,@VitaliAvagyan,有没有办法从这种报告中删除百分比统计数据? - Flower
也许可以在stargazer(..., summary.stat = ...)中进行更改? - Vitali Avagyan
2
(...,omit.summary.stat = ...)完美运行。 - Flower
1个回答

0
据我所知,使用stargazer()无法实现此功能,但使用modelsummarymarginaleffects包非常容易实现(免责声明:我是作者)。
library(marginaleffects)
library(modelsummary)

set.seed(6)
pikachu <- data.frame(
    employed = c(0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0),
    highiq = c(1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0),
    income = c(rnorm(25, mean = 600, sd = 400)))

reg01 <- glm(employed ~ income + highiq,
             family = binomial(link="probit"),
             data = pikachu)

mfx <- marginaleffects(reg01)

modelsummary(mfx)
模型1
高智商 0.130
(0.197)
收入 0.000
(0.000)
观测数 25
AIC 38.3
BIC 42.0
对数似然 -16.167
F值 0.943
均方根误差 1.21

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