A votação da Lei dos Direitos Civis em 1964
A Lei dos Direitos Civis de 1964 foi uma das legislações mais importantes já aprovadas nos EUA. Excluindo votos de "present" e "abstain", 153 democratas da Câmara e 136 republicanos votaram "yea". No entanto, 91 democratas e 35 republicanos votaram "nay". A filiação partidária fez diferença na votação?
Para responder a essa pergunta, você vai avaliar a hipótese de que o partido de um membro da Câmara não influencia seu voto. Você usará a fração de democratas que votaram a favor como sua estatística de teste e avaliará a probabilidade de observar uma fração de democratas a favor pelo menos tão pequena quanto a fração observada de 153/244. (Isso mesmo, pelo menos tão pequena. Em 1964, foram os democratas que eram menos progressistas em questões de direitos civis.) Para fazer isso, permute os rótulos de partido dos votantes da Câmara e então divida-os arbitrariamente em "Democrats" e "Republicans" e calcule a fração de democratas que votaram "yea".
Este exercício faz parte do curso
Pensamento Estatístico em Python (Parte 2)
Instruções do exercício
- Construa arrays Booleanos,
demsereps, que contenham os votos dos respectivos partidos; por exemplo,demstem 153 entradasTruee 91 entradasFalse. - Escreva uma função,
frac_yea_dems(dems, reps), que retorna a fração de democratas que votaram "yea". A primeira entrada é um array de Booleanos. Duas entradas são necessárias para usar sua funçãodraw_perm_reps(), mas a segunda não é usada. - Use sua função
draw_perm_reps()para gerar 10.000 réplicas por permutação da fração de votos "yea" dos democratas. - Calcule e imprima o p-valor.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)