Зачем статистика в анализе данных

Статистика превращает сырые числа в выводы, которым можно доверять и на которых можно строить решения.

Статистика — наука о том, как собирать, описывать и интерпретировать данные, чтобы делать обоснованные выводы в условиях неопределённости.

Данные сами по себе ничего не говорят

Представьте таблицу с десятью тысячами строк: время на сайте, суммы заказов, оценки. Глазами это не охватить. Статистика даёт инструменты, чтобы сжать массив данных до нескольких чисел («в среднем заказ 1500 рублей, половина клиентов тратит меньше 900») и при этом не соврать. Аналитик без статистики — это человек, который смотрит на огромную таблицу и говорит «ну, вроде нормально».

Две большие части статистики

Весь курс крутится вокруг двух задач, и важно с самого начала их различать.

  • Описательная статистика — описывает данные, которые у вас уже есть. Среднее, медиана, разброс, графики. Вы ничего не предполагаете за пределами выборки, просто аккуратно её резюмируете.
  • Индуктивная (статистический вывод) — переносит выводы с маленькой выборки на всю генеральную совокупность. «Мы опросили 1000 человек — что можно сказать обо всех миллионах?» Здесь появляются вероятность, доверительные интервалы и проверка гипотез.

Почему одно число обманывает

Классическая ловушка — судить о данных по одному только среднему. Посмотрите на две команды с одинаковой средней зарплатой.

from statistics import mean

# Зарплаты в двух отделах (тыс. руб.)
a = [80, 82, 78, 81, 79]          # ровные зарплаты
b = [20, 25, 30, 45, 280]         # один директор и стажёры

print("Среднее A:", mean(a))
print("Среднее B:", mean(b))
print("Минимум и максимум B:", min(b), max(b))

Вывод:

Среднее A: 80
Среднее B: 80
Минимум и максимум B: 20 280

Средняя зарплата одинаковая — 80 тысяч. Но в отделе A все получают примерно одинаково, а в отделе B почти все живут на 20–45 тысяч, а среднее тянет вверх единственный директор с 280. Одно число «среднее» здесь прямо вводит в заблуждение. Поэтому хороший аналитик всегда смотрит на центр и на разброс — этому посвящены первые два раздела курса.

Где это нужно на практике

Статистика — повседневный инструмент аналитика, а не академическая теория:

  • оценить, выросла ли конверсия после изменения, или это случайные колебания;
  • понять, есть ли связь между рекламным бюджетом и продажами;
  • по опросу 1000 клиентов оценить настроение всей базы и честно сказать, насколько оценка точна;
  • отловить аномалии и подозрительные выбросы в данных.

Что нам понадобится из Python

Весь курс мы считаем на стандартной библиотеке. Главный герой — модуль statistics: он входит в Python, ничего ставить не нужно.

import statistics

data = [4, 8, 15, 16, 23, 42]
print("Среднее:", statistics.mean(data))
print("Медиана:", statistics.median(data))
print("Стандартное отклонение:", round(statistics.stdev(data), 2))

Вывод:

Среднее: 18
Медиана: 15.5
Стандартное отклонение: 13.49

Если вы понимаете, что означает каждое из этих чисел и когда оно врёт, — вы уже умеете больше, чем большинство людей, рисующих графики. Поехали.

Итог

  • Статистика сжимает данные до интерпретируемых чисел, не теряя смысла.
  • Описательная статистика описывает имеющуюся выборку; индуктивная переносит выводы на всю совокупность.
  • Одно число (особенно среднее) без меры разброса легко вводит в заблуждение.
  • Для расчётов хватает стандартного модуля statistics.
Проверьте себя
1. Чем описательная статистика отличается от индуктивной?
AОписательная работает только с числами, индуктивная — только с текстом
BОписательная резюмирует имеющуюся выборку, индуктивная переносит выводы на всю совокупность
CЭто два названия одного и того же
DИндуктивная не использует вероятность
2. Почему в примере с зарплатами одинаковое среднее вводит в заблуждение?
AСреднее посчитано неверно
BВ отделе B есть выброс (280), который тянет среднее вверх, хотя почти все получают мало
CМедиана всегда лучше среднего
DВ отделе A слишком мало людей
3. Какой модуль стандартной библиотеки Python мы используем для базовых статистических расчётов?
Anumpy
Bpandas
Cstatistics
Dmath
Поддержать проект