Las medidas de posición, también conocidas como cuantiles, son puntos tomados a intervalos regulares de un conjunto de datos ordenado. Su función es dividir la distribución de los datos en partes iguales para entender dónde se ubica un valor específico en relación con el resto.
Cuartiles (Q1, Q2, Q3)
Dividen el conjunto de datos en cuatro partes iguales, donde cada parte contiene el 25% de las observaciones.
Q3 - Q1
, representa el 50% central de los datos y es una medida de dispersión muy robusta frente a outliers.Deciles (D1, D2, ..., D9)
Dividen el conjunto de datos en diez partes iguales (cada una con el 10% de los datos).
Percentiles (P1, P2, ..., P99)
Es la división más fina, en cien partes iguales. Un percentil indica el porcentaje de datos que son iguales o menores que un determinado valor.
👉 Son muy útiles para detectar asimetrías y valores atípicos (outliers).
import numpy as np
import pandas as pd
datos = [15, 18, 21, 24, 30, 35, 40, 42, 50, 60]
serie = pd.Series(datos)
q1 = serie.quantile(0.25)
q2 = serie.median() # equivalente a Q2
q3 = serie.quantile(0.75)
print("Q1 (25%):", q1)
print("Q2 (50%, mediana):", q2)
print("Q3 (75%):", q3)
import numpy as np
import pandas as pd
datos = np.random.randint(1, 100, 20)
serie = pd.Series(datos)
# Deciles
deciles = [serie.quantile(i/10) for i in range(1, 10)]
print("Deciles:", deciles)
# Percentiles 10, 25, 50, 75, 90
percentiles = [10, 25, 50, 75, 90]
print("\nPercentiles con NumPy:")
for p in percentiles:
print(f"P{p}:", np.percentile(datos, p))
import numpy as np
import pandas as pd
np.random.seed(42)
datos = np.random.normal(100, 15, 200) # notas de examen simuladas
serie = pd.Series(datos)
resumen = serie.quantile([0.1, 0.25, 0.5, 0.75, 0.9])
print("Resumen de cuantiles:\n", resumen)
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(0)
datos = np.random.normal(50, 10, 300)
sns.boxplot(x=datos)
plt.title("Boxplot con cuartiles y outliers")
plt.show()
👉 En el boxplot: