Все рисуют картинки — нарисую и я.
Знаменитая «гребёнка Чурова» имеет две особенности — сильную несимметричность и пики на «красивых» процентах. Чем меньше брать размер бина, тем заметнее пики (при широких пики размазываются). Если взять достаточно узкий бин, то заметны пики и на графиках других партий. О Яблоке речи не идёт, это маргиналы, а вот такой весь правильный из себя график КПРФ имеет пики не только на 20% и 25% (что можно было бы объяснить понижением голосов вниз), но и на 1/3, 1/7, 1/8. Вряд ли кто стал фальсифицировать голоса ровно до 1/7. Объясняется это тем, что отношение двух случайных чисел (числа проголосовавших за партию и действительных бюллетеней) с большей вероятностью будет точно равно отношению двух небольших чисел (1/2, 3/4, 2/5), чем любой другой близкой к нему несокращаемой дробью с большими числами. Избавляются от этого, например, зашумлением исходных данных, или учитывая результаты с диапазоном погрешности.
Это была присказка. Сказка же будет не о том, как избавляться, а как получить и показать этот эффект.
_winnie промоделировал это. Он взял реальные данные, сколько проголосовало людей на каждом участке, принял, что вероятность выбора некоторой партии на каждом участке — случайная величина со средним 0.4 и стандартным отклонением 0.2, и запустил рандом. Без каких-либо фальсификаций (мы ведь не думаем, что количество проголосовавших имеет отношение к фальсификациям, правда?) на красивой гауссиане получились заметные пики и выемки именно там, где и ожидались.
Но это если страна однородна, с произвольным распределением лояльности к партии. А если взять реальные предпочтения? Я взял скрипты
_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% на высоких процентах.
Это перекликается с результатом
kobak, полученным другим способом.
Понятно, что эти картинки ничего не доказывают, это просто картинки.
P. S. Для знающих Питон и желающих поиграться, вот скрипты (на основе скриптов
_winnie):
Данные я брал у
_winnie (пробегали ссылки и на более точные). Как использовать — разберётесь по коду. Требуются matplotlib и numpy. Я с ними раньше не работал, поэтому кое-что может быть неоптимально.
P. P. S. По подсказке
sassa_nf нарисовал и усреднённый график отклонений.
P. P. P. S. А вот графики интегральной функции распределения относительных разбросов (по отношении к сигме). Бины с менее, чем 10 участками отброшены (слишком большая флюктуация).
- Чёрная линия — идеальное нормальное распределение.
- Красная линия — относительное отклонение реальных данных от среднего по экспериментам.
- Оранжевая линия — скомпенсированное относительное отклонение реальных данных от сглаженного отклонения реальных данных (от оранжевой линии на предыдущих графиках).
- Фиолетовая линия — относительное отклонение одного из экспериментов от среднего по экспериментам.
Как видно, фиолетовая линия довольно близка к чёрной (это Гаусс), оранжевая близка к чёрной в отрицательной области (это тоже Гаусс), а в положительной компенсация совсем не работает, оранжевая близка к красной — выбросы сильнее и это не Гаусс.






December 14 2011, 16:51:11 UTC 5 months ago
2. подобный подход был уже опробован Сашей Хановым: http://oude-rus.livejournal.com/548
3. сейчас дам на вас ссылку
4. техническое:
а). не могли бы вы уменьшить картингу хотя бы до 1200? проблема не в ней, проблема в тексте
б). на мой вкус, бин в 0.5% представляет лучший компромисс между шумом и выбросами.
December 14 2011, 20:34:27 UTC 5 months ago
Идею провести несколько симуляций и усреднить я позаимствовал где-то у
Изначально я бин в 0.5% и использовал, а потом увидел, что
Картинки может и уменьшу (пока не разобрался, как же в этом pylab задавать точные размеры в пикселях). Если уменьшить число бинов, то можно уменьшить и разрешение для хорошей видимости бинов. Впрочем, у вас разве браузер картинки не масштабирует? По ссылке откроются в полный размер.
December 14 2011, 21:35:25 UTC 5 months ago
December 14 2011, 17:10:09 UTC 5 months ago
December 14 2011, 20:43:35 UTC 5 months ago
Если точнее, для p следовало бы взять тоже биномиальное распределение (в этой модели ассиметрия глобального распределения не имеет отношения к распределению на отдельном участке), но разница ничтожна. Главное сомнение у меня — нужно ли вообще варьировать p, или взять просто фиксированную (для участка) долю голосов? Не слишком ли я размываю? Обоснования у меня нет.
Потому это просто картинки. Они ничего не доказывают.
December 14 2011, 19:13:11 UTC 5 months ago
А вот любопытнее пиков на 75%, 85% и 95%, пожалуй, только отсутствие таковых (выходящих за пределы трёх стандартных отклонений от среднего, во всяком случае) на 80% и 90%.
December 14 2011, 20:53:51 UTC 5 months ago
Пики на 80% и 90% совсем немного недотягивают до трёх сигм (с вероятностью трёх сигм, кстати центральная линия может быть на десятую сигмы ниже). Если есть какая-то ещё причина, приводящая к возникновению пиков, кратных 5%, то она должна провлять себя и на этих пиках, и тогда они были бы скомпенсированы.
Интереснее пики где-то на 92% и 98%. Для обоснованных гипотез пока мало данных.
December 14 2011, 19:58:11 UTC 5 months ago
Это у Вас распределение количества участков, или общего количества людей, проголосовавших "за"? Интересно, что я вижу сильнейший пик на 65%, а у Вас его вообще нет. Он есть у меня и на гистограмме по кол-ву людей, и на гистограмме по кол-ву участков (в предыдущей записи). Правда, у меня везде бин 0.25% (и везде зашумленные данные).
December 14 2011, 21:28:41 UTC 5 months ago
Пик на 65% есть, но он частично компенсируется и не дотягивает до трёх сигм. Может есть, а может и нет (и таких «может» не один). Графики не зашумлены, задача стояла не избавиться от артефактов, а воспроизвести.
December 14 2011, 21:30:31 UTC 5 months ago
December 14 2011, 20:53:48 UTC 5 months ago
ну хотя бы 100000 надо посчитать, или так медленно работает?
December 14 2011, 21:58:22 UTC 5 months ago
Объём эксперимент достаточен. Стандартное отклонение средней синей линии — около 1/30 стандартного отклонения данных экспериментов (можете оценить на графиках масштаб, это немного толще самой линии). Реальные данные — это ещё один эксперимент. 5 результатов из 500 вышли за 4 сигмы (и далеко вышли). Значит, по крайней мере в этих точках реальные данные описываются другой моделью. Может я схалтурил с моделью, может есть какие-то неучтённые силы.
December 15 2011, 07:12:56 UTC 5 months ago
PS Вся эта параметрика которой травят на теовере должна гореть в адовом огне. Дело в том что потом все эти люди в серьез начинают считать параметрикой все кругом для всех. В результате "сигм нормального распределения" публикации медикобиологического профиля например вообще не цитируют за рубежом :(
5 months ago
5 months ago
December 14 2011, 21:57:29 UTC 5 months ago
December 14 2011, 22:02:09 UTC 5 months ago
5 months ago
5 months ago
December 14 2011, 22:05:54 UTC 5 months ago
December 15 2011, 09:12:23 UTC 5 months ago
December 15 2011, 10:17:00 UTC 5 months ago
нужен способ оценить, нет ли underestimation.
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
December 14 2011, 22:24:02 UTC 5 months ago
December 15 2011, 09:19:39 UTC 5 months ago
December 15 2011, 10:14:46 UTC 5 months ago
Я не придираюсь. Была цитирована статья, что распределение голосов в Польше имеет лог-нормальный характер (не строго лог-нормальное, а выглядит как функция с множителем, у которого X в показателе степени). Да, Россия - не Польша, но этого примера должно быть достаточно, чтобы не полагать, что в России строго нормальное.
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
December 16 2011, 10:54:47 UTC 5 months ago
December 16 2011, 11:09:35 UTC 5 months ago
Из этого я заключаю, что исходный механизм моделирования не очень хорошо соответствует реальности, если смотреть на такие детали. Нужно попробовать немного иначе.
December 19 2011, 15:49:21 UTC 5 months ago
Никаких особенностей "коротких дробей" (1/2, 1/3, 2/3)на таких объёмах уже и быть не может. Когда-то в СССР была плановая экономика, где централизованное управление по всем регионам тщательно планировало удивительно глупые вещи.
5 months ago
5 months ago
5 months ago
December 31 2011, 09:08:33 UTC 4 months ago