No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

2D
4H
41M
50S

MCAR, MAR, MNAR en Python

12/21
Recursos

Aportes 4

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Es importante saber que tipo de mecanismo es el que esta ocasionando que nuestros datos falten, en este ejemplo de wikipedia

Se trata el ejemplo de un cuestionario sobre depresi贸n, y basicamente se sab铆a que si la falta de datos era:

.

MAR: An example is that males are less likely to fill in a depression survey but this has nothing to do with their level of depression, after accounting for maleness.

B谩sicamente si eran hombres era mas probable que faltara ese valor (indicador de depresi贸n).
Aqu铆 la localizaci贸n del valor faltante dependia de la variable male/female

.

MNAR: This would occur if men failed to fill in a depression survey because of their level of depression.

Y en este otro caso faltaban esos valores debido a la misma variable o indicador de 鈥渄epresi贸n鈥, las personas estaban tan deprimidas que por esta misma raz贸n no podian ir y tomar la encuesta.


Y la conclusi贸n fue:

The more data is missing (MNAR), the more biased are the estimations. We underestimate the intensity of depression in the population.


Si no se toman en cuenta los datos faltantes MNAR, entonces se pueden caer en sesgos.
Y como dice el proverbio:

.

Garbage in, garbage out.

.

MCAR, MAR, MNAR en Python

Tenemos un conjunto de datos llamado diabetes_df en el que aparentemente no hay datos faltantes (nan). Lo podemos verificar como sigue:

diabetes_df
diabetes_df.missing_variable_plot()

Por otro lado, sabemos que si existen datos faltantes pero estan escrito en otro formato, en este caso por cero. Ahora lo que se hace es remplazar tales valores por nan para que sean detectados como valores faltantes.

diabetes_df[diabetes_df.columns[1:6]] = diabetes_df[diabetes_df.columns[1:6]].replace(0,np.nan)
diabetes_df.missing.missing_variable_plot()
  • Caso MCAR
# ordena las columnas desde la que mas tiene valores faltantes a la que menos tiene
(
    diabetes_df
    .missing.sort_variables_by_missingness()
    .pipe(missingno.matrix) # muestra los datos en una matriz de sombra
)

Para las variables bmi y glucose hay tan pocos valores faltantes que se pueden considerar valores faltantes al azar

  • Caso MAR
(
    diabetes_df
    .missing.sort_variables_by_missingness()
    .sort_values(by='blood_pressure') # ordena los valores segun una columna
    .pipe(missingno.matrix)
)

Los valores faltantes de la variable blood_presure pueden estar relacionado a algunos valores de la insulina o de la skin_thickness por lo que son de tipo MAR

  • Caso MNAR
(
    diabetes_df
    .missing.sort_variables_by_missingness()
    .sort_values(by='insulin') # ordena los valores segun una columna
    .pipe(missingno.matrix)
)

Hay un rango de valores de insulina en la que estan la mayoria de los valores faltantes de las demas variables de lo que podemos concluir que es de tipo MNAR

En est谩 clase aprend铆 algo nuevo, algo que ahora en adelante va a agregarle contenido a mis analisis exploratorios