Wizualizacja próbkowania permutacyjnego
Aby lepiej zrozumieć, jak działa próbkowanie permutacyjne, w tym ćwiczeniu wygenerujesz próbki permutacyjne i przeanalizujesz je graficznie.
Ponownie skorzystamy z danych Sheffield Weather Station – tym razem przyjrzymy się miesięcznym opadom w czerwcu (miesiąc suchy) i w listopadzie (miesiąc mokry). Spodziewamy się, że rozkłady tych danych mogą się różnić, dlatego pobierzemy próbki permutacyjne, aby zobaczyć, jak wyglądałyby ich ECDF, gdyby dane miały identyczny rozkład.
Dane są zapisane w tablicach NumPy rain_june i rain_november.
Dla przypomnienia: permutation_sample() ma sygnaturę permutation_sample(data_1, data_2) i zwraca permuted_data[:len(data_1)], permuted_data[len(data_1):], gdzie permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Napisz pętlę
for, która wygeneruje 50 próbek permutacyjnych, obliczy ich ECDF i wyrysuje je na wykresie.- Wygeneruj parę próbek permutacyjnych z
rain_juneirain_novemberprzy użyciu funkcjipermutation_sample(). - Wygeneruj wartości
xiydla ECDF każdej z dwóch próbek permutacyjnych, korzystając z funkcjiecdf(). - Wyrysuj ECDF pierwszej próbki permutacyjnej (
x_1iy_1) w postaci punktów. Zrób to samo dla drugiej próbki permutacyjnej (x_2iy_2).
- Wygeneruj parę próbek permutacyjnych z
- Wygeneruj wartości
xiydla ECDF danychrain_juneirain_november, a następnie wyrysuj te ECDF, używając odpowiednio argumentów słów kluczowychcolor='red'icolor='blue'. - Opisz osie, ustaw margines 2% i wyświetl wykres. Ta część została już za ciebie przygotowana – po prostu prześlij odpowiedź, aby zobaczyć wykres!
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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()