Transformación de Box-Cox

La transformación de Box-Cox es una de las técnicas más importantes para el tratamiento de datos sesgados en estadística, ciencia de datos y machine learning. Su principal objetivo es transformar una variable para que su distribución se aproxime lo máximo posible a una distribución normal, facilitando el análisis estadístico y mejorando el comportamiento de determinados modelos predictivos.

A diferencia de transformaciones más simples como el logaritmo o la raíz cuadrada, la transformación Box-Cox no utiliza una única fórmula fija. En su lugar, busca automáticamente la transformación más adecuada para cada conjunto de datos mediante un parámetro denominado λ (lambda).

¿Qué es la transformación de Box-Cox?

La transformación Box-Cox fue propuesta por los estadísticos George Box y David Cox en 1964 como un método para transformar variables y aproximarlas a una distribución normal. La técnica aplica una familia de transformaciones parametrizadas por λ:

$$y(\lambda)=\begin{cases}\frac{x^\lambda – 1}{\lambda}, & \text{si } \lambda \neq 0 \\ \ln(x), & \text{si } \lambda = 0 \end{cases}$$

cuando:

$$\lambda \neq 0$$

y utiliza una transformación logarítmica cuando:

$$\lambda = 0$$

Cuando aplicamos un logaritmo estamos imponiendo una transformación concreta. Cuando aplicamos una raíz cuadrada, también estamos imponiendo una transformación concreta. Box-Cox adopta un enfoque diferente y busca automáticamente cuál es la transformación que mejor aproxima los datos a una distribución normal. Para ello prueba distintos valores de λ.

Interpretación del Parámetro λ

El valor de λ determina qué transformación se aplicará. Algunos casos especiales son:

λTransformación Aproximada
-1Recíproca
-0.5Recíproca de raíz cuadrada
0Logaritmo
0.5Raíz cuadrada
1Sin transformación

Esto significa que Box-Cox puede comportarse como varias transformaciones clásicas dependiendo del valor óptimo encontrado.

Ejemplo Conceptual

Supongamos una variable de ingresos:

ventas: [20000, 25000, 30000, 40000, 500000]

La distribución presenta una fuerte cola hacia la derecha. Al aplicar Box-Cox:

  1. El algoritmo prueba distintos valores de λ.
  2. Evalúa qué transformación produce una distribución más cercana a la normalidad.
  3. Selecciona automáticamente el valor óptimo.

El resultado suele ser una distribución mucho más equilibrada.

Beneficios de la Transformación Box-Cox

  • Reducción de la Asimetría: Es especialmente eficaz cuando los datos presentan una fuerte asimetría positiva.
  • Aproximación a la Normalidad: Su principal objetivo es acercar la distribución a una forma gaussiana.
  • Estabilización de la Varianza: En muchos casos ayuda a reducir problemas de heterocedasticidad.
  • Automatización: No obliga al analista a elegir manualmente entre logaritmo, raíz cuadrada, transformación recíproca el algoritmo selecciona la mejor opción.

¿Cuándo Utilizar Box-Cox?

La transformación Box-Cox suele ser recomendable cuando:

  • Existe una fuerte asimetría positiva.
  • Se desea aproximar la distribución a la normalidad.
  • Se trabaja con métodos estadísticos sensibles a la distribución.
  • La variable contiene únicamente valores positivos.

La Principal Limitación

Box-Cox tiene una restricción importante: solo funciona con valores estrictamente positivos. Si la variable contiene valores negativos o iguales a cero la transformación Box-Cox no puede aplicarse directamente. En estos casos suele utilizarse una alternativa moderna denominada: Transformación Yeo-Johnson que fue diseñada precisamente para eliminar esta limitación.

Box-Cox vs transformación logarítmica

CaracterísticaLogaritmoBox-Cox
Fácil de aplicar
Reduce asimetría
Busca automáticamente la mejor transformaciónNo
Solo admite valores positivos
Aproxima a la normalidadParcialmenteMejor

Box-Cox vs Yeo-Johnson

CaracterísticaBox-CoxYeo-Johnson
Valores positivos
Valores ceroNo
Valores negativosNo
Búsqueda automática de λ

Actualmente, Yeo-Johnson suele utilizarse cuando no se puede garantizar que todos los valores sean positivos.

Aplicación en Machine Learning

Aunque Box-Cox nació en el ámbito estadístico, también se utiliza durante la preparación de datos para Machine Learning. Puede aplicarse antes de entrenar modelos como:

  • Regresión Lineal.
  • Ridge Regression.
  • Lasso Regression.
  • Support Vector Machines.
  • Redes Neuronales.

Los modelos basados en árboles suelen ser menos sensibles a este tipo de transformaciones.

Implementación en Python

La biblioteca SciPy incluye una implementación de Box-Cox.

from scipy.stats import boxcox

datos_transformados, lambda_optimo = boxcox(df["ventas"])

print(lambda_optimo)

El algoritmo devuelve:

  • Los datos transformados.
  • El valor óptimo de λ encontrado.

Visualización Antes y Después

import matplotlib.pyplot as plt
from scipy.stats import boxcox

plt.hist(df["ventas"])
plt.title("Distribución Original")
plt.show()

ventas_boxcox, _ = boxcox(df["ventas"])

plt.hist(ventas_boxcox)
plt.title("Distribución Box-Cox")
plt.show()

Esto permite observar visualmente la reducción de la asimetría.

Utilización con Scikit-Learn

from sklearn.preprocessing import PowerTransformer

pt = PowerTransformer(method="box-cox")

ventas_transformadas = pt.fit_transform(df[["ventas"]])

Este enfoque resulta especialmente útil dentro de pipelines de Machine Learning.

Buenas Prácticas

Antes de aplicar Box-Cox:

  • Analizar la distribución mediante histogramas.
  • Medir la asimetría (skewness).
  • Verificar que todos los valores sean positivos.

Después de la transformación:

  • Comparar distribuciones.
  • Revisar la reducción de la asimetría.
  • Evaluar el impacto sobre el modelo.

Conclusión

La transformación Box-Cox es una de las técnicas más potentes para el tratamiento de datos sesgados. Su principal ventaja consiste en buscar automáticamente la transformación que mejor aproxima una variable a una distribución normal, permitiendo reducir la asimetría, estabilizar la varianza y mejorar el comportamiento de numerosos métodos estadísticos y modelos de Machine Learning. Aunque su uso está limitado a variables con valores positivos, sigue siendo una herramienta fundamental dentro del conjunto de técnicas de transformación de datos utilizadas durante la preparación de datos en proyectos de Ciencia de Datos.