Visualizzare il campionamento per permutazione
Per capire meglio come funziona il campionamento per permutazione, in questo esercizio genererai campioni permutati e li osserverai graficamente.
Useremo di nuovo i dati della Sheffield Weather Station, questa volta considerando le precipitazioni mensili a giugno (mese secco) e a novembre (mese piovoso). Ci aspettiamo che possano avere distribuzioni diverse, quindi prenderemo campioni permutati per vedere come apparirebbero le loro ECDF se fossero identicamente distribuite.
I dati sono salvati negli array NumPy rain_june e rain_november.
Come promemoria, permutation_sample() ha la firma permutation_sample(data_1, data_2) e restituisce permuted_data[:len(data_1)], permuted_data[len(data_1):], dove permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
Questo esercizio fa parte del corso
Pensiero statistico in Python (Parte 2)
Istruzioni dell'esercizio
- Scrivi un ciclo
forper generare 50 campioni permutati, calcolare le loro ECDF e tracciarle.- Genera una coppia di campioni permutati da
rain_juneerain_novemberusando la tua funzionepermutation_sample(). - Genera i valori
xeyper un'ECDF per ciascuno dei due campioni permutati usando la tua funzioneecdf(). - Traccia l'ECDF del primo campione permutato (
x_1ey_1) come punti. Fai lo stesso per il secondo campione permutato (x_2ey_2).
- Genera una coppia di campioni permutati da
- Genera i valori
xeydelle ECDF per i datirain_juneerain_novembere traccia le ECDF usando rispettivamente gli argomenti keywordcolor='red'ecolor='blue'. - Etichetta gli assi, imposta un margine del 2% e mostra il grafico. Questo è già stato fatto per te, quindi premi semplicemente Invia per visualizzarlo!
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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()