Comparación de modelos
Uso de AIC/BIC y pruebas de razón de verosimilitud para elegir entre especificaciones anidadas.
Datasets: SPRUCE1 (crecimiento de abetos Sitka, Control vs Ozone)
Objetivos de aprendizaje
- Diferenciar comparaciones de efectos fijos vs. efectos aleatorios y su requisito de ML.
- Calcular y comparar AIC, BIC y logLik para varias especificaciones anidadas.
- Aplicar e interpretar una prueba de razón de verosimilitud (LRT) con anova().
- Reconocer el problema del "boundary" al probar componentes de varianza.
- Comunicar al equipo clínico por qué se elige un modelo y no otro.
La pregunta detrás de la selección de modelos
Hasta ahora hemos construido modelos cada vez más ricos: efectos fijos, efectos aleatorios, estructuras de covarianza. La pregunta natural es: ¿vale la pena toda esa complejidad? Un modelo más complejo siempre se ajusta al menos igual de bien a los datos observados (en términos de verosimilitud), pero puede estar sobreajustando, capturando ruido en lugar de señal, y dificulta la interpretación.
AIC, BIC y el LRT son tres formas de responder "¿el ajuste extra justifica la complejidad extra?", cada una con su propia penalización.
AIC, BIC y logLik
donde es la log-verosimilitud del modelo, el número de parámetros estimados y el tamaño de muestra. Ambos criterios premian un mejor ajuste (mayor ) pero penalizan más parámetros; BIC penaliza más fuerte cuando es grande, por lo que tiende a favorecer modelos más simples que AIC. Menor valor = mejor, en ambos casos.
La prueba de razón de verosimilitud (LRT)
Para dos modelos anidados (el más simple es un caso particular del más complejo, fijando algunos parámetros en valores específicos, típicamente 0), la LRT compara:
donde es la diferencia en número de parámetros. anova(mod_simple, mod_complex) calcula automáticamente , los y el valor p asociado.
Efectos fijos vs. efectos aleatorios: ¡requiere ML!
Importante: REML produce estimaciones de varianza insesgadas, pero las verosimilitudes REML de modelos con distinta parte fija no son comparables. Por eso, para comparar modelos que difieren en sus efectos fijos (p. ej. ¿agregar la interacción tiempo×grupo?), deben reajustarse con REML = FALSE antes de aplicar AIC/BIC/LRT. Una vez seleccionada la parte fija, el modelo final se reajusta con REML (por defecto) para reportar.
El problema del "boundary" al probar varianzas aleatorias
Cuando la hipótesis nula es que una varianza de efecto aleatorio es cero (p. ej. ¿necesitamos la pendiente aleatoria, o basta?), el valor nulo está en el borde del espacio de parámetros (las varianzas no pueden ser negativas). Esto hace que la distribución estándar del LRT sea conservadora, el valor p real es aproximadamente la mitad del que reporta anova(). En la práctica, esto rara vez cambia la decisión cuando el LRT ya es claramente significativo o claramente no significativo, pero vale la pena tenerlo presente en casos límite.
De la tabla de criterios a la decisión
Una buena práctica es construir una tabla de candidatos (modelo, AIC, BIC, logLik, número de parámetros) y razonar en conjunto: si AIC y BIC coinciden en el ganador, la decisión es más robusta. Si discrepan, prioriza el criterio que mejor refleje tu objetivo (BIC si priorizas parsimonia/interpretabilidad; AIC si priorizas predicción).
Flujo de análisis
- 1
Definir candidatos anidados
Listar especificaciones que difieren en un solo aspecto a la vez (una pendiente aleatoria, una interacción, una covariable).
- 2
Reajustar con ML
Si los modelos difieren en efectos fijos, reajustar todos con REML = FALSE para que las verosimilitudes sean comparables.
- 3
Calcular AIC/BIC/logLik
Construir una tabla comparativa con AIC(), BIC() y logLik() para cada candidato.
- 4
Aplicar LRT donde corresponda
anova(mod_simple, mod_complex) para pares anidados; recordar la cautela del "boundary" en varianzas.
- 5
Reajustar el ganador con REML
Una vez elegida la especificación final, reajustar con REML (por defecto) para el reporte de efectos fijos y varianzas.
| Criterio | Penalización | Tiende a favorecer | Requiere modelos anidados |
|---|---|---|---|
| AIC | 2 × número de parámetros (k) | Modelos algo más complejos (mejor predicción) | No |
| BIC | log(n) × k (más fuerte si n es grande) | Modelos más parsimoniosos | No |
| LRT (anova()) | Distribución χ² con df = diferencia de parámetros | Decisión binaria con valor p | Sí |
Atención: REML = FALSE para comparar efectos fijos
Si comparas modelos con distinta parte fija usando REML (el valor por defecto), AIC/BIC/LRT no son válidos. Reajusta con REML = FALSE, compara, y solo al final vuelve a REML = TRUE para el modelo elegido.
Info: el LRT para varianzas es conservador
Al probar si una varianza de efecto aleatorio es cero, el valor p de anova() es aproximadamente el doble del valor "correcto" (problema de boundary). Si el resultado es claramente significativo o claramente no, esto rara vez cambia la conclusión.
Repaso rápido: flashcards
Autoevaluación
1. Quieres comparar un modelo con y sin la interacción tiempo×grupo (mismos efectos aleatorios). ¿Qué debes hacer antes de comparar AIC/BIC/LRT?
2. anova(mod_intercepto, mod_pendiente) da un valor p = 0.04 para la pendiente aleatoria. ¿Qué precaución aplica?
3. AIC favorece el modelo A y BIC favorece el modelo B (más simple). ¿Qué interpretación es razonable?