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

Национальные выборы

В этом упражнении вы познакомитесь с тем, как моделировать процесс генерации данных на разных уровнях сложности.

Рассмотрим национальные выборы в стране, где соперничают две политические партии — Красная и Синяя. В стране 50 штатов, и побеждает та партия, которая выигрывает большинство из них. Вам известна вероятность \(p\) победы Красной партии в каждом отдельном штате, и вы хотите узнать вероятность её победы на национальном уровне.

Смоделируем процесс генерации данных, чтобы изучить распределение. Предположим, что результат выборов в каждом штате подчиняется биномиальному распределению с вероятностью \(p\): \(0\) означает поражение Красной партии, \(1\) — победу. Затем мы симулируем несколько сценариев выборов. В итоге можно задавать содержательные вопросы, например: какова вероятность того, что Красная партия выиграет менее 45% штатов?

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

Статистическое моделирование на Python

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

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

  • Симулируйте одни выборы с помощью np.random.binomial(), задав p = probs и n=1. Сохраните результат в переменную election.
  • Добавьте среднее значение побед Красной партии из election в список outcomes.
  • Вычислите долю значений в outcomes, при которых Красная партия выиграла менее 45% штатов. Сохраните результат в переменную prob_red_wins и выведите его на экран.

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

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

outcomes, sims, probs = [], 1000, p

for _ in range(sims):
    # Simulate elections in the 50 states
    election = ____
    # Get average of Red wins and add to `outcomes`
    outcomes.append(____)

# Calculate probability of Red winning in less than 45% of the states
prob_red_wins = ____
print("Probability of Red winning in less than 45% of the states = {}".format(____))
Редактировать и запускать код