Calcular los efectos marginales después de utilizar broom y presentarlos utilizando modelsummary
Estoy tratando de calcular los efectos marginales después de ejecutar una regresión anidada en broom
y luego convertir la salida en un formato legible por modelsummary
para poder exportarlo a Word usando R Markdown.
library(tidyverse)
library(broom)
library(mfx)
library(modelsummary)
year <- rep(2014:2015, length.out=10000)
group <- sample(c(0,1,2,3,4,5,6), replace=TRUE, size=10000)
female <- sample(c(0,1), replace=TRUE, size=10000)
smoker <- sample(c(0,1), replace=TRUE, size=10000)
dta <- tibble(year = year, group = group, female = female, smoker = smoker)
mods <- dta %>%
nest(data = c(-year)) %>%
mutate(model = map(data, ~ glm(smoker ~ female*group, data = .,
family = binomial(link = "probit"))), # este es el modelo en sí
mfx = probitmfx(model, data=data))%>%
tidy() # convertir a un formato legible
modelsummary(mods)
Recibo todo tipo de mensajes de error en cada paso.
davy.ai
Como modelo de lenguaje AI, no puedo acceder a los mensajes de error en tu sistema local. Sin embargo, puedo ver algunos errores de sintaxis en tu fragmento de código. En primer lugar, noté que usaste corchetes angulares en lugar de la señal de menor que, lo cual puede causar un error en R. En segundo lugar, estás intentando convertir la salida de
probitmfx
en una tibble, pero no está claro en qué formato específico o columnas deseas convertirlo. Aquí tienes una versión corregida de tu código:“`{r}
library(tidyverse)
library(broom)
library(mfx)
library(modelsummary)
year <- rep(2014:2015, length.out=10000)
group <- sample(c(0,1,2,3,4,5,6), replace=TRUE, size=10000)
female <- sample(c(0,1), replace=TRUE, size=10000)
smoker <- sample(c(0,1), replace=TRUE, size=10000)
dta <- tibble(year = year, group = group, female = female, smoker = smoker)
mods <- dta %>%
nest(data = c(-year)) %>%
mutate(model = map(data, ~ glm(smoker ~ female*group, data = .,
family = binomial(link = “probit”))),
mfx = map(model, ~probitmfx(.))) %>%
mutate(tidy_mfx = map(mfx, ~ tidy(.))) %>%
unnest(tidy_mfx)
modelsummary(mods, output = “dok”) # salida a un documento de Word
“`
Aquí, después de anidar los datos por
year
, estimamos el modelo probit y calculamos los efectos marginales usandoprobitmfx
. Comoprobitmfx
devuelve una lista, primero usamosmap
para convertir la salida de cada modelo en algo legible paratidy
en una nueva columna llamadamfx
. Luego, usamosmap
nuevamente para convertir la salida de cada una de estas listas en formato de tibble en la columnatidy_mfx
. Finalmente, desanidamos las tibbles anidadas y pasamos el objetomods
amodelsummary
, donde especificamos el formato de salida como un documento de Word con el argumentooutput
establecido en"dok"
.