Как я искал вбросы на московских выборах и что-то нашел
Посмотрев видео Анастасии Брюхановой мне очень захотелось найти еще какие то подтверждения наличию вбросов. И я стал думать, что бы сделал бы я сам, если бы мне нужно было сделать вброс. Ну, я бы составил список людей, от которых шли фейковые голоса, сделал бы так, что бы они попали в списки избирателей. Дальше люди или роботы голосовали бы от имени людей по этим спискам.
А значит порядок голосования совпадал бы с порядком регистрации. Вот это гипотезу я и решил проверить.
По ходу статьи я предполагаю что читатель знаком вот с этой статьей https://habr.com/ru/post/579350/ и немного представляет как устроены данные.
По сути, нам нужно проверить что в любом данном периоде времени порядковые номера людей из списка избирателей распределены равномерно. Благо дело, есть операции с method_id = 1 «Регистрация избирателей». В операции были созданы до начала голосования и представляют собой списки избирателей. Предположим что порядок избирателей в них такой же как в списках. Потом остается только объединить эти данные с method_id=4 «Выдача бюллетеня» у которого есть id избирателя и время.
Этим я и занялся с использованием питона и своей любимой pandas.
Я построил гистгограммы распределения номеров избирателей, голосовавших в данный период за каждый час. И уже начиная с первого часа картина начала выглядеть многообещающе.
Число проголосовавших в первый час с данным порядковым номером. По оси Х порядковый номер, по оси Y число проголосовавших.Число проголосовавших 17 сентября с 18 до 19 с данным порядковым номером. По оси X порядковый номер, по оси Y число проголосовавшихЧисло проголосовавших 19 сентября с 8 до 9 с данным порядковым номером. По оси X порядковый номер, по оси Y число проголосовавших
Значит, действительно, кто то вначале затаился, а потом стал голосовать. Давайте попробуем количественно оценить размер аномалии. Дыра пропала к вечеру первого дня. Я построил гистограммы за первые 14 часов выборов, те на 22 вечера. На этот момент средний столбик гистограммы имел высоту в 13732 избирателей. А вот столбики с нашей аномалией были заметно ниже.
Первый столбец номера «ведер», второй столбец — число избирателей в ведре.
Остается вычислить, сколько в сумме нужно добавить избирателей, что бы убрать аномалию. Выходит примерно 16146. Чуть менее одного процента избирателей.
Так, я уже знаю номера проблемных избирателей. Давайте возьмем вот это 92ое «ведро» (избиратели с 1853490 по 1873630) и сравним его поведение с нормальными.
Число проголосовавших в данный час в расчете на одного избирателя для среднего «ведра»(оранжевый) и аномального «ведра»(синий)
Я ожидал найти чего то похожего на графики Анастасии, но там есть явный обед и конец рабочего дня. Тут в последний день особые люди ведут себя ровно так же как и среднестатистический человек.
Разница между Нифаньтевым (адм. кандидат) и Петровым (УГ). Данные агрегированы до 5 минут, затем сглажены скользящим средним в 6 периодов.
Тогда я предположил, что это военная часть или что то в этом духе. Люди зарегистрированные в какой то военной части (по этому они рядом в списках) в силу особенностей своей работы голосовали в определенное время, не так как в генеральной совокупности. Что бы это проверить, я построил распределение людей по избирательным округам. Тут важно понимать особенность данных. Данные об округе у меня есть только для проголосовавших. По этому я делаю чуть странную вещь. Я делю число проголосовавших в данном округе на число зарегистрированных избирателей. То есть графики ниже, в том числе, отражают явку.
По оси Х номера избирательных округов. Оранжевый — распределение всех избирателей. Зеленый — распределение избирателей с номерами с 1050000 по 1150000. Синий — распределение особых избирателей.
Получается что списки составлялись не по округам (или приехали в блокчейн не по округам), а другим образом. Например, по порядку регистрации избирателей в ДЭГ. И наши особые избиратели распределены по округам так же, как и вся совокупность. Только явка меньше (по этому линия ниже).
Если мы уже заговорили про явку, то давайте посмотрим на нее в разрезе номера в списке избирателей
По оси Х номер в списке, по оси Yявка. Явка может превышать 1 из за переголосований.
Тут тоже странные данные. Везде явка колеблется около нуля кроме двух областей. Это наши особые избиратели и самая последняя область. Я перепроверил как вели себя избиратели из той последней области
Число проголосовавших в данный час в расчете на одного избирателя для среднего «ведра»(оранжевый) и последнего ведра (синий)
Тут тоже есть аномалии, но гораздо меньше. Кстати, если глянуть на гистограмму за первый час голосования, то там тоже виден провал для последнего столбца. Хотя однозначно сказать, что данные по динамике голосования точно отличаются от обычных невозможно.
Заключение
Итого получилось найти две аномалии. Одна аномалия проявляется на динамике голосования и итоговой явке, вторая точно проявляется на итоговой явке, и, вероятно, на динамике голосования.
Я не могу найти естественного объяснения данным аномалиям. Люди из разных районов Москвы, у которых общее только то, что они рядом стоят в списке, при голосовании проявляли одно и тоже поведение.
На принуждение к голосованию тоже не похоже, так как, на мой взгляд, в таком случае был бы дедлайн. А тут явно видно его отсутствие.
По этому, на мой взгляд, это больше похоже на небольшой вброс. Хотя, я не исключаю, что этому есть другие объяснения.
PS
Если уж я упомянул Анастатсию Брюханову, то хочется сказать, что гипотеза о том, что избиратели, которые голосовали в пятницу и воскресение ведут себя одинаково на мой взгляд не имеет под собой основания. Люди, которые с нетерпением ждали возможности проголосовать, такие как я, явно отличаются от тех, кто вспомнил про онлайн голосование только в воскресение вечером.
UPD