Статистика и данные: типы данных и описательная статистика

Статистика и данные: типы данных и описательная статистика Полезное

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

Сразу развести три близких понятия, которые часто путают:

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

Качественные и количественные данные

Первое деление — по природе значения.

Количественные данные выражены числами, с которыми осмысленна арифметика: рост, вес, число платежей по карте. Их делят на два вида:

  • дискретные — результат счета, значения отдельные и неделимы по смыслу (число детей, количество заказов). Между 2 и 3 заказами нет 2.5;
  • непрерывные — результат измерения по шкале, допускают дробные значения (рост 178.4 см, температура 36.6). Ограничены только точностью прибора.

Качественные данные (их называют категориальными) описывают свойство, а не количество: цвет, город, семейное положение. Арифметика над ними бессмысленна — нельзя сложить «Москву» и «Казань». Частный случай — бинарные: ровно два значения (да/нет, 1/0), удобны в машинном обучении как метка класса.

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

Шкалы измерения

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

Шкала Тип данных Что осмысленно Пример Меры центра
Номинальная качественная равно / не равно пол, город, цвет мода
Порядковая качественная плюс порядок (больше/меньше) оценка «плохо-отлично», класс отеля мода, медиана
Интервальная количественная плюс разности значений температура по Цельсию, год плюс среднее (но не отношения)
Относительная количественная плюс отношения, есть абсолютный ноль рост, вес, зарплата, время все меры

Разница интервальной и относительной шкалы — в нуле. У Цельсия ноль условный, поэтому «20 градусов вдвое теплее 10» неверно. У роста ноль абсолютный, и «2 метра вдвое выше метра» корректно. Это упрощенная модель: на практике шкалу иногда выбирают под задачу, а не жестко по признаку.

Описательная статистика: меры центра

Описательная статистика сводит набор чисел к нескольким показателям. Первая группа — меры центра, «типичного» значения.

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

Посчитаем на маленьком примере руками. Зарплаты команды из 6 человек (тыс. руб): 60, 65, 70, 70, 75, 300.

  • сумма = 640, среднее = 640 / 6 = 106.7 (округленно);
  • ряд уже упорядочен, число значений четное, медиана = среднее двух центральных = (70 + 70) / 2 = 70;
  • мода = 70 (встречается дважды).

Тот же расчет в Python модулем statistics:

import statistics as st

zarplaty = [60, 65, 70, 70, 75, 300]  # тыс. руб, 6 человек

print(st.mean(zarplaty))    # 106.66666666666667
print(st.median(zarplaty))  # 70.0
print(st.mode(zarplaty))    # 70

Среднее 106.7 больше пяти зарплат из шести — оно «поехало» из-за одного большого значения 300. Медиана 70 описывает типичного сотрудника честнее.

Когда среднее обманывает

Среднее чувствительно к выбросам — редким значениям, далеким от основной массы. Один топ-менеджер с зарплатой 300 сдвигает среднее так, что «средняя зарплата» перестает описывать хоть кого-то из команды.

Правило простое: если в данных есть выбросы или распределение скошенное (доходы, цены, время ответа сервера), в качестве типичного значения берут медиану, а не среднее. Медиана к одиночным выбросам устойчива: замените 300 на 3000 — медиана останется 70.

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

Меры разброса

Центр не говорит, насколько значения раскиданы. Для этого — меры разброса.

  • Размах — разность максимума и минимума. Прост, но целиком зависит от двух крайних точек.
  • Дисперсия — средний квадрат отклонения от среднего.
  • Стандартное отклонение (СКО) — корень из дисперсии; в тех же единицах, что и данные, поэтому читается легче дисперсии.
  • Межквартильный размах (IQR) — ширина средних 50% данных, устойчив к выбросам.

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

Пример руками, набор: 2, 4, 4, 4, 5, 5, 7, 9.

  • среднее = 40 / 8 = 5;
  • отклонения от среднего: -3, -1, -1, -1, 0, 0, 2, 4;
  • квадраты отклонений: 9, 1, 1, 1, 0, 0, 4, 16; сумма = 32;
  • дисперсия популяции = 32 / 8 = 4, СКО = 2;
  • дисперсия выборки = 32 / 7 = 4.57 (округленно), СКО = 2.14.
import statistics as st

data = [2, 4, 4, 4, 5, 5, 7, 9]

print(st.pvariance(data))  # 4                   делитель n (популяция)
print(st.pstdev(data))     # 2.0
print(st.variance(data))   # 4.571428571428571   делитель n-1 (выборка)
print(st.stdev(data))      # 2.138089935299395

Квартили и межквартильный размах

Квартили делят упорядоченный ряд на четверти: Q1 отсекает нижние 25%, Q2 — это медиана, Q3 отсекает нижние 75%. Межквартильный размах IQR = Q3 — Q1.

import numpy as np

data = np.array([1, 3, 5, 7, 9, 11, 13])

print(np.median(data))          # 7.0
print(np.percentile(data, 25))  # 4.0    Q1 (метод linear)
print(np.percentile(data, 75))  # 10.0   Q3
print(np.percentile(data, 75) - np.percentile(data, 25))  # 6.0  IQR

Важная оговорка: конкретное число Q1/Q3 зависит от метода интерполяции. numpy по умолчанию использует линейную интерполяцию и дает Q1 = 4.0; «ручные» школьные методы (например, метод Тьюки) на этом же ряду дадут Q1 = 3. Поэтому при сравнении результатов из разных инструментов сверяйте, каким методом они получены.

IQR — основа быстрого поиска выбросов: часто выбросами считают точки ниже Q1 — 1.5 * IQR или выше Q3 + 1.5 * IQR.

Немного о распределениях

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

Именно для нормального распределения работает правило «68-95-99.7»: около 68% значений лежат в пределах одного СКО от среднего, 95% — двух, 99.7% — трех. Это свойство конкретно нормального распределения, а не любых данных: у скошенных распределений (доходы, время ответа сервера) доли будут другими. Проверять форму данных перед применением правила обязательно — для этого строят гистограмму.

Выводы

  • Тип данных и шкала измерения определяют, какие статистики и операции законны; считать среднее по номерам категорий — ошибка.
  • Меры центра — среднее, медиана, мода; меры разброса — размах, дисперсия, СКО и IQR.
  • При выбросах и скошенных данных типичное значение честнее описывает медиана, а не среднее.
  • Дисперсию по всей популяции делят на n, по выборке — на n — 1 (поправка Бесселя).
  • Правило «68-95-99.7» — свойство нормального распределения, а не любого набора данных.

Где применяется / связь с практикой

Описательная статистика — первый шаг любого разбора данных: прежде чем строить модель или дашборд, аналитик считает средние, медианы и разброс, чтобы понять форму данных и заметить выбросы. Дальше те же понятия лежат в основе A/B-тестов, отчетности и метрик продукта. На практике эти расчеты закрывают связкой pandas плюс numpy, а результаты сводят в таблицы и графики.

Освойте тему на практике

Разложить теорию по реальным датасетам и довести навык до рабочих задач помогает курс Аналитик данных: там статистику отрабатывают на проектах с обратной связью от практикующих аналитиков. Посмотреть формат и темы вживую можно на открытых уроках Otus — это бесплатные вебинары с разбором конкретных задач.

FAQ

Чем описательная статистика отличается от инференциальной?
Описательная только суммирует уже собранную выборку (среднее, разброс, графики). Инференциальная переносит выводы с выборки на всю популяцию и оценивает неопределенность — через проверку гипотез и доверительные интервалы.

Можно ли считать среднее по оценкам от 1 до 5?
Формально это порядковая шкала, интервалы между «удовлетворительно» и «хорошо» не обязаны быть равны, поэтому строго среднее не определено. На практике его считают, но осторожно; медиана и мода для таких данных корректнее.

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

OTUS Журнал