НачатьНачать бесплатно

Голосование за Закон о гражданских правах 1964 года

Закон о гражданских правах 1964 года стал одним из самых значимых законодательных актов в истории США. Не считая голосов «воздержался» и «отсутствовал», 153 демократа и 136 республиканцев в Палате представителей проголосовали «за». При этом 91 демократ и 35 республиканцев проголосовали «против». Повлияла ли партийная принадлежность на исход голосования?

Чтобы ответить на этот вопрос, вы проверите гипотезу о том, что партийная принадлежность члена Палаты представителей никак не влияла на его голос. В качестве тестовой статистики используйте долю демократов, проголосовавших «за», и оцените вероятность наблюдать долю, не превышающую 153/244. (Именно так — не превышающую. В 1964 году именно демократы занимали менее прогрессивную позицию по вопросам гражданских прав.) Для этого переставьте партийные метки членов Палаты в случайном порядке, произвольно разделите их на «демократов» и «республиканцев» и вычислите долю демократов, проголосовавших «за».

Это упражнение является частью курса

Статистическое мышление на Python (часть 2)

Посмотреть курс

Инструкции к упражнению

  • Создайте булевы массивы dems и reps, содержащие голоса соответствующих партий: например, dems должен содержать 153 значения True и 91 значение False.
  • Напишите функцию frac_yea_dems(dems, reps), которая возвращает долю демократов, проголосовавших «за». Первый аргумент — массив булевых значений. Функция принимает два аргумента, поскольку этого требует draw_perm_reps(), однако второй аргумент не используется.
  • С помощью функции draw_perm_reps() получите 10 000 перестановочных реплик доли голосов «за» среди демократов.
  • Вычислите и выведите p-значение.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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)
Редактировать и запускать код