Permutationsstichproben visualisieren
Um zu verstehen, wie Permutationsstichproben funktionieren, erzeugst du in dieser Übung Permutationsstichproben und betrachtest sie grafisch.
Wir verwenden wieder die Daten der Wetterstation Sheffield, diesmal den monatlichen Niederschlag im Juni (ein trockener Monat) und im November (ein nasser Monat). Wir erwarten, dass diese unterschiedlich verteilt sind, daher ziehen wir Permutationsstichproben, um zu sehen, wie ihre ECDFs aussehen würden, wenn sie identisch verteilt wären.
Die Daten liegen in den NumPy-Arrays rain_june und rain_november.
Zur Erinnerung: permutation_sample() hat die Funktionssignatur permutation_sample(data_1, data_2) und gibt permuted_data[:len(data_1)], permuted_data[len(data_1):] zurück, wobei permuted_data = np.random.permutation(np.concatenate((data_1, data_2))) ist.
Diese Übung ist Teil des Kurses
Statistical Thinking in Python (Teil 2)
Anleitung zur Übung
- Schreibe eine
for-Schleife, um 50 Permutationsstichproben zu erzeugen, ihre ECDFs zu berechnen und zu plotten.- Erzeuge ein Permutationsstichproben-Paar aus
rain_juneundrain_novembermit deiner Funktionpermutation_sample(). - Erzeuge die
x- undy-Werte für eine ECDF für jede der beiden Permutationsstichproben mit deiner Funktionecdf(). - Plotte die ECDF der ersten Permutationsstichprobe (
x_1undy_1) als Punkte. Mache dasselbe für die zweite Permutationsstichprobe (x_2undy_2).
- Erzeuge ein Permutationsstichproben-Paar aus
- Erzeuge
x- undy-Werte für ECDFs für die Datenrain_juneundrain_novemberund plotte die ECDFs mit den Keyword-Argumentencolor='red'bzw.color='blue'. - Beschrifte die Achsen, setze einen Rand von 2 % und zeige den Plot an. Das ist bereits für dich erledigt – klicke also einfach auf Antwort senden, um den Plot zu sehen!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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()