ПЖиВ и закон Бенфорда
Dec. 19th, 2011 02:03 amВ ходе обсуждения результатов выборов несколько раз всплывали ссылки на статьи, аппелирующие к закону Бенфорда. Я наконец провел анализ распределения цифр в количестве голосов за ЕР — но, к сожалению, (почти) ничего интересного не обнаружил. Тем не менее выкладываю результаты, потому что методологически этот расчет мне кажется важным: статьи на эту тему, которые я видел, произвели на меня печальное впечатление, именно потому что там методологически всё неверно сделано.
Закон Бенфорда описывает распределение частот встречаемости первых цифр в разных естественных выборках: скажем, если взять все цены в большом супермаркете, то оказывается, что они чаще всего начинаются на 1, а 9 в качестве первой цифры встречается реже всего. Это довольно любопытный факт, его не так просто объяснить (в предположении, что такое распределение существует, его форма легко выводится из инвариантности относительно курса валюты; но чтобы объяснить, откуда оно вообще берется, нужно привлечь какие-то эмпирические соображения). Вторые цифры тоже распределены неравномерно, третьи тоже — но чем дальше, тем более равномерным становится распределение. Так вот, существует идея, что в фальсифицированных выборках будет наблюдаться отклонение от закона Бенфорда. Проблема в том, что, допустим, мы возьмем какой-то набор данных и посчитаем распределение первой (или второй) цифры; как оценить значимость отклонениий? Не знаю, как это принято делать, но я сделал простой рабоче-крестьянский бутстрап (сейчас объясню).
Итак, я решил проанализировать распределение количества голосов за ЕР, то есть число бюллетеней за ЕР на каждом избирательном участке. Максимальный размер участка — 3000 человек, так что это число может быть от 0 до 3000. На этом графике изображено реальное распределение, и его сглаженная форма (красная линия):

Я взял эту красную линию и 10 тысяч раз сгененировал набор из ~95 тыс. чисел (по число уиков) с таким распределением. Для каждого набора я подсчитывал распределение первых, вторых и последних цифр (т.е. сколько раз из 95 тыс. на первом месте стоит единичка, двоечка и т.д.). Я, наверное, по-дурацки всё это запрограммировал, но в итоге это считалось на мощном рабочем компьютере всю ночь; утром я обнаружил, что допустил ошибку в подсчете первых цифр, так что этих данных у меня нет. Но надо сказать, что в статье на эту тему, которую я видел, авторы анализировали как раз вторые цифры. Итак, вот что получилось. На этом графике слева показано распределение второй цифры, а справа — последней. Средние значения и среднеквадратичные отклонения по 10 тысячам повторений.

А звездочками и слева, и справа показано реальное распределение реальных голосов за ЕР. Там, где звездочки попадают в интервал, нет ничего интересного. Там, где они далеко выходят за интервал, будет отклонение от ожидаемого распределения. Важно, что мы не пользуемся никаким законом Бенфорда, а строим распределение сами, исходя из реальной (сглаженной) плотности вероятности. Для каждой цифры можно посчитать p-value того, что звездочка выбилась из интервала случайно.
Давайте сначала посмотрим на последние цифры. Мы видим, что ноль на последнем месте встречается чуть чаще, чем следовало бы, а девятка и тройка — чуть реже. Значимость на пределе: порядка 0.03, 0.01, 0.05. Если считать, что в случае фальсификации мы ОЖИДАЛИ увидеть больше нулей и меньше девяток (что правда), то можно посчитать значимость одновременно получить так много нулей и мало девяток. Получится 0.002 — это довольно высокая значимость. Но меня смущают тройки: а их-то почему меньше, чем других? Всего-то мы делаем 10 сравнений, так что порог значимости нужно уменьшать. В общем, как-то неясно: вроде что-то видно, но не очень убедительно. Кстати, я не понимаю, почему у сгенерированных данных нолики на конце встречаются реже других цифр.
А со вторыми цифрами вообще ничего не понятно. Единички и восьмерки отклоняются значимо (0.02), но если учесть false discovery rate, то значимость может и пропасть. Опять же — на пределе. И потом, почему именно единички и восьмерки?
Так или иначе, как я и обещал, это последняя моя запись на тему анализа выборов (если не произойдет каких-то удивительных открытий). Основную запись буду обновлять по мере необходимости.
P.S. Друзья, а скиньте мне в комментарии ссылки на графики с региональной спецификой. Вот, например, я только что наткнулся на сравнение Тольятти и Самары, очень красноречиво: http://aillarionov.livejournal.com/368898.html?thread=19285250#t19285250. Есть еще такие штуки? Спасибо.
Закон Бенфорда описывает распределение частот встречаемости первых цифр в разных естественных выборках: скажем, если взять все цены в большом супермаркете, то оказывается, что они чаще всего начинаются на 1, а 9 в качестве первой цифры встречается реже всего. Это довольно любопытный факт, его не так просто объяснить (в предположении, что такое распределение существует, его форма легко выводится из инвариантности относительно курса валюты; но чтобы объяснить, откуда оно вообще берется, нужно привлечь какие-то эмпирические соображения). Вторые цифры тоже распределены неравномерно, третьи тоже — но чем дальше, тем более равномерным становится распределение. Так вот, существует идея, что в фальсифицированных выборках будет наблюдаться отклонение от закона Бенфорда. Проблема в том, что, допустим, мы возьмем какой-то набор данных и посчитаем распределение первой (или второй) цифры; как оценить значимость отклонениий? Не знаю, как это принято делать, но я сделал простой рабоче-крестьянский бутстрап (сейчас объясню).
Итак, я решил проанализировать распределение количества голосов за ЕР, то есть число бюллетеней за ЕР на каждом избирательном участке. Максимальный размер участка — 3000 человек, так что это число может быть от 0 до 3000. На этом графике изображено реальное распределение, и его сглаженная форма (красная линия):

Я взял эту красную линию и 10 тысяч раз сгененировал набор из ~95 тыс. чисел (по число уиков) с таким распределением. Для каждого набора я подсчитывал распределение первых, вторых и последних цифр (т.е. сколько раз из 95 тыс. на первом месте стоит единичка, двоечка и т.д.). Я, наверное, по-дурацки всё это запрограммировал, но в итоге это считалось на мощном рабочем компьютере всю ночь; утром я обнаружил, что допустил ошибку в подсчете первых цифр, так что этих данных у меня нет. Но надо сказать, что в статье на эту тему, которую я видел, авторы анализировали как раз вторые цифры. Итак, вот что получилось. На этом графике слева показано распределение второй цифры, а справа — последней. Средние значения и среднеквадратичные отклонения по 10 тысячам повторений.

А звездочками и слева, и справа показано реальное распределение реальных голосов за ЕР. Там, где звездочки попадают в интервал, нет ничего интересного. Там, где они далеко выходят за интервал, будет отклонение от ожидаемого распределения. Важно, что мы не пользуемся никаким законом Бенфорда, а строим распределение сами, исходя из реальной (сглаженной) плотности вероятности. Для каждой цифры можно посчитать p-value того, что звездочка выбилась из интервала случайно.
Давайте сначала посмотрим на последние цифры. Мы видим, что ноль на последнем месте встречается чуть чаще, чем следовало бы, а девятка и тройка — чуть реже. Значимость на пределе: порядка 0.03, 0.01, 0.05. Если считать, что в случае фальсификации мы ОЖИДАЛИ увидеть больше нулей и меньше девяток (что правда), то можно посчитать значимость одновременно получить так много нулей и мало девяток. Получится 0.002 — это довольно высокая значимость. Но меня смущают тройки: а их-то почему меньше, чем других? Всего-то мы делаем 10 сравнений, так что порог значимости нужно уменьшать. В общем, как-то неясно: вроде что-то видно, но не очень убедительно. Кстати, я не понимаю, почему у сгенерированных данных нолики на конце встречаются реже других цифр.
А со вторыми цифрами вообще ничего не понятно. Единички и восьмерки отклоняются значимо (0.02), но если учесть false discovery rate, то значимость может и пропасть. Опять же — на пределе. И потом, почему именно единички и восьмерки?
Так или иначе, как я и обещал, это последняя моя запись на тему анализа выборов (если не произойдет каких-то удивительных открытий). Основную запись буду обновлять по мере необходимости.
P.S. Друзья, а скиньте мне в комментарии ссылки на графики с региональной спецификой. Вот, например, я только что наткнулся на сравнение Тольятти и Самары, очень красноречиво: http://aillarionov.livejournal.com/368898.html?thread=19285250#t19285250. Есть еще такие штуки? Спасибо.