¿Qué es la imputación simple?
La imputación simple es una técnica de tratamiento de datos faltantes que consiste en reemplazar los valores ausentes utilizando un único valor calculado o definido previamente. Es una de las estrategias más utilizadas durante la preparación de datos debido a su sencillez, rapidez y facilidad de implementación.
En lugar de eliminar registros o variables que contienen datos faltantes, la imputación simple permite conservar la información disponible sustituyendo los valores ausentes por estimaciones razonables.
Por ejemplo:
edad = [ 25, 30, NULL, 35]Tras aplicar imputación simple mediante la media:
edad = [ 25, 30, 30, 35]El valor faltante se sustituye por una estimación basada en los datos disponibles.
¿Por qué utilizar imputación simple?
Los valores faltantes representan uno de los problemas más frecuentes en Data Science y Machine Learning. Muchos algoritmos no pueden procesar directamente datos ausentes, lo que obliga a tomar alguna decisión antes del entrenamiento. Las alternativas más comunes son:
- Eliminar registros.
- Eliminar variables.
- Imputar valores.
La imputación simple suele ser una buena opción cuando:
- La cantidad de valores faltantes es reducida.
- La variable es importante para el análisis.
- Se desea conservar el mayor número posible de observaciones.
- No se justifica utilizar métodos más complejos.
¿Cómo funciona la imputación simple?
El procedimiento consiste en:
- Identificar los valores faltantes.
- Seleccionar un método de imputación.
- Calcular el valor de reemplazo.
- Sustituir los datos ausentes.
La característica principal de esta técnica es que todos los valores faltantes de una misma variable se reemplazan utilizando el mismo criterio.
Métodos de imputación simple
- Imputación mediante la media: Se sustituyen los valores faltantes por la media aritmética de la variable.
- Imputación mediante la mediana : Se reemplazan los valores faltantes por la mediana de la variable.
- Imputación mediante la moda: Se utiliza el valor más frecuente de una variable. Es especialmente útil para variables categóricas.
- Imputación mediante un valor constante: Los valores faltantes se sustituyen por un valor definido manualmente. Ejmplo:
Unknow, esta estrategia permite conservar información sobre la ausencia de datos.
Comparación entre métodos de imputación simple
| Método | Tipo de Variable | Sensible a Outliers | Complejidad |
|---|---|---|---|
| Media | Numérica | Alta | Baja |
| Mediana | Numérica | Baja | Baja |
| Moda | Categórica o Numérica | Baja | Baja |
| Constante | Cualquier tipo | No aplica | Baja |
Beneficios de la imputación simple
- Permite conservar registros incompletos.
- Evita la pérdida de información.
- Es fácil de implementar.
- Requiere pocos recursos computacionales.
- Funciona rápidamente incluso en grandes conjuntos de datos.
- Facilita el entrenamiento de modelos.
- Es compatible con la mayoría de algoritmos.
¿Cuándo utilizar la imputación simple?
- El porcentaje de valores faltantes es reducido.
- Los datos faltantes son MCAR (Missing Completely At Random).
- Se necesita una solución rápida.
- La variable tiene una distribución relativamente estable.
- Se trabaja en fases iniciales de exploración de datos.
También suele utilizarse como línea base antes de probar técnicas más avanzadas.
Ventajas
- Implementación sencilla.
- Bajo coste computacional.
- Fácil interpretación.
- Mantiene el tamaño del dataset.
- Compatible con pipelines de Machine Learning.
- Adecuada para grandes volúmenes de datos.
- Disponible en la mayoría de herramientas analíticas.
Desventajas
- Introduce valores artificiales.
- Reduce la variabilidad de los datos.
- Puede alterar distribuciones originales.
- No tiene en cuenta relaciones entre variables.
- Puede introducir sesgos.
Por ejemplo, si una variable presenta una distribución muy asimétrica, imputar mediante la media puede generar valores poco representativos.
Limitaciones
- No recupera los valores reales perdidos.
- Ignora correlaciones entre variables.
- Puede infraestimar la varianza.
- Reduce la dispersión de los datos.
- Puede afectar a la calidad de algunos modelos.
- No suele ser adecuada para grandes cantidades de datos faltantes.
Por esta razón, cuando el porcentaje de valores ausentes es elevado suelen considerarse métodos más avanzados como KNN Imputation o MICE.
Comparación con otras técnicas de tratamiento
| Característica | Imputación Simple | KNN Imputation | MICE |
|---|---|---|---|
| Complejidad | Baja | Media | Alta |
| Coste computacional | Bajo | Medio | Alto |
| Utiliza relaciones entre variables | No | Sí | Sí |
| Facilidad de implementación | Alta | Media | Baja |
| Calidad de la imputación | Media | Alta | Muy alta |
| Escalabilidad | Alta | Media | Baja |
Imputación Simple vs Eliminación de Registros
| Aspecto | Imputación Simple | Eliminación |
|---|---|---|
| Conserva observaciones | Sí | No |
| Mantiene tamaño de muestra | Sí | No |
| Introduce estimaciones | Sí | No |
| Riesgo de pérdida de información | Bajo | Alto |
| Facilidad de aplicación | Alta | Alta |
Impacto en Machine Learning
Muchos algoritmos requieren datos completos para poder entrenarse correctamente.
Por ejemplo:
- Regresión lineal.
- Regresión logística.
- SVM.
- Redes neuronales.
- K-Means.
La imputación simple permite generar conjuntos de datos compatibles con estos algoritmos sin eliminar observaciones potencialmente valiosas. Sin embargo, debe utilizarse con precaución cuando los datos faltantes presentan patrones complejos o porcentajes elevados.
Implementación en Python
Imputación mediante la media
from sklearn.impute import SimpleImputer
import pandas as pd
df = pd.DataFrame({
"edad": [25, 30, None, 35]
})
imputer = SimpleImputer(
strategy="mean"
)
df["edad"] = imputer.fit_transform(
df[["edad"]]
)
print(df)
Imputación mediante la mediana
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(
strategy="median"
)
df["salario"] = imputer.fit_transform(
df[["salario"]]
)
Imputación mediante la moda
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(
strategy="most_frequent"
)
df["ciudad"] = imputer.fit_transform(
df[["ciudad"]]
)
Imputación mediante un valor constante
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(
strategy="constant",
fill_value="Desconocido"
)
df["ciudad"] = imputer.fit_transform(
df[["ciudad"]]
)
Uso dentro de un Pipeline
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.ensemble import RandomForestClassifier
pipeline = Pipeline([
("imputer",
SimpleImputer(strategy="median")),
("model",
RandomForestClassifier())
])
pipeline.fit(X_train, y_train)
Buenas prácticas
Al utilizar imputación simple es recomendable:
- Analizar previamente el porcentaje de datos faltantes.
- Comprender el mecanismo de ausencia de los datos.
- Utilizar la mediana cuando existan outliers.
- Utilizar la moda para variables categóricas.
- Ajustar el imputador únicamente con los datos de entrenamiento.
- Comparar el rendimiento frente a métodos más avanzados.
- Evaluar el impacto sobre las distribuciones originales.
Conclusión
La imputación simple es una de las técnicas más utilizadas para gestionar datos faltantes debido a su simplicidad, rapidez y facilidad de implementación. Consiste en sustituir los valores ausentes mediante estadísticas básicas como la media, la mediana, la moda o un valor constante, permitiendo conservar observaciones que de otro modo podrían perderse.
Aunque presenta limitaciones y no tiene en cuenta las relaciones entre variables, sigue siendo una excelente solución cuando el porcentaje de datos faltantes es reducido y se necesita una estrategia eficiente y fácilmente interpretable. Además, suele constituir el punto de partida para comparar posteriormente métodos más avanzados como KNN Imputation o Imputación Múltiple (MICE).