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.
| Valor | Percentil |
|---|---|
| 10 | 0% |
| 20 | 25% |
| 30 | 50% |
| 40 | 75% |
| 50 | 100% |
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.
| Percentil | Interpretación |
|---|---|
| 10 | El 10% de los datos está por debajo |
| 25 | El 25% de los datos está por debajo |
| 50 | Mediana de la distribución |
| 75 | El 75% de los datos está por debajo |
| 90 | El 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:
| Ingreso | Percentil |
|---|---|
| 1500 | 0 |
| 2000 | 25 |
| 3000 | 50 |
| 5000 | 75 |
| 100000 | 100 |
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ística | Ranking Simple | Percentiles |
|---|---|---|
| Utiliza rangos | Sí | Sí |
| Conserva orden | Sí | Sí |
| Escala uniforme | No | Sí |
| Fácil comparación entre datasets | Limitada | Alta |
| Resultado interpretable | Medio | Alto |
| Valores entre 0 y 100 | No | Sí |
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.