CommencezCommencez gratuitement

Le vote sur la Civil Rights Act en 1964

La Civil Rights Act de 1964 est l'une des lois les plus importantes jamais adoptées aux États‑Unis. En excluant les votes « present » et les abstentions, 153 démocrates à la Chambre et 136 républicains ont voté « yea ». Toutefois, 91 démocrates et 35 républicains ont voté « nay ». L'appartenance à un parti a‑t‑elle influé sur 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 fraction de démocrates ayant voté en faveur comme statistique de test et évaluerez la probabilité d'observer une fraction de démocrates en faveur au moins aussi petite que la fraction observée de 153/244. (Oui, au moins aussi petite. 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 répartissez‑les arbitrairement en « Democrats » et « Republicans », et calculez la fraction de démocrates ayant voté « yea ».

Cette activité fait partie du cours

Réflexion statistique en Python (partie 2)

Voir le cours

Instructions de l’exercice

  • Construisez des tableaux booléens, dems et reps, qui contiennent les votes des partis respectifs; p. ex., dems comporte 153 entrées True et 91 entrées False.
  • Écrivez une fonction frac_yea_dems(dems, reps) qui renvoie la fraction de démocrates ayant voté « yea ». La première entrée est un tableau booléen. Deux entrées sont requises pour utiliser votre fonction draw_perm_reps(), mais la deuxième n'est pas utilisée.
  • Utilisez votre fonction draw_perm_reps() pour générer 10 000 réplicats par permutation de la fraction de votes « yea » chez les démocrates.
  • Calculez et affichez la valeur p.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code