Математика для аналитика
Модуль 3 · Средние, разброс, перцентили

Описательная статистика

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

Прочитано
— из 6
3.1

Типы переменных и шкалы измерения

Тип переменной определяет, какие вычисления над ней имеют смысл, а какие дают число без содержания.

Суть

Любая колонка в выгрузке объявлений — это результат измерения: некоторому свойству объекта приписано значение. Идентификатор категории, цена в рублях, время до первого контакта в часах, оценка продавца по пятибалльной шкале, признак «в объявлении есть фото» — всё это записано числами или текстом, но природа у них разная. Компьютер не различает эти случаи: он одинаково охотно посчитает среднее по времени до первого контакта и среднее по идентификаторам категорий. Разницу должен видеть аналитик.

Классификация, которой пользуются до сих пор, была предложена психологом Стэнли Стивенсом в 1946 году. Идея такая: измерение — это отображение свойств объектов в числа, и у каждого способа отображения свой набор преобразований, которые ничего не портят. Если значения можно переименовать любым способом и смысл не пострадает, то это одна шкала. Если переименовывать нельзя, но можно сдвинуть начало отсчёта — другая. Из этого набора допустимых преобразований и вытекает, какие операции над данными законны. Отсюда следует рабочее правило: перед тем как считать статистику, определите шкалу, а потом уже выбирайте формулу.

Отдельно от шкалы стоит различать дискретные и непрерывные величины. Дискретная принимает отдельные значения и обычно получается счётом: число просмотров объявления за день, количество фотографий в карточке. Непрерывная в принципе может принимать любое значение внутри интервала: время до первого контакта, время жизни объявления до продажи. На практике непрерывные величины всегда округлены до шага измерения, и это нормально, но природа их другая — между 2,4 и 2,5 часа есть бесконечно много значений, а между 3 и 4 фотографиями ничего нет.

Четыре шкалы измерения

ШкалаЧто различаетПример из данных классифайдаЧто допустимо считать
НоминальнаяТолько «одинаково или нет»Категория, город, тип продавца, статус объявленияЧастоты, доли, мода
ПорядковаяПорядок «больше или меньше», но не величину разрываСостояние товара новое / отличное / хорошее, оценка продавца от 1 до 5Плюс медиана, перцентили, ранговые методы
ИнтервальнаяВеличину разрыва, но ноль условныйДата публикации объявления, момент события в логеПлюс среднее, разности, стандартное отклонение
ОтношенийРазрывы и отношения, ноль настоящийЦена объявления, время до первого контакта, число просмотров и откликовПлюс отношения «в два раза больше», коэффициент вариации

Граница между интервальной шкалой и шкалой отношений проходит по нулю. У даты публикации объявления ноль условный: 1 января не означает «отсутствия времени», поэтому фраза «эта дата в два раза больше той» бессмысленна, хотя разность дат в днях считать можно. У цены ноль настоящий: объявление за 20 000 рублей действительно вдвое дороже объявления за 10 000. Практически весь продуктовый учёт классифайда живёт в шкале отношений, и это удобно — там работают все инструменты описательной статистики.

Доли, флаги и переменные, меняющие шкалу

Отдельного разговора заслуживает бинарный признак: в объявлении есть фото или нет, объявление получило хотя бы один контакт или нет. Формально это номинальная шкала с двумя категориями. Но если закодировать значения нулём и единицей, то среднее по колонке превращается в долю, и это уже осмысленное число.

доля p = k / n × 100%, где k — число единиц, n — число наблюдений

Именно поэтому доля объявлений с фото, конверсия просмотра в контакт и процент объявлений, снятых в первые сутки, — это средние по колонке из нулей и единиц. Такой приём законен только для двух категорий. Для признака с тремя и более категориями кодирование числами 1, 2, 3 не даёт ничего: среднее между «Электроникой» и «Недвижимостью» не существует.

Полезно помнить и то, что переменная меняет шкалу при агрегации. Статус отдельного объявления — номинальная переменная. Доля объявлений со статусом «продано» по категории за неделю — уже величина в шкале отношений, с ней можно считать среднее, разброс и корреляции. Одни и те же исходные данные на разных уровнях агрегации требуют разных методов, и путаница здесь — источник большинства бессмысленных графиков.

Пример

В выгрузке из таблицы объявлений есть колонки: item_id (номинальная, хоть и числовая — это идентификатор), category_id (номинальная), seller_type со значениями «частник» и «профессионал» (номинальная, бинарная), condition со значениями новое / отличное / хорошее (порядковая), published_at (интервальная), price_rub, views_1d и hours_to_first_contact (шкала отношений), has_photo со значениями 0 и 1 (бинарная). Корректный набор метрик: доли по категориям и типам продавца, медиана и перцентили по цене и времени до первого контакта, среднее и стандартное отклонение по числу просмотров, средняя по колонке has_photo как доля объявлений с фотографией. Среднее по item_id и по category_id в этот набор не входит.

Частая ошибка

Усреднение порядковой шкалы и подача результата как точного числа. В отчёте пишут «средняя оценка продавца 3,0 из 5» — и это выглядит как «стабильно средний уровень». Между тем оценки десяти покупателей были 1, 1, 1, 1, 1, 5, 5, 5, 5, 5: сумма 30, среднее 30 / 10 = 3,0, но оценку 3 не поставил никто. Реальность здесь — два полярных лагеря, а не серая середина. Заметить ошибку помогает привычка: рядом со средним по любой шкале от 1 до 5 всегда показывайте распределение по баллам. Если столбики выстроены буквой U или все прижаты к краю, среднее из отчёта нужно убрать и заменить на долю оценок 4 и 5.

Запомнить
  • Шкала измерения, а не тип данных в базе, определяет допустимые операции: числовой идентификатор категории остаётся категорией.
  • Номинальная шкала — частоты и мода; порядковая — плюс медиана и перцентили; интервальная и шкала отношений — плюс среднее и разброс.
  • Бинарный признак, закодированный нулём и единицей, даёт долю через обычное среднее; для трёх и более категорий этот приём не работает.
  • При агрегации шкала меняется: статус объявления — категория, доля проданных объявлений по категории — полноценная числовая величина.
3.2

Среднее, медиана, мода: что выбирать и когда

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

Суть

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

Среднее арифметическое — это точка, относительно которой сумма отклонений равна нулю, а сумма квадратов отклонений минимальна. Физическая аналогия: если разложить наблюдения по числовой оси как грузики одинакового веса, среднее окажется точкой равновесия рычага. Отсюда его главное свойство: одно очень далёкое наблюдение тянет точку равновесия за собой, и тянет сильно.

x̄ = (x₁ + x₂ + … + xₙ) / n = Σxᵢ / n

Медиана — это значение, которое делит упорядоченный ряд пополам: половина наблюдений не больше её, половина не меньше. Она минимизирует не квадраты, а сумму модулей отклонений. Медиане безразлично, насколько далеко улетело крайнее значение: важно только, что оно с одной стороны. Именно поэтому медиана устойчива к выбросам.

Мода — самое частое значение. Она отвечает на вопрос «какой исход типичен», а не «где центр». У непрерывной величины мода в чистом виде почти не встречается, поэтому её ищут по гистограмме как вершину столбика. Распределение может иметь две моды, и это важный сигнал: скорее всего, в данных смешаны две разные группы.

Как это считается

Среднее: сложить все значения и разделить на их количество. Медиана: отсортировать ряд по возрастанию; при нечётном n взять значение в позиции (n + 1) / 2; при чётном — среднее двух центральных значений, в позициях n / 2 и n / 2 + 1. Мода: построить таблицу частот и взять значение с максимальной частотой.

нечётное n: Me = значение в позиции (n + 1) / 2
чётное n: Me = среднее значений в позициях n / 2 и n / 2 + 1

Сортировка обязательна. Медиана неотсортированного ряда — это медиана порядка загрузки строк, то есть ничего.

Взвешенное среднее и ловушка усреднения долей

Если наблюдения представляют группы разного размера, обычное среднее по группам искажает картину. Нужна взвешенная версия, где вес — размер группы.

x̄w = Σ(wᵢ × xᵢ) / Σwᵢ

Это правило особенно жёстко работает с процентами. Конверсия просмотра в контакт, доля объявлений с фото, средняя цена — всё это дроби, и усреднять дроби напрямую нельзя. Корректный путь один: сложить числители, сложить знаменатели, поделить одно на другое.

Что выбирать в отчёте

Если распределение примерно симметрично и без длинного хвоста — среднее и медиана почти совпадут, берите среднее: оно понятнее и с ним удобнее считать дальше. Если распределение скошено — цена объявления, число просмотров, время до первого контакта, время жизни объявления до продажи, — используйте медиану как основную метрику, а среднее показывайте рядом. Разрыв между ними сам по себе информативен: он измеряет длину хвоста. Для порядковых шкал (состояние товара, балл оценки продавца) среднее недопустимо, остаются медиана и мода. Для номинальных — только мода и доли.

Разумный формат строки в отчёте — не одно число, а три: медиана, среднее и объём выборки. Так читатель видит и типичное значение, и влияние хвоста, и надёжность оценки.

Пример

Допустим, из лога событий выгружено время до первого контакта по девяти объявлениям новой подкатегории: 1, 2, 2, 2, 3, 4, 5, 7 и 28 часов. Сумма равна 54, значит среднее 54 / 9 = 6,0 часа. Ряд уже отсортирован, n = 9 нечётное, центральная позиция (9 + 1) / 2 = 5, поэтому медиана равна 3 часам. Самое частое значение — 2 часа (три раза), это мода. Продавцу, который спрашивает «когда мне напишут», честный ответ — около 3 часов, а не 6,0: восемь объявлений из девяти получили контакт не позже чем за 7 часов, а среднее подтянуло вверх единственное объявление, ждавшее 28 часов. При этом среднее не бесполезно: оно аддитивно, и если умножить 6,0 на число объявлений, получится суммарное время ожидания по срезу, а медиана такого свойства не имеет.

Частая ошибка

Среднее по средним. В отчёте по двум категориям: в первой в нашем примере 800 000 просмотров объявлений и 24 000 контактов, то есть конверсия 3,0%; во второй 200 000 просмотров и 10 000 контактов, то есть 5,0%. Аналитик пишет «средняя конверсия просмотра в контакт 4,0%» — это (3,0 + 5,0) / 2. Правильное значение считается по сумме: (24 000 + 10 000) / (800 000 + 200 000) = 34 000 / 1 000 000 = 3,4%. Ошибка в 0,6 процентного пункта здесь возникла из-за того, что маленькая категория получила тот же вес, что и большая. Заметить проблему помогает проверка: посчитайте метрику двумя способами — усреднением по группам и по общей сумме. Если числа разошлись, группы неравного размера, и верна вторая цифра. В отчётах с процентами всегда держите рядом колонку с размером знаменателя.

Запомнить
  • Среднее — точка равновесия и минимум суммы квадратов отклонений; оно чувствительно к выбросам. Медиана делит ряд пополам и к ним устойчива.
  • Разрыв между средним и медианой измеряет длину хвоста: если среднее заметно больше, распределение вытянуто вправо.
  • Проценты и доли усредняются только через сумму числителей и сумму знаменателей, а не как среднее процентов.
  • В отчёте показывайте медиану, среднее и размер выборки вместе — одно число из трёх всегда что-то скрывает.
3.3

Дисперсия, стандартное отклонение и коэффициент вариации

Разброс отвечает на вопрос, который среднее не задаёт: насколько можно полагаться на типичное значение.

Суть

Две категории с одинаковым средним временем до первого контакта могут вести себя совершенно по-разному. В одной почти все объявления получают отклик примерно через три часа, в другой половина получает его в первые минуты, а половина ждёт сутки. Среднее одинаковое, ожидание продавца — разное. Чтобы измерить эту разницу, нужна мера разброса.

Начать логично с отклонения каждого наблюдения от среднего: xᵢ − x̄. Но усреднить эти отклонения не получится: по определению среднего их сумма всегда равна нулю, плюсы и минусы гасят друг друга. Нужен способ убрать знак. Можно взять модули — получится среднее абсолютное отклонение, вполне рабочая величина. Но исторически и математически удобнее оказалось возводить в квадрат: квадрат дифференцируем, у него хорошие алгебраические свойства, дисперсии независимых величин складываются. Средний квадрат отклонения и называется дисперсией.

σ² = Σ(xᵢ − x̄)² / n

У дисперсии есть неудобство: она измеряется в квадратах единиц. Дисперсия времени до первого контакта выражается в «часах в квадрате», и объяснить это в отчёте невозможно. Поэтому из дисперсии извлекают корень и получают стандартное отклонение — величину в тех же единицах, что и сами данные.

σ = √σ² = √(Σ(xᵢ − x̄)² / n)

Содержательно стандартное отклонение — это типичный размер отклонения наблюдения от среднего. Для распределений, близких к колоколообразным, работает грубый ориентир: примерно две трети наблюдений лежат в пределах одного σ от среднего, около 95% — в пределах двух σ. Для произвольных распределений действует более слабое, но универсальное неравенство Чебышёва: доля наблюдений дальше k стандартных отклонений от среднего не превышает 1 / k².

n или n − 1

В формуле дисперсии знаменатель бывает двух видов. Если данные — вся генеральная совокупность (все активные объявления категории на дату среза, и других не существует), делят на n. Если данные — выборка, по которой оценивают разброс во всей совокупности, делят на n − 1. Причина в том, что отклонения считаются не от истинного среднего, а от выборочного, которое само подстроено под эти же данные и потому лежит к ним ближе, чем истинное. Сумма квадратов получается систематически заниженной, и деление на n − 1 вместо n эту заниженность компенсирует. Это поправка Бесселя.

s² = Σ(xᵢ − x̄)² / (n − 1), s = √s²

При n больше сотни разница между двумя вариантами практически незаметна. На выборке из пяти-десяти значений она существенна, и её стоит указывать в примечании к отчёту. Дальше в примерах используется выборочный вариант с n − 1.

Коэффициент вариации

Стандартное отклонение нельзя сравнивать между величинами разной природы и разного масштаба. σ = 2 часа для времени до первого контакта и σ = 2000 рублей для цены объявления — числа несопоставимые. Даже внутри одной величины сравнение хромает: разброс в 2 часа при среднем 3 часа и при среднем 30 часов означает совершенно разную стабильность. Коэффициент вариации решает эту задачу, приводя разброс к относительному виду.

CV = σ / x̄ × 100%

CV — безразмерная величина, поэтому им можно сравнивать стабильность времени до первого контакта, цены объявления и числа просмотров в одной таблице. Практический ориентир: CV ниже 20–25% означает довольно однородный процесс, выше 50% — процесс, где типичное значение мало что предсказывает. Ограничения жёсткие: CV имеет смысл только для шкалы отношений с настоящим нулём и только при положительном среднем. Для величин, среднее которых близко к нулю или меняет знак (например, прирост числа активных объявлений к прошлой неделе), CV взрывается и становится бессмысленным.

Пример

Категория A, выборка из пяти объявлений, время до первого контакта: 2, 3, 3, 4, 3 часа. Сумма 15, среднее 15 / 5 = 3. Отклонения: −1, 0, 0, 1, 0; их квадраты 1, 0, 0, 1, 0, сумма квадратов 2. Выборочная дисперсия 2 / 4 = 0,5, стандартное отклонение √0,5 ≈ 0,71 часа, CV = 0,71 / 3 × 100% ≈ 23,6%. Категория B, тоже пять объявлений: 1, 2, 4, 7, 6 часов. Сумма 20, среднее 20 / 5 = 4. Отклонения: −3, −2, 0, 3, 2; квадраты 9, 4, 0, 9, 4, сумма 26. Дисперсия 26 / 4 = 6,5, стандартное отклонение √6,5 ≈ 2,55 часа, CV ≈ 63,7%. Средние отличаются на час, а предсказуемость — втрое. В категории A продавцу можно показывать ожидаемое время отклика, в категории B — нет, пока разброс не сокращён.

Частая ошибка

Подача интервала «среднее ± стандартное отклонение» как диапазона, в который попадают значения, при сильно скошенных данных. Для времени до первого контакта со средним 6,0 часа и стандартным отклонением 8,46 часа такой интервал даёт от −2,5 до 14,5 часа, а отрицательного времени отклика не бывает. Появление невозможного значения на нижней границе — надёжный индикатор того, что распределение не симметрично и правило ±σ к нему неприменимо. Проверка занимает секунду: посчитайте x̄ − 2σ, здесь это 6,0 − 16,9 = −10,9 часа, и посмотрите, не ушло ли оно ниже физически возможного минимума. Если ушло, замените в отчёте пару «среднее ± σ» на пару перцентилей, например от 10-го до 90-го, — они всегда лежат внутри реального диапазона данных.

Запомнить
  • Отклонения возводят в квадрат, потому что их обычная сумма всегда равна нулю; корень из дисперсии возвращает величину в исходные единицы.
  • Делите на n − 1, когда данные — выборка, и на n, когда это вся совокупность; на малых выборках разница заметна.
  • Коэффициент вариации делает разброс сопоставимым между разными величинами, но требует положительного среднего и шкалы отношений.
  • Интервал «среднее ± σ» осмыслен только для примерно симметричных данных; проверяйте его нижнюю границу на физическую возможность.
3.4

Перцентили, квартили, IQR и боксплот

Перцентили описывают распределение без предположений о его форме и лежат в основе почти всех обязательств по скорости.

Суть

Среднее и стандартное отклонение — это характеристики, вычисленные из значений. Перцентили — характеристики, вычисленные из позиций в упорядоченном ряду. Такой подход ничего не предполагает о форме распределения и потому работает одинаково для симметричных и для сильно скошенных данных.

P-й перцентиль — это значение, ниже которого лежит примерно P процентов наблюдений. 50-й перцентиль — уже знакомая медиана. 90-й перцентиль времени до первого контакта означает: девять из десяти объявлений получили отклик не позже этого срока. Именно в такой форме формулируются внутренние соглашения об уровне сервиса, потому что среднее ничего не гарантирует конкретному продавцу, а фраза «90% объявлений получают контакт не дольше чем за 8 часов» гарантирует.

Квартили — это три частных перцентиля, делящих ряд на четыре равные части: Q₁ (25-й перцентиль), Q₂ (медиана, 50-й) и Q₃ (75-й). Расстояние между первым и третьим квартилями называется межквартильным размахом.

IQR = Q₃ − Q₁

IQR — это ширина диапазона, в который попадает центральная половина данных. Он играет ту же роль, что стандартное отклонение, но устойчив к выбросам: чтобы сдвинуть Q₁ или Q₃, нужно изменить не одно крайнее наблюдение, а четверть выборки.

Как это считается

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

k = P / 100 × n, округлить вверх; перцентиль = значение в позиции k

Здесь важно предупреждение. Общепринятого единственного определения перцентиля не существует: разные реализации по-разному поступают с дробной позицией. Одни округляют вверх, другие интерполируют между соседними значениями, третьи используют сдвинутые формулы позиции. Библиотека NumPy по умолчанию интерполирует, Excel предлагает две разные функции, а в SQL-диалектах встречаются оба поведения. На больших выборках разница пренебрежима, на выборке из десяти-двадцати значений она заметна. Практический вывод: фиксируйте метод расчёта в описании метрики и не сравнивайте перцентили, посчитанные разными инструментами.

Правило усов и выбросы

IQR даёт формальный критерий для подозрительных наблюдений. Границы, предложенные Джоном Тьюки, отстоят от квартилей на полтора межквартильных размаха.

нижняя граница = Q₁ − 1,5 × IQR; верхняя граница = Q₃ + 1,5 × IQR

Значения за этими границами помечаются как выбросы. Коэффициент 1,5 — соглашение, а не закон природы: для нормального распределения за границы попадает около 0,7% наблюдений, что делает правило разумно строгим. Для сильно скошенных данных, таких как цены и время до первого контакта, правило почти всегда пометит длинный правый хвост, и это не повод удалять эти объявления — это повод пойти и разобраться, что с ними не так.

Как читать боксплот

Боксплот — это графическая запись пяти чисел. Прямоугольник тянется от Q₁ до Q₃, то есть его ширина равна IQR. Линия внутри прямоугольника — медиана. Усы дотягиваются до самых далёких наблюдений, которые ещё не вышли за границы Тьюки. Точки за усами — выбросы, каждая рисуется отдельно.

Читать нужно так: положение прямоугольника показывает, где сосредоточена основная масса; его ширина — разброс; смещение медианы внутри прямоугольника — скошенность (если медиана прижата к левому краю, распределение вытянуто вправо); длина усов и количество точек — поведение хвостов. Главная сила боксплота — сравнение групп: десять категорий на одном графике сразу показывают, где процесс стабилен, а где нет. Главная слабость — боксплот не показывает двугорбость: распределение с двумя пиками и распределение с одним дадут одинаковую картинку. Поэтому для одной группы предпочтительнее гистограмма, а боксплоты — для сравнения многих.

Пример

Одиннадцать объявлений из выгрузки лога событий получили первый контакт через 1, 2, 2, 3, 3, 4, 4, 5, 6, 8 и 20 часов; ряд уже отсортирован. Медиана — значение в позиции (11 + 1) / 2 = 6, то есть 4 часа. Нижняя половина без медианы — это 1, 2, 2, 3, 3, её середина Q₁ = 2 часа. Верхняя половина — 4, 5, 6, 8, 20, её середина Q₃ = 6 часов. Тогда IQR = 6 − 2 = 4 часа. Границы Тьюки: нижняя 2 − 1,5 × 4 = −4, верхняя 6 + 1,5 × 4 = 12. Объявление с откликом через 20 часов выходит за верхнюю границу и помечается как выброс. Для цели по скорости считаем 90-й перцентиль методом ближайшего ранга: 0,9 × 11 = 9,9, округляем вверх до 10, десятое значение равно 8. В формулировку цели идёт «90% объявлений получают первый контакт не дольше чем за 8 часов». Для сравнения: среднее по этому ряду равно 58 / 11 ≈ 5,3 часа, и оно не описывает ни типичное объявление, ни обязательство.

Частая ошибка

Обещание скорости по среднему вместо перцентиля. В отчёте написано «среднее время до первого контакта 5,3 часа», и продуктовая команда выносит эту цифру в интерфейс как «обычно откликаются за 5 часов». По данным примера выше за 5 часов или быстрее контакт получили 8 объявлений из 11, то есть около 73%: каждый четвёртый продавец ждёт дольше обещанного и считает продукт медленным. Признак ошибки виден сразу — посчитайте, какая доля наблюдений фактически укладывается в обещанный срок. Если это не 90% и не 95%, а примерно 70%, значит в обещание попало среднее. Обязательства всегда формулируйте через перцентиль и всегда называйте его вслух: не «5 часов», а «P90 = 8 часов».

Запомнить
  • Перцентиль считается по позиции в отсортированном ряду и не требует никаких предположений о форме распределения.
  • IQR = Q₃ − Q₁ — устойчивый аналог стандартного отклонения; границы выбросов по Тьюки отстоят от квартилей на 1,5 × IQR.
  • Разные инструменты считают перцентили по разным формулам — фиксируйте метод и не смешивайте источники.
  • Боксплот хорош для сравнения групп, но скрывает двугорбость; для одной группы берите гистограмму.
3.5

Форма распределения: скошенность и тяжёлые хвосты

Форма распределения объясняет, почему привычные метрики начинают врать, и подсказывает, чем их заменить.

Суть

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

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

Практически все продуктовые метрики классифайда скошены вправо, и на то есть структурная причина. У цены объявления, числа просмотров, времени до первого контакта и времени жизни объявления есть жёсткий нижний предел (быстрее нуля отклик не приходит, дешевле нуля объявление не разместят) и нет верхнего. Асимметрия здесь — не аномалия данных, а свойство процесса, и её не нужно «исправлять». Нужно перестать применять инструменты, рассчитанные на симметрию.

Быстрый диагностический признак не требует формул: сравните среднее и медиану. Если среднее заметно больше медианы — распределение вытянуто вправо. Если меньше — влево. Если они близки — распределение примерно симметрично.

Как измерить скошенность

Формальная мера строится на третьей степени отклонений. Куб сохраняет знак: отклонения вправо дают плюс, влево — минус, и они не гасятся, как при обычном суммировании, а взвешиваются по величине. Деление на куб стандартного отклонения делает результат безразмерным.

A = Σ(xᵢ − x̄)³ / (n × σ³)

Ориентиры для чтения: значение около нуля — симметрия; примерно от 0,5 до 1 — умеренная правая скошенность; больше 1 — сильная. Знак важнее точной величины: на выборках меньше сотни значений оценка асимметрии сама по себе очень неустойчива, поэтому в отчёте разумнее опираться на разрыв между средним и медианой.

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

Почему тяжёлые хвосты ломают отчётность

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

Последствия для аналитики три. Во-первых, среднее теряет устойчивость: оно определяется хвостом и скачет от недели к неделе вслед за появлением или отсутствием нескольких дорогих объявлений. Во-вторых, стандартное отклонение перестаёт быть интерпретируемым, а правило «два сигма» даёт границы, не имеющие отношения к реальности. В-третьих, выборочные оценки сходятся медленно: чтобы средняя цена объявления стабилизировалась, нужно кратно больше наблюдений, чем подсказывает привычка.

Что делать с такими данными

Первое — сменить набор метрик. Медиана вместо среднего, перцентили вместо интервала «среднее ± σ», IQR вместо стандартного отклонения. Это самый дешёвый и самый надёжный ход.

Второе — усечённое среднее: отбросить по 5% наблюдений с каждого края и усреднить остаток. Правило усечения нужно зафиксировать и не менять от отчёта к отчёту.

Третье — логарифмирование. Замена x на log(x) сжимает правый хвост и часто делает распределение почти симметричным, потому что многие процессы мультипликативны по природе. Работает только для строго положительных величин, и результат нужно возвращать в исходные единицы перед подачей бизнесу.

Четвёртое — разделить смесь. Часто длинный хвост — это не «редкие значения одной популяции», а вторая популяция: профессиональные продавцы рядом с частниками, объявления о недвижимости и автомобилях в общей выгрузке, платно продвигаемые карточки. Разделив данные на сегменты, вы получаете два распределения приличной формы вместо одного уродливого, и каждое можно описывать обычными средствами.

Пример

Возьмём пять объявлений и число откликов на каждое: 1, 2, 2, 3, 7. Сумма 15, среднее 3. Отклонения: −2, −1, −1, 0, 4. Квадраты: 4, 1, 1, 0, 16, сумма 22, дисперсия 22 / 5 = 4,4, σ = √4,4 ≈ 2,098, σ³ ≈ 9,23. Кубы отклонений: −8, −1, −1, 0, 64, сумма 54, третий момент 54 / 5 = 10,8. Асимметрия A = 10,8 / 9,23 ≈ 1,17 — сильная правая скошенность. Тот же вывод виден без формул: среднее 3 больше медианы 2. Теперь масштаб побольше. Допустим, за сутки в подкатегории опубликовано 100 объявлений: 95 обычных набрали по 300 просмотров, а 5 попавших в подборку на главной — по 5000. Среднее число просмотров равно (95 × 300 + 5 × 5000) / 100 = (28 500 + 25 000) / 100 = 535, медиана — 300. Пять объявлений из ста дают почти половину всех показов: 25 000 из 53 500. Планировать нагрузку или ожидания продавца по среднему в 535 просмотров означает опираться на число, которого нет ни у одного объявления.

Частая ошибка

Вывод «средняя цена объявления выросла» по скошенным данным без проверки медианы. В нашем примере средняя цена в категории за месяц поднялась с 4800 до 5350 рублей, и это подаётся как рост спроса на дорогие товары. На деле медиана осталась на 3000 рублях, а весь прирост дал хвост: на срезе в тысячу объявлений рост среднего на 550 рублей — это 550 000 рублей суммарной цены, столько добавляют, например, десять новых объявлений, каждое из которых дороже медианного примерно на 55 000 рублей. Никакого сдвига в поведении массового продавца не произошло. Проверка занимает одну строку кода: посчитайте медиану и, например, 90-й перцентиль за оба периода. Если медиана стоит на месте, а среднее и P90 растут, изменился хвост, а не типичное объявление, и формулировка в отчёте должна быть именно такой. Дополнительный контроль — доля суммы, которую дают верхние 5% объявлений: если она заметно выросла, вывод о «росте средней цены» вводит в заблуждение.

Запомнить
  • Среднее больше медианы — правая скошенность; это норма для цен, просмотров и времени отклика, у которых есть нижний предел и нет верхнего.
  • Асимметрия считается по кубам отклонений; на малых выборках доверяйте её знаку, а не величине.
  • При тяжёлом хвосте среднее нестабильно от периода к периоду, а правило «два сигма» даёт границы вне реальности.
  • Лечение: медиана и перцентили, усечённое среднее, логарифм или разделение данных на сегменты.
3.6

Корреляция: Пирсон, Спирмен и почему это не причинность

Коэффициент корреляции измеряет согласованность двух величин и не говорит ничего о том, что на что влияет.

Суть

Связь двух величин начинается с ковариации. Для каждого наблюдения берут отклонения от средних по обеим переменным и перемножают их. Если обе величины одновременно выше своих средних или обе ниже, произведение положительно; если одна выше, а другая ниже — отрицательно. Сумма этих произведений показывает, преобладает ли согласованное поведение.

У ковариации та же беда, что у дисперсии: её величина зависит от единиц измерения. Ковариация числа просмотров и цены в рублях изменится в тысячу раз при переходе к ценам в тысячах рублей, хотя связь останется прежней. Решение — поделить на произведение стандартных отклонений обеих величин. Получается безразмерное число, всегда лежащее между −1 и 1: коэффициент корреляции Пирсона.

r = Σ(xᵢ − x̄)(yᵢ − ȳ) / √(Σ(xᵢ − x̄)² × Σ(yᵢ − ȳ)²)

Значение 1 означает точную прямую с положительным наклоном, −1 — с отрицательным, 0 — отсутствие линейной связи. Ключевое слово здесь «линейной»: Пирсон измеряет, насколько хорошо облако точек описывается прямой, и ничего больше. Квадрат коэффициента, r², читается как доля разброса одной переменной, объяснённая линейной связью с другой.

Как это считается

Объявления одной категории сгруппированы по числу фотографий: 1, 2, 3, 4 и 5 фото. Медианное число просмотров за первые сутки в этих группах — 150, 180, 240, 260 и 320. Среднее по числу фото равно 3, среднее по просмотрам равно 1150 / 5 = 230. Отклонения по фото: −2, −1, 0, 1, 2; по просмотрам: −80, −50, 10, 30, 90. Произведения отклонений: 160, 50, 0, 30, 180, их сумма 420. Сумма квадратов по фото: 4 + 1 + 0 + 1 + 4 = 10. Сумма квадратов по просмотрам: 6400 + 2500 + 100 + 900 + 8100 = 18000. Тогда r = 420 / √(10 × 18000) = 420 / √180000 ≈ 420 / 424,3 ≈ 0,99. Связь почти идеально линейная — но помните, что она посчитана по пяти агрегированным точкам: на уровне отдельных объявлений разброс внутри каждой группы несравнимо больше, и корреляция там будет заметно ниже.

Спирмен: корреляция рангов

Когда связь монотонна, но не линейна, Пирсон занижает её силу. Коэффициент Спирмена решает это радикально: значения заменяются на их ранги в упорядоченном ряду, и Пирсон считается уже по рангам. Если рангов-дубликатов нет, есть короткая формула, где dᵢ — разность рангов i-го объекта по двум переменным.

ρ = 1 − 6 × Σdᵢ² / (n × (n² − 1))

Спирмен измеряет монотонность: растёт ли одна величина при росте другой, безразлично, по прямой или по кривой. Он устойчив к выбросам, потому что ранг самого большого значения равен n независимо от того, насколько оно велико. И он применим к порядковым шкалам, где Пирсон неуместен.

Пример контраста. Номер недели с момента запуска новой категории 1, 2, 3, 4, 5 и число активных объявлений в ней в тысячах: 2, 4, 9, 17, 60. Ранги по обеим переменным совпадают полностью, все разности рангов равны нулю, поэтому ρ = 1 − 0 = 1. Пирсон на тех же данных даёт около 0,85: рост есть, но он не линейный, а ускоряющийся, и прямая описывает его посредственно. Правило выбора: линейная связь и примерно симметричные данные без выбросов — Пирсон; монотонная связь, скошенные данные, выбросы или порядковые шкалы — Спирмен.

Почему это не причинность

Корреляция — утверждение о совместном поведении двух колонок таблицы. Причинность — утверждение о том, что произойдёт, если вмешаться и изменить одну из величин. Из первого второе не следует, и причин тому несколько.

Общая причина: обе величины растут вслед за третьей, скрытой. Обратное направление: связь есть, но влияние идёт в другую сторону. Отбор: связь порождена тем, как собраны данные, а не самими процессами. Случайность: при переборе десятков пар метрик несколько высоких корреляций возникнут сами собой. Наконец, эффект агрегации — корреляция, посчитанная по категориям, может иметь другой знак, чем посчитанная по отдельным объявлениям.

Единственный надёжный способ перейти от связи к причине — эксперимент со случайным распределением объектов по группам. Всё остальное — гипотезы.

Пример

Допустим, по 30 городам посчитана корреляция между числом активных объявлений и числом жалоб на объявления: r ≈ 0,8. Вывод «объявления порождают жалобы» абсурден, но формально следует из числа. Скрытая переменная — размер аудитории города: где больше пользователей, там и объявлений больше, и жалоб больше. Проверка: перейти к нормированным величинам — числу жалоб и числу объявлений на тысячу активных пользователей города. Если после нормировки корреляция исчезает, исходная связь объяснялась масштабом города. Второй сюжет: продавцы, которые чаще платно продвигают объявления, получают больше контактов. Направление здесь скорее обратное — продвигают в первую очередь ходовые товары, которые и так собрали бы отклик. Отличить одно от другого можно только экспериментом: случайно выбрать половину продавцов, выдать им продвижение бесплатно и сравнить число контактов в группах.

Частая ошибка

Публикация коэффициента корреляции без взгляда на диаграмму рассеяния. Возьмите пять объявлений: число фотографий x = 1, 2, 3, 4, 20 и число откликов за неделю y = 5, 4, 3, 2, 20. Первые четыре точки связаны строго убывающе, но пятая, объявление профессионального продавца с двумя десятками фото, разворачивает результат: средние равны 6 и 6,8, сумма произведений отклонений равна 226, суммы квадратов равны 250 и 222,8, и r = 226 / √(250 × 222,8) ≈ 0,96. Коэффициент рапортует о сильной прямой связи, которой в основной массе данных нет. Спирмен на тех же данных даёт 0: ранги x равны 1, 2, 3, 4, 5, ранги y — 4, 3, 2, 1, 5, разности рангов −3, −1, 1, 3, 0, сумма их квадратов 20, и ρ = 1 − 6 × 20 / (5 × 24) = 1 − 1 = 0. Правило работы: любой коэффициент корреляции сопровождайте диаграммой рассеяния и считайте оба коэффициента. Сильное расхождение между ними — сигнал выброса или нелинейности, и разбираться нужно до того, как число попадёт в отчёт.

Запомнить
  • Пирсон измеряет только линейную связь и меняется от −1 до 1; r² показывает долю объяснённого разброса.
  • Спирмен работает с рангами: он ловит любую монотонную связь, устойчив к выбросам и применим к порядковым шкалам.
  • Расхождение между Пирсоном и Спирменом почти всегда указывает на выброс или нелинейность — смотрите диаграмму рассеяния.
  • Связь может объясняться общей причиной, обратным влиянием, отбором или случайностью; причинность подтверждает только эксперимент.
Закрепление

Теория без задач не держится

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

Перейти к тренажёру