Estrazione di replicati K-S
Ora ti serve una funzione per estrarre replicati di Kolmogorov–Smirnov da una distribuzione target, f. Costruisci una funzione con firma draw_ks_reps(n, f, args=(), size=10000, n_reps=10000). Qui, n è il numero di punti dati e f è la funzione che userai per generare campioni dalla CDF target. Per esempio, per testare contro una distribuzione esponenziale, passeresti np.random.exponential come f. Questa funzione di solito richiede degli argomenti, che devono essere passati come tupla. Quindi, se volessi campionare da una distribuzione esponenziale con media x_mean, useresti il parametro args=(x_mean,). I parametri size e n_reps rappresentano rispettivamente il numero di campioni da estrarre dalla distribuzione target e il numero di replicati da generare.
Questo esercizio fa parte del corso
Casi di studio nel pensiero statistico
Istruzioni dell'esercizio
- Scrivi una funzione con firma
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)che faccia quanto segue.- Genera
sizecampioni dalla distribuzione targetf. Ricorda: per passareargsalla funzione di campionamento, usa la costruzionef(*args, size=size). Salva il risultato comex_f. - Inizializza l'array dei replicati,
reps, come un array vuoto conn_repselementi. - Scrivi un ciclo
forper ripetere quanto seguen_repsvolte.- Estrai
ncampioni daf. Anche qui usa*argsnella chiamata di funzione. Salva il risultato nella variabilex_samp. - Calcola la statistica K-S usando
dcst.ks_stat(), la funzione che hai scritto nell'esercizio precedente e che è comodamente disponibile nel modulodcst. Salva il risultato nell'arrayreps.
- Estrai
- Restituisci l'array
reps.
- Genera
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
____ ____:
# 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