Ranking Simple

Transformación Basada en Rangos

En Data Science y Machine Learning, es frecuente trabajar con variables que presentan distribuciones altamente asimétricas, valores extremos o escalas muy diferentes. En estos casos, los valores absolutos pueden dificultar el análisis y afectar el rendimiento de determinados algoritmos.

Una estrategia alternativa para tratar con variables que presentan distribuciones altamente asimétricas, valores extremos o escalas muy diferentes consiste en ignorar temporalmente los valores originales y centrarse únicamente en su posición relativa dentro del conjunto de datos. Este enfoque da lugar a la Rank Transformation o Transformación por Rangos, una técnica que reemplaza cada observación por su posición ordenada dentro de la variable.

La variante más sencilla de esta técnica es el Ranking Simple, que asigna un rango numérico a cada observación según su orden relativo.

¿Qué es la Rank Transformation?

La Rank Transformation es una técnica de transformación de datos que sustituye los valores originales de una variable por sus rangos dentro de la distribución. En lugar de trabajar con magnitudes absolutas, la transformación utiliza únicamente la posición relativa de cada observación.

Por ejemplo:

var = [100, 50, 200, 150]

Tras ordenar los datos:

ValorRango
501
1002
1503
2004

La variable transformada pasa a ser:

var = [2, 1, 4, 3]

De esta manera, se conserva el orden de las observaciones, pero se elimina la influencia de la escala original.

¿Cómo Funciona?

El procedimiento es relativamente sencillo:

  • Ordenar los datos de menor a mayor.
  • Asignar una posición numérica a cada observación.
  • Sustituir los valores originales por sus rangos correspondientes.

Matemáticamente:

$$R(x_i)=r_i$$

Donde:

  • xᵢ representa una observación.
  • rᵢ representa su rango dentro del conjunto de datos.

El resultado final es una variable ordinal que refleja únicamente el orden relativo de las observaciones.

Tratamiento de Empates

Uno de los aspectos más importantes en las transformaciones por rangos es la gestión de valores repetidos y existen varios métodos para asignar rangos.

Average Ranking

Los empates reciben el promedio de las posiciones que ocuparían.

ValorRango
101
202.5
202.5
404

Min Ranking

Todos los empates reciben el rango mínimo.

ValorRango
101
202
202
404

Dense Ranking

No se dejan huecos entre rangos consecutivos.

ValorRango
101
202
202
403

El valor extremo deja de influir por su magnitud y únicamente conserva su posición relativa.

Beneficios de Simple Rank

  • Elimina la influencia de la escala original.
  • Reduce el impacto de valores extremos.
  • Conserva el orden relativo de las observaciones.
  • Facilita la comparación entre variables con unidades diferentes.
  • Es robusta frente a distribuciones no normales.
  • Puede simplificar ciertos análisis estadísticos.
  • Resulta sencilla de implementar.

¿Cuándo Utilizar Simple Rank?

  • Existen valores atípicos importantes.
  • La escala de los datos no es relevante.
  • Se desea trabajar con posiciones relativas.
  • Los datos presentan distribuciones muy asimétricas.
  • Se utilizan métodos estadísticos no paramétricos.
  • Se quiere reducir la influencia de observaciones extremas sin eliminarlas.

También resulta útil cuando las diferencias exactas entre valores son menos importantes que su orden relativo.

Ventajas

  • Muy fácil de entender e implementar.
  • Reduce significativamente la influencia de outliers.
  • No requiere supuestos sobre la distribución.
  • Funciona con cualquier escala de medida numérica.
  • Conserva el orden de las observaciones.
  • Facilita ciertos análisis estadísticos robustos.
  • Puede mejorar la estabilidad de algunos algoritmos.

Desventajas

  • Se pierde la información sobre las distancias reales entre valores.
  • Dos observaciones muy diferentes pueden quedar separadas por un único rango.
  • No conserva la magnitud original de los datos.
  • Puede reducir la interpretabilidad de algunas variables.
  • No siempre mejora el rendimiento predictivo.

Limitaciones

  • No aproxima los datos a una distribución normal.
  • No realiza escalado en sentido estricto.
  • No conserva las diferencias cuantitativas originales.
  • Puede eliminar información relevante para determinados modelos.
  • No resulta adecuada cuando la magnitud exacta de las observaciones es importante.

Por este motivo, suele utilizarse principalmente en análisis exploratorios y métodos estadísticos robustos.

Comparación con Otras Transformaciones

CaracterísticaRanking SimpleQuantile TransformationRank Gaussian
Utiliza rangos
Conserva orden
Reduce outliers
Aproxima normalidadNoOpcional
Conserva magnitudes originalesNoNoNo
Transformación no lineal

Puede considerarse la forma más básica de todas las transformaciones basadas en rangos.

Aplicaciones en Data Science y Machine Learning

La Rank Transformation aparece frecuentemente en:

  • Estadística no paramétrica.
  • Análisis exploratorio de datos (EDA).
  • Sistemas de recomendación.
  • Detección de anomalías.
  • Modelos financieros.
  • Competiciones de Machine Learning.
  • Ingeniería de características.
  • Métodos robustos frente a outliers.

También constituye la base de técnicas más avanzadas como Rank Gaussian Transformation y Quantile Transformation.

Implementación en Python

Aplicación Básica con Pandas

import pandas as pd

df = pd.DataFrame({
    "ingresos": [1500, 2000, 3000, 5000, 100000]
})

df["ranking"] = df["ingresos"].rank()

print(df)

Ranking Ascendente

df["ranking"] = df["ingresos"].rank(
    ascending=True
)

Ranking Descendente

df["ranking"] = df["ingresos"].rank(
    ascending=False
)

Ranking Denso

df["ranking"] = df["ingresos"].rank(
    method="dense"
)

Ranking con Valores Empatados

import pandas as pd

datos = pd.Series([10, 20, 20, 40])

print(datos.rank(method="average"))
print(datos.rank(method="min"))
print(datos.rank(method="dense"))

Uso en Scikit-Learn

Aunque Scikit-Learn no incluye un transformador específico para Ranking Simple, puede implementarse mediante FunctionTransformer.

from sklearn.preprocessing import FunctionTransformer
import pandas as pd

def rank_transform(X):
    return pd.DataFrame(X).rank().values

ranker = FunctionTransformer(rank_transform)

X_transformado = ranker.fit_transform(X)

Buenas Prácticas

  • Analizar si la magnitud original contiene información importante.
  • Elegir adecuadamente el método de tratamiento de empates.
  • Comparar los resultados con otras transformaciones basadas en cuantiles.
  • Utilizarla principalmente cuando interese el orden y no el valor exacto.
  • Evaluar el impacto sobre el rendimiento del modelo.

Conclusión

La Rank Transformation o Ranking Simple es una técnica de transformación basada en rangos que sustituye los valores originales por su posición relativa dentro de la distribución. Su simplicidad, robustez frente a valores extremos y ausencia de supuestos estadísticos la convierten en una herramienta muy útil para el análisis exploratorio y los métodos no paramétricos.

Aunque implica la pérdida de información sobre las magnitudes originales, permite trabajar con variables complejas desde una perspectiva más robusta y menos sensible a outliers. Además, constituye el fundamento de transformaciones más avanzadas como Quantile Transformation y Rank Gaussian Transformation, ampliamente utilizadas en proyectos modernos de Data Science y Machine Learning.