IniziaInizia gratis

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)

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi un ciclo for per generare 50 campioni permutati, calcolare le loro ECDF e tracciarle.
    • Genera una coppia di campioni permutati da rain_june e rain_november usando la tua funzione permutation_sample().
    • Genera i valori x e y per un'ECDF per ciascuno dei due campioni permutati usando la tua funzione ecdf().
    • Traccia l'ECDF del primo campione permutato (x_1 e y_1) come punti. Fai lo stesso per il secondo campione permutato (x_2 e y_2).
  • Genera i valori x e y delle ECDF per i dati rain_june e rain_november e traccia le ECDF usando rispettivamente gli argomenti keyword color='red' e color='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()
Modifica ed esegui il codice