Modelos Mixtos

DHARMa: residuos simulados

Residuos simulados para validar supuestos, detectar outliers y documentar desviaciones del modelo.

Datasets: progesterone (concentraciones hormonales por ciclo menstrual)

Objetivos de aprendizaje

  • Ajustar un LMM con pendiente aleatoria sobre datos hormonales.
  • Explicar por qué los residuos "crudos" de un LMM son difíciles de interpretar.
  • Generar y leer los residuos simulados de DHARMa (QQ-plot, residual vs. ajustado).
  • Aplicar pruebas formales de uniformidad, dispersión y outliers.
  • Documentar hallazgos diagnósticos con recomendaciones claras para el equipo clínico.

¿Por qué no basta con mirar los residuos "a mano"?

En un modelo de regresión simple, revisar residuos es sencillo: residuo vs. ajustado, QQ-plot, listo. En un LMM la historia es más compleja porque hay dos fuentes de variación (efectos aleatorios y residual) y los residuos "crudos" (yit−y^ity_{it} - \hat y_{it}) no siempre siguen una distribución conocida de forma simple, especialmente con tamaños de muestra pequeños o estructuras de covarianza complejas.

El paquete DHARMa (Diagnostics for HierARchical Models) resuelve esto con residuos simulados: simula muchas réplicas de la respuesta a partir del modelo ajustado, y compara dónde cae el valor observado dentro de esa distribución simulada. El resultado es un residuo con una interpretación uniforme(0,1) bajo un modelo correcto, sin importar la complejidad del LMM/GLMM subyacente.

El dataset de progesterona

Los niveles de progesterona (logp) siguen una curva característica a lo largo del ciclo menstrual: bajos en la fase folicular, con un pico marcado tras la ovulación. Ajustamos un LMM con time y group (por ejemplo, mujeres con anovulación vs. ciclos normales) como efectos fijos, y un intercepto y pendiente aleatorios por mujer.

Qué mirar en los gráficos de DHARMa

plot(sim) produce dos paneles clave:

  • QQ-plot de residuos uniformes: si el modelo es adecuado, los puntos deben caer sobre la línea diagonal. Desviaciones sistemáticas sugieren mala especificación de la distribución o de la parte sistemática del modelo.
  • Residual vs. predicho: busca patrones (curvas, abanicos). Un patrón en forma de abanico sugiere heterocedasticidad no modelada; una curva sugiere que falta un término no lineal (por ejemplo, un spline, Módulo 9).

Las pruebas formales complementan la inspección visual:

  • testUniformity(): prueba de Kolmogorov-Smirnov sobre los residuos simulados, un valor p pequeño indica que no siguen Uniforme(0,1).
  • testDispersion(): compara la varianza observada con la simulada, detecta sobre/sub-dispersión.
  • testOutliers(): identifica observaciones que caen fuera del rango de las simulaciones (outliers "DHARMa").

De los gráficos a las recomendaciones

Un diagnóstico no termina en "el modelo está mal" o "el modelo está bien": el valor real está en traducir los hallazgos en acciones concretas, ¿agregar un término no lineal?, ¿revisar una observación específica con el equipo clínico?, ¿reportar el hallazgo como limitación si no afecta las conclusiones principales?

Flujo de análisis

  1. 1

    Ajustar

    Especificar y ajustar el LMM con la estructura de efectos fijos/aleatorios que mejor representa el diseño del estudio.

  2. 2

    Simular

    simulateResiduals() genera réplicas de la respuesta bajo el modelo ajustado (típicamente 250-1000 simulaciones).

  3. 3

    Inspeccionar

    plot(sim) para revisar el QQ-plot y el patrón de residuos vs. predichos.

  4. 4

    Probar formalmente

    testUniformity(), testDispersion() y testOutliers() para cuantificar las desviaciones observadas.

  5. 5

    Documentar

    Traducir cada hallazgo en una recomendación: ajustar el modelo, revisar un dato puntual, o reportar como limitación.

Guía rápida de interpretación de las pruebas DHARMa
FunciónQué evalúaValor p pequeño sugierePosible acción
testUniformity()Los residuos simulados siguen U(0,1)Mala especificación de la distribución o la mediaRevisar familia/enlace, agregar términos no lineales
testDispersion()Varianza observada vs. simuladaSobre/sub-dispersiónAgregar efecto aleatorio adicional o término de dispersión
testOutliers()Observaciones fuera del rango simuladoPresencia de outliers influyentesInspeccionar esos sujetos/observaciones con el equipo clínico

Info: ¿cuántas simulaciones?

n = 250 suele ser suficiente para exploración rápida; para el reporte final usa n = 1000 o más, así las pruebas (KS, dispersión) son más estables y reproducibles.

Atención: un "p < 0.05" no es un veredicto automático

Con tamaños de muestra grandes, testUniformity() puede dar p pequeño ante desviaciones triviales. Combina siempre la prueba formal con la inspección visual y el juicio clínico sobre la magnitud del problema.

Ajustar el LMM y graficar las trayectorias
Generar y graficar los residuos simulados
Pruebas formales: uniformidad, dispersión y outliers

Repaso rápido: flashcards

Autoevaluación

1. ¿Qué distribución deberían seguir los residuos simulados de DHARMa si el modelo es correcto?

2. En plotResiduals(sim, form = prog$time), ¿qué estamos evaluando?

3. testOutliers(sim) señala varias observaciones como outliers. ¿Cuál es la mejor primera acción?


Apéndice: Diagnóstico por influencia — Distancia de Cook y DFBETAS

Más allá de los residuos, un análisis completo evalúa la influencia de observaciones y sujetos sobre los estimadores. Correa y Salazar (2016, Cap. 5) llaman a esto "diagnósticos vía eliminación de observaciones".

Distancia de Cook generalizada para LMM

Para el sujeto ii: D_i = \frac{(\hat\boldsymbol\beta_{(-i)} - \hat\boldsymbol\beta)^\top \widehat{\text{Var}}(\hat\boldsymbol\beta)^{-1} (\hat\boldsymbol\beta_{(-i)} - \hat\boldsymbol\beta)}{p} donde \hat\boldsymbol\beta_{(-i)} son los estimadores al excluir el sujeto ii y pp es el número de efectos fijos. Heurístico: Di>4/ND_i > 4/N sugiere influencia excesiva.

Distancia de Cook por sujeto con influence.ME
Efecto de eliminar el sujeto más influyente

Apéndice: Diagnóstico por influencia — Distancia de Cook y DFBETAS

Más allá de los residuos, un análisis de diagnóstico completo debe evaluar la influencia de observaciones y sujetos sobre los estimadores del modelo. Correa y Salazar (2016, Cap. 5) denominan a esto "diagnósticos vía eliminación de observaciones".

Tipos de influencia en modelos mixtos

  • Influencia en los efectos fijos (\hat\boldsymbol{\beta}): cuánto cambiaría β^j\hat\beta_j si elimináramos el sujeto ii o la observación (i,t)(i,t).
  • Influencia en los efectos aleatorios (\hat\mathbf{b}_i): cuánto cambia la predicción individual.
  • Influencia en la función de verosimilitud: distancia de Cook generalizada para LMM.

El paquete influence.ME (Nieuwenhuis et al., 2012) implementa estas medidas para modelos lmer.

Distancia de Cook generalizada para LMM

La distancia de Cook para el sujeto ii en un LMM se define como: D_i = \frac{(\hat\boldsymbol\beta_{(-i)} - \hat\boldsymbol\beta)^\top \text{Var}(\hat\boldsymbol\beta)^{-1} (\hat\boldsymbol\beta_{(-i)} - \hat\boldsymbol\beta)}{p} donde \hat\boldsymbol\beta_{(-i)} son los estimadores al excluir el sujeto ii, y pp es el número de efectos fijos. Un valor Di>4/ND_i > 4/N (criterio heurístico) sugiere influencia excesiva.

Distancia de Cook por sujeto con influence.ME
DFBETAS: impacto en los coeficientes individuales
Efecto de eliminar el sujeto más influyente