En el caso de que estén teniendo problemas con el método displot de Seaborn lo que tienen que hacer es simplemente actualizar Seaborn a su última versión
Comparando los datos faltantes de la variable Peso con los valores de la variable Edad
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe(lambda df:( sns.boxenplot( data=df, x ='weight_lbs_NA',#variables con datos faltantes y ='age'#variable de comparacion))))
Visualizacion alternativa mediante funciones de densidad
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe(lambda df:( sns.displot( data=df, x ='age',#variable de distribucion hue ='weight_lbs_NA',#variable de comparacion kind='kde'#distribucion de densidad))))
Visualizacion de la variable Edad y los valores faltantes de la variable Peso mediante histogramas independientes. Este tipo de grafico son muy dificiles de comparar debido a que tenemos mas datos que no faltan de los que faltan
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe(lambda df:( sns.displot( data=df, x ='age',#variable de distribucion col ='weight_lbs_NA',#variable de comparacion))))
Visualizacion altenativa de los datos anteriores donde el eje de las Y es independiente para cada grafico
# Eje de las y independientes para cada grafico( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe(lambda df:( sns.displot( data=df, x ='age',#variable de distribucion col ='weight_lbs_NA',#variable de comparacion facet_kws={'sharey':False}))))
Grilla de graficos con dos variables de datos faltantes
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe(lambda df:( sns.displot( data=df, x ='age',#variable de distribucion col ='marital_NA',#variable de comparacion row ='weight_lbs_NA'))))
La visualizacion de valores faltantes en una variable permite detectar si esta ocurriendo un sesgo en la presencia o ausencia de valores faltantes ocasionado por otra variable
Claro, y si hay correlación?
En la grafica displot me salia este error:
ValueError: Multi-dimensional indexing (e.g. obj[:, None]) is no longer supported. Convert to a numpy array before indexing instead.
Por lo que cambie el codigo este:
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe( lambda df:( sns.displot( data = df, x ='age', kind ='kde' hue ='weight_lbs_NA'))))
Por este codigo:
( riskfactors_df
.missing.bind_shadow_matrix(only_missing=True).pipe( lambda df:( sns.displot( data = df, x ='age', kind ='kde' hue ='weight_lbs_NA', fill =True))))
Y me funcionó.
Gracias! Habia cambiado a seaborn==0.11 en el requirements.txt y no me funcionaba este bloque de codigo.
Al agregar fill=True lo logre
Muchas gracias por la ayuda.
Tratando de seguir la clase, me aparece este error con las gráficas de displot y boxenplot
OptionError: "No such keys(s): 'mode.use_inf_as_null'"
Con gráficas tipo Boxplot, si funciona con normalidad
Tengo exactamente el mismo problema y no supe como arreglarlo, me rendí
Tuve el mismo problema, pero pude resolverlo. Es un error desde Seaborn porque Conda utiliza una versión vieja.
En su entorno, eliminen seaborn. Luego, hagan un
pip install seaborn
De esta manera tendrán la versión más reciente, y todas las gráficas en el curso les funcionará.
En esta clase aplicamos el concepto de la matriz de sombras para crear visualizaciones de una variable que no tiene valores faltantes, con otra que sí, permitiéndote construir visualizaciones que te ayuden a identificar rápidamente si existen sesgos o no en la presencia o ausencia de otros valores faltantes.
La visualización de valores faltantes en una variable es una técnica útil para identificar qué parte de los datos está incompleta y cómo afecta el análisis. Puedes usar bibliotecas como seaborn, matplotlib o missingno en Python para crear gráficos que muestren los valores faltantes.
### Ejemplo 1: Gráfico de Barras con seaborn
Puedes visualizar los valores faltantes en una variable mediante un gráfico de barras que muestre la proporción de valores faltantes y no faltantes.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
\# Crear un DataFrame de ejemplo
data ={'Variable': \[1,2,None,4,None,6,7,None,9,10]}df = pd.DataFrame(data)
\# Crear una columna booleana para indicar si hay valores faltantes
df\['Missing']= df\['Variable'].isnull()
\# Visualización con seaborn
sns.countplot(x='Missing', data=df, palette='viridis')plt.title('Valores Faltantes en la Variable')plt.xlabel('Valores Faltantes')plt.ylabel('Conteo')plt.xticks(\[0,1], \['No Faltante','Faltante'])plt.show()
### Ejemplo 2: Usar missingno para Visualizar Valores Faltantes
La biblioteca missingno es excelente para visualizar los valores faltantes en un conjunto de datos con gráficos fáciles de interpretar.
import pandas as pd
import missingno as msno
\# Crear un DataFrame de ejemplo con valores faltantes
data ={'Variable1': \[1,2,None,4,5],  'Variable2': \[5, None, 7, None, 9],  'Variable3': \[None, 2, 3, 4, None]}df = pd.DataFrame(data)
\# Visualización de un gráfico de valores faltantes con missingno
msno.bar(df)plt.show()
### Ejemplo 3: Mapa de Calor para Ver la Distribución de Valores Faltantes
Otra forma es crear un **mapa de calor** para ver los valores faltantes en todo el conjunto de datos y visualizar dónde se encuentran esos valores faltantes.
import seaborn as sns
import matplotlib.pyplot as plt
\# Crear un DataFrame con algunos valores faltantes
data ={'Variable1': \[1,2,None,4,5],  'Variable2': \[None, None, 7, 8, 9],  'Variable3': \[1, None, 3, None, 5]}df = pd.DataFrame(data)
\# Visualización de valores faltantes en un mapa de calor
plt.figure(figsize=(8,6))sns.heatmap(df.isnull(), cbar=False, cmap='viridis')plt.title('Mapa de Calor de Valores Faltantes')plt.show()
### Descripción de los Ejemplos:
1. **Gráfico de Barras con seaborn**: Muestra un conteo de los valores faltantes y no faltantes en una variable específica.
2. **Gráfico de Barras con missingno**: Presenta un resumen visual de los valores faltantes en todas las variables de un DataFrame.
3. **Mapa de Calor**: Ofrece una visualización general de los valores faltantes en forma de mapa de calor, mostrando dónde se encuentran esos valores en las columnas.
Estas técnicas son útiles para diagnosticar la cantidad y distribución de valores faltantes en los datos antes de realizar un análisis o imputación.
¿Te gustaría ver más ejemplos o explicaciones más detalladas?
¿Alguno sabe cómo solucionar el error "No such keys(s): 'mode.use_inf_as_null'"?
Pregunta: A raíz del análisis de la columna age vs la presencia / ausencia de nulos en otras columnas, se me ocurre entrenar un modelo que sea capaz de predecir en función de una edad, cuál sería la probabilidad de que haya nulos.
Sin embargo el problema es que precisamente el análisis debería tener datos sobre los nulos. Lo que me preocupa es la naturaleza de los datos (son nulos). De qué forma podría hacerlo?
Se me ocurre usar como variable objetivo a la edad, y como variables de análisis las columnas binarias de la matriz de sombras. Quizás una regresión logística. Es posible hacer esto?