Rank Transformation mediante Percentiles

Transformación Basada en Posiciones Relativas

Las transformaciones basadas en rangos permiten precisamente este enfoque. Entre ellas, la Transformación por Percentiles destaca por convertir cada observación en una medida relativa que indica qué porcentaje de datos se encuentra por debajo de ella.

Esta técnica es ampliamente utilizada en estadística, análisis exploratorio de datos, evaluación de rendimiento, sistemas de puntuación y procesos de preparación de datos para Machine Learning.

¿Qué es la transformación por percentiles?

La Transformación por Percentiles es una técnica de transformación basada en rangos que reemplaza cada observación por su posición porcentual dentro de la distribución. En lugar de conservar el valor original, la variable pasa a representar el porcentaje de observaciones que son iguales o inferiores a dicho valor.

ValorPercentil
100%
2025%
3050%
4075%
50100%

De esta forma, el valor original deja de ser relevante y la posición relativa pasa a ser la información principal.

¿Cómo Funciona?

La transformación sigue los siguientes pasos:

  • Ordenar los datos.
  • Asignar un rango a cada observación.
  • Convertir el rango en una proporción o porcentaje.
  • Sustituir el valor original por su percentil correspondiente.

Una fórmula habitual es:

$$P=\frac{r-1}{n-1}\times100$$

Donde:

  • P representa el percentil.
  • r representa el rango de la observación.
  • n representa el número total de observaciones.

El resultado se expresa normalmente entre: 0 y 100 o alternativamente entre: 0 y 1.

Interpretación de los Percentiles

Los percentiles indican la posición relativa de una observación dentro de una distribución.

PercentilInterpretación
10El 10% de los datos está por debajo
25El 25% de los datos está por debajo
50Mediana de la distribución
75El 75% de los datos está por debajo
90El 90% de los datos está por debajo

Por ejemplo, si un estudiante se encuentra en el percentil 90, significa que ha obtenido una puntuación superior al 90% de los participantes.

Ejemplo Práctico.

Supongamos una variable de ingresos:

Ingreso
1500
2000
3000
5000
100000

La diferencia entre los ingresos es enorme.

Tras aplicar la transformación:

IngresoPercentil
15000
200025
300050
500075
100000100

Ahora la variable representa posiciones relativas en lugar de magnitudes monetarias.

Beneficios de la Transformación por Percentiles

  • Reduce la influencia de valores extremos.
  • Facilita la comparación entre variables con escalas diferentes.
  • Convierte cualquier variable en una escala común.
  • Conserva el orden relativo de las observaciones.
  • Es robusta frente a distribuciones no normales.
  • Facilita la interpretación de posiciones relativas.
  • Resulta útil para construir sistemas de puntuación.

¿Cuándo utilizar la transformación por percentiles?

  • Interesa conocer posiciones relativas.
  • Existen distribuciones altamente asimétricas.
  • Hay valores atípicos importantes.
  • Se comparan variables con unidades diferentes.
  • Se construyen rankings o clasificaciones.
  • Se trabaja con métodos estadísticos robustos.

También es muy utilizada cuando la magnitud exacta de una observación es menos importante que su posición dentro del conjunto de datos.

Ventajas

  • Reduce el efecto de los outliers.
  • Funciona correctamente con distribuciones complejas.
  • No requiere supuestos de normalidad.
  • Permite comparar variables heterogéneas.
  • Conserva el orden de los datos.
  • Facilita la creación de indicadores comparables.

Desventajas

  • Se pierde la magnitud original de las observaciones.
  • No conserva las distancias reales entre valores.
  • Puede ocultar diferencias importantes entre observaciones.
  • La interpretación absoluta desaparece.
  • No siempre mejora el rendimiento predictivo de los modelos.

Limitaciones

  • No aproxima los datos a una distribución normal.
  • No conserva unidades originales.
  • No elimina valores atípicos.
  • No representa diferencias cuantitativas reales.
  • Puede reducir información relevante para determinados algoritmos.

Por ello suele utilizarse cuando el interés principal es la posición relativa de los datos.

Diferencias entre Ranking Simple y Percentiles

Ambas técnicas pertenecen a la familia de las transformaciones basadas en rangos, pero presentan algunas diferencias.

CaracterísticaRanking SimplePercentiles
Utiliza rangos
Conserva orden
Escala uniformeNo
Fácil comparación entre datasetsLimitadaAlta
Resultado interpretableMedioAlto
Valores entre 0 y 100No

Los percentiles pueden considerarse una evolución natural del ranking simple, ya que transforman los rangos en posiciones relativas estandarizadas.

Aplicaciones en Data Science y Machine Learning

La Transformación por Percentiles se utiliza frecuentemente en:

  • Análisis Exploratorio de Datos (EDA).
  • Estadística descriptiva.
  • Sistemas de puntuación.
  • Modelos de riesgo financiero.
  • Recursos Humanos.
  • Sistemas de recomendación.
  • Detección de anomalías.
  • Evaluación de rendimiento académico.
  • Ingeniería de características.

También suele utilizarse como paso previo a transformaciones más avanzadas como Quantile Transformation o Rank Gaussian Transformation.

Implementación en Python

Cálculo de Percentiles con Pandas

import pandas as pd

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

df["percentil"] = df["ingresos"].rank(
    pct=True
) * 100

print(df)

Resultado Aproximado

   ingresos  percentil
0      1500       20.0
1      2000       40.0
2      3000       60.0
3      5000       80.0
4    100000      100.0

Utilizando SciPy

from scipy.stats import percentileofscore

datos = [1500, 2000, 3000, 5000, 100000]

for valor in datos:
    p = percentileofscore(datos, valor)
    print(valor, p)

Aplicación sobre Múltiples Variables

import pandas as pd

for columna in df.columns:
    df[columna + "_pct"] = (
        df[columna]
        .rank(pct=True)
    )

Uso en un Pipeline Personalizado

from sklearn.preprocessing import FunctionTransformer
import pandas as pd

def percentile_transform(X):
    return pd.DataFrame(X).rank(
        pct=True
    ).values

transformer = FunctionTransformer(
    percentile_transform
)

X_transformado = transformer.fit_transform(X)

Buenas Prácticas

Al utilizar transformaciones por percentiles es recomendable:

  • Analizar previamente la distribución de la variable.
  • Evaluar si la magnitud original contiene información relevante.
  • Utilizar percentiles cuando el interés principal sea la posición relativa.
  • Comparar los resultados con otras transformaciones basadas en rangos.
  • Verificar el impacto sobre el rendimiento del modelo.
  • Aplicar la misma transformación durante entrenamiento e inferencia.

Conclusión

La Transformación por Percentiles es una técnica basada en rangos que convierte cada observación en una medida relativa dentro de la distribución. En lugar de representar magnitudes absolutas, permite expresar la posición de cada dato respecto al resto de observaciones.

Gracias a su robustez frente a valores extremos, facilidad de interpretación y capacidad para estandarizar variables de diferentes escalas, constituye una herramienta muy útil en análisis estadístico, ingeniería de características y procesos de preparación de datos para Machine Learning. Además, sirve como fundamento para técnicas más avanzadas como Quantile Transformation y Rank Gaussian Transformation, ampliamente utilizadas en proyectos modernos de análisis de datos.