Die Abstimmung über den Civil Rights Act von 1964
Der Civil Rights Act von 1964 war eines der wichtigsten Gesetze, die je in den USA verabschiedet wurden. Ohne „present“- und „abstain“-Stimmen stimmten 153 Demokraten im Repräsentantenhaus und 136 Republikaner mit Ja. Allerdings stimmten 91 Demokraten und 35 Republikaner mit Nein. Hatte die Parteizugehörigkeit Einfluss auf das Abstimmungsverhalten?
Um diese Frage zu beantworten, bewertest du die Hypothese, dass die Partei eines Mitglieds des Repräsentantenhauses keinen Einfluss auf seine oder ihre Stimme hat. Du verwendest den Anteil der Demokraten, die dafür gestimmt haben, als Teststatistik und bewertest die Wahrscheinlichkeit, einen Anteil der zustimmenden Demokraten zu beobachten, der mindestens so klein ist wie der beobachtete Anteil von 153/244. (Genau, mindestens so klein. 1964 waren es die Demokraten, die bei Bürgerrechtsfragen weniger progressiv waren.) Dazu permutierst du die Parteilabel der Abgeordneten, teilst sie anschließend willkürlich in „Democrats“ und „Republicans“ auf und berechnest den Anteil der Demokraten, die „yea“ gestimmt haben.
Diese Übung ist Teil des Kurses
Statistical Thinking in Python (Teil 2)
Anleitung zur Übung
- Erstelle boolesche Arrays
demsundreps, die die Stimmen der jeweiligen Parteien enthalten; z. B. hatdems153True- und 91False-Einträge. - Schreibe eine Funktion
frac_yea_dems(dems, reps), die den Anteil der Demokraten zurückgibt, die „yea“ gestimmt haben. Die erste Eingabe ist ein Array aus Booleans. Zwei Eingaben sind nötig, um deine Funktiondraw_perm_reps()zu verwenden, aber die zweite wird nicht genutzt. - Verwende deine Funktion
draw_perm_reps(), um 10.000 Permutationsreplikate des Anteils der Ja-Stimmen der Demokraten zu ziehen. - Berechne und gib den p-Wert aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)