«Погрешность — меньше 5%». Айтишники посчитали рейтинг кандидатов и попали к Кацу

Проект «Народный опрос» за несколько дней до выборов изучил рейтинги кандидатов в президенты РБ, используя социологические, статистические и математические методы. Это исследование стало единственным научным исследованием рейтингов кандидатов (в Беларуси запрещены политические соцопросы). Недавно ему посвятил ролик популярный российский блогер Максим Кац. dev.by поговорил с тремя организаторами исследования о технологии подсчёта и репрезентативности данных. Сами герои пожелали остаться анонимными.

Оставить комментарий

Проект «Народный опрос» за несколько дней до выборов изучил рейтинги кандидатов в президенты РБ, используя социологические, статистические и математические методы. Это исследование стало единственным научным исследованием рейтингов кандидатов (в Беларуси запрещены политические соцопросы). Недавно ему посвятил ролик популярный российский блогер Максим Кац. dev.by поговорил с тремя организаторами исследования о технологии подсчёта и репрезентативности данных. Сами герои пожелали остаться анонимными.

Согласно статье 9.28 Кодекса РБ об административных правонарушениях: проведение исследований и опубликование результатов опросов общественного мнения на социально-политические темы без получения специальной аккредитации, считается незаконной. Поэтому в данной статье мы рассказываем только об организации проекта «Народный опрос», но не публикуем его результаты и самостоятельно не проводим исследований.

Как начинался проект?

Идея изучить предвыборные рейтинги кандидатов в президенты Беларуси возникла 19 июля на Social Technology Hackathon, который организовал штаб Валерия Цепкало. На хакатоне мы сформировали команду и начали разрабатывать бота для анкетирования в Viber. Бот запустили 29 июля. И с помощью него собрали 32 108 уникальных анкет от граждан РБ старше 18 лет (всего к боту подключилось около 45 тысяч человек).   

Чтобы улучшить качество выборки и покрыть все социальные группы населения Беларуси, провели ещё и уличный опрос. Команда из 40 волонтёров смогла опросить около 1100 респондентов в разных регионах страны (от крупных городов до деревень). Уличный опрос завершился 6 августа. Его данные автоматически обрабатывались в ночь с 6 на 7 августа с помощью специальной математической модели. В подготовке и анализе данных использовались скрипты, написанные на Python и R. Утром 7 августа были опубликованы первые результаты. Ещё несколько дней ушло на окончательную корректировку полученных данных.

Из отчёта: «Создали чат-бота с помощью панели администратора Viber. Back-end решение реализовали на основе Viber Http API. Язык Go использовали для бизнес-логики и разработки. Google Cloud Platform — для развёртывания и хранения данных, которые постоянно передавались в ElasticSearch. Оттуда извлекались для предварительной обработки с помощью Python. Постобработка, статистическое моделирование и анализ проводили в R».

Какая команда работала над проектом? 

Организацией занималась небольшая команда из 3 человек с опытом работы в ИТ — по сути они выступали в роли проджект-менеджеров. Уже на хакатоне к ним присоединились несколько опытных математиков и социологов, которые помогали с подготовкой опросников и математической модели для подсчёта результатов. Научным руководителем проекта был PhD одного из зарубежных университетов — специалист в области статистики. Программисты помогли разработать сайт «Народного опроса» и бот в Viber. Аниматоры, художники и дизайнеры создали промо-ролик для привлечения белорусов к участию в опросе. Около 40 волонтёров опрашивали людей на улицах. Всего в проекте (учитывая текучку, неизбежную для волонтёрской инициативы) приняли участие около 200 человек.       

Как работал бот в Viber? 

Мы выбрали Viber, потому что это самый популярный мессенджер в Беларуси (Viber использует каждый третий житель страны — dev.by). Им пользуются разные социальные группы, даже пенсионеры. Чтобы делать массовую рассылку в Viber, нужно иметь зарегистрированное юрлицо и согласие от контактов в базе на получение сообщений. Поэтому бот распространялся с помощью рассылок в Viber и Telegram, группах во «Вконтакте» и «Одноклассниках», рекламы в Youtube и Instagram.

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

Полный список групп в соцсетях и мессенджерах, в которых распространялся бот, можно найти в этой статье. Бот учитывал уникальный ID каждого пользователя, чтобы избежать ответов от одних и тех же людей. Номера телефонов и другие персональные данные пользователей не собирались.

Как вы работали на улице? 

В начале работы над проектом у социологов был некоторый скептицизм по поводу точности опроса в мессенджере. Некоторые группы населения редко используют Viber: например, пожилые деревенские жители. Были разные идеи, как решить эту проблему. Мы думали провести классический телефонный опрос и смс-опрос. Но звонки и смс стоят недешево, поэтому остановили выбор на улице. Тут тоже были опасения — в первую очередь, по поводу безопасности волонтёров. Но обошлось. Первые дни в полевых условиях работали мы сами и наши друзья. Когда стало понятно, что люди на улицах довольно охотно идут на контакт и большой опасности нет, начали искать волонтёров.  

Привлечь их помогли известные гражданские инициативы. Мы получили около 100 заявок от потенциальных добровольцев, из них выбрали 40, которые и задавали вопросы прохожим. Волонтёры отмечали, что ещё до выборов люди на улицах белорусских городов и сёл были очень политизированы, часто вступали в дискуссии. 

Процент отказов был высокий — минимум 30%. В регионах люди охотнее отвечали на вопросы, в столице и крупных городах — чаще отказывались.

В итоге мы получили более 1000 анкет с хорошей репрезентативностью. Результаты совпали с итогами исследования в Viber, а также с результатами так называемых «честных протоколов» (несколько десятков протоколов избирательных комиссий, результаты в которых сильно отличались от итогов досрочного голосования и окончательных результатов президентских выборов — dev.by).

График из отчёта.

Что из себя представляет математическая модель, с помощью которой считали результаты? 

Для того, чтобы уравнять и объединить данные двух исследований (уличного и в Viber) и подсчитать рейтинг каждого кандидата мы использовали статистический метод MRP (Multilevel regression with poststratification).

Этот метод подразумевает построение математической модели, которая убирает смещения объединённой выборки и обобщает ответы на всё население страны, учитывая пол, возраст, регион, тип места проживания (город, деревня и т. д.) и образование. Для нивелирования смещения из опроса использовались данные Белстат по переписи населения.

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

Аналогичная методика применялась в опросе перед выборами президента США в 2012 году. Это был опрос о рейтингах кандидатов в президенты среди пользователей Xbox. Конечно, выборка оказалась крайне смещённой: аудитория игровой приставки — в основном молодые мужчины. Однако с помощью математической модели удалось «распространить» результаты опроса на всё население США. Результаты сравнили с данными экзит-поллов — погрешность оказалась не более 2,5 процентов. 

Мы ссылаемся на работу об американском опросе в препринте нашей работы. Там же можно прочесть полное описание математической модели, о которой идёт речь.   

Сколько денег вы потратили? 

Две основные статьи расхода — аренда серверов на AWS и затраты на рекламу.

На содержание аккаунта на Amazon ушло около 900 долларов, на рекламную кампанию по распространению Viber-бота — 300 долларов.

Пока тратили собственные деньги, но недавно начали сбор средств на Patreon. Там можно нам помочь, если есть желание.

Результаты известны. Что дальше? 

Мы готовим публикацию статей о методике и процессе исследования в авторитетных научных журналах. Это довольно долгая процедура, но после публикации данные опроса (а значит, и реальные итоги выборов) останутся в истории. Их переврать будет невозможно.

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

Мы создали платформу, с помощью которой можно быстро и эффективно проводить социологические опросы. После выборов мы уже провели несколько исследований, используя наши методики анализа данных. Например, об отношении населения к протестам.  

После выборов мы увидели потенциал в проекте и решили продолжать работу. Хотим выйти на 1-2 общественных опроса в неделю. Это позволит чётко отслеживать динамику настроений, а наличие данных о респондентах — замечать интересные закономерности. 

Подробнее о проекте:

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Горячие события

HRgile.club 2021 Online
23 апреля

HRgile.club 2021 Online

Минск

Читайте также

В Минске задержали айтишника. МВД называет его «участником августовских беспорядков – спонсором протестов»
В Минске задержали айтишника. МВД называет его «участником августовских беспорядков – спонсором протестов»
В Минске задержали айтишника. МВД называет его «участником августовских беспорядков – спонсором протестов»
Айтишник из Гродно разрисовывал «Табакерки», уехал из страны из-за рисков уголовки
Айтишник из Гродно разрисовывал «Табакерки», уехал из страны из-за рисков уголовки
Айтишник из Гродно разрисовывал «Табакерки», уехал из страны из-за рисков уголовки
Либер из «Голоса» идёт на «Сход»
Либер из «Голоса» идёт на «Сход»
Либер из «Голоса» идёт на «Сход»
Павел Либер, который занимался проектом «Голос», сообщает, что идет делегатом на «Сход», платформу отбора «народных представителей для национального диалога».     
Программисту из Польши Артёму Савчуку дали 4 года колонии (дополнено)
Программисту из Польши Артёму Савчуку дали 4 года колонии (дополнено)
Программисту из Польши Артёму Савчуку дали 4 года колонии (дополнено)

Обсуждение

Комментариев пока нет.
Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже