15 дек. 2011 г.

Статистика и российские выборы - 43


Весёлые картинки
Все рисуют картинки — нарисую и я.
Знаменитая «гребёнка Чурова» имеет две особенности — сильную несимметричность и пики на «красивых» процентах. Чем меньше брать размер бина, тем заметнее пики (при широких пики размазываются). Если взять достаточно узкий бин, то заметны пики и на графиках других партий. О Яблоке речи не идёт, это маргиналы, а вот такой весь правильный из себя график КПРФ имеет пики не только на 20% и 25% (что можно было бы объяснить понижением голосов вниз), но и на 1/3, 1/7, 1/8. Вряд ли кто стал фальсифицировать голоса ровно до 1/7. Объясняется это тем, что отношение двух случайных чисел (числа проголосовавших за партию и действительных бюллетеней) с большей вероятностью будет точно равно отношению двух небольших чисел (1/2, 3/4, 2/5), чем любой другой близкой к нему несокращаемой дробью с большими числами. Избавляются от этого, например, зашумлением исходных данных, или учитывая результаты с диапазоном погрешности.
Это была присказка. Сказка же будет не о том, как избавляться, а как получить и показать этот эффект. [info]_winnie промоделировал это. Он взял реальные данные, сколько проголосовало людей на каждом участке, принял, что вероятность выбора некоторой партии на каждом участке — случайная величина со средним 0.4 и стандартным отклонением 0.2, и запустил рандом. Без каких-либо фальсификаций (мы ведь не думаем, что количество проголосовавших имеет отношение к фальсификациям, правда?) на красивой гауссиане получились заметные пики и выемки именно там, где и ожидались.
Но это если страна однородна, с произвольным распределением лояльности к партии. А если взять реальные предпочтения? Я взял скрипты [info]_winnie и повторил эксперимент, но вероятность голосования за партию тоже брал из реальных данных. Предположим, что участки могут сильно отличаться один от другого, но на каждом участке люди голосуют независимо. Если из 100 человек 90 отдало голоса за некую партию, то вероятность проголосовать за неё каждого на этом участке скорее всего 90%. Но не точно 90%, если бы вероятность была 90.1% или 89.8%, то тоже скорее всего проголосовало бы 90 человек. Точность, с которой мы знаем величину вероятности, зависит от количества проголосовавших, в данном случае стандартное отклонение вероятности — 3%. На участке, где партии отдали голоса 9000 человек из 10000 вероятность тоже будет 90%, но уже со средним отклонением 0.3%. Если все, как один проголосовали за Партию, то у нас нет данных, чтобы усомниться в их полной преданности — единогласно проголосуют и в эксперименте.
Вычисляем на каждом участке среднюю оценку вероятности и её отклонение и берём случайную величину с этими параметрами. По полученной случайной вероятности вычисляем случайное же число людей, проголосовавших за партию на этом участке. Строим гистограмму по всем участкам и получаем график, очень близкий к графику по реальным данным (ну ещё бы). Разумеется, поскольку и вероятность выбора партии, и сам выбор были случайными, есть выбросы, как совпадающие с действительными данными, так и не очень. Часть этих выбросов связана с вышеупомянутым эффектом отношения целых чисел, часть — с используемыми данными (ну если на многих участках 90% за партию, то и при моделировании на них получится около того), третьи — просто случайность. Чтобы избавиться от последнего, повторил эксперимент 1000 раз и усреднил. График получился более плавный, отображающий только артефакты деления и особенности электоральной культуры. Если бы результаты голосования отражали реальные настроения народа, не было бы никаких приписок на круглых числах, в комиссиях заседали роботы, чуждые пиетета перед десятичной системой счисления, реальный график был бы близок к этому.
Вот график для «Единой Росии»:
Вот для КПРФ:
Синее — усреднение экспериментов, красное — реальные данные. Всего 500 бинов, через каждые 0.2%. На синем видны ожидаемые пики на простых дробях (красный тоже их имеет, но часто намного выше), в остальном графики почти совпадают.
Разумеется, на красном полно случайных выбросов, синий-то усреднён. Насколько они случайны? Это тоже можно посмотреть. 1000 экспериментов понадобилась не только для того, чтобы получить хорошо усреднённый синий график, этих данных достаточно и для того, чтобы посчитать стандартное отклонение для каждого участка. На следующих графиках красным показана разница между реальными и усреднённым моделируемым графиками, а синим — 1, 2, 3 и 4 стандартных отклонения (сигмы) моделируемых данных на каждом бине. Оранжевый — усреднённый сглаженный красный график отклонения (систематическое расхождение модели и данных).
Для нормально распределённой (да, да, Гаусс) величины вероятность выбиться в ту или другую сторону от среднего за пределы сигмы — около 1/3, за пределы двух сигм — менее 5%, за три сигмы выходит только каждый 400-й, за четыре — 16000-й, за пять — менее, чем один из 1.7 миллиона, за шесть — из полмиллиарда. То есть ничего удивительного, что полно выплесков за одну-две сигмы, и даже один-два за три сигмы. Вот выход за четыре сигмы — уже редкое везение, а дальше — ненаучная фантастика (волшебство). Пик на 75% достигает девятки сигм, на 85% и 95% выходят за шесть. Обратили внимание на пик на 50%? Его нет. Не выделяется на фоне шума, поглощённый предсказанным моделью. Как и другие пики — 1/3, 2/3, 25%=1/4, 40%=2/5, 60%=3/5. Остались только неожиданные кратные 5% на высоких процентах.
Это перекликается с результатом [info]kobak, полученным другим способом.
Понятно, что эти картинки ничего не доказывают, это просто картинки.
P. S. Для знающих Питон и желающих поиграться, вот скрипты (на основе скриптов [info]_winnie):
Данные я брал у [info]_winnie (пробегали ссылки и на более точные). Как использовать — разберётесь по коду. Требуются matplotlib и numpy. Я с ними раньше не работал, поэтому кое-что может быть неоптимально.
P. P. S. По подсказке [info]sassa_nf нарисовал и усреднённый график отклонений.
P. P. P. S. А вот графики интегральной функции распределения относительных разбросов (по отношении к сигме). Бины с менее, чем 10 участками отброшены (слишком большая флюктуация).
  • Чёрная линия — идеальное нормальное распределение.
  • Красная линия — относительное отклонение реальных данных от среднего по экспериментам.
  • Оранжевая линия — скомпенсированное относительное отклонение реальных данных от сглаженного отклонения реальных данных (от оранжевой линии на предыдущих графиках).
  • Фиолетовая линия — относительное отклонение одного из экспериментов от среднего по экспериментам.
Как видно, фиолетовая линия довольно близка к чёрной (это Гаусс), оранжевая близка к чёрной в отрицательной области (это тоже Гаусс), а в положительной компенсация совсем не работает, оранжевая близка к красной — выбросы сильнее и это не Гаусс.

Линк на оригинал - http://gegmopo4.livejournal.com/72915.html

Комментариев нет:

Отправить комментарий