Zacznij terazZacznij za darmo

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)

Zobacz kurs

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_june i rain_november przy użyciu funkcji permutation_sample().
    • Wygeneruj wartości x i y dla ECDF każdej z dwóch próbek permutacyjnych, korzystając z funkcji ecdf().
    • Wyrysuj ECDF pierwszej próbki permutacyjnej (x_1 i y_1) w postaci punktów. Zrób to samo dla drugiej próbki permutacyjnej (x_2 i y_2).
  • Wygeneruj wartości x i y dla ECDF danych rain_june i rain_november, a następnie wyrysuj te ECDF, używając odpowiednio argumentów słów kluczowych color='red' i color='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()
Edytuj i uruchom kod