5 votos

Valores perdidos NAs en los datos de prueba al utilizar predict.lm en R

Tengo dos conjuntos de datos

  1. Datos del tren
  2. Datos de prueba (sin valores de la variable dependiente pero con I tengo datos de la variable independiente o se puede decir que necesito pronosticar).

Utilizando los datos de entrenamiento (que tienen algunos NA s en la celda) realicé una regresión por mínimos cuadrados ordinarios (OLS) utilizando lm() en R y ajusté el modelo y obtuve el $\beta $ coeficientes del modelo de regresión. (¡Todo va bien hasta ahora!)

Ahora, en el proceso de predicción de los valores ajustados, tengo algunos valores perdidos para algunas celdas en el conjunto de datos de prueba. He utilizado la función predict() de la siguiente manera:

 predict(ols, test_data.df, interval= "prediction", na.action=na.pass)

para la celda (o celdas) con NA se descarta toda la fila al generar la salida ( yhat ). ¿Existe alguna función que pueda generar el yhat valores (que no sean NA s) para los datos de la prueba sin descartar ninguna fila con valor perdido en la celda.

10voto

user777 Puntos 10934

En primer lugar, permítanme decir que los datos que faltan son una especialidad propia de la estadística, por lo que hay muchísimas respuestas diferentes a esta pregunta.

Como ha descubierto, por defecto, R utiliza la eliminación de valores perdidos según el caso. Esto significa que cada vez que se encuentra un valor perdido en sus datos (en cualquier lado de su fórmula de regresión), simplemente ignora esa fila. Esto no es bueno, ya que si usted tiene 100 observaciones, pero la mitad de sus filas tiene al menos un valor de la variable que falta, usted tiene efectivamente 50 observaciones. En algunas disciplinas, la prevalencia de los datos que faltan puede disminuir rápidamente el tamaño de sus datos. Cuando era estudiante, analicé una encuesta de 3.000 personas que se redujo a sólo 316 cuando se utilizó la eliminación de casos.

Pero esto es aún peor que reducir el tamaño de la muestra: puede haber problemas ocultos, como una asociación entre el patrón de falta y el valor del elemento que falta. Por ejemplo, las personas con mayores ingresos son más propensas a no revelar su salario. Esto dificultará la realización de juicios significativos y estadísticamente sólidos relacionados con los ingresos.

Un método habitual para tratar los valores perdidos es la imputación. Existen muchos paquetes de imputación en R. En mi especialidad, las ciencias políticas, uno de los más utilizados es AMELIA II, de Gary King. Este trata tus variables como normales multivariantes y mejora iterativamente sus "conjeturas" de cuáles deben ser los valores perdidos basándose en algunos criterios de convergencia: se declara la convergencia cuando la "conjetura" parece encajar bien con el resto de los datos. (Siento que esto no sea específico. No he utilizado AMELIA II desde hace varios años. La documentación es exhaustiva y está lúcidamente escrita, así que yo empezaría por ahí).

Pero ésta es sólo una opción. Estoy seguro de que otras personas con más conocimientos hablarán con sus aportaciones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X