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)
Oefeninstructies
- Schrijf een
for-lus om 50 permutatiemonsters te genereren, hun ECDF's te berekenen en te plotten.- Genereer een paar permutatiemonsters uit
rain_juneenrain_novembermet je functiepermutation_sample(). - Genereer de
x- eny-waarden voor een ECDF voor elk van de twee permutatiemonsters met je functieecdf(). - Plot de ECDF van het eerste permutatiemonster (
x_1eny_1) als punten. Doe hetzelfde voor het tweede permutatiemonster (x_2eny_2).
- Genereer een paar permutatiemonsters uit
- Genereer
x- eny-waarden voor ECDF's voor de datarain_juneenrain_novemberen plot de ECDF's met respectievelijk de sleutelwoordencolor='red'encolor='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()