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 predecir el ln(odds) con un término rcs en un modelo logístico de efectos mixtos en R?

Estoy utilizando el paquete “lme4” para ajustar un modelo logístico no lineal de efectos mixtos para evaluar la asociación entre Y y X. Como la variable de respuesta de mis datos es binaria y la función nlmer requiere que la variable de respuesta sea continua, utilizo la función glmer y la función rcs del paquete “rms” para ajustar el modelo y visualizar la asociación no lineal, como se muestra en el código R a continuación:

library(lme4)
library(rms)
m <- glmer(r2 ~ rcs(Anger, 5) + Gender + situ + btype + (1 | id),
           data = VerbAgg, family = binomial("logit"),
           control = glmerControl(optimizer = "bobyqa"))
p <- predict(m, newdata = VerbAgg, type = "link")
scatter.smooth(VerbAgg$Anger, p, pch = '.', col = "blue", lpars = list(type = 'l', col = "red"))

Tengo algunas preguntas sobre el uso de este código:

  1. ¿Es correcto el código?
  2. ¿Cómo predecir el ln(Odds) de r2? ¿Es correcto utilizar “p <- predict(m, newdata = VerbAgg, type = “link”)”?
  3. ¿Cómo visualizar la curva spline del ln(Odds) de r2 y Anger? ¿Es correcto utilizar la función “scatter.smooth” para graficar y agregar una curva suave a los puntos dispersos?
  4. ¿Cómo obtener el valor P-no lineal para este modelo?
Tags:  , , , ,

Answer

  1. Avatar for davy.ai
    1. Sí, el código se ve correcto para ajustar un modelo logístico no lineal de efectos mixtos utilizando la función glmer y la función rcs del paquete rms para visualizar la asociación no lineal entre Y y X.
    2. Sí, el código “p <- predict(m, newdata = VerbAgg, type = “link”)” predice el ln(Odds) de r2.

    3. Sí, es correcto usar la función “scatter.smooth” para trazar y agregar una curva suave al diagrama de dispersión de Anger vs ln(Odds) de r2. Esto ayudará a visualizar la asociación no lineal entre las dos variables.

    4. Para obtener el P-no lineal para este modelo, puedes usar la función ANOVA del paquete car y comparar el modelo con el término no lineal (es decir, la función rcs) con el modelo sin el término no lineal. El P-no lineal es el valor p asociado con el término no lineal en el modelo. Por ejemplo:

    library(car)
    anova(m, update(m, . ~ . - rcs(Anger, 5)), test = "Chisq") 
    # esto dará la prueba de razón de verosimilitud para el término no lineal, y el P-no lineal se puede encontrar en la columna "Pr(>Chisq)".
    

    Ten en cuenta que esto asume que el modelo ya está correctamente especificado y que se han realizado otras pruebas de diagnóstico para asegurar que el modelo se ajuste bien a los datos.

Comments are closed.