snikolenko: (Default)
[personal profile] snikolenko
Статистические анализы данных выборов, которые в последнее время активно везде появляются, конечно, хороши, но они учитывают далеко не всю имеющуюся информацию. На самом же деле имеющаяся информация – это не только официальные данные ЦИК, но и сумма свидетельств наблюдателей: выданные части наблюдателей протоколы (которые позже либо подверглись, либо не подверглись изменениям), а также замеченные наблюдателями нарушения (ниже в основном о вбросах речь пойдёт).

Это разнородная информация, но всё это можно учесть в единой вероятностной модели! Буквально на прошлой неделе я рассказывал екатеринбуржцам, что такое графические модели, а тут такое интересное применение получается. Предлагаю (кажется, новую и ранее нигде не публиковавшуюся) графическую модель процесса выборов. Главное свойство предлагаемой модели – в том, что она спускается до уровня конкретного избирательного участка. Таким образом, на выходе можно (надеюсь, действительно можно) получить апостериорные распределения вероятностей таких событий, как «На участке ИКС был осуществлён вброс» или «Результаты участка ИКС были изменены после подведения итогов».

Я сначала нарисую общую схему модели, которую в принципе можно прочесть как байесовскую сеть, а ниже нарисую и фактор-граф, т.е. граф, в котором, кроме переменных, явно нарисованы ещё и все взаимосвязи (распределения) между ними.



Переменные за пределами прямоугольной плашки – глобальные. Переменные внутри – свои для каждого участка. Зелёные переменные – это переменные, которые наблюдаются всегда, для каждого участка (официальные цифры с сайта ЦИК то есть). Синие переменные – это переменные, которые наблюдаются иногда, для некоторых участков. Например, y можно взять из протоколов, выданных наблюдателям. Жирным шрифтом обозначены векторы.

Первая картинка – байесовская сеть, в которой участвуют уже все переменные модели (здесь они для ясности обозначены словами). Модель, которую я пытаюсь описать, тут в общем понятна: есть «истинная явка» и «истинные предпочтения», происходит голосование, потом происходит или не происходит вброс (от этого увеличивается общее число голосов и меняются результаты), потом происходит или не происходит пересчёт постфактум (от этого результаты меняются – может, видимо, и общее число меняться, но это тут пока не учтено; надо будет попробовать учесть, если вдруг реально вывод буду вести).

А вот и фактор-граф. Сначала картинка, потом объяснения.



верхний уровень графааприорные распределения гиперпараметров, которые после вывода станут апостериорными, т.е. распределения наших оценок на переменные (если вы не понимаете, что это значит, в двух словах трудно объяснить, см., например, курс лекций, на который ссылка выше)
Глобальные параметры:
Mчисло участков (число копий всего того, что внутри плашки нарисовано)
λ«истинная» явка
θ«истинные» предпочтения участников выборов (вероятности выбрать ту или иную партию при голосовании)
pthrowвероятность вброса
pcountвероятность пересчёта уже после подведения итогов
σдоля вбрасываемых бюллетеней от общего числа поданных голосов (считать, что это одно и то же число, – конечно, упрощение, но, думаю, допустимое)
Для каждого участка:
Ntotalобщее число избирателей (всегда известно)
Nчисло проголосовавших
x«истинные» результаты: просто мультиномиальная переменная, N выборов с вероятностями θ
tбыл ли вброс (бинарная переменная); иногда наблюдается, но здесь, видимо, будет проблема с негативными свидетельствами (кто может поручиться, что вброса не было); вероятно, эту проблему придётся решать за счёт априорного распределения
Nthrowчисло вброшенных
Nresобщее число бюллетеней (N+Nthrow, всегда наблюдается)
yрезультаты после вбросов («наблюдательский протокол»); y=x+(результаты вброса); конечно, неплохо было бы добавить сюда распределение на то, за кого же вбрасывают бюллетени, но это лишние параметры, и пока кажется, что неплохое приближение получится и если оценить вектор vthrow константой :)
cбыл ли пересчёт (бинарная переменная); иногда наблюдается – когда протокол у наблюдателя либо не сходится с протоколом ЦИК, либо не сходится; если протокол наблюдателя (или наблюдателю :) ) недоступен, переменная не наблюдается
π1,...,π7доля пересчитанного за каждую партию; здесь интересный случай: во-первых, по идее, сумма πi должна бы давать единицу, но говорят, что бывают и другие случаи (да, это влияет на Nres; пока пренебрегаю, всё-таки таких случаев мало, но несложно будет добавить ещё пару переменных и попробовать); во-вторых, πi должны принимать значения от -1 (всё списали) и больше, в положительную полуось, поэтому распределение для πi, параметры которого будут обучаться, тут выбрано как гамма-распределение минус один (в реализации, наверное, πi будут просто гаммой, а минус один появится позже, но для наглядности так)
Resокончательные официальные результаты (всегда наблюдаются).


Что можно получить в результате вывода по такой модели? Во-первых, конечно, оценки глобальных параметров: каковы результаты среди людей, пришедших на выборы? Это будет говорить апостериорное распределение параметров θ. Однако тут чудес ждать не стоит: если просто взять все заведомо честные бюллетени и усреднить их, результат вряд ли будет сильно отличаться. Более интересно, на мой взгляд, то, что такая модель может делать предсказания по конкретным участкам; скажем, из неё получатся апостериорные распределения вероятностей событий типа «Результаты участка ИКС были изменены после подведения итогов», а также апостериорная оценка того, какими могли бы быть «истинные» результаты

Важные дисклеймеры по поводу свойств этой модели.

  1. Предполагается однородное население. Иначе говоря, эту модель надо применять в каждом регионе по отдельности: если засунуть одновременно Питер и Чечню, ничего разумного не ожидается. В модель довольно несложно добавить кластеризацию голосовавших по предпочтениям, но, во-первых, всё равно, наверное, всю Россию одновременно трудно будет обсчитать на уровне одного УИКа (запустить 80 раз гораздо проще), во-вторых, графики внутри одного региона действительно показывают унимодальное распределение, в-третьих, я боюсь, что данных для обучения тогда точно не хватит.
  2. Учитываются, как видите, только вбросы и пересчёт после «предварительного протокола». Естественно, всякие там карусели (и ручейки – интересный, кстати, текст) она регистрировать может, только если они выглядят как вбросы (т.е. если участники таких проектов не входят в общее число избирателей Ntotal). Принудительное голосование, голосование за деньги и т.п. – это не к этой модели (да и ни к какой – данных-то нету).
  3. Нарушения и при вбросе, и при пересчёте предполагаются с едиными параметрами, выражаются в виде доли от общего числа голосов. Поэтому эта модель никак не сможет выдать те самые «интересные пики» на круглых значениях результатов. Добавить «целевые показатели» в модель, конечно, можно, но если не знать заранее, какие они на каждом участке, то, как мне кажется, будет слишком много параметров; а если «знать», то это уже будет подгонка под ответ, ИМХО. Что можно попробовать – можно попробовать предположить, что для всех участков есть ровно один целевой показатель (внутри одного региона звучит разумно), и есть бинарная переменная, которая говорит, что этот показатель решили достигнуть. Однако мне всё-таки кажется, что это излишнее усложнение модели.
  4. Важное замечание о данных: если кто-то захочет собрать данные для обучения этой модели, нужны данные не только о нарушениях, но и данные об участках, где нарушений не было (где есть свидетельство, что y=Res, где есть уверенность, что не было вбросов); чем больше, тем лучше! Иначе наверняка ерунда получится: модель решит, что пересчёты были на всех участках без исключения (ведь везде, где модель что-то знает, ответ один и тот же!), и при этом распределение подтасовок обучиться не сможет, т.к. будет пытаться обучаться и на честных, и на нечестных участках вперемешку.
  5. В модель не так уж сложно добавить свидетельства другой природы. Например, если известно, что вброс был, и вброшено было как минимум 100 бюллетеней, в модель можно просто добавить переменную, соответствующую событию «Nthrow≥100», а потом выставить ей наблюдаемое значение True.


Как мне кажется, такая модель вполне может заработать – она выглядит сложной, но это только потому, что я нарисовал всё очень подробно. В конкретной практической реализации переменных будет куда меньше, а данных даже в каждом отдельном регионе вполне достаточно будет для разумных оценок. Интересно было бы попробовать. Комментарии, замечания и полемические выпады приветствуются. :)

Profile

snikolenko: (Default)
snikolenko

December 2011

S M T W T F S
    123
4567 8910
11121314151617
181920 21222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 26th, 2017 09:41 pm
Powered by Dreamwidth Studios