es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Resumen del modelo: Diferentes formatos para estimaciones y estadísticas.

En primer lugar, gracias al creador del paquete modelsummary, ¡muy útil!

Tengo una pregunta sobre diferentes fmt para estadísticas y estimaciones. Aquí tienes un reprex:

    url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv'
dat <- read.csv(url)
models <- list(
  "OLS 1"     = lm(Donations ~ Literacy + Clergy, data = dat),
  "Poisson 1" = glm(Donations ~ Literacy + Commerce, family = poisson, data = dat),
  "OLS 2"     = lm(Crime_pers ~ Literacy + Clergy, data = dat),
  "Poisson 2" = glm(Crime_pers ~ Literacy + Commerce, family = poisson, data = dat),
  "OLS 3"     = lm(Crime_prop ~ Literacy + Clergy, data = dat)
)
modelsummary(models)
modelsummary(models, output = "flextable", estimate=glue_col("{estimate}{stars}"),
             statistic = 'statistic', stars = c('*' = .1, '**' = .05, '***'=0.01))

¿Cómo puedo hacer que las estadísticas t debajo de los coeficientes tengan 2 dígitos significativos y las estimaciones 3? Para que el primer par coeficiente-estadística sea:
7948.667
(2078.27)

He revisado la documentación pero no he encontrado la respuesta. ¡Gracias de antemano!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para tener diferentes fmt para estadísticas y estimaciones en modelsummary, puedes usar el argumento fmt dentro de glue. Aquí tienes el código modificado que produce la salida deseada:

    url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv'
    dat <- read.csv(url)
    models <- list(
      "OLS 1"     = lm(Donations ~ Literacy + Clergy, data = dat),
      "Poisson 1" = glm(Donations ~ Literacy + Commerce, family = poisson, data = dat),
      "OLS 2"     = lm(Crime_pers ~ Literacy + Clergy, data = dat),
      "Poisson 2" = glm(Crime_pers ~ Literacy + Commerce, family = poisson, data = dat),
      "OLS 3"     = lm(Crime_prop ~ Literacy + Clergy, data = dat)
    )
    modelsummary(models, output = "flextable", statistic = c(glue("{statistic:.2f}")),
                 estimate = c(glue("{estimate:.3g}"), glue("({se:.2g})")))
    

    En el código anterior, pasamos una lista con dos funciones glue al argumento estimate. La primera función glue formatea la estimación con 3 dígitos significativos, mientras que la segunda función glue formatea el error estándar con 2 dígitos significativos y agrega paréntesis alrededor de él. De manera similar, utilizamos una función glue para formatear el argumento de la estadística y tener dos dígitos significativos.

Comments are closed.