два кластера на #выборыКС

Oct 24, 2012 14:15

Я вчера задавался вопросом, можно ли детектировать достаточно изощренный (случайный, с гиперболическим распределением) вброс на #выборыКС. Женя "rutsh" Крохалев подсказал, что можно. Можно попробовать скластеризовать голоса с помощью EM-метода. Сам Женя с его помощью отделил МММ-щиков. Я попробовал с его помощью поискать "вброс".

что получилось? )

Leave a comment

ext_1357687 October 25 2012, 09:43:54 UTC
Вы там ниже по треду вроде уже более-менее разобрались, но все равно напишу, может кому пригодится.

Рассмотрим такую модель: избиратель с вероятностью p выбирает, к какой из двух групп он относится. У каждой из групп есть параметр: вектор вероятностей проголосовать за каждого кандидата. Обозначим эти вектора p1 и p2. Будем считать, что наш избиратель, после того, как он определился, к какой из двух групп он относится, просто берет соответствующий вектор вероятностей и начинает кидать нечестную монетку за каждого кандидата согласно соответствующему вектору вероятностей, решая таким образом, отдаст или нет он за него свой голос.

Лирическое отступление: выше в этом треде фактически говорилось о том, что после того, как избиратель определился со своим типом (1 или 2), его голоса за различных кандидатов становятся независимыми. Если в одной из групп 70% проголосовало за Навального и 30% за Яшина, но абсолютно все, кто голосовал за Яшина, голосовали и за Навального тоже, такая модель это проигнорирует. Для нее голоса за Навального и Яшина в каждой группе независимы, хоть одни и могут быть вероятнее других.

Мы хотим по информации о голосах избирателей оценить параметры нашей модели: p1, p2 и p. Это было бы очень легко сделать, знай мы для каждого избирателя, к какой из двух групп он относится (тогда нужно было бы просто посчитать долю голосов за каждого кандидата в пределах каждой группы). Но мы, к сожалению, этих данных не имеем.

Для решения такого типа задач (максимизации неполного правдоподобия в вероятностной модели, разделение смесей распределенй - частный случай) как раз и используется ЕМ-алгоритм. Его идея состоит в следующем:
1) Инициализируем параметры модели (p, p1, p2) случайным образом.
2) При текущих параметрах модели считаем вероятность для каждого избирателя принадлежать каждой из групп (находим распределение на т.н. скрытые переменные модели).
3) Обновляем параметры модели так, чтобы в среднем (по распределению из п.2) они были как можно правдоподобней. Фактически, считаем компоненты векторов p1 и p2 как доли голосов за соответствующего кандидата, взвешенные пропорционально вероятностям, найденным в п.2
4) Если нет сходимости, переходим на п.2

В обозначениях из вики:
X - голоса избирателей
theta - параметры (p, p1, p2)
Z - скрытые переменные "к какой из двух групп принадлежит избиратель".

Reply

a_shen October 25 2012, 12:33:09 UTC
Ага, вроде понял. То есть при благоприятных условиях и нашем везении это сходится к максимуму вероятности случившегося события в рассматриваемом классе моделей?

Reply

ext_1357687 October 25 2012, 13:21:31 UTC
Если я правильно понял комментарий, то да: если итерационному процессу повезет найти глобальный оптимум, это будет означать, что мы нашли в рассматриваем классе моделей такую, в которой наблюдаемые результаты голосований наиболее вероятны.

Reply


Leave a comment

Up