Tratamiento de datos perdidos (Imputación Simple)
Last updated
Last updated
Tratar de forma adecuada los datos perdidos es muy importante para los análisis posteriores. Hay dos cosas que se pueden hacer:
Borrarlos
Imputarlos
La decisión muchas veces vendrá dada por el número de datos perdidos, los análisis posteriores que se quieran realizar, si queremos hacer análisis univariante o multivariante, etc...
Por lo general, cuando tenemos un número de datos perdidos muy elevado, no será buena idea conservar la variable e intentar imputarla. Un umbral máximo seguro es el 5% del total para conjuntos de datos grandes. Si los datos faltantes para una variable u observación específica son más del 5%, probablemente deberías excluir esa variable u observación.
Para filtrar filas con datos perdidos, podemos usar la función complete.cases()
Pero cuidado como se filtran filas. Si filtramos todos los datos missing de una base de datos y ajustamos una recta de regresión para predecir los días desde la aparición de síntomas (days_onset_hosp
) con la temperatura (temp
) en el ejemplo de la epidemia de Ebola (linelist
):
Vemos como hemos borrado muchísimos datos y este modelo no nos sirve para nada, pero si solo borramos las filas correspondientes a esas dos variables:
Ya podemos intuir que hay un ajuste un poco mejor, con lo que cuidado borrar todos los datos perdidos cuando solo vas a trabajar con dos variables.
Aunque siempre puedes analizar un conjunto de datos después de eliminar todos los valores perdidos, esto puede causar varios problemas. Aquí tienes dos ejemplos:
Al eliminar todas las observaciones con valores perdidos o variables con una gran cantidad de datos perdidos, puedes reducir tu poder o capacidad para realizar algunos tipos de análisis, como acabamos de ver.
Dependiendo de por qué faltan tus datos, el análisis solo de datos no faltantes podría conducir a resultados sesgados o engañosos. Por ejemplo, como aprendimos anteriormente, nos faltan datos de algunos pacientes sobre si han tenido síntomas importantes como fiebre o tos. Pero, como posibilidad, tal vez esa información no se registró para personas que obviamente no estaban muy enfermas. En ese caso, si simplemente eliminamos esas observaciones, estaríamos excluyendo a algunas de las personas más saludables en nuestro conjunto de datos y eso podría sesgar realmente cualquier resultado.
Es importante pensar en por qué tus datos podrían faltar, además de ver cuánto falta. Hacer esto puede ayudarte a decidir qué tan importante podría ser imputar datos faltantes y también qué método de imputación de datos faltantes podría ser la mejor en tu situación.
Aquí hay tres tipos generales de datos perdidos:
Missing Completely at Random (MCAR): Son datos perdidos completamente aleatorios, es decir, la ausencia de en un conjunto de datos es independiente tanto de otras variables observadas como de las no observadas.
Ejemplo: la ausencia de la falta en la fecha que se produjo la infección no está relacionada con ninguna característica de los pacientes, la región, etc....sino que simplemente es un dato que simplemente no se sabe.
Missing at Random (MAR): Son datos perdidos aleatorios, es decir, la probabilidad de que un valor falte puede depender de otras variables observadas, pero no de las no observadas. El nombre puede confundir porque no son realmente aleatorios.
Ejemplo: la información sobre la fiebre solo falta en aquellos casos donde los médicos no tomaron la temperatura de los pacientes con ciertos síntomas específicos, como escalofríos y dolores. En este caso, la ausencia de la información sobre la fiebre no es completamente al azar, ya que está relacionada con la presencia de ciertos síntomas observados.
A pesar de que la ausencia no es completamente aleatoria, los datos MAR son más manejables que los datos "Missing Not at Random" (MNAR), ya que, en teoría, se puede modelar y abordar la falta de manera sistemática si se conocen las variables relacionadas con la ausencia. Este es un tipo común de datos faltantes.
Missing not at Random (MNAR): Datos perdidos de forma no aleatoria, es decir, la probabilidad de que falte un valor depende de la variable no observada. Esto puede introducir sesgos en los datos y es más complicado de manejar. En otras palabras, la falta de un valor está relacionada con la información que falta y no puede ser modelada únicamente en función de las variables observadas.
Ejemplo: la falta de información de un hospital es debida al nivel socioeconómico de la región o a la falta de acceso sanitario, etc... por lo que no podríamos tener acceso a esa información ni parece muy fácil de predecir con otras variables.
Tratar con datos MNAR (Missing not at Random) puede ser más complicado que tratar con datos MCAR (Missing Completely at Random) o MAR (Missing at Random) porque la falta de información está relacionada con la información que falta.
Esta es la forma más sencilla de imputación cuando puedes asumir que los datos son MCAR. Si las variables son continuas puedes simplemente establecer los valores perdidos usando la media de esa variable. Por ejemplo, asumamos que las mediciones de temperatura (temp
) faltantes en nuestro conjunto de datos son MCAR y por tanto los podemos imputar con la media.
¡Cuidado! en muchas situaciones reemplazar los datos con la media puede generar sesgos.
En el caso de las variables categóricas la forma de imputar valores perdidos de forma sencilla es usando la moda. Por ejemplo, los valores faltantes de la variable outcome
(variable categórica) se pueden representar por la categoría más frecuente ("Death" en este caso):
Un método algo más avanzado es utilizar algún tipo de modelo estadístico para predecir cuál podría ser el valor perdido y reemplazarlo con el valor predicho. Aquí un ejemplo de cómo crear valores predichos para todas las observaciones donde la temp
tiene datos perdidos, pero age
y fever
no, utilizando una regresión lineal simple usando la fiebre y la edad como predictores.
A veces cuando los datos faltantes tienen mucha relación con algunos valores específicos de la variable que se va a usar para imputar (ejemplo del IQ con Rendimiento), podemos querer añadir un error estocástico.
Este error lo añadimos como un término de error estocástico a nuestras predicciones. Este error estocástico es una variable aleatoria que sigue una distribución normal con media cero y desviación estándar para la que podemos usar el error estándar de la propia regresión lineal.