Problem wielokrotnych porównań
Problem wielokrotnych porównań pojawia się, gdy badacz wielokrotnie sprawdza różne zmienne lub próbki pod kątem istotności statystycznej. Czysto przypadkowo możemy od czasu do czasu natrafić na wynik uznawany za statystycznie istotny.
W tym ćwiczeniu będziesz pracować z danymi dotyczącymi wynagrodzeń pracowników Urzędu Miasta Austin w Teksasie. Porównasz te wynagrodzenia z losowo wygenerowanymi danymi i zobaczysz, jak często takie losowe dane okazują się „istotne" w wyjaśnianiu zarobków pracowników. Oczywiście każda taka „istotność" byłaby pozorna – liczby losowe raczej niczego nie wyjaśniają!
Ramka danych z wynagrodzeniami funkcjonariuszy policji (police_salaries_df) jest już wczytana, podobnie jak pakiety: pandas jako pd, NumPy jako np, Matplotlib jako plt oraz stats z SciPy.
To ćwiczenie jest częścią kursu
Podstawy wnioskowania statystycznego w Pythonie
Instrukcje do ćwiczenia
- Zapisz liczbę osób w zbiorze danych w zmiennej
n_rows(każdy wiersz to jedna osoba) i zainicjuj liczbę istotnych wyników,n_significant, wartością zero. - Napisz pętlę
for, która wykona się 1000 razy i za każdym razem wygenerujen_rowsliczb losowych. - Oblicz współczynnik R Pearsona oraz odpowiadającą mu p-wartość między wygenerowanymi liczbami a wynagrodzeniami funkcjonariuszy policji.
- Jeśli p-wartość jest istotna na poziomie 5%, dodaj jeden do
n_significantza pomocą operatora+=.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)