Aan de slagGa gratis aan de slag

Permutatiemonsters visualiseren

Om te zien hoe permutation sampling werkt, ga je in deze oefening permutatiemonsters genereren en er grafisch naar kijken.

We gebruiken opnieuw de gegevens van het Sheffield Weather Station, dit keer de maandelijkse neerslag in juni (een droge maand) en november (een natte maand). We verwachten dat deze verschillend verdeeld zijn, dus we nemen permutatiemonsters om te zien hoe hun ECDF's eruit zouden zien als ze identiek verdeeld waren.

De data staan in de NumPy-arrays rain_june en rain_november.

Ter herinnering: permutation_sample() heeft de functiesignatuur permutation_sample(data_1, data_2) met een returnwaarde van permuted_data[:len(data_1)], permuted_data[len(data_1):], waarbij permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Schrijf een for-lus om 50 permutatiemonsters te genereren, hun ECDF's te berekenen en te plotten.
    • Genereer een paar permutatiemonsters uit rain_june en rain_november met je functie permutation_sample().
    • Genereer de x- en y-waarden voor een ECDF voor elk van de twee permutatiemonsters met je functie ecdf().
    • Plot de ECDF van het eerste permutatiemonster (x_1 en y_1) als punten. Doe hetzelfde voor het tweede permutatiemonster (x_2 en y_2).
  • Genereer x- en y-waarden voor ECDF's voor de data rain_june en rain_november en plot de ECDF's met respectievelijk de sleutelwoorden color='red' en color='blue'.
  • Voorzie je assen van labels, stel een marge van 2% in en toon je plot. Dit is al voor je gedaan, dus druk gewoon op verzenden om de plot te bekijken!

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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()
Code bewerken en uitvoeren