Aan de slagGa gratis aan de slag

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)

Cursus bekijken

Oefeninstructies

  • Maak Booleaanse arrays, dems en reps, met de stemmen van de respectieve partijen; bijvoorbeeld, dems heeft 153 True-waarden en 91 False-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 functie draw_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)
Code bewerken en uitvoeren