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

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

4 комментария

Проект «Народный опрос» за несколько дней до выборов изучил рейтинги кандидатов в президенты РБ, используя социологические, статистические и математические методы. Это исследование стало единственным научным исследованием рейтингов кандидатов (в Беларуси запрещены политические соцопросы). Недавно ему посвятил ролик популярный российский блогер Максим Кац. 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 общественных опроса в неделю. Это позволит чётко отслеживать динамику настроений, а наличие данных о респондентах — замечать интересные закономерности. 

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

Хотите сообщить важную новость?

Пишите в наш Телеграм

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

MobileOptimized 2020 Online Edition Conference
6 ноября — 7 ноября

MobileOptimized 2020 Online Edition Conference

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

Владелец kyky.org и The Village останется в тюрьме ещё месяц
Владелец kyky.org и The Village останется в тюрьме ещё месяц
Владелец kyky.org и The Village останется в тюрьме ещё месяц
2 комментария
СЕО «Онлайнера» Илья Жуковец на свободе
СЕО «Онлайнера» Илья Жуковец на свободе
СЕО «Онлайнера» Илья Жуковец на свободе
«Меня бил Сергей Ковригин». Айтишник-организатор шествий подрался с соседом
«Меня бил Сергей Ковригин». Айтишник-организатор шествий подрался с соседом
«Меня бил Сергей Ковригин». Айтишник-организатор шествий подрался с соседом
В районных чатах Минска обсуждают драку, участником который стал Сергей Ковригин — бывший Delivery Director и организатор провластных шествий. dev.by удалось выяснить некоторые детали инцидента.
35 комментариев
«Ты чё, за бабу голосовал?!» UX/UI-дизайнер рассказывает, как его везли «в котлован»
«Ты чё, за бабу голосовал?!» UX/UI-дизайнер рассказывает, как его везли «в котлован»
«Ты чё, за бабу голосовал?!» UX/UI-дизайнер рассказывает, как его везли «в котлован»
Ещё в августе, сразу после выборов, UX/UI-дизайнер Александр оказался в Жодино «за участие в акциях протеста». 11 октября истекло 2 месяца с момента составления протокола. На память о тех событиях останется справка, выданная врачом, — о побоях и синяках. Александр не предавал свою историю огласке в течение всего этого времени. А сейчас решился рассказать. dev.by выслушал все подробности.
35 комментариев

Обсуждение

25

Молодцы!

Артём Быстров
Артём Быстров Пилот межзвёздного пространства в Космолёт
-21

Лучше бы эти айтишники узнали почему на дев-бае одни новости могут неделями висеть, а другие появятся на 5 минут и потом пропадают с главной страницы, только по прямой ссылке из истории можно найти.
АйЦи-сайт блин.

Www Www
Www Www - в Будзьма!
17

Как правило, все что пишется после "лучше бы" - полная херня. Как и перед "но".

Evgeny Martynov
Evgeny Martynov iOS dev в Wimix
-1

Клево)

Спасибо! 

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

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