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.

MuMin extrae gam con efecto aleatorio.

Estoy utilizando la función dredge del paquete MuMin para un gam con un efecto aleatorio:

El modelo global utilizando bam del paquete mgcv es el siguiente. El efecto aleatorio es s(StationID, bs = 're')

“`{R}
gam_global <- bam(Numberpertow ~ s(interval, k=6) + Stratum + ClosArea + CruiseID +
s(interval, by=CruiseID, k=6) + offset(offset) +
s(StationID, bs = ‘re’), data = l.data, method = “REML”,
family = nb(), na.action = “na.fail”)


Cuando ejecuto la función dredge en el modelo global, el efecto aleatorio se elimina de un subconjunto de los modelos a medida que dredge recorre las diferentes opciones de modelos con y sin ciertas variables. No estoy interesado en determinar si se necesita el efecto aleatorio y necesito mantenerlo en todos los modelos como efecto aleatorio. También necesito retener el término de offset en todos los modelos. Después de realizar una búsqueda en la web, probé lo siguiente basado en esta publicación https://stackoverflow.com/questions/61064080/fixed-terms-in-dredge-function-mumin-in-gam He probado los siguientes dos enfoques sin éxito: ```{R} # Nombre genérico del efecto aleatorio como se muestra en la salida del resumen del modelo gam_dredge <- dredge(gam_global, evaluate = TRUE, fixed = c("offset(offset)", "s(StationID)"), rank = "AIC") # Nombre del efecto aleatorio como en el modelo gam_dredge <- dredge(gam_global, evaluate = TRUE, fixed = c("offset(offset)", "s(StationID, bs='re')"), rank = "AIC")

También he cambiado el método en el modelo bam de REML a GCV.Cp.

No he tenido éxito con ninguna iteración de dredge y obtengo lo siguiente cuando se ejecuta la parte de dredge:

{R}
Fixed terms are "offset(offset)" and "(Intercept)"

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para conservar el término aleatorio s(StationID, bs = 're') y el término de desplazamiento offset(offset) en todos los modelos utilizando la función dredge del paquete MuMin, puede probar lo siguiente:

    library(MuMIn)
    
    # generar modelo GAM global con efectos aleatorios
    gam_global <- bam(Numberpertow ~ s(interval,k=6) +
                        Stratum + ClosArea + CruiseID +
                        s(interval, by=CruiseID, k=6) +
                        s(StationID, bs = 're'),
                      data = l.data,
                      method = "REML",
                      family = nb(),
                      na.action = "na.fail")
    
    # especificar los términos del modelo a conservar en todos los modelos
    fixed_terms <- formula(gam_global)[c(1, 7)]     # incluye s(StationID, bs = 're') y offset(offset)
    
    # ejecutar dredge con los términos fijos especificados
    gam_dredge <- dredge(gam_global, evaluate = TRUE, fixed = fixed_terms, rank = "AIC")
    

    Esto debería conservar los términos fijos especificados en todos los modelos al ejecutar dredge. Tenga en cuenta que es importante especificar los términos como un objeto de fórmula (fixed_terms en el ejemplo anterior), en lugar de como un vector de caracteres.

Comments are closed.