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.

Cómo trazar datos predichos de un GLMM del paquete glmmTMB?

Tengo los siguientes datos y he creado un modelo con el paquete glmmTMB en R para diámetros de plantas ~ densidad de plantas (número de plantas) con un efecto aleatorio de parcela:

d <- data.frame(diameter = c(17,16,15,13,11,19,17,15,11,11,19,15,14,11,8),
                      plant_density = c(1000,2000,3000,4000,5000,1000,2000,3000,4000,5000,1000,2000,3000,4000,5000),
                      plot = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3))

glmm.model <- glmmTMB(diameter ~ plant_density + (1|plot),
                           data = d,
                           na.action = na.omit,
                           family = "gaussian",
                           ziformula = ~ 0)

Mi intención era crear un gráfico con datos de diámetro predichos para diferentes densidades de plantas con un efecto aleatorio de parcela incluido. Así que intenté predecir los datos:

new.dat <- data.frame(diameter = d$diameter,
                         plant_density = d$plant_density,
                         plot = d$plot)
 
new.dat$prediction <- predict(glmm.model, newdata = new.dat, 
                                   type = "response", re.form = NA)

Desafortunadamente, obtengo una salida para cada parcela pero quería una predicción generalizada para el diámetro ~ densidad de plantas.

Mi objetivo es crear un gráfico como aquí, pero con un modelo de regresión de glmmTMB que considere el efecto aleatorio.

¡Gracias por tu ayuda!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener una predicción generalizada para el diámetro ~ densidad de plantas con un efecto de trazado aleatorio incluido, es necesario eliminar la variable de trazado del nuevo marco de datos utilizado para la predicción. Así es como puedes modificar tu código:

    “`{r}

    crear nuevo marco de datos sin la variable ‘plot’

    new.dat <- data.frame(plant_density = seq(from = 1000, to = 5000, by = 1000))

    predecir el diámetro para diferentes densidades de plantas

    new.dat$prediction <- predict(glmm.model, newdata = new.dat, type = “response”)

    trazar el diámetro predicho frente a la densidad de plantas

    library(ggplot2)
    ggplot(new.dat, aes(plant_density, prediction)) +
    geom_line(size = 1) +
    xlab(“Densidad de Plantas”) +
    ylab(“Diámetro Predicho”) +
    theme_minimal()
    “`

    Este código te dará un gráfico similar al mostrado en el enlace que proporcionaste, pero con predicciones de tu modelo glmmTMB.

Comments are closed.