Как стать автором
Обновить

(Любительский) временной анализ ДЭГ в Москве

Время на прочтение3 мин
Количество просмотров7K

Я решил проанализировать распределение голосов за разных кандидатов по времени. Для этого я взял 2 млн. расшифрованных бюллетеней (опять же, спасибо @Peter_Zhizhinза ссылку) и сопоставил их с данными о транзакциях. Получилось отображение (время голосования -> id кандидата). Здесь использована база из .sql-дампа с observer.mos.ru, чуть подробнее про неё было в упомянутой статье.

Примерный код на PostgreSQL
-- Таблицы и колонки названы неудачно, простите
CREATE table decrypted_choices (
   tx_store_hash character varying(64),
   decoded_vote bigint);

COPY decrypted_choices
	 FROM '//path/to/decoded_votes_manual.csv' WITH (FORMAT csv);

CREATE table vote_times (
   datetime timestamp with time zone,
   vote bigint);

insert into vote_times (datetime, vote) 
 	 select transactions.datetime, decrypted_choices.decoded_vote as vote
   FROM transactions
   inner join decrypted_choices
   ON transactions.hash = decrypted_choices.tx_store_hash;

\o vote_times.jsonl

COPY
	(SELECT ROW_TO_JSON(t) FROM(select * from vote_times order by datetime) t)
  TO stdout;

Далее я стал рисовать графики для пар кандидатов (код в ноутбуке). Для этого я брал по каждому округу трёх кандидатов, набравших максимальное число голосов, и рисовал попарное соотношение их результатов: 1-го ко 2-му и 2-го к 3-му. Например, в округе №197 распределение голосов среди медалистов такое: Попов -- 50420, Лобанов -- 30034, Бальмонт -- 8144. Берём результаты Попова и Лобанова. Разобьём всё время голосования на 70 равных интервалов и посчитаем, сколько каждый из кандидатов набрал в этот промежуток. Получится пара гистограмм, которые мы изобразим на одной картинке. Также давайте посчитаем отношение результата Попова к результату Лобанова на каждом интервале (то есть получим отношение гистограмм). Чего мы ожидаем от этих графиков? Интуитивно кажется, что так как случайные величины "время, когда избиратель проголосовал" и "кандидат, за которого отдан голос" практически независимы, то второй график (отношение гистограмм) должен колебаться вокруг константы. Проще говоря, странно, если в условном интервале 08:30-09:00 в воскресенье проголосует 700 человек за Лобанова и 1300 за Попова, а в интервале 15:30-16:00 -- наоборот: 600 за Лобанова и 300 за Попова. Но это интуиция, а что на самом деле?

Округ 197: Лобанов (2-й) vs. Попов (1-й)
Округ 197: Лобанов (2-й) vs. Попов (1-й)

Выглядит очень странно, как по мне. Но может быть, у меня какая-то неправильная интуиция? Давайте сравним Лобанова и Бальмонта (бронзового медалиста).

Округ 197: Лобанов (2-й) vs. Бальмонт (3-й)
Округ 197: Лобанов (2-й) vs. Бальмонт (3-й)

Совсем другой график! Гораздо более похожий на то, что я ожидал увидеть. Единственное, что смущает -- горбик на графике отношения вечером воскресенья. Оказывается, однако, что так ведут себя графики по всем 15-ти округам. Первое и второе место ведут себя похоже на график Попов-Лобанов, а второе и третье -- на график Лобанов-Бальмонт! Убедиться в этом можно самостоятельно запустив Jupyter Notebook или скачав графики с github. Давайте посмотрим ещё на пару округов.

Округ 207: Белых (1-я) vs. Ульянченко (2-й)
Округ 207: Белых (1-я) vs. Ульянченко (2-й)

 Округ 207: Ульянченко (2-й) vs. Павлинов (3-й)
Округ 207: Ульянченко (2-й) vs. Павлинов (3-й)

Может быть, это только у коммунистов так? Давайте посмотрим на округ, по которому баллотировалась Брюханова, выдвинутая "Городскими проектами Варламова и Каца".

Округ 198: Хованская (1-я) vs. Брюханова (2-я)
Округ 198: Хованская (1-я) vs. Брюханова (2-я)
Округ 198: Брюханова (2-я) vs. Звягинцев (3-й)
Округ 198: Брюханова (2-я) vs. Звягинцев (3-й)

Выводы

Итак, графики "золото-серебро" и "серебро-бронза" кардинально отличаются друг от друга во всех округах. Более того, судя по всему, если сравнивать между собой любую пару мест, не включающую победителя, графики отношения гистограмм получаются похожими -- колеблющимися вокруг константы, но иногда с небольшим горбом или, наоборот, впадиной под вечер воскресенья. Случаются и выбросы, но обычно ночью, когда голосов совсем мало и закон больших чисел работает плохо.

Графики "золото-серебро" очень похожи между собой: пик в 8 утра пятницы, затем плавное падение, снова горб утром субботы, затем довольно существенный горб утром воскресенья, а затем резкая впадина (в ней отношение бывает даже меньше одного) после 14:00 воскресенья (этот последний интервал загадочен ещё и тем, что он проявляется на графиках "серебро-бронза" и других попарных сравнениях).

Исходя из какой модели можно объяснить такое гладкое и систематическое поведение графика "золото-серебро" во всех округах, я пока не понимаю. Поэтому развитие идей и дальнейший анализ горячо приветствуется!

Теги:
Хабы:
Всего голосов 24: ↑21 и ↓3+26
Комментарии19

Публикации

Истории

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
14 июля
Фестиваль Selectel Day Off
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва