Visualisering av permutationsurval
För att bättre förstå hur permutationsurval fungerar kommer du i den här övningen att generera permutationsurval och undersöka dem grafiskt.
Vi använder Sheffield Weather Station-data igen, och fokuserar den här gången på månadsvis nederbörd i juni (en torr månad) och november (en blöt månad). Vi förväntar oss att dessa kan vara olika fördelade, så vi tar permutationsurval för att se hur deras ECDF:er skulle se ut om de vore identiskt fördelade.
Data lagras i NumPy-arrayerna rain_june och rain_november.
Som påminnelse: permutation_sample() har funktionssignaturen permutation_sample(data_1, data_2) och returnerar permuted_data[:len(data_1)], permuted_data[len(data_1):], där permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Skriv en
for-slinga som genererar 50 permutationsurval, beräknar deras ECDF:er och plottar dem.- Generera ett par permutationsurval från
rain_juneochrain_novembermed hjälp av din funktionpermutation_sample(). - Generera
x- ochy-värden för en ECDF för vart och ett av de två permutationsurvalen med hjälp av din funktionecdf(). - Plotta ECDF:en för det första permutationsurvalets (
x_1ochy_1) som punkter. Gör samma sak för det andra permutationsurvalets (x_2ochy_2).
- Generera ett par permutationsurval från
- Generera
x- ochy-värden för ECDF:er för data irain_juneochrain_november, och plotta ECDF:erna med nyckelordsargumentencolor='red'respektivecolor='blue'. - Sätt etiketter på dina axlar, ange en marginal på 2 % och visa din plot. Det här är redan gjort åt dig, så klicka bara på skicka in för att se plotten!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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()