La votación sobre la Ley de Derechos Civiles en 1964
La Ley de Derechos Civiles de 1964 fue una de las leyes más importantes jamás aprobadas en EE. UU. Excluyendo los votos de "present" y "abstain", 153 demócratas de la Cámara y 136 republicanos votaron a favor (yea). Sin embargo, 91 demócratas y 35 republicanos votaron en contra (nay). ¿Influyó la afiliación a un partido en la votación?
Para responder a esta pregunta, vas a evaluar la hipótesis de que el partido de un miembro de la Cámara no afecta a su voto. Utilizarás la fracción de demócratas que votaron a favor como estadístico de prueba y evaluarás la probabilidad de observar una fracción de demócratas a favor al menos tan pequeña como la fracción observada de 153/244. (Así es, al menos tan pequeña. En 1964, fueron los demócratas quienes eran menos progresistas en temas de derechos civiles). Para ello, permuta las etiquetas de partido de los votantes de la Cámara y luego divídelos arbitrariamente en "Democrats" y "Republicans" y calcula la fracción de demócratas que votan a favor.
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 2)
Instrucciones del ejercicio
- Construye arrays booleanos,
demsyreps, que contengan los votos de los respectivos partidos; p. ej.,demstiene 153 entradasTruey 91 entradasFalse. - Escribe una función,
frac_yea_dems(dems, reps), que devuelva la fracción de demócratas que votaron a favor. La primera entrada es un array de booleanos. Se requieren dos entradas para usar tu funcióndraw_perm_reps(), pero la segunda no se utiliza. - Usa tu función
draw_perm_reps()para obtener 10.000 réplicas por permutación de la fracción de votos a favor de los demócratas. - Calcula e imprime el p-valor.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)