De stemming over de Civil Rights Act in 1964
De Civil Rights Act van 1964 was een van de belangrijkste wetten die ooit in de VS zijn aangenomen. Als je "present" en "abstain"-stemmen buiten beschouwing laat, stemden 153 Democraten in het Huis en 136 Republikeinen voor. Daarentegen stemden 91 Democraten en 35 Republikeinen tegen. Maakte partijlidmaatschap verschil in de stemming?
Om deze vraag te beantwoorden, ga je de hypothese toetsen dat de partij van een Huislid geen invloed had op zijn of haar stem. Je gebruikt het aandeel Democraten dat vóór stemde als toetsingsgrootheid en bepaalt de kans om een aandeel Democraten dat vóór stemde te observeren dat ten minste zo klein is als het geobserveerde aandeel van 153/244. (Inderdaad, ten minste zo klein. In 1964 waren het de Democraten die minder progressief waren op het gebied van burgerrechten.) Om dit te doen, permuteer je de partijlables van de leden van het Huis, verdeel je ze vervolgens willekeurig in "Democrats" en "Republicans" en bereken je het aandeel Democraten dat 'yea' stemt.
Deze oefening maakt deel uit van de cursus
Statistical Thinking in Python (deel 2)
Oefeninstructies
- Maak Booleaanse arrays,
demsenreps, met de stemmen van de respectieve partijen; bijvoorbeeld,demsheeft 153True-waarden en 91False-waarden. - Schrijf een functie,
frac_yea_dems(dems, reps), die het aandeel Democraten retourneert dat 'yea' stemde. De eerste invoer is een array van Booleans. Er zijn twee invoerargumenten nodig om je functiedraw_perm_reps()te kunnen gebruiken, maar de tweede wordt niet gebruikt. - Gebruik je functie
draw_perm_reps()om 10.000 permutatiereplicaties te trekken van het aandeel 'yea'-stemmen onder Democraten. - Bereken en print de p-waarde.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)