Бернулли против Байдена
В последнее время появляется все больше и больше аналитических обзоров результатов выборов, которые рассматривают их с точки зрения законов статистики и направлены, как правило, на изучение необычных явлений, сигнализирующих о возможных фальсификациях (см. «Гаусс против Чурова» и т.п. публикации). Думается, только что завершившиеся выборы президента США (подсчет голосов еще продолжается, причем беспрецедентно длительное время) дадут дополнительный толчок развитию этой «электоральной математике».
Постановка задачи
Так получилось, что, начиная с 5 ноября, я стал следить за промежуточными результатами подсчета голосов в штате Джорджия. Тогда было посчитано 95% голосов, соотношение было 49.6/49.1 в пользу Трампа, т.е. он был впереди на полпроцента. Исключительно из демонстрационных соображений (а я делаю разный образовательный контент и читаю лекции студентам), я решил оценить вероятность того, что штат «перевернется», т.е. окончательный результат будет в пользу Байдена. Собственно, 5-го ноября я начал стримить свои расчеты, но потом отвлекся и прекратил эфир, зато запись с исходными данными осталась. Когда я начал писать эту статью, в 9 утра ЕТ 6-го ноября, было посчитано 99% бюллетеней, соотношение голосов на этот момент вы видите на заставке, а текущие результаты вы можете сами посмотреть на сайте CNN, откуда я и беру данные. К слову, на момент публикации этой статьи, через двое суток, т.е. 9 утра ЕТ 8-го ноября, окончательных результатов все еще не было, а на табло по-прежнему отображались 99%, но с еще более убедительным результатом в пользу Байдена.
Естественной моделью, которую я решил взять за основу, была модель независимых испытаний, т.е. классическая схема Бернулли. Проводя аналогию между выбором каждого из оставшихся 100 тыс. избирателей (за Трампа — за Байдена) и 100-тысячекратным бросанием монеты (орел — решка), я собираюсь оценить упомянутую вероятность победы Байдена в Джорджии. Недействительные бюллетени и голоса в поддержку других кандидатов учитывать не будем. Трампа в России любят больше, поэтому давайте условимся считать голос за него успехом (х=1), а голос против — неудачей (х=0). Сразу хочу сказать, что в этой статье мне не хочется обсуждать политику и делать какие-либо выводы о фальсификациях и т.п., а посвятить ее зарисовке моделирования схемы Бернулли в Mathcad Express.
Схема Бернулли: модель Монте-Карло
Итак, давайте считать, что голос каждого избирателя в Джорджии похож на бросание монеты, благо вероятность успеха (за Трампа) или неудачи (за Байдена), если судить по посчитанным 95% бюллетеней, практически равны. Давайте, следуя методам Монте-Карло, сгенерируем вектор х из N=1000 случайных чисел, каждое из которых (0 или1) добавляется в выборку с равной 50%-й вероятностью:
Модель Бернулли: однократное бросание «честной монеты»
В предпоследней строке выведены первые несколько компонент вектора х, а в последней — выборочное среднее (которое близко к математическому ожиданию 0.5).
Это пока «модель поведения одного избирателя». А если мы хотим добавить еще одного, т.е. промоделировать двукратное бросание монеты, то можно генерировать не одно, а два псевдослучайных числа: х1 и х2, а судить о выпадении того или иного количества успехов и неудач мы можем, просто вычисляя сумму этих чисел х=х1+х2. Например, вот так будут выглядеть векторы х1, х2 и х для N=10 двукратных бросаний:
Модель Бернулли: двукратное бросание монеты
Для того чтобы автоматизировать расчет частоты выпадения, к примеру, двух успехов (1+1), надо просто подсчитать количество двоек в векторе х. Сделать это можно при помощи условного оператора if, который доступен в бесплатном Mathcad Express.
Пример расчета количества исходов х=1+1
Многократное бросание монеты в Mathcad Express можно организовать проще, без привлечения переменных х1 и х2, сразу считая х при помощи той же встроенной функции rbinom(N,M,p)
, где M-число бросаний, а p=0.5 — вероятность успеха:
Пример расчета частоты исходов x<2 при двукратном бросании монеты
Моделируем выборы
Теперь все готово для решения основной задачи. Мы можем запросто смоделировать поведение М=250000 избирателей в штате Джорджия и посчитать искомую оценку вероятности, т.е. среднюю частоту событий x Данные на начало 05.11 (95% голосов посчитано) За Трампа было подано T=2 429 783 голоса, а за Байдена B=2 406 774, т.е. соответственно 50.24% и 49.76% соответственно (прочие голоса, ни за Трампа, ни за Байдена не считаем). Т.е. всего на тот момент было посчитано около 5 млн голосов, т.е. 95% бюллетеней. Поэтому можно считать, что осталось посчитать оставшиеся 5%, т.е. примерно 250 000 бюллетеней. Разрыв между Трампом и Байденом составлял 2 429 783 — 2 406 774 = 23 009. Иными словами, нам надо оценить вероятность того, что число успехов на выборке по М=250 000 бросаниям монеты будет на 23 тыс. меньше, нежели неудач. В наших обозначениях, надо установить с какой вероятностью х не превысит А = 250 000 / 2 — 11 500 (тогда разрыв между 125+11.5 тыс. и 125–11.5 тыс. будет как раз не меньше 23 тыс.). Если взять объем выборки N=10 млн испытаний, то генератор псевдослучайных чисел Mathcad не дает ни одного случая x
Если снизить (ради любопытства) А в 10 раз и попробовать посчитать среднюю частоту события x
Модель Бернулли применительно к электоральной математике Модель Бернулли хороша тем, что для нее известны аналитические формулы вычисления подобных вероятностей. В частности, рассматриваемую задачу можно решить при помощи интегральной теоремы Муавра-Лапласа, которая дает тот же порядок вероятности (одна миллионная для условия x
Аналитические оценки