Проблема множинних порівнянь
Проблема множинних порівнянь виникає, коли дослідник багаторазово перевіряє різні змінні або вибірки між собою на значущість. Лише через випадковість ми час від часу очікуємо отримати результат, що виглядає статистично значущим.
У цій вправі ви працюватимете з даними про зарплати співробітників міста Остін, штат Техас. Ви порівняєте їхні зарплати з випадково згенерованими даними. Ви побачите, як часто такі випадкові дані бувають «значущими» для пояснення зарплат працівників. Очевидно, будь-яка така «значущість» буде хибною, адже випадкові числа мало що допомагають у поясненні!
Для вас завантажено DataFrame із зарплатами поліцейських (police_salaries_df), а також пакети pandas як pd, NumPy як np, Matplotlib як plt і stats із SciPy.
Ця вправа є частиною курсу
Основи інференції в Python
Інструкції до вправи
- Збережіть кількість людей у наборі даних у змінній
n_rows(кожен рядок — це одна людина) і ініціалізуйте лічильник значущих результатівn_significantнулем. - Напишіть цикл
for, який виконується 1000 разів і щоразу генеруєn_rowsвипадкових чисел. - Обчисліть коефіцієнт кореляції Пірсона R та відповідне p-значення між цими випадково згенерованими числами й зарплатами поліцейських.
- Якщо p-значення є значущим на рівні 5%, додайте одиницю до
n_significantза допомогою оператора+=.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Compute number of rows and initialize n_significant
n_rows = ____
n_significant = ____
# For loop which generates n_rows random numbers 1000 times
for i in ____:
random_nums = np.random.uniform(size=____)
# Compute correlation between random_nums and police salaries
r, p_value = stats.____(____, random_nums)
# If the p-value is significant at 5%, increment n_significant
if ____ < ____:
____ += 1
print(n_significant)