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

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

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

Два больших семейства

Любую переменную (столбец таблицы) можно отнести к одному из двух семейств.

  • Количественные (числовые) — измеряют «сколько»: рост, цена, число кликов, температура. С ними осмысленна арифметика.
    • Дискретные — считаются целыми (число детей, заказов, ошибок).
    • Непрерывные — могут принимать любое значение в диапазоне (рост 178.4 см, время 3.27 c).
  • Категориальные (качественные) — обозначают «какой»: цвет, город, пол, тип устройства. Это метки, а не количества.

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

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

ШкалаПримерЧто можно
Номинальнаягород, цвет, брендтолько считать частоты, искать моду
Порядковаяоценка «плохо/норм/отлично», уровень образованияупорядочивать, брать медиану
Интервальнаятемпература в °C, годскладывать разности; нет «настоящего нуля»
Относительнаярост, цена, вес, времявсё, включая отношения «в 2 раза больше»

Ключевой нюанс интервальной шкалы: 20 °C — это не «в два раза теплее», чем 10 °C, потому что ноль в Цельсии условный. А вот товар за 200 рублей действительно вдвое дороже товара за 100 — у цены есть настоящий ноль, это относительная шкала.

Почему это важно на практике

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

from collections import Counter
from statistics import mean, median

# Категориальные данные: любимый цвет
colors = ["red", "blue", "blue", "green", "blue", "red"]
print("Частоты:", Counter(colors))
print("Самый частый (мода):", Counter(colors).most_common(1)[0][0])

# Количественные данные: оценки за тест
scores = [3, 5, 4, 5, 2, 4, 5]
print("Среднее по оценкам:", round(mean(scores), 2))
print("Медиана оценок:", median(scores))

Вывод:

Частоты: Counter({'blue': 3, 'red': 2, 'green': 1})
Самый частый (мода): blue
Среднее по оценкам: 4
Медиана оценок: 4

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

Осторожно: числа, которые на самом деле категории

Частая ошибка новичка — увидеть в столбце числа и сразу считать среднее. Но почтовый индекс, ID пользователя, номер маршрута автобуса — это числа-метки. «Средний почтовый индекс» бессмыслен. Прежде чем считать, спросите себя: осмысленна ли над этими числами арифметика?

from statistics import mean

# Это числа, но это КАТЕГОРИИ (коды городов)
city_codes = [495, 812, 495, 343, 812]
print("Среднее кода (бессмыслица):", mean(city_codes))

# Правильно — частоты
from collections import Counter
print("Частоты кодов:", dict(Counter(city_codes)))

Вывод:

Среднее кода (бессмыслица): 591.4
Частоты кодов: {495: 2, 812: 2, 343: 1}

Python честно посчитал среднее, но «средний телефонный код 591.4» не существует. Машина не отличает метку от количества — это работа аналитика.

Итог

  • Данные бывают количественные (сколько) и категориальные (какой).
  • Четыре шкалы — номинальная, порядковая, интервальная, относительная — задают, какие операции законны.
  • Для категорий считают частоты и моду, для количественных — среднее, медиану и т.д.
  • Числа-метки (индексы, ID, коды) — это категории; среднее по ним бессмысленно.
Проверьте себя
1. К какому типу относится переменная «любимый цвет»?
AКоличественная непрерывная
BКоличественная дискретная
CКатегориальная (номинальная)
DПорядковая
2. Почему 20 °C нельзя назвать «вдвое теплее», чем 10 °C?
AПотому что температуру нельзя измерить точно
BПотому что у шкалы Цельсия условный, а не настоящий ноль (это интервальная шкала)
CПотому что это категориальные данные
DПотому что 20 не делится на 10 без остатка
3. Что не так с вычислением среднего по столбцу с телефонными кодами городов?
AНичего, среднее посчитано верно и полезно
BКоды — это числа-метки (категории), арифметика над ними бессмысленна
CНужно было использовать медиану вместо среднего
DСреднее нельзя считать для целых чисел
Поддержать проект