Datos Faltantes y Métodos de Imputación en Ciencia de Datos

Handling Missing Data and Imputation Methods in Data Science

Autor: Guillermo · ICTA Ltda. Fecha: Marzo 2026 Licencia: CC BY 4.0

1. Introducción al Problema de los Datos Faltantes

Los datos faltantes (o missing data) constituyen una de las problemáticas más frecuentes y desafiantes en el análisis de datos y la ciencia de datos aplicada. Se definen como la ausencia de valores para una o más variables en una o más observaciones de un conjunto de datos. Su presencia puede originarse por múltiples causas: errores en la recolección de datos, fallas en sensores de medición, omisiones en encuestas, problemas de integración de bases de datos o incluso la negativa deliberada de los participantes a proporcionar cierta información [1].

Independientemente de su origen, los datos faltantes representan un desafío significativo para el modelado estadístico y el aprendizaje automático. Si no se manejan adecuadamente, pueden conducir a conclusiones sesgadas, modelos predictivos con menor rendimiento y una reducción general en la validez de los resultados.

1.1 Categorías de Datos Faltantes

Little y Rubin (2002) [1] propusieron una taxonomía que se ha convertido en el estándar de referencia:

CategoríaNombre CompletoDescripciónEjemplo
MCARMissing Completely At RandomLa probabilidad de que un dato falte es la misma para todas las observaciones y no depende de ningún valor.Un sensor falla aleatoriamente por un problema eléctrico.
MARMissing At RandomLa probabilidad de ausencia depende de los valores observados de otras variables, pero no del valor faltante.Los hombres son menos propensos a responder una pregunta sobre salud.
MNARMissing Not At RandomLa probabilidad de ausencia depende del propio valor que falta.Personas con ingresos altos son más reacias a revelar sus ingresos.

La distinción entre estas categorías es crucial porque determina qué métodos de tratamiento son apropiados. Los datos MCAR son los más sencillos de manejar. Los datos MAR pueden tratarse con métodos de imputación que consideren las relaciones entre variables. Los datos MNAR son los más problemáticos, ya que requieren modelos explícitos del mecanismo de ausencia [3].

2. El Problema de los Valores NA en el Análisis de Datos

La presencia de valores NA (Not Available) o nulos en un conjunto de datos no es un mero inconveniente técnico; es un problema que puede invalidar análisis estadísticos completos y comprometer la fiabilidad de modelos de machine learning.

2.1 Errores en Operaciones Matemáticas

La mayoría de las operaciones estadísticas fundamentales —como el cálculo de la media, la varianza, la correlación o la regresión— no están definidas para valores indefinidos. En Python, librerías como NumPy y pandas representan estos valores como NaN, lo que permite que los cálculos continúen sin errores de ejecución, pero el resultado final sigue siendo un valor indefinido.

2.2 Pérdida de Información y Reducción del Poder Estadístico

Al eliminar filas con valores faltantes (listwise deletion), se reduce el tamaño de la muestra, lo que disminuye el poder estadístico de las pruebas. Esto significa que se reduce la capacidad de detectar efectos reales en los datos [3].

2.3 Introducción de Sesgos

Si los datos no son MCAR, eliminarlos puede distorsionar la distribución de las variables y las relaciones entre ellas. Por ejemplo, si en un estudio sobre salarios las personas con ingresos más altos son más reacias a responder, eliminar estas observaciones hará que el salario promedio calculado sea artificialmente más bajo [1].

2.4 Impacto en Algoritmos de Machine Learning

La mayoría de los algoritmos de machine learning —regresión lineal, regresión logística, SVM, redes neuronales— no pueden funcionar con datos faltantes. Las implementaciones estándar de scikit-learn arrojarán un error al intentar entrenar un modelo con NaN [2].

3. Métodos Simples para Tratar Datos Faltantes

Ante la presencia de datos faltantes, las primeras soluciones que suelen considerarse son las más directas: eliminar las observaciones o variables problemáticas.

3.1 Eliminación de Filas (Listwise Deletion)

La eliminación por lista consiste en descartar todas las filas que contengan al menos un valor faltante. Es válido únicamente cuando los datos son MCAR y la proporción de datos faltantes es muy pequeña.

3.2 Eliminación de Columnas

Consiste en eliminar por completo una variable si contiene una proporción muy alta de valores faltantes (por ejemplo, más del 50%).

3.3 Problemas Asociados a la Eliminación

ProblemaDescripciónConsecuencia
Pérdida de informaciónSe descartan datos válidos de otras columnas en la fila eliminada.Reducción de la riqueza informativa del dataset.
Reducción del tamaño de muestraEl dataset resultante es más pequeño.Menor poder estadístico para detectar efectos reales.
Sesgos estadísticosSi los datos no son MCAR, la muestra restante no es representativa.Estimaciones distorsionadas de parámetros y relaciones.

4. Métodos Simples de Imputación

En lugar de eliminar datos, la imputación consiste en rellenar los valores faltantes con valores estimados.

4.1 Imputación por la Media

Reemplaza todos los valores faltantes por la media aritmética de los valores observados:

$$\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i$$

4.2 Imputación por la Mediana

Reemplaza los valores faltantes por la mediana. Es preferible a la media cuando la distribución es asimétrica o contiene valores atípicos.

4.3 Imputación por la Moda

Reemplaza los valores faltantes por la moda (valor más frecuente). Es el método de elección para variables categóricas.

4.4 Problemas de la Imputación Simple

ProblemaDescripciónImpacto
Distorsión de la distribuciónSe introduce un pico artificial en el valor central.La forma de la distribución original se altera significativamente.
Reducción de la varianzaLos valores imputados no aportan variabilidad.La varianza se subestima, produciendo intervalos de confianza estrechos.
Sobre-representaciónUn único valor se repite muchas veces.Se distorsionan las frecuencias y se debilitan las correlaciones.

5. Ejemplo Visual del Problema de Imputar la Media

Consideremos una variable que sigue una distribución normal ($\mu = 170$ cm, $\sigma = 10$ cm). Si tomamos $n = 1000$ observaciones y perdemos el 30% de forma MCAR, al imputar la media introducimos un valor constante ($\bar{x} = 170.38$) en 300 posiciones. Esto genera un pico artificial y reduce la varianza de 95.79 a 66.98 (una reducción del 30%).

5.1 Código Reproducible en Python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(42)
original_data = np.random.normal(loc=170, scale=10, size=1000)

data_series = pd.Series(original_data.copy())
missing_idx = data_series.sample(frac=0.30, random_state=42).index
data_with_missing = data_series.copy()
data_with_missing.iloc[missing_idx] = np.nan

data_deleted = data_with_missing.dropna()
imputed_mean = data_with_missing.mean()
data_mean_imputed = data_with_missing.fillna(imputed_mean)

fig, axes = plt.subplots(1, 3, figsize=(18, 5.5), sharex=True, sharey=True)
axes[0].hist(original_data, bins=30, color='#4C72B0', edgecolor='white')
axes[0].set_title('1. Distribucion Original (n=1000)')
axes[1].hist(data_deleted, bins=30, color='#DD8452', edgecolor='white')
axes[1].set_title(f'2. Eliminacion (n={len(data_deleted)})')
axes[2].hist(data_mean_imputed, bins=30, color='#55A868', edgecolor='white')
axes[2].axvline(imputed_mean, color='red', linestyle='--', linewidth=2)
axes[2].set_title('3. Imputacion por Media (n=1000)')
plt.tight_layout()
plt.savefig('figures/imputation_comparison.png', dpi=150, bbox_inches='tight')
plt.show()

5.2 Resultado Visual

Comparacion de distribuciones
Figura 1. Comparación de tres distribuciones: (1) datos originales, (2) datos tras eliminación de filas, y (3) datos tras imputación por la media. Nótese el pico pronunciado en el valor de la media en el tercer histograma.

5.3 Comparación de Varianza

Comparacion de varianza
Figura 2. Comparación de la varianza entre los tres escenarios. La imputación por media reduce la varianza de 95.79 a 66.98.

5.4 Estadísticas Comparativas

MétricaOriginalEliminaciónImputación por Media
N10007001000
Media170.19170.38170.38
Desv. Estándar9.799.788.18
Varianza95.7995.7266.98

6. Flujo de Decisión para el Tratamiento de Datos Faltantes

El siguiente diagrama presenta un flujo de decisión conceptual para seleccionar la estrategia más adecuada de tratamiento de datos faltantes:

Diagrama de flujo de imputacion
Figura 3. Flujo de decisión para el tratamiento de datos faltantes. El proceso evalúa la proporción de datos faltantes, selecciona el método de imputación y valida el impacto en la distribución.

7. Imputación mediante K-Nearest Neighbors (KNN)

Frente a las limitaciones de los métodos simples, surgen técnicas más sofisticadas que consideran las relaciones entre las variables. Uno de los métodos más populares es la imputación mediante K-Vecinos más Cercanos (KNN), popularizado por Troyanskaya et al. (2001) [4].

7.1 Concepto de Vecinos más Próximos

El algoritmo KNN se basa en un principio intuitivo: una observación con un valor faltante puede ser estimada utilizando la información de las observaciones más similares. El procedimiento opera así:

  1. Para una observación $p$ con un valor faltante en la variable $j$, se identifican las $K$ observaciones más similares usando las variables completas.
  2. La similitud se cuantifica mediante una métrica de distancia (típicamente euclidiana).
  3. El valor faltante se estima calculando la media ponderada de los valores de los $K$ vecinos.

7.2 Distancia Euclidiana

Para dos observaciones $p$ y $q$ en un espacio de $m$ dimensiones:

$$d(p, q) = \sqrt{\sum_{i=1}^{m} (p_i - q_i)^2}$$

Es fundamental que las variables estén estandarizadas antes de calcular la distancia.

7.3 Construcción del Vector de Distancias

Para una observación $p$ con un valor faltante, se calcula la distancia a todas las demás observaciones con valores válidos, generando un vector:

$$\mathbf{D}_p = [d(p, q_1), d(p, q_2), \ldots, d(p, q_{n'})]$$

Se ordena de menor a mayor y se seleccionan los $K$ valores más pequeños.

7.4 Predicción del Valor Faltante

Media simple de los $K$ vecinos:

$$\hat{x}_{p,j} = \frac{1}{K} \sum_{k=1}^{K} x_{q_k, j}$$

Versión ponderada por distancia:

$$\hat{x}_{p,j} = \frac{\sum_{k=1}^{K} w_k \cdot x_{q_k, j}}{\sum_{k=1}^{K} w_k}, \quad \text{donde } w_k = \frac{1}{d(p, q_k)}$$

7.5 Ejemplo de Código con scikit-learn

import numpy as np
import pandas as pd
from sklearn.impute import KNNImputer

np.random.seed(42)
n = 200
temperature = np.random.normal(loc=22, scale=5, size=n)
humidity = 60 + 0.8 * temperature + np.random.normal(0, 3, size=n)
precipitation = 10 + 0.5 * humidity - 0.3 * temperature + np.random.normal(0, 2, size=n)

df = pd.DataFrame({
    'temperatura': temperature,
    'humedad': humidity,
    'precipitacion': precipitation
})

for col in df.columns:
    missing_idx = df.sample(frac=0.15, random_state=42).index
    df.loc[missing_idx, col] = np.nan

imputer = KNNImputer(n_neighbors=5, weights='uniform')
df_imputed = pd.DataFrame(
    imputer.fit_transform(df),
    columns=df.columns
)
print(df_imputed.describe())

7.6 Comparación Visual: KNN vs. Imputación por Media

Comparacion KNN vs Media
Figura 4. Comparación de distribuciones para tres variables ambientales: datos originales (azul), imputación por media (naranja) e imputación KNN (verde).
Scatter KNN vs Original
Figura 5. Diagrama de dispersión comparando las relaciones bivariadas entre variables originales y variables imputadas con KNN.

7.7 Ventajas y Limitaciones del Método KNN

AspectoVentajasLimitaciones
Relaciones entre variablesUtiliza información multivariada para la imputación.Requiere relaciones significativas entre variables.
SupuestosNo asume una distribución particular (no paramétrico).Sensible a la elección de $K$ y a la escala.
PrecisiónGeneralmente más preciso que la imputación simple.Puede ser impreciso en alta dimensionalidad.
ComputaciónImplementación directa con scikit-learn.Computacionalmente costoso en datasets grandes.

8. Conclusiones

El manejo de datos faltantes es una etapa ineludible y crítica en cualquier proyecto de ciencia de datos. La elección del método puede tener un impacto profundo en la validez, precisión y fiabilidad de los resultados.

Los métodos simples (eliminación o imputación por la media) son fáciles de implementar pero conllevan riesgos: pérdida de información, sesgos, distorsión de la distribución y reducción artificial de la varianza.

Los métodos avanzados como KNN ofrecen una solución más robusta al aprovechar la estructura multivariada de los datos, proporcionando estimaciones más plausibles que preservan mejor las características del conjunto de datos original.

MétodoTipoPreserva DistribuciónPreserva VarianzaConsidera RelacionesCosto Computacional
EliminaciónEliminaciónParcialmenteNoBajo
Media/Mediana/ModaImputación SimpleNoNoNoBajo
KNNImputación AvanzadaParcialmenteAlto

La elección final debe basarse en una comprensión profunda del conjunto de datos, el mecanismo de ausencia y los objetivos del análisis. No existe una solución universal, pero una regla general es preferir los métodos de imputación sobre la eliminación, y los métodos avanzados sobre los simples.

9. Referencias

  1. [1] Little, R. J. A., & Rubin, D. B. (2002). Statistical Analysis with Missing Data (2nd ed.). John Wiley & Sons. doi:10.1002/9781119013563
  2. [2] Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer. hastie.su.domains/ElemStatLearn
  3. [3] Allison, P. D. (2001). Missing Data. Sage Publications. doi:10.4135/9781412985079
  4. [4] Troyanskaya, O., et al. (2001). Missing value estimation methods for DNA microarrays. Bioinformatics, 17(6), 520-525. doi:10.1093/bioinformatics/17.6.520