НачатьНачать бесплатно

Проверка гипотез — разность средних

Мы хотим проверить гипотезу о том, что средние суммы пожертвований в группах A и B различаются. Ранее вы научились генерировать одну перестановку данных. Теперь мы построим нулевое распределение разности средних и вычислим p-значение.

Для построения нулевого распределения сначала генерируется несколько переставленных наборов данных, и для каждого из них запоминается разность средних. Затем вычисляется тестовая статистика как разность средних на исходных данных. Наконец, p-значение аппроксимируется как удвоенная доля случаев, в которых разность больше или равна абсолютному значению тестовой статистики (двусторонняя гипотеза). Если p-значение окажется меньше, например, 0,05, это будет свидетельствовать о статистической значимости результата.

Это упражнение является частью курса

Статистическое моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Сгенерируйте несколько перестановок donations_A и donations_B и присвойте результат переменной perm.
  • Присвойте переменной samples разность средних наборов permuted_A_datasets и permuted_B_datasets. Используйте axis=1, чтобы вычислять среднее для каждого набора данных отдельно, а не общее среднее.
  • Присвойте переменной test_stat разность средних donations_A и donations_B.
  • Вычислите p-значение p_val как удвоенную долю значений в samples, которые больше или равны абсолютному значению test_stat.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]

# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)

# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))
Редактировать и запускать код