Capítulo 1

Estadística Descriptiva

1.1 Medidas de Tendencia Central

Media

xˉ=1ni=1nxi\bar{x} = \frac{1}{n}\sum_{i=1}^n x_i

Sensible a outliers. Usar cuando datos son simétricos.

Mediana

Valor central ordenando los datos. Robusta a outliers.

Moda

Valor más frecuente. Útil para variables categóricas.

1.2 Medidas de Dispersión

Varianza y Desviación Estándar

s2=1n1(xixˉ)2s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2

s en las mismas unidades que los datos. n-1 es corrección de Bessel.

Rango Intercuartil (IQR)

IQR=Q3Q1IQR = Q_3 - Q_1

Robusto. Q1 = percentil 25, Q3 = percentil 75.

1.3 Asimetría y Curtosis

Asimetría (Skewness)

g1=1n(xixˉs)3g_1 = \frac{1}{n}\sum \left(\frac{x_i - \bar{x}}{s}\right)^3

>0: cola derecha. <0: cola izquierda. 0: simétrica.

Curtosis

g2=1n(xixˉs)43g_2 = \frac{1}{n}\sum \left(\frac{x_i - \bar{x}}{s}\right)^4 - 3

>0: colas pesadas. <0: colas ligeras. Normal tiene 0.

1.4 Visualización

Histograma

Distribución de frecuencias. Elegir bins adecuados (regla de Sturges: k = 1 + log₂(n)).

Box Plot

Muestra Q1, mediana, Q3, bigotes (1.5×IQR) y outliers como puntos.

Violin Plot

Box plot + KDE. Muestra la forma completa de la distribución.

python
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

data = np.random.exponential(scale=2, size=1000)

print(f"Media: {np.mean(data):.3f}")
print(f"Mediana: {np.median(data):.3f}")
print(f"Std: {np.std(data, ddof=1):.3f}")
print(f"IQR: {np.percentile(data, 75) - np.percentile(data, 25):.3f}")
print(f"Skewness: {stats.skew(data):.3f}")
print(f"Kurtosis: {stats.kurtosis(data):.3f}")

fig, axes = plt.subplots(1, 3, figsize=(12, 3))
axes[0].hist(data, bins=30, edgecolor='white')
axes[0].set_title('Histograma')
axes[1].boxplot(data)
axes[1].set_title('Box Plot')
# Violin via seaborn: sns.violinplot(data=data)
plt.tight_layout()

1.5 Regla Empírica (68-95-99.7)

Para datos aproximadamente normales:

68%

xˉ±1s\bar{x} \pm 1s

95%

xˉ±2s\bar{x} \pm 2s

99.7%

xˉ±3s\bar{x} \pm 3s