Generar réplicas K-S
Ahora necesitas una función para extraer réplicas de Kolmogorov–Smirnov de una distribución objetivo, f. Construye una función con la firma draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) para hacerlo. Aquí, n es el número de puntos de datos y f es la función que usarás para generar muestras de la CDF objetivo. Por ejemplo, para contrastar contra una distribución Exponential, pasarías np.random.exponential como f. Esta función suele requerir argumentos, que deben pasarse como una tupla. Así, si quisieras tomar muestras de una distribución Exponential con media x_mean, usarías el argumento de palabra clave args=(x_mean,). Los argumentos de palabra clave size y n_reps representan, respectivamente, el número de muestras que se toman de la distribución objetivo y el número de réplicas a generar.
Este ejercicio forma parte del curso
Casos prácticos de pensamiento estadístico
Instrucciones del ejercicio
- Escribe una función con la firma
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)que haga lo siguiente.- Genera
sizemuestras de la distribución objetivof. Recuerda que, para pasarargsa la función de muestreo, debes usar la construcciónf(*args, size=size). Guarda el resultado comox_f. - Inicializa el array de réplicas,
reps, como un array vacío conn_repselementos. - Escribe un bucle
forpara hacer lo siguienten_repsveces.- Extrae
nmuestras def. De nuevo, usa*argsen la llamada a la función. Guarda el resultado en la variablex_samp. - Calcula el estadístico K-S usando
dcst.ks_stat(), que es la función que escribiste en el ejercicio anterior y que está disponible en el módulodcst. Guarda el resultado en el arrayreps.
- Extrae
- Devuelve el array
reps.
- Genera
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
____ ____:
# Generate samples from target distribution
x_f = ____
# Initialize K-S replicates
reps = ____
# Draw replicates
for i in range(n_reps):
# Draw samples for comparison
x_samp = ____
# Compute K-S statistic
____[i] = ____
return reps