Contexto : regresión jerárquica con algunos datos faltantes.
Pregunta : ¿Cómo uso la estimación de máxima probabilidad de información completa (FIML) para abordar los datos faltantes en R? ¿Hay un paquete que recomendaría y cuáles son los pasos típicos? Los recursos y ejemplos en línea también serían muy útiles.
PD : Soy un científico social que recientemente comenzó a usar R. La imputación múltiple es una opción, pero realmente me gusta cuán elegantemente los programas como Mplus manejan los datos faltantes usando FIML. Desafortunadamente, Mplus no parece comparar modelos en el contexto de regresión jerárquica en este momento (¡avíseme si sabe una manera de hacerlo!). Me preguntaba si hay algo similar en R? ¡Muchas gracias!
r
maximum-likelihood
missing-data
Sootica
fuente
fuente
Respuestas:
El crédito de esta respuesta es para @Joshua, que dio una respuesta increíble cuando publiqué esta pregunta en la comunidad de R y Estadísticas en Google+. Simplemente estoy pegando su respuesta a continuación.
Para ejecutar la regresión (sin modelado de variables latentes), lea mis notas escritas después del texto citado.
Esto significa que si todas las variables con falta son continuas, lavaan , un paquete de modelado de ecuaciones estructurales (SEM) es bueno para FIML en R.
Ahora volviendo a mi pregunta inicial. Mi intención era tener una solución mágica para la falta cuando ejecutaba una regresión lineal. Todas mis variables con falta fueron agradables y continuas. Así que procedí a ejecutar mis análisis en dos estilos:
Me faltaban muchas cosas al hacer una regresión al estilo SEM. Ambos estilos dieron coeficientes y cuadrados R similares, pero en el estilo SEM no obtuve la prueba de significación de la regresión (los valores típicos de F con df), en cambio obtuve índices de ajuste que no fueron útiles ya que había usado todos mis grados de libertad. Además, cuando un modelo tenía un R2 más grande que otro, no pude encontrar una manera de comparar si la diferencia era significativa. Además, hacer la regresión de la manera habitual da acceso a un montón de pruebas de supuestos de regresión que son invaluables. Para obtener una respuesta más detallada sobre este tema, consulte mi otra pregunta que fue respondida amablemente por @StasK .
Entonces, la conclusión parece ser que lavaan es un paquete decente para FIML en R, sin embargo, el uso de FIML depende de supuestos estadísticos y del tipo de análisis que se está realizando. En cuanto a la regresión (sin modelado de variables latentes), mantenerlo fuera de los programas SEM y usar la imputación múltiple es probablemente un movimiento inteligente.
fuente
Con respecto a su pregunta sobre la FIML, pensé en compartir este maravilloso documento SAS de Paul Allison http://www.statisticalhorizons.com/wp-content/uploads/MissingDataByML.pdf
Dados los comentarios hechos por Paul Allison, uno puede implementar fácilmente el mismo procedimiento en R usando lme o nlmer.
fuente
Hay 2 formas principales de manejar datos / registros faltantes. U borra toda la fila de observación que tiene un valor faltante o encuentra una manera de generar este valor faltante. Si toma el primer enfoque, podría terminar perdiendo muchos datos. En el segundo enfoque, debe encontrar una forma "inteligente" de generar estos datos faltantes, de tal manera que las estimaciones de los parámetros del nuevo conjunto de datos no sean muy diferentes de las estimaciones de los parámetros del conjunto de datos observado.
Este segundo enfoque se llama imputación de datos, y hay varios paquetes R que lo hacen. Uno de ellos se llama mclust, y la función que necesita se llama imputeData. Esta función utiliza el algoritmo EM (maximización de expectativas) para estimar los parámetros de la parte no observada del conjunto de datos, dada la parte observada. Una vez que se encuentran los parámetros, se genera el nuevo punto de datos. Se supone que la distribución de los datos faltantes, los datos observados y todo el conjunto de datos es gaussiana.
Espero que esta explicación te ayude a lograr lo que estás tratando de hacer
fuente