Visualización del muestreo por permutación
Para entender mejor cómo funciona el muestreo por permutación, en este ejercicio vas a generar muestras por permutación y a examinarlas gráficamente.
Usaremos de nuevo los datos de la Estación Meteorológica de Sheffield, esta vez considerando la precipitación mensual de junio (un mes seco) y noviembre (un mes lluvioso). Esperamos que estén distribuidas de forma diferente, así que tomaremos muestras por permutación para ver cómo se verían sus ECDF si fueran idénticamente distribuidas.
Los datos están almacenados en los arrays de NumPy rain_june y rain_november.
Como recordatorio, permutation_sample() tiene la firma permutation_sample(data_1, data_2) y devuelve permuted_data[:len(data_1)], permuted_data[len(data_1):], donde permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 2)
Instrucciones del ejercicio
- Escribe un bucle
forpara generar 50 muestras por permutación, calcular sus ECDF y representarlas.- Genera un par de muestras por permutación a partir de
rain_juneyrain_novemberusando tu funciónpermutation_sample(). - Genera los valores
xyyde una ECDF para cada una de las dos muestras por permutación usando tu funciónecdf(). - Representa la ECDF de la primera muestra por permutación (
x_1yy_1) como puntos. Haz lo mismo para la segunda muestra por permutación (x_2yy_2).
- Genera un par de muestras por permutación a partir de
- Genera los valores
xyyde las ECDF de los datosrain_juneyrain_novembery representa esas ECDF usando, respectivamente, los argumentoscolor='red'ycolor='blue'. - Etiqueta los ejes, pon un margen del 2% y muestra el gráfico. Esto ya está hecho por ti, ¡así que solo tienes que Enviar respuesta para ver el gráfico!
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
for _ in ____:
# Generate permutation samples
perm_sample_1, perm_sample_2 = ____
# Compute ECDFs
x_1, y_1 = ____
x_2, y_2 = ____
# Plot ECDFs of permutation sample
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='red', alpha=0.02)
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='blue', alpha=0.02)
# Create and plot ECDFs from original data
x_1, y_1 = ____
x_2, y_2 = ____
_ = plt.plot(x_1, y_1, marker='.', linestyle='none', color='red')
_ = plt.plot(x_2, y_2, marker='.', linestyle='none', color='blue')
# Label axes, set margin, and show plot
plt.margins(0.02)
_ = plt.xlabel('monthly rainfall (mm)')
_ = plt.ylabel('ECDF')
plt.show()