Короткий ответ
Деление на (n−1) — это поправка Бесселя, которая компенсирует то, что выборочное среднее само посчитано по этим же данным и немного «притягивает» отклонения, из-за чего дисперсия, посчитанная с делением на n, в среднем занижает истинную дисперсию генеральной совокупности.
Как это работает подробнее
когда мы считаем отклонения от выборочного среднего (а не от истинного среднего совокупности, которое обычно неизвестно), сумма квадратов отклонений оказывается немного меньше, чем была бы от истинного среднего; деление на (n−1) вместо n даёт несмещённую оценку дисперсии совокупности. Поправка Бесселя — пример общего принципа в статистике: оценки, построенные по самим данным, требуют корректировки для несмещённости.
Пример кода
Пример на Python
import numpy as np
import pandas as pd
data = [2, 4, 4, 4, 5, 5, 7, 9]
print(np.std(data)) # ddof=0 по умолчанию — смещённая оценка
print(np.std(data, ddof=1)) # несмещённая, как в выборочной статистике
print(pd.Series(data).std()) # pandas по умолчанию ddof=1Что использовать на практике
- На практике: большинство статистических библиотек по умолчанию используют (n−1) — например,
pandas.Series.std()иnumpy.std(ddof=1), тогда какnumpy.std()по умолчанию делит на n (ddof=0), что может привести к расхождению результатов между pandas и «сырым» numpy, если не обратить на это внимание. На больших выборках (сотни и тысячи наблюдений) разница между n и n-1 становится практически незаметной, поэтому выбор особенно важен именно для малых выборок. - Проверка: значения
np.std(data, ddof=1)иpd.Series(data).std()должны совпасть, аnp.std(data)будет немного меньше.
Подводные камни
- Частые ошибки: не замечать разницы
ddofмежду numpy и pandas и удивляться расхождению чисел; использовать деление на n для малых выборок, где разница с (n−1) заметна; путать смысл поправки с «n−1, потому что так положено», не понимая, что она про смещённость оценки. Ещё одна ошибка — использовать разные функции (ddof=0 и ddof=1) в одном отчёте для разных метрик без согласования, из-за чего числа становятся несопоставимыми между собой.