No afectara el estadistico en cuestion ni el tamano de la muestra.
Desventajas:
Puede sesgar los resultados, dado que modifica la distribucion por debajo (curtosis). Zona donde se estan aglomerando los datos
Pierdes correlaciones entre variables dado que no es muy preciso o muy real. Carece de variabilidad.
No puedes usarlo en variables categoricas (a excepcion de la moda ya que puedes usar el valor mas frecuente).
Gracias..!
Hay un error, "La media puede ser util en presencia de outliers" en realidad es la mediana.
La imputación por donante es un método utilizado en la estadística para rellenar valores perdidos en un conjunto de datos. Consiste en buscar un "donante" o conjunto de datos similares y utilizar sus valores para rellenar los valores perdidos.
Por otro lado, un modelo es una representación matemática o computacional de un sistema o proceso. En estadística y machine learning, los modelos se utilizan para representar y predecir patrones en los datos.
Visualizacion de los valores imputados
Matriz de sombra para las variables weight y height con sus valores imputados
La imputacion hecha no rompe la estructura de los datos ni la relacion entre variables, los puntos imputados no se estan saliendo de los puntos reales por lo que es una buena imputacion.
Como siempre buen resumen
Tú m puedes pasar por favor el archivo de missing con la función .scatter_imputation_plot() ??
Al momento de realizar el scatter_imputation_plot para el métrico de moda tengan cuidado. La función .mode() devuelve un objeto de tipo Series, ya que puede haber múltiples modas en una columna. Para acceder a la moda real, que es el primer valor de la Serie devuelta por .mode(), pueden usar [0]. De no ser hacerlo así pueden revisar los datos en el Data Frame resultante y ver que los datos faltantes no fueron imputados.
Imputación con Media, Mediana y Moda: Ventajas y Desventajas
Media:
Ventajas:
Simple y fácil de calcular.
Intuitiva y fácil de entender.
Minimiza el error cuadrático medio.
Robusta frente a valores atípicos simétricos.
Desventajas:
Sensible a valores atípicos asimétricos.
No es robusta frente a distribuciones no normales.
No es adecuada para variables categóricas.
Puede distorsionar la distribución original de la variable.
Mediana:
Ventajas:
Robusta frente a valores atípicos.
No es sensible a la forma de la distribución.
Adecuada para variables categóricas y numéricas.
Preserva la distribución original de la variable.
Desventajas:
Menos eficiente que la media para distribuciones normales.
Más difícil de calcular que la media.
Puede ser menos precisa que la media para conjuntos de datos pequeños.
Moda:
Ventajas:
Muy simple de calcular.
Fácil de interpretar.
Útil para variables categóricas.
Robusta frente a valores atípicos.
Desventajas:
No es informativa para variables con distribuciones multimodales.
No es sensible a la forma de la distribución.
Puede ser menos precisa que la media o la mediana.
No es adecuada para variables numéricas con valores continuos.
Ejemplos específicos:
Imputación con la media: Se puede utilizar para imputar valores faltantes en una variable numérica que se distribuye normalmente y que no tiene valores atípicos.
Imputación con la mediana: Se puede utilizar para imputar valores faltantes en una variable numérica que no se distribuye normalmente o que tiene valores atípicos.
Imputación con la moda: Se puede utilizar para imputar valores faltantes en una variable categórica.
El método scatter_imputation_plot() no se encuentra en missing. Sería bueno que actualizaran esto en la clase, ya que está pasando mucho en este curso.
De acuerdo, muchas de las funciones que se usan en el curso no me salen disponibles. O no me funcionan como al profe Jesus
Si se encuentra dentro del archivo "pandas-missing-extension.ipynb". Solo que debes verificar que el archivo se encuentre dentro de Files. Se debe invocarlo con %run pandas-missing-extension.ipynb
A mi tambien me fallaba, volvi a importar el archivo dentro de la notebook y funciono.
La **imputación por media, mediana y moda** es uno de los métodos más simples y comunes para manejar valores faltantes. Estos métodos son fáciles de implementar y proporcionan una solución rápida, especialmente cuando los valores faltantes son pocos. A continuación, te explico cada uno de estos enfoques:
### 1. **Imputación por Media**
La imputación por media reemplaza los valores faltantes de una variable numérica por el promedio de todos los valores no faltantes de esa variable.
- **Ventajas**: Es fácil de calcular e implementar.
- **Desventajas**: Puede distorsionar la distribución de los datos, especialmente si hay outliers, y puede subestimar la varianza.
\# Imputación por media
df\['columna']= df\['columna'].fillna(df\['columna'].mean())
### 2. **Imputación por Mediana**
La imputación por mediana utiliza el valor central de los datos para reemplazar los valores faltantes. Es más robusta que la media en presencia de valores atípicos.
- **Ventajas**: La mediana es menos sensible a outliers, por lo que es más adecuada para datos sesgados.
- **Desventajas**: Al igual que con la media, puede reducir la variabilidad en los datos.
\# Imputación por mediana
df\['columna']= df\['columna'].fillna(df\['columna'].median())
### 3. **Imputación por Moda**
Para variables categóricas, la imputación por moda reemplaza los valores faltantes con la categoría más frecuente en los datos.
- **Ventajas**: Es útil para variables categóricas.
- **Desventajas**: Si hay varias categorías con frecuencias similares, puede no ser representativo imputar con la moda.
\# Imputación por moda (valores categóricos)df\['columna']= df\['columna'].fillna(df\['columna'].mode()\[0])
| **Media** | Variables numéricas sin muchos outliers | Fácil de implementar, rápida | Sensible a outliers, puede alterar la distribución |
| **Mediana** | Variables numéricas con outliers | Menos afectada por outliers | Puede no capturar la variabilidad original de los datos |
| **Moda** | Variables categóricas | Útil para variables con categorías repetitivas | No funciona bien si no hay una categoría dominante |
### Consideraciones
- **Reducción de la varianza**: Al utilizar la media, mediana o moda, se reduce la variabilidad en los datos, lo que puede ser perjudicial en algunos análisis.
- **Sesgo**: Estos métodos suponen que los valores faltantes son aleatorios. Si los valores faltantes tienen un patrón, la imputación por media, mediana o moda puede introducir sesgos.
Este enfoque es más adecuado cuando hay pocos valores faltantes y no se requiere una alta precisión. Para conjuntos de datos con muchas variables o relaciones complejas, se pueden usar métodos más avanzados como la imputación multivariante o la regresión.
# Imputación utilizando la moda
df_mode =( nhanes_df
.select_columns('height','weight').missing.bind_shadow_matrix(True,False, suffix='_imp').assign( height=lambda df: df.height.fillna(value=df.height.mode().values[0]), weight=lambda df: df.weight.fillna(value=df.weight.mode().values[0])))# Imputación utilizando la mediana
df_median =( nhanes_df
.select_columns('height','weight').missing.bind_shadow_matrix(True,False, suffix='_imp').assign( height=lambda df: df.height.fillna(value=df.height.median()), weight=lambda df: df.weight.fillna(value=df.weight.median())))# Gráfico de dispersión para imputación con moda
df_mode.missing.scatter_imputation_plot( x='height', y='weight', show_marginal=True)# Gráfico de dispersión para imputación con mediana
df_median.missing.scatter_imputation_plot( x='height', y='weight', show_marginal=True)
Ejemplo de imputacion por la Media
Imputacion para la variable altura
( nhanes_df
# utilizamos un metodo janitor.transform_column('height',lambda x: x.fillna(x.mean()), elementwise=False))
En este caso la media es de 66.256, valor con el cual se sustituye los valores faltantes.
Obtener la media de la columna height con los datos completos.
( nhanes_df
# utilizamos un metodo janitor.transform_column('height',lambda x: x.fillna(x.mean()), elementwise=False).height
.mean())-->66.25655976676525
El valor de la media en general no se altera debido a la imputacion, se mantiene.
imputación de datos con la mediana
Alguien tiene el archivo con la función .scatter_imputation_plot?
def scatter_imputation_plot( self, x, y, imputation_suffix="_imp", show_marginal=False,**kwargs
): x_imputed = f"{ x }{ imputation_suffix }" y_imputed = f"{ y }{ imputation_suffix }" plot_func = sns.scatterplotif not show_marginal else sns.jointplotreturn( self._obj[[x, y, x_imputed, y_imputed]].assign(is_imputed=lambda df: df[x_imputed]| df[y_imputed]).pipe(lambda df:(plot_func(data=df, x=x, y=y, hue="is_imputed",**kwargs))))
def scatter_imputation_plot(
self, x, y, imputation_suffix="_imp", show_marginal=False, **kwargs
):
x_imputed = f"{ x }{ imputation_suffix }" y_imputed = f"{ y }{ imputation_suffix }" plot_func = sns.scatterplotif not show_marginal else sns.jointplotreturn( self._obj[[x, y, x_imputed, y_imputed]].assign(is_imputed=lambda df: df[x_imputed]| df[y_imputed]).pipe(lambda df:(plot_func(data=df, x=x, y=y, hue="is_imputed",**kwargs))))
"No hemos modifica nuestros estadísticos de nuestro conjunto de datos"
¿?
Alguien sabe si se actualizó el archivo de pandas-missing-extention.ipynb con el gráfico missing.scatter_imputation_plot()?? O hay un archivo nuevo para este curso? en el archivo que veníamos trabajando en el curso de "datos faltantes: detección y exploración", no está.