На данном ресурсе (примечание 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))
Результат получается вот такой:
График (в отличие от предыдущего) становится совершенно не похожим на реальный график явки, который мы можем наблюдать, например, вот в этой статье о фальсификациях. Тем не менее, пики и тут никуда не делись.
Комментарии
Человече.
Вы бросьте эти плебейские обращения к незнакомым вам людям. Это Вас не красит.
Тут не нужно много понимать. Данный код означает, что если псевдослучайное значение, сгенерированное функцией, больше заданного 67... То оно попадает в результат. Вот и все. А это и есть шумовые пики. Запустите программу сто раз с одними и теми же значениями и вы получите другие шумы. Далее все что сгенерировала программа хоть в примитивный эксель и стандартными функциями к нормальной статистике. Вы получите график нормального распределения с заданным максимума в эти самые 67....
Нет, не означает. Логика, как я вижу, такая. Сначала случайным образом генерируется размер участка (votes_list). Потом генерируется по нормальному распределению число проголосовавших (voters_voted) на данном участке, с дисперсией относительно 67% от размера участка.
Потом эта проверка. Если вдруг сгенерилось большее число, чем размер участка, то оно принудительно задаётся равным размеру участка (явка не может быть больше 100%, типа все пришли). Если сгенерится меньше нуля, то оно выставляется в ноль (явка не может быть отрицательной, типа никто не пришёл). В других случаях, если число голосовавших попадает в диапазон от нуля до размера участка, оно не меняется.
То есть, эти случаи влияют только на пики на 0% и 100%. Не?
Функция рандомизации существовала ещё в 80286 процессорах именно как ассемблерная команда (грешен, балуюсь с конца 90-х). Она никогда не принимает значения 0 или 1. Но это так - к слову. Вы все правило описали, но что из этого следует? А ничего. Генерируется псевдослучайная последовательность с заданным максимумом распределения. Отдельные значения могут выпадать из стандартного графика по условию, но генерируется-то они по этой функции. Поэтому и выбросов будет не много. Что и демонстрирует график.
Какое это отношение имеет к модели выборов? Никакого. На Камчатке избирательные участки открылись в 8 утра по местному времени. . Впрочем, в предыдущем комментарии к вашей предыдущей статье я дал ссылку на ролик с указанием времени. Чтобы не тратить Ваше время. Там логика, хоть и упрощённая до примитивизма, но показана. Вот на таких основах и должна строиться модель. Страна то у нас большая. Сколько там часовых поясов? Плюс к этому "психология обывателя" - он на этих выборах шёл в первой половине дня. Т. е. модель должна и это учитывать.
К чему все это пишу? То что с хабра выперли - там начальный уровень другой при обсуждениях. Тут обижаться не нужно. Таким кодом там никому ничего не докажешь. Просто потому что представленный код не соответствует задаче. Видимо на это вашему другу и указали.
Что касается фальсификации на выборах - то таким кодом ничего не доказать. Надеюсь понятно почему?
Так что может на хабре и "инфантильные" "либерасты" с "дуальным мышлением" - спорить не буду, но задача доказать отсутствие фальсификации при помощи данного кода не выполнена, просто потому что предложена слишком примитивная модель.
Я не понял, что Вы пытаетесь донести, если честно.
Модель не корректная. Такую "лабуду" на хабре сносят. И не от того, что инфантильные либероиды.
То есть в реальных выборах "пики" это однозначное свидетельство вбросов. А в модели "пики" - это просто некорректная модель, не учитывает часовые пояса. Очаровательно.
Ответил чуть ниже. Нет, пики не выбросы. И пики и реакция "оппозиции" онлайн только, как бы скасзать? Вежливый пинок обывателя: да оторви ты свой зад и хоть раз в несколько лет приди и реализуй свои права. Как-то так. И ведь сработало. Конечно наряду с другими более масштабными вещами.
Что лишний раз доказывает либероидность сранного хабра.
Только меня напрягло, что используется генератор ПСЕВДОСЛУЧАЙНЫХ чисел как реально случайная величина?
В данном случае это не повлияет на результат вообще никак. Если у тебя вдруг есть доступ к ГСЧ, можешь проверить на нём.
Модель тем и хороша, что в примитивной (то есть понятной всем) форме показывает, как без всяких фальсификаций могут образоваться случайные всплески.
То, что она неточно описывает популяцию - это неважно, такой задачи ей и не ставилось.
ЛОЛ, сына, ГЫ.
Ну на папашу вы тоже тяните. Написать ради того, чтобы написать хоть что-то?
Добро пожаловать на артешок )
Насколько я понял задача состояла не в доказательстве отсутствия фальсификаций (с каких щей кто-то должен это доказывать), а в том, чтобы показать, что выбросы на графике не есть признак фальсификаций. Пусть те, которые утверждают, что выборы сфальсифицированы и докажут это. Презумпцию невиновности еще, вроде, не отменили.
За наличием отсутствия питона и не желанием его устанавливать, проверять не буду, однако с высоты своего немеряного опыта программирования замечу следующее:
При генерации случайных чисел в диапазоне, если вы "не попали" в диапазон, следует повторить акт генерации, а не присваивать граничные значения в 0 и 100%.
Далее, уже исходя не из корректности алгоритма, а из желаемой нормальности распределения:
... в противном случае результат здесь будет заведомо некорректный и будет тем больше тяготеть к границам, чем дальше были эти границы от максимума (в данном случае 67%)
Поменяйте алгоритм и опубликуйте картинку, плиз.
Мопед не мой. Попробуйте всё же сами.
Так пойдет?
# Голосуем
while True:
voters_voted = int(random.gauss(mu, sigma))
if voters_voted > voters_list or voters_voted < 0:
continue
else:
break
Ничего не изменилось:
После предложенной пользователем Andy U поправки
Отмеченный вами участок кода и следующие две строчки можно выкинуть без какого-либо влияния на итоговый результат (второй график).
Ну и что это изменит? Мы просто проведём сглаживание уже на этапе генерации выборки. Задача в чем? Доказать или опровергнуть наличие фальсификации при представлении оперативных данных во время выборов, но модель не описывает протекающие во время выборов процессы, а от этого, как говорят юристы, ничтожна.
Однако же, людей уверяют в том, что выборы фальсифицированы - на основе "пиков". Термин "Пила Чурова" придумал уж точно не автор.
Ну на АШ ведь грамотные люди. И читать приятно и познавательно. И комментарии тоже вызывают часто интерес.
Вы же понимаете, что тут - в вопросе "пиков Чурова" - правы все. Была ли показана нам онлайн-картинка правдивой? Нет. Это был муляж. Шоу. Действительно-ли правдивы результаты конечного подсчёта? Скорее да. За сотые и десятый процентов сказать никто не сможет.
Я лишь прошу чуть больше времени и усилий потратить Вашего друга для составления модели. Если конечно ему это будет интересно в плане практики программирования. Питон интересный язык. Виртуальные сети на нем писать хорошо. Урощено все. Но это так. Хобби.
Не хотел обидеть ни в чем. Не судите строго ☺️
Назачем? Детям - детские книжки!
В данном случае задача была низвергнуть аргумент о выбросах, которые якобы ставят под сомнение выборы. Это можно было сделать и без кода вовсе - я отписался в комменте ниже.
Вся штука в том, что ЦИК предоставил график в такой форме, который, по сути, ни о чём не говорит. Но оппозиция набросилась искать в этом "ни о чём" подтверждение фальсификаций, которое тем более оказалось "ни о чём". А автор кода взялся опровергать их ... Проще было бы оппозиции сразу критиковать форму подачи данных ЦИКом, дескать, раз подача такая мутная - без ранжирования участков по мощности, то либо в ЦИКе профнепригодны, либо намеренно что-то скрывают.
Ответил чуть выше.
В целом: для нас устроили шоу. Ну и на этом спасибо. Палка по хребту будет чуть позже.
Вааау. Если я все правильно понял, то что же вы остановились на палке? Продолжайте, продолжайте. А то сидят тихо по несколько лет - стаж набирают, а потом, как из клозета начинает нести от таких, в определенный час, когда личинка решила, что пора вылупляться. И их терпят - возраст на ресурсе дескать, да и админы уже слабину начинают давать потихоньку.
Погодите погодите - "доказать или опровергнуть" пытаются свидетели "Пилы Чурова" на что им справедливо возражают, в том числе и на данном примере, что их модель некорректна. А вы вот так просто берете и ставите телегу впереди лошади
а вот интересно. у меня у знакомых на одном предприятии руководство настойчиво рекомендовало всем своим сотрудникам проголосовать до 10 часов утра. по мнению экспертов с одного либерального ресурса эта аномалия будет считаться как вброс?
а по поводу гауса. не думаю, что что-то принципиально изменится, если сменить алгоритм получения случайных чисел - пики все-равно будут, но возможно в других местах.
Очень похожая ситуация у жены, явка была обязательна с отзвоном директору или заму, после этого ответственный пересылал списки проголосовавших. За кого голосовать не говорили, как я понял это было совсем неважно.
у них так же. полагаю, руководство предприятия таким образом хочет показать, что у них трудятся социально ответственные сотрудники. возможно от местных властей предприятию за это какие-то бонусы, а может просто деловой имидж предприятия.
Именно что не важно побеждал все равно Путин. Важна была явка. Которую кремлевские политтехнологи и обеспечили. А народ в массе так и не понял, к сожалению, что в очередной раз оказался объектом манипуляции.
Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.
Приятно почитать,спасибо за доставленное удовольствие.
PS хаба-хаба
куми-кумидавно и неизбежно скатилось в уг.По существующей системе выдвижения и выборов, в принципе не получится попасть во власть желающим и способным работать на благо населения.
Любой человек, которого ведут во власть, будет обработан и взят на крючок каким-нибудь кланом или спецслужбой.
Никакие другие на выборы просто не попадают.
Эта понимали еще сотни и тысячи лет назад.
Во власть пропускали только по жребию.
В Древней Руси, В Венецианской Республике.
или я чего-то недопонимаю, или Вы противоречите сами себе. Кидание жребия дает случайный результат ( и тогда во власть может попасть кто угодно), но в той же Венеции, как и на Древней Руси, до "кидка" допускались заранее отобранные люди, в всяком случае смерды всякие шли мимо. Т. образом, "кидок" был очень разумной заменой нынешних дебатов :))
Ну-ну... :)
Попробуйте найти вокруг себя дегенератов, которые скажут, что им может стукнуть в голову отдать приказ вырубить виноградники в стране, превратить десятки тысяч предприятий в руины.
И поймете, что все случайные люди вокруг вас намного безопаснее для страны, чем те кого привели на веревочке неизвестные никому силы.
Ессно, для жребия надо выдвигать только лично знающим кандидата людям в количестве не более тысячи человек.
Как два пальца. Посмотрите на страны ЕС, которые благодаря "зелёной" пропаганде требуют закрыть у себя АЭС. Посмотрите на митингующих граждан у нас, которые благодаря той же "зелёной" пропаганде требуют запрета строительства новых дорог и заводов.
А вы попробуйте :)
Я более двадцати лет людей опрашивал - у меня работа была такая, помощником землеустроителя, много людей повидал :)
А те, про кого вы говорите, как раз и есть обработанные.
Им уже в кандидаты потруднее попасть будет.
Тем более кандидатов будет очень много, спецслужбам столько не обработать, вернее придется массы обрабатывать целиком.
И вот тут можно крепко обосраться.
Кроме того, надо бы вспомнить еще один прием защиты общества от предателей и дегенератов - на одно место назначать несколько человек для посменной работы.
Один на смене и текучке, остальные на контроле на местах за исполнением.
Сбор при пересменках, ЧС, спорных случаях.
Паразитам и врагам ооочень такое не нравится, воняют...
"массы целиком" говорите? Эмм а ведь не далее как два месяца назад "сполотимся...спасем Россию от красного олигарха...миллиарды в Швейцарии...если не Путин то кот..." И ведь правда спасли - правда пока только Дерипаску
И вам говорю - попробуйте :).
Дело в том, что когда конкретно спрашиваешь, последний пропойца сантехник начинает говорить, что это государственное преступление и измена.
Вот так вот.
Так шта, когда до конкретики доходит, то в этих массах не найдешь таких дегенератов каковые попали наверх, таких надо сначала постараться найти среди подонков и отморозков, посадить крепко на крючок и подготовить.
А с массами-то потруднее будет, засветиться на раз-два... :)
Ясно. Пост про то как Хабр продался Госдепу за печеньки. Без понятия так ли это.
Собственно и дискутировать не о чем - Путин победил, код должен комментировать программист Питона(если не ошибаюсь), оригинальную статью с Хабра удалили - сравнивать не с чем. И автор забыл упомянуть что его друг не программер а доктор. Но это отдельная история.
Былинный срач отменяется, разве что придет один пользователь и расскажет какие все айтишники говно, один он
дартаньянвеликий математик.дискутировать не о чем
конечно не о чем, тут же математика - для хабрадауна это что-то вроде магии.
Кстати, а почему?
Чувак, для тебя это новость?
Читай - https://ebanoe.it/
Надо бы и про российских ойтышникофф такой сайт запилить.
Чувак, может код кривой? Наверное доктор должен людей лечить а не программы писать? Может доктору чего то не хватает, зарплату там повысить, не? Об этом чувак, ты не думал конечно.
Обоснуй.
Оно мне надо?
Попробуй комменты перечитать, может поймешь, а если нет - то ничем помочь не могу - мозги патчить не умею. А я все сказал.
А, ну я же говорю, хабрашколота.
Правльна! Если ничего не понял - переходи на личности
Можешь еще на флаг среагировать Расскажи всем какой я свядомы змагар-лукабот
Какая личность? Я вижу только набор штампов как у завалящего чат-бота на пыхе.
твои проблемы. все, я флуд закончил. грамотные комменты тут есть, а кто не увидел - не мое дело.
Хе-хе, так Д'артаньяном потянуло. Аж тошно стало.
Страницы