Візуалізація перестановочного вибірковування
Щоб краще зрозуміти, як працює перестановочне вибірковування, у цій вправі ви згенеруєте перестановочні вибірки та розглянете їх на графіку.
Ми знову використаємо дані Метеостанції Шеффілда, цього разу — місячні опади у червні (сухий місяць) і листопаді (вологий місяць). Очікуємо, що їхні розподіли можуть відрізнятися, тож візьмемо перестановочні вибірки, щоб побачити, як виглядали б їхні ECDF, якби вони були однаково розподілені.
Дані збережено в масивах NumPy rain_june і rain_november.
На згадку: permutation_sample() має сигнатуру permutation_sample(data_1, data_2) і повертає permuted_data[:len(data_1)], permuted_data[len(data_1):], де permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
Ця вправа є частиною курсу
Статистичне мислення в Python (Частина 2)
Інструкції до вправи
- Напишіть цикл
for, щоб згенерувати 50 перестановочних вибірок, обчислити їхні ECDF і побудувати їх на графіку.- Згенеруйте пару перестановочних вибірок із
rain_juneтаrain_november, використовуючи вашу функціюpermutation_sample(). - Згенеруйте значення
xіyдля ECDF для кожної з двох перестановочних вибірок за допомогою вашої функціїecdf(). - Побудуйте ECDF першої перестановочної вибірки (
x_1іy_1) у вигляді точок. Зробіть те саме для другої перестановочної вибірки (x_2іy_2).
- Згенеруйте пару перестановочних вибірок із
- Згенеруйте значення
xіyдля ECDF для данихrain_juneіrain_novemberта побудуйте їхні ECDF, використавши відповідно ключові аргументиcolor='red'іcolor='blue'. - Додайте підписи до осей, встановіть поле 2% і покажіть графік. Це вже зроблено за вас, тож просто натисніть «Надіслати відповідь», щоб переглянути графік!
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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()