Le vote sur le Civil Rights Act en 1964
Le Civil Rights Act de 1964 est l’un des textes de loi les plus importants jamais adoptés aux États-Unis. En excluant les votes « présent » et « abstention », 153 démocrates de la Chambre et 136 républicains ont voté « yea ». Cependant, 91 démocrates et 35 républicains ont voté « nay ». L’appartenance à un parti a-t-elle influencé le vote ?
Pour répondre à cette question, vous allez évaluer l’hypothèse selon laquelle le parti d’un membre de la Chambre n’a aucune incidence sur son vote. Vous utiliserez la proportion de démocrates ayant voté en faveur comme statistique de test et évaluerez la probabilité d’observer une proportion de démocrates en faveur au moins aussi faible que la proportion observée de 153/244. (Oui, au moins aussi faible. En 1964, ce sont les démocrates qui étaient moins progressistes sur les questions de droits civiques.) Pour ce faire, permutez les étiquettes de parti des votants de la Chambre, puis divisez-les arbitrairement en « démocrates » et « républicains » et calculez la proportion de démocrates ayant voté « yea ».
Cet exercice fait partie du cours
Réflexion statistique en Python (Partie 2)
Instructions
- Construisez des tableaux booléens,
demsetreps, qui contiennent les votes des partis respectifs ; par exemple,demscomporte 153 entréesTrueet 91 entréesFalse. - Écrivez une fonction
frac_yea_dems(dems, reps)qui renvoie la proportion de démocrates ayant voté « yea ». Le premier argument est un tableau de booléens. Deux arguments sont requis pour utiliser votre fonctiondraw_perm_reps(), mais le second n’est pas utilisé. - Utilisez votre fonction
draw_perm_reps()pour tirer 10 000 réplicats par permutation de la proportion de votes « yea » des démocrates. - Calculez et affichez la valeur p.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)