Medidas de dispersión
Las medidas de dispersión son estadísticas que nos indican cómo se distribuyen los valores en un conjunto de datos en relación con su media. Mientras que las medidas de tendencia central (como la media, la mediana y la moda) nos dan información sobre el “centro” de los datos, las medidas de dispersión nos informan sobre la variabilidad o la dispersión de esos datos. A continuación, se detallan las medidas de dispersión más comunes, sus significados, propiedades, ejemplos y cómo calcularlas en Python.
Medidas de Dispersión Comunes
- Rango
- Varianza
- Desviación Estándar
- Coeficiente de Variación
- Rango Intercuartílico (IQR)
1. Rango
Significado
El rango es la diferencia entre el valor máximo y el valor mínimo de un conjunto de datos. Proporciona una medida rápida de la dispersión.
Propiedades
- Es fácil de calcular y entender.
- Sensible a los valores atípicos, ya que solo depende de los extremos del conjunto de datos.
Ejemplo
Para el conjunto de datos: 10, 12, 15, 20, 30.
Cálculo:
Rango = Máximo- Mínimo = 30 – 10 = 20
Código en Python
import numpy as np
data = np.array([10, 12, 15, 20, 30])
# Cálculo del rango
data_range = np.max(data) - np.min(data)
print(f"Rango: {data_range}")
2. Varianza
Significado
La varianza mide la dispersión de los datos en relación con la media. Cuanto mayor sea la varianza, más se dispersan los datos.
Propiedades
- Se calcula como el promedio de las diferencias al cuadrado respecto a la media.
- Es sensible a los valores atípicos.
Ejemplo
Para el conjunto de datos: 10, 12, 15, 20, 30.
Cálculo:
Calculando:
- Media: x = (10 + 12 + 15 + 20 + 30)/5 = 17.4
- Varianza:[(10-17.4)^2 + (12-17.4)^2 + (15-17.4)^2 + (20-17.4)^2 +(30-17.4)^2]/5=54.56
Código en Python
# Cálculo de la varianza
variance = np.var(data, ddof=0) # ddof=0 para varianza poblacional
print(f"Varianza: {variance}")
3. Desviación Estándar
Significado
La desviación estándar es la raíz cuadrada de la varianza. Indica cuán dispersos están los valores respecto a la media. Es más fácil de interpretar que la varianza, ya que está en las mismas unidades que los datos originales.
Propiedades
- Una baja desviación estándar indica que los datos están agrupados cerca de la media, mientras que una alta indica que están más dispersos.
- También es sensible a los valores atípicos.
Ejemplo
Para el conjunto de datos: 10, 12, 15, 20, 30.
Cálculo:
[ \text{Desviación Estándar} = \sqrt{\text{Varianza}} \approx \sqrt{54.56} \approx 7.38 ]
Código en Python
# Cálculo de la desviación estándar
std_deviation = np.std(data, ddof=0) # ddof=0 para desviación estándar poblacional
print(f"Desviación Estándar: {std_deviation}")
4. Coeficiente de Variación
Significado
El coeficiente de variación (CV) es una medida de la dispersión relativa de los datos, calculado como la desviación estándar dividida por la media. Se expresa como un porcentaje.
Propiedades
- Permite comparar la variabilidad entre diferentes conjuntos de datos que pueden tener medias diferentes.
- No se puede utilizar con datos que contienen valores cero.
Ejemplo
Para el conjunto de datos: 10, 12, 15, 20, 30.
Cálculo:
[ \text{CV} = \frac{\text{Desviación Estándar}}{\text{Media}} \times 100 ]
Calculando la media:
[ \text{Media} = 17.4 ]
Entonces:
[ \text{CV} \approx \frac{7.38}{17.4} \times 100 \approx 42.41\% ]
Código en Python
# Cálculo del coeficiente de variación
cv = (std_deviation / np.mean(data)) * 100
print(f"Coeficiente de Variación: {cv:.2f}%")
5. Rango Intercuartílico (IQR)
Significado
El rango intercuartílico mide la dispersión de los datos a través de los cuartiles. Es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1), y es útil para describir la variabilidad en datos que contienen valores atípicos.
Propiedades
- No se ve afectado por los valores atípicos.
- Proporciona información sobre la dispersión del 50% central de los datos.
Ejemplo
Para el conjunto de datos: 10, 12, 15, 20, 30.
Cálculo:
- Q1 (25%): 12
- Q3 (75%): 20
[ \text{IQR} = Q3 – Q1 = 20 – 12 = 8 ]
Código en Python
# Cálculo del rango intercuartílico
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
print(f"Rango Intercuartílico (IQR): {iqr}")
Resumen de Cálculos
Aquí tienes un resumen de cómo calcular todas las medidas de dispersión en un solo bloque de código. Usamos dos conjuntos de datos iguales salvo un dato atípico (outliner) en el segundo.
import numpy as np # Conjunto de datos data = np.array([11, 18, 14, 5, 14, 18, 9, 8, 14, 10, 9, 7, 1, 16, 17, 10, 11, 9, 7, 19]) dataout = np.array([11, 18, 14, 5, 14, 18, 9, 8, 14, 10, 9, 7, 1, 16, 17, 10, 11, 9, 7, 19,50]) # Rango data_range = np.max(data) - np.min(data) data_range2= np.ptp(dataout) # Varianza variance = np.var(data) variance2 = np.var(dataout) # Desviación Estándar std_deviation = np.std(data) std_deviation2 = np.std(dataout) # Coeficiente de Variación cv = (std_deviation / np.mean(data)) * 100 cv2 = (std_deviation2 / np.mean(dataout)) * 100 # Rango Intercuartílico (IQR) q1 = np.percentile(data, 25) q3 = np.percentile(data, 75) iqr = q3 - q1 iqr2 = np.percentile(dataout, 75)-np.percentile(dataout, 25) # Resultados print(f"Rango: {data_range}") print(f"Rango: {data_range2}") print(f"Varianza: {variance}") print(f"Varianza: {variance2}") print(f"Desviación Estándar: {std_deviation}") print(f"Desviación Estándar: {std_deviation2}") print(f"Coeficiente de Variación: {cv:.2f}%") print(f"Coeficiente de Variación: {cv2:.2f}%") print(f"Rango Intercuartílico (IQR): {iqr}") print(f"Rango Intercuartílico (IQR): {iqr2}")
Conclusión
Las medidas de dispersión son fundamentales para entender la variabilidad en un conjunto de datos. Cada medida tiene sus propias propiedades y puede ser más útil en diferentes contextos. Es importante considerar estas medidas junto con las medidas de tendencia central para obtener una imagen completa de los datos analizados.