Głosowanie nad Ustawą o Prawach Obywatelskich z 1964 roku
Ustawa o Prawach Obywatelskich z 1964 roku była jednym z najważniejszych aktów prawnych uchwalonych w historii USA. Pomijając głosy „wstrzymuję się" i „nieobecny", 153 Demokratów i 136 Republikanów z Izby Reprezentantów zagłosowało „za". Natomiast 91 Demokratów i 35 Republikanów zagłosowało „przeciw". Czy przynależność partyjna miała wpływ na wynik głosowania?
Aby odpowiedzieć na to pytanie, sprawdź hipotezę, że partia kongresmenki lub kongresmana nie ma żadnego wpływu na jej lub jego głos. Jako statystykę testową wykorzystaj frakcję Demokratów głosujących „za" i oceń prawdopodobieństwo zaobserwowania frakcji co najwyżej tak małej jak zaobserwowana wartość 153/244. (Tak, co najwyżej tak małej. W 1964 roku to właśnie Demokraci byli mniej postępowi w kwestii praw obywatelskich.) W tym celu przelosuj etykiety partyjne głosujących w Izbie Reprezentantów, a następnie dowolnie podziel je na „Demokratów" i „Republikanów" i oblicz frakcję Demokratów głosujących „za".
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Utwórz tablice wartości logicznych
demsireps, zawierające głosy odpowiednich partii; np.demspowinna mieć 153 wpisyTruei 91 wpisówFalse. - Napisz funkcję
frac_yea_dems(dems, reps), która zwraca frakcję Demokratów głosujących „za". Pierwszy argument to tablica wartości logicznych. Funkcja przyjmuje dwa argumenty, ponieważ wymaga tegodraw_perm_reps(), jednak drugi z nich nie jest używany. - Użyj funkcji
draw_perm_reps(), aby wylosować 10 000 replikacji permutacyjnych frakcji głosów „za" wśród Demokratów. - Oblicz i wydrukuj wartość p.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Construct arrays of data: dems, reps
dems = np.array([True] * 153 + [False] * 91)
reps = ____
def frac_yea_dems(dems, reps):
"""Compute fraction of Democrat yea votes."""
frac = ____ / ____
return frac
# Acquire permutation samples: perm_replicates
perm_replicates = ____(____, ____, frac_yea_dems, ____)
# Compute and print p-value: p
p = np.sum(____ <= 153/244) / len(____)
print('p-value =', p)