IniziaInizia gratis

Il voto sul Civil Rights Act del 1964

Il Civil Rights Act del 1964 è stata una delle leggi più importanti mai approvate negli USA. Escludendo i voti "present" e "abstain", 153 Democratici della Camera e 136 Repubblicani votarono favorevoli (yea). Tuttavia, 91 Democratici e 35 Repubblicani votarono contrari (nay). L’affiliazione politica ha influito sull’esito del voto?

Per rispondere, valuterai l’ipotesi che il partito di un membro della Camera non abbia alcuna influenza sul suo voto. Userai come statistica di test la frazione di Democratici che hanno votato a favore e valuterai la probabilità di osservare una frazione di Democratici favorevoli almeno piccola quanto la frazione osservata di 153/244. (Esatto, almeno così piccola. Nel 1964 erano i Democratici a essere meno progressisti sulle questioni dei diritti civili.) Per farlo, permuta le etichette di partito dei votanti della Camera, poi dividili arbitrariamente in "Democrats" e "Republicans" e calcola la frazione di Democratici che votano yea.

Questo esercizio fa parte del corso

Pensiero statistico in Python (Parte 2)

Visualizza il corso

Istruzioni dell'esercizio

  • Crea gli array booleani dems e reps che contengono i voti dei rispettivi partiti; ad esempio, dems ha 153 valori True e 91 valori False.
  • Scrivi una funzione frac_yea_dems(dems, reps) che restituisca la frazione di Democratici che hanno votato yea. Il primo argomento è un array di booleani. Sono richiesti due argomenti per usare la tua funzione draw_perm_reps(), ma il secondo non viene usato.
  • Usa la tua funzione draw_perm_reps() per generare 10.000 repliche di permutazione della frazione di voti favorevoli dei Democratici.
  • Calcola e stampa il p-value.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice