Генеральная совокупность и выборка: что это и как не перепутать
Генеральная и выборочная совокупность простыми словами: параметр и статистика, способы отбора, объём выборки и погрешность. Пример на SQL: честная выборка против удобной.
Содержание статьи
Продакт-менеджер присылает итоги опроса: «Ответили 400 человек, 62% довольны новым тарифом. Значит, довольны 62% клиентов?» Чтобы ответить, нужно разделить две вещи: людей, о которых вы хотите сделать вывод, и людей, по которым посчитано число. Первое называют генеральной совокупностью, второе — выборкой. Ниже — определения, разница между параметром и статистикой, способы отбора, связь объёма выборки с точностью и проверка на учебной базе SQL-курса: честная выборка попадает рядом с истинной долей, удобная промахивается, даже когда она вдвое больше.
Что такое генеральная совокупность и выборка
Генеральная совокупность — это все объекты, о которых вы хотите сделать вывод: все платящие клиенты сервиса, все сессии за квартал, все заказы, которые пройдут через новый чекаут. Её задаёт вопрос, а не таблица. «Довольны ли клиенты тарифом» и «довольны ли клиенты, купившие тариф в сентябре» — вопросы о двух разных совокупностях.
Выборка, или выборочная совокупность, — это часть генеральной совокупности, которую вы действительно наблюдали и по которой считаете числа. Четыреста ответивших на опрос — выборка. Тысяча сессий, выгруженных для ручного разбора, — тоже выборка.
Статистика нужна ровно на стыке этих двух понятий. По выборке вы получаете число, а вывод хотите сделать о всей совокупности. Насколько такому переносу можно доверять, зависит от двух вещей: как отбирали объекты и сколько их.
- Генеральная совокупность — все, о ком вопрос. Выборка — те, кого вы измерили.
- Число по генеральной совокупности называют параметром, число по выборке — статистикой или оценкой.
- Способ отбора определяет, есть ли у оценки систематический сдвиг. Объём выборки определяет случайный разброс.
- Полная таблица из базы часто остаётся выборкой: из будущих пользователей, из процесса, который порождает данные.
Генеральная совокупность и выборка на примерах из продукта
SaaS-сервис с 6 000 платящих клиентов разослал опрос о новом тарифе. Генеральная совокупность — 6 000 клиентов. Выборка — 400 человек, которые открыли письмо и ответили. Эти 400 отобрались не случайно: письма чаще открывают активные пользователи, а отвечают те, у кого есть сильное мнение. Поэтому 62% довольных — оценка по конкретной группе, а не по всем клиентам.
Второй пример — логи. Сервис пишет подробную трассировку для одной сессии из ста, чтобы не хранить терабайты. Генеральная совокупность — все сессии, выборка — сессии с трассировкой. Если отбор идёт по хэшу идентификатора сессии, он близок к случайному, и среднее время загрузки по выборке хорошо переносится на все сессии. Если же трассировка включается только у внутренних сотрудников, выборка рассказывает о быстрой офисной сети, а не о пользователях с мобильным интернетом.
Третий пример — ручная разметка. Команда поддержки прочитала 300 обращений и нашла, что 18% из них про оплату. Вопрос тот же: какие 300? Последние по времени, случайные из квартала или те, что попали к одному оператору? От ответа зависит, можно ли умножать 18% на всё число обращений.
Параметр и статистика: чем μ отличается от x̄
Параметр — это истинное значение в генеральной совокупности: средний чек всех клиентов, доля мобильных среди всех пользователей. Обычно он неизвестен, и его обозначают греческими буквами. Статистика — то же самое, посчитанное по выборке; её обозначают латинскими буквами или ставят «крышку» над символом параметра.
Параметр — одно фиксированное число. Статистика меняется от выборки к выборке: возьмите другие 400 ответов, и доля довольных станет не 62%, а, скажем, 59% или 65%. Этот разброс и описывают стандартная ошибка и доверительный интервал.
| Что измеряем | Параметр совокупности | Статистика по выборке |
|---|---|---|
| Среднее | μ (мю) | x̄ (икс с чертой) |
| Доля | p | p̂ (пэ с крышкой) |
| Стандартное отклонение | σ (сигма) | s |
| Дисперсия | σ² | s² |
| Размер | N | n |
| Корреляция | ρ (ро) | r |
Если в таблице все пользователи, это уже генеральная совокупность?
Частое возражение аналитика: «У нас нет выборки, в базе все 4 613 пользователей, никаких интервалов не нужно». Иногда это верно. Если вопрос звучит как «сколько выручки мы получили в августе», таблица оплат за август и есть генеральная совокупность. Число точное, доверительный интервал к нему не нужен, нужна только проверка качества данных.
Но чаще вопрос шире таблицы. «Мобильные пользователи платят реже» — это утверждение не про 4 613 человек, которые уже зарегистрировались, а про тех, кто придёт завтра. Сегодняшняя база — выборка из потока будущих пользователей. Тот же канал, тот же продукт, но другие люди, и разница между сегментами может оказаться случайной.
Второй взгляд — через процесс. Даже если вопрос строго про текущих пользователей, их поведение за месяц — один из возможных исходов. Повторите тот же месяц с теми же людьми, и конверсия немного сдвинется: кто-то заболел, у кого-то закончился бюджет. Статистические выводы об «эффекте» касаются механизма, который порождает данные, а не конкретных строк.
Самый наглядный случай — A/B-тест. В эксперимент попали все, кто зашёл на сайт за две недели. Решение о выкатке касается трафика следующих месяцев, поэтому участники теста — выборка из будущих посетителей. Отсюда p-value и интервалы, даже если «в тесте были все».
Спросите себя, о ком будет решение. Если только о тех строках, что уже лежат в таблице, и только о прошлом периоде — у вас генеральная совокупность. Если о будущих пользователях, другом периоде или «эффекте» изменения — перед вами выборка.
Какие бывают способы отбора выборки
Отбор бывает вероятностным и невероятностным. В вероятностном у каждого объекта совокупности есть известный ненулевой шанс попасть в выборку, и именно для такого отбора работают формулы погрешности. Невероятностный отбор — «кого удалось достать» — формулы тоже посчитают, но число не будет значить то, что вы думаете.
| Способ | Как устроен | Пример в продукте | Главный риск |
|---|---|---|---|
| Простой случайный | Каждый объект попадает с одинаковой вероятностью | 500 случайных клиентов из CRM для интервью | Малые сегменты могут почти не попасть |
| Стратифицированный | Совокупность делят на группы и отбирают из каждой | По 100 клиентов из каждого тарифа | Нужно взвешивать, если доли групп в выборке не как в базе |
| Кластерный | Отбирают целые группы, внутри берут всех | 20 компаний-клиентов, опрашивают всех их сотрудников | Люди внутри кластера похожи, реальная точность ниже, чем по числу анкет |
| Систематический | Каждый k-й объект по списку | user_id % 10 = 3 — каждый десятый пользователь | Скрытая периодичность в идентификаторах или порядке списка |
| Удобный (convenience) | Кто доступен, тот и в выборке | Опрос в интерфейсе, который видят только активные | Сдвиг, который не уменьшается с ростом выборки |
Как объём выборки связан с точностью
Случайный разброс оценки описывает стандартная ошибка. Для среднего она равна стандартному отклонению, делённому на корень из объёма выборки. Для доли вместо σ стоит √(p(1 − p)). Умножив стандартную ошибку на 1,96, получаем половину ширины 95%-го интервала — ту самую погрешность «±3%», которую пишут под результатами опросов.
Корень в знаменателе означает, что точность растёт медленно. Чтобы сократить погрешность вдвое, выборку нужно увеличить вчетверо. Переход от 100 до 400 ответов даёт больше, чем переход от 1 000 до 2 500.
Таблица ниже посчитана для p = 0,5 — это худший случай, при котором погрешность доли максимальна. Если ожидаемая доля около 10% или 90%, погрешность будет меньше.
SE(x̄) = σ / √n погрешность доли = ±1,96 · √(p(1 − p) / n)Формулы описывают только случайный разброс. Систематический сдвиг от плохого отбора в них не входит.
| Объём выборки n | Стандартная ошибка | Погрешность, п.п. |
|---|---|---|
| 100 | 0,0500 | ±9,80 |
| 400 | 0,0250 | ±4,90 |
| 1 000 | 0,0158 | ±3,10 |
| 2 500 | 0,0100 | ±1,96 |
Рост выборки в 4 раза (100 → 400) сокращает погрешность вдвое.
Проверка на учебной базе: честная выборка против удобной
Возьмём таблицу users учебной базы SQL-курса и назначим её генеральной совокупностью: 4 613 пользователей, из них 2 229 зашли с мобильного устройства. Истинная доля мобильных известна точно — 48,32%. Теперь сделаем вид, что мы её не знаем, и оценим по выборкам.
Первая выборка систематическая: каждый десятый пользователь по условию user_id % 10 = 3. В неё попали 462 человека, мобильных среди них 46,10%. Промах 2,2 п.п. при погрешности ±4,6 п.п. для такого объёма — в пределах случайного разброса.
Вторая выборка удобная: только те, кто хотя бы раз платил. Представьте опрос, который показывают на странице счёта. Людей вдвое больше — 912, а мобильных 43,86%. Промах 4,5 п.п., хотя для 912 человек случайная погрешность всего ±3,2 п.п. Больший объём не спас: платящие по составу устройств отличаются от остальных.
Третья — ещё хуже: опрос разослали только пользователям из рекламного канала paid_search. 1 015 человек, мобильных 66,01%. Оценка уехала на 17,7 п.п. Никакой рост числа ответов из этого же канала её не исправит.
| Выборка | n | Доля мобильных | Промах |
|---|---|---|---|
| Все пользователи (параметр) | 4 613 | 48,32% | — |
| Каждый десятый, user_id % 10 = 3 | 462 | 46,10% | −2,22 п.п. |
| Только платившие | 912 | 43,86% | −4,46 п.п. |
| Только paid_search | 1 015 | 66,01% | +17,69 п.п. |
select 'Все пользователи' as sample, count(*) as n,
round(100.0 * avg(case when device = 'mobile' then 1 else 0 end), 2) as mobile_pct
from users
union all
select 'Каждый десятый: user_id % 10 = 3', count(*),
round(100.0 * avg(case when device = 'mobile' then 1 else 0 end), 2)
from users
where user_id % 10 = 3
union all
select 'Только платившие', count(*),
round(100.0 * avg(case when device = 'mobile' then 1 else 0 end), 2)
from users
where user_id in (select user_id from payments)
union all
select 'Только paid_search', count(*),
round(100.0 * avg(case when device = 'mobile' then 1 else 0 end), 2)
from users
where channel = 'paid_search';Почему одна выборка может промахнуться, а десять — нет
Условие user_id % 10 делит базу на десять непересекающихся выборок примерно по 461 человеку. Посчитаем долю мобильных в каждой. Значения разбросаны от 42,95% до 54,23%: так выглядит случайный разброс статистики вокруг параметра.
Коридор ±4,56 п.п. вокруг истинных 48,32% — от 43,76% до 52,88%. В него попали восемь выборок из десяти. Ожидали бы около девяти с половиной, но для десяти попыток вылет двух — не редкость. Среднее десяти оценок — 48,32%, ровно параметр: вместе выборки составляют всю совокупность.
Отсюда главное различие двух видов ошибки. Случайная ошибка колеблется в обе стороны и в среднем гасится. Систематическая, как у выборки платящих, сдвигает оценку в одну сторону при любом повторении.
Учебная база SQL-курса, 4 613 пользователей. Коридор случайного разброса при n = 461 — от 43,76% до 52,88%; за его пределами выборки 5 и 9.
select user_id % 10 as sample_no,
count(*) as n,
round(100.0 * avg(case when device = 'mobile' then 1 else 0 end), 2) as mobile_pct
from users
group by sample_no
order by sample_no;Когда нужна поправка на конечную совокупность
Формула погрешности выше предполагает, что совокупность бесконечна или хотя бы намного больше выборки. Когда вы отбираете заметную её часть — на практике больше 5%, — выборка без возвращения несёт больше информации, и интервал можно сузить. Множитель поправки равен √((N − n) / (N − 1)). В нашем примере выборка составляет 10% базы: множитель 0,9487, и интервал для выборки 3 сужается с 41,56–50,65% до 41,79–50,42%. Если опросить всех N, множитель станет нулём: погрешности нет, остаётся только вопрос о том, правильно ли вы определили совокупность. Для A/B-тестов и выводов о будущем трафике поправку не применяют: совокупность там по смыслу не ограничена.
import math
# Погрешность доли при p = 0,5 и уровне доверия 95%
p = 0.5
for n in (100, 400, 1000, 2500):
se = math.sqrt(p * (1 - p) / n)
print(f"n = {n:>5}: SE = {se:.4f}, погрешность ±{1.96 * se * 100:.2f} п.п.")
# Учебная база: 4613 пользователей, 2229 на мобильных
N, K = 4613, 2229
p_true = K / N
n, k = 462, 213 # выборка user_id % 10 = 3
p_hat = k / n
se = math.sqrt(p_hat * (1 - p_hat) / n)
fpc = math.sqrt((N - n) / (N - 1))
print(f"\nДоля в генеральной совокупности: {p_true:.4f}")
print(f"Доля в выборке: {p_hat:.4f}, ошибка оценки {100 * (p_hat - p_true):+.2f} п.п.")
print(f"95% интервал без поправки: {100 * (p_hat - 1.96 * se):.2f}–{100 * (p_hat + 1.96 * se):.2f}%")
print(f"Поправка на конечную совокупность: {fpc:.4f}")
print(f"95% интервал с поправкой: {100 * (p_hat - 1.96 * se * fpc):.2f}–{100 * (p_hat + 1.96 * se * fpc):.2f}%")
# n = 100: SE = 0.0500, погрешность ±9.80 п.п.
# n = 400: SE = 0.0250, погрешность ±4.90 п.п.
# n = 1000: SE = 0.0158, погрешность ±3.10 п.п.
# n = 2500: SE = 0.0100, погрешность ±1.96 п.п.
# Доля в генеральной совокупности: 0.4832
# Доля в выборке: 0.4610, ошибка оценки -2.22 п.п.
# 95% интервал без поправки: 41.56–50.65%
# Поправка на конечную совокупность: 0.9487
# 95% интервал с поправкой: 41.79–50.42%Какие ошибки встречаются чаще всего
Первая — не назвать генеральную совокупность вслух. «Конверсия 4%» без уточнения «среди новых пользователей из органики за сентябрь» допускает любое прочтение, и читатель выберет самое широкое.
Вторая — лечить плохой отбор объёмом. Если опрос видят только активные, миллион ответов даст очень узкий интервал вокруг неправильного числа. Узкий интервал создаёт ложную уверенность.
Третья — считать интервал для числа, у которого его нет. Выручка за закрытый месяц по полной таблице оплат — не оценка. А вот прогноз или сравнение сегментов «вообще» — оценка, и без интервала она выглядит точнее, чем есть.
Четвёртая — выбирать выборку глазами. «Возьмём первые 500 строк» часто означает «самых ранних пользователей». В учебной базе user_id выдаются по порядку регистрации: первые 500 строк — люди, пришедшие с 1 по 16 июня, и мобильных среди них 45,60% против 48,32% в целом. Сортировка по времени — тоже механизм отбора.
Что почитать дальше и где потренироваться
Следующий шаг — выяснить, похожа ли ваша выборка на совокупность и что делать, если нет. Об этом отдельный материал про репрезентативность. Посчитать нужный объём и интервал для своей доли помогут калькуляторы, а повторить запросы из статьи можно в песочнице SQL-курса.
Материалы по теме
Статистика для аналитика с нуля: разброс, перцентили, форма данных и выборка
Что из статистики нужно в рабочий день: как читать разброс и стандартное отклонение, зачем p90 и p99, почему продуктовые данные почти никогда не нормальные и чем выборочная ошибка отличается от смещения.

Закон больших чисел простыми словами: формулировка и примеры
Закон больших чисел: почему среднее и доля стабилизируются с ростом выборки. Пример с монетой, накопленная конверсия A/B-теста в SQL, слабая и сильная форма, ошибка игрока и когда закон работает медленно.

Дисперсия и стандартное отклонение: что это и как посчитать
Дисперсия — средний квадрат отклонения от среднего, стандартное отклонение — корень из неё. Формулы, пример на пяти числах, почему делят на n − 1, расчёт в SQL, Excel и Python, типичные ошибки.