No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
9 Hrs
15 Min
14 Seg

Bonus: visualización múltiple de imputaciones

20/21
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Misma pregunta que unas clases anteriores, esto tambien podria pasarlo a un archivo dentro de utils?

Truchas porque en el 1er gráfico no sale cuántos valores fueron imputados. Curiosamente, si quitas el parámetro common_bins hace que aparezcan. Le estuve intentando si pudiera arreglarlo pero no, a ver si alguien puede hacerlo en el futuro.

La visualización de múltiples imputaciones te permite comparar cómo diferentes técnicas de imputación afectan los datos faltantes. Esto es útil para evaluar el impacto de las imputaciones y decidir cuál es la más adecuada para el análisis. A continuación, veremos cómo hacer esto utilizando \*\*matplotlib\*\*, \*\*seaborn\*\*, y varias técnicas de imputación en \*\*pandas\*\*. \### Pasos para visualizar múltiples imputaciones: 1\. \*\*Crear un conjunto de datos con valores faltantes.\*\* 2\. \*\*Imputar los valores faltantes utilizando diferentes métodos.\*\* 3\. \*\*Visualizar las imputaciones en gráficos para comparar los resultados.\*\* \### Ejemplo en Python: \#### 1. Crear el conjunto de datos ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns \# Crear un DataFrame de ejemplo con valores faltantes np.random.seed(0) data = {'Variable1': \[1, np.nan, 3, np.nan, 5, 6, np.nan, 8, 9, 10], 'Variable2': \[7, 6, np.nan, 4, 3, 2, np.nan, 5, 6, np.nan]} df = pd.DataFrame(data) print("Datos originales con valores faltantes:") print(df) ``` \#### 2. Aplicar múltiples métodos de imputación ```python \# Imputación con la media df\_mean = df.copy() df\_mean\['Variable1'] = df\['Variable1'].fillna(df\['Variable1'].mean()) df\_mean\['Variable2'] = df\['Variable2'].fillna(df\['Variable2'].mean()) \# Imputación con la mediana df\_median = df.copy() df\_median\['Variable1'] = df\['Variable1'].fillna(df\['Variable1'].median()) df\_median\['Variable2'] = df\['Variable2'].fillna(df\['Variable2'].median()) \# Imputación hacia adelante (forward fill) df\_ffill = df.copy() df\_ffill.fillna(method='ffill', inplace=True) \# Imputación hacia atrás (backward fill) df\_bfill = df.copy() df\_bfill.fillna(method='bfill', inplace=True) ``` \#### 3. Visualizar las imputaciones Vamos a graficar cada imputación y compararlas. ```python \# Configurar las subplots fig, axes = plt.subplots(2, 2, figsize=(12, 10)) \# Datos originales sns.scatterplot(ax=axes\[0, 0], x=np.arange(len(df)), y=df\['Variable1'], label='Variable1', color='blue') sns.scatterplot(ax=axes\[0, 0], x=np.arange(len(df)), y=df\['Variable2'], label='Variable2', color='red') axes\[0, 0].set\_title("Datos Originales") \# Imputación con la media sns.scatterplot(ax=axes\[0, 1], x=np.arange(len(df\_mean)), y=df\_mean\['Variable1'], label='Variable1', color='blue') sns.scatterplot(ax=axes\[0, 1], x=np.arange(len(df\_mean)), y=df\_mean\['Variable2'], label='Variable2', color='red') axes\[0, 1].set\_title("Imputación con la Media") \# Imputación hacia adelante sns.scatterplot(ax=axes\[1, 0], x=np.arange(len(df\_ffill)), y=df\_ffill\['Variable1'], label='Variable1', color='blue') sns.scatterplot(ax=axes\[1, 0], x=np.arange(len(df\_ffill)), y=df\_ffill\['Variable2'], label='Variable2', color='red') axes\[1, 0].set\_title("Imputación Hacia Adelante (Forward Fill)") \# Imputación hacia atrás sns.scatterplot(ax=axes\[1, 1], x=np.arange(len(df\_bfill)), y=df\_bfill\['Variable1'], label='Variable1', color='blue') sns.scatterplot(ax=axes\[1, 1], x=np.arange(len(df\_bfill)), y=df\_bfill\['Variable2'], label='Variable2', color='red') axes\[1, 1].set\_title("Imputación Hacia Atrás (Backward Fill)") plt.tight\_layout() plt.show() ``` \### Explicación: \- \*\*Subplot 1\*\*: Muestra los datos originales con los valores faltantes. \- \*\*Subplot 2\*\*: Muestra los datos imputados con la \*\*media\*\*. \- \*\*Subplot 3\*\*: Visualiza los datos con imputación \*\*forward fill\*\*. \- \*\*Subplot 4\*\*: Presenta la imputación con \*\*backward fill\*\*. Cada gráfico te permite comparar los métodos y cómo afectan los valores imputados. Esto te ayuda a evaluar cuál técnica es la más adecuada para tu análisis.

Código de visualización múltiple de imputaciones

(
    riskfactors_df
    .select_columns("weight_lbs","height_inch","bmi")
    .missing.bind_shadow_matrix(true_string=True,false_string=False)
    .apply(
        axis="rows",
        func = lambda column : column.fillna(column.mean()) if "_NA" not in column.name else column
    )
    .pivot_longer(
        index="*_NA"
    )
    .pivot_longer(
        index=["variable","value"],
        names_to="variable_NA",
        values_to="value_NA"
    )
    .assign(
        valid=lambda df : df.apply(axis="columns", func= lambda column : column.variable in column.variable_NA)
    )
    .query("valid")
    .pipe(
        lambda df:(
            sns.displot(
                data=df,
                x="value",
                hue="value_NA",
                col="variable",
                common_bins=False,
                facet_kws={
                    "sharex":False,
                    "sharey":False
                }
            )
        )
    )
)