Найти в Дзене
Матчасть

О ненормальном распределении количества друзей

В предыдущем посте мы познакомили вас с распределением Парето. Сегодня покажем, как оно выглядит в жизни, измерив количество дружеских связей между подписчиками vk-сообщества Матчасти.

Для выгрузки данных мы воспользовались кодом на Python (блокнот) и официальным API VK. В сообществе оказалось 700 с чем-то подписчиков, многие из которых находятся друг у друга в друзьях. Соединив их в граф, мы обнаружили в нём "гигантскую компоненту" из 424 человек, которые могут дойти друг до друга по цепочке "рукопожатий" из подписчиков сообщества. С этой компонентой дальше и работали. Вот она:

Вершины графа - подписчики Матчасти, рёбра - отношение дружбы между ними.
Вершины графа - подписчики Матчасти, рёбра - отношение дружбы между ними.

Построив граф, мы захотели выяснить, а как распределено количество соседей каждой вершины. Оказалось, что классическая формулировка закона Парето (20% семей обладают 80% дохода) в нашем случае чуть мягче: первые 20% подписчиков набрали только 60% дружеских связей.

Закон Парето в нашем случае оказался 20% к 60%
Закон Парето в нашем случае оказался 20% к 60%

Затем мы нарисовали гистограмму: по оси X - округлённое число друзей в сообществе, по оси Y - количество подписчиком с таким числом друзей. Но она сначала получилась не очень информативной: у большинства членов сообщества не более 10 друзей в нём, но у небольшого числа - за сотню друзей. Типичный "толстый хвост" распределения Парето. Чтобы сделать гистограмму нагляднее, можно перейти к логарифмической шкале (о её пользе есть видео). Если логарифмировать и число друзей, и количество аккаунтов с таким числом друзей, гистограмма станет похожей на "треугольник". Это типичная форма для распределения Парето.

Гистограмма - самый наглядный способ изобразить распределение. По крайней мере, самый привычный.
Гистограмма - самый наглядный способ изобразить распределение. По крайней мере, самый привычный.

Прежде мы рассказывали, что для некоторых распределений не определена дисперсия или даже среднее. И вот кажется, что это наш случай тоже. Чтобы проверить это, проверим сходимость среднего и стандартного отклонения при росте выборки. Для этого случайным образом переставим элементы выборки (количества друзей), и рассчитаем среднее для первых двух, первых трёх, и т.д. элементов. И то же самое со стандартным отклонением. Сделаем так много раз с разными случайными перестановками, и нарисуем результат.

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

Оказывается, что среднее более-менее стабильно сходится к какому-то значению. А вот дисперсия даже под конец выборки нестабильна: её значения находятся в коридоре, который, кажется, не торопится сужаться.

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

Те же картинки для нормального распределения: выборочные параметры стабилизируются быстрее.
Те же картинки для нормального распределения: выборочные параметры стабилизируются быстрее.

Такое поведение среднего и стандартного отклонения можно объяснить теорией. Напомним, что распределение Парето можно описать формулой

-6

Из этой формулы можно вывести, что плотность распределениия пропорциональна t^(-k-1), а значит, чтобы интеграл для матожидания был конечным, нужно k>1, а чтобы сходился интеграл для дисперсии, нужно k>2 (подробнее в Википедии). Мы оценили k двумя разными способами - из гистограммы и методом максимального правдоподобия. Оба раза получилось чуть меньше 1, то есть дисперсияюдля такого распределения точно не имеет смысла измерять, ну и среднее под большим вопросом.

В общем-то, это всё, что мы хотели показать: сильно асимметричные распределения существуют в природе и обществе вокруг нас, и, когда мы имеем с ними дело, оценки среднего и дисперсии могут быть нестабильными и вообще стрёмными. Теперь вы предупреждены, а значит - вооружены (робастными статистиками, например).

Подробнее социальных графах и данных из соцсетей вы можете посмотреть в лекции Артура Хачуяна или почитать в книге Networkd, Crowds and Markets. Ну а пока что вот вам ещё одно изображение графа подписчиков - в виде луны. И хороших выходных!

Изображение того же графа, только вершины теперь расположены на окружности.
Изображение того же графа, только вершины теперь расположены на окружности.