Визуализация перестановочного сэмплирования
Чтобы лучше понять, как работает перестановочное сэмплирование, в этом упражнении вы сгенерируете перестановочные выборки и изучите их графически.
Мы снова воспользуемся данными метеостанции Шеффилда — на этот раз рассмотрим месячное количество осадков в июне (сухой месяц) и ноябре (дождливый месяц). Мы предполагаем, что их распределения могут различаться, поэтому построим перестановочные выборки, чтобы посмотреть, как выглядели бы их 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()