Квартет Энскомба: почему нельзя верить одной статистике
Четыре набора данных с идентичной статистикой выглядят на графике совершенно по-разному.
Квартет Энскомба (1973) — четыре набора по 11 точек с почти одинаковыми средними, дисперсиями и коэффициентом корреляции, но радикально разной структурой, видимой только на графике.
Суть демонстрации
Статистик Фрэнсис Энскомб придумал четыре датасета специально, чтобы показать: сводные числа лгут. У всех четырёх среднее по X равно 9, по Y — примерно 7,5, дисперсии совпадают, линия регрессии одна и та же ($y \approx 3 + 0{,}5x$), коэффициент корреляции $r \approx 0{,}816$. По таблице чисел они неотличимы. Но стоит нарисовать — и видно: первый набор это честная линейная зависимость с шумом, второй — чистая парабола (линейная модель тут вообще неуместна), третий — идеальная прямая с одним выбросом, четвёртый — вертикальный столб точек плюс одна точка, которая в одиночку создаёт всю «корреляцию».
Считаем статистику сами
Убедимся, что сводные числа действительно совпадают. Возьмём наборы I и II и посчитаем среднее, дисперсию и корреляцию на чистом Python.
import statistics as st
x = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5]
y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]
def corr(a, b):
ma, mb = st.mean(a), st.mean(b)
cov = sum((ai-ma)*(bi-mb) for ai, bi in zip(a, b))
da = sum((ai-ma)**2 for ai in a) ** 0.5
db = sum((bi-mb)**2 for bi in b) ** 0.5
return cov / (da * db)
for name, y in (("I", y1), ("II", y2)):
print(name, "mean_y=", round(st.mean(y), 2),
"var_y=", round(st.pvariance(y), 2),
"r=", round(corr(x, y), 3))Вывод:
I mean_y= 7.5 var_y= 3.75 r= 0.816 II mean_y= 7.5 var_y= 3.75 r= 0.816
Числа идентичны до третьего знака. А теперь — как эти же данные выглядят на графике.
Как они выглядят на графике
Грубый ASCII-набросок наборов I и II (по горизонтали X от 4 до 14):
Набор I (линейная связь + шум) Набор II (парабола!) y y 11| o 11| 9| o o 9| o o o 7| o o o 7| o o 5| o o 5| o o 3|________________ x 3|_o_________________ x 4 7 10 13 4 7 10 13
Линейная регрессия проводит одну и ту же прямую через оба облака, но во втором случае это бессмыслица: данные явно изогнуты, и линейная модель систематически ошибается. Никакое сводное число этого не покажет — только глаз на графике.
Как работает под капотом
Средние, дисперсии и корреляция — это моменты распределения низкого порядка. Они сжимают данные до нескольких чисел и при этом теряют всю информацию о форме. Бесконечно много разных распределений имеют одинаковые первые два момента. График же сохраняет каждую точку — поэтому он видит то, чего не видит статистика: кривизну, выбросы, кластеры, гетероскедастичность.
Datasaurus и современное продолжение
В 2017 году Джастин Матейка и Джордж Фицморис довели идею Энскомба до абсурдного совершенства. Они построили «датазаврик» — облако точек в форме динозавра — и затем с помощью оптимизации породили дюжину совершенно разных фигур (звезда, круг, линии, крест), у всех из которых средние по X и Y, дисперсии и корреляция совпадают до второго знака. Анимация перехода от динозавра к звезде, в которой статистика не меняется ни на шаг, — самый убедительный аргумент в пользу графиков, который когда-либо был снят.
Практический вывод выходит за рамки красивого фокуса. В реальном анализе данных квартет Энскомба напоминает: прежде чем считать коэффициент корреляции, посмотрите на диаграмму рассеяния. Прежде чем подгонять линейную модель, постройте график остатков. Любое сводное число — это ответ на конкретный вопрос о данных, и если вопрос задан неверно (например, «линейна ли связь?» для параболы), ответ будет уверенным и ложным.
Частые ошибки
- Считать $r$ и сразу делать вывод о линейной связи — высокий $r$ бывает у нелинейных данных и у данных с одним выбросом.
- Подгонять модель, не посмотрев на остатки графически — набор II с параболой проходит все «линейные» тесты.
- Доверять средним без разброса и без картинки — современная версия квартета, «датазаврик» (Datasaurus), даёт одинаковую статистику для облака в форме динозавра, звезды и круга.
Итог
- Одинаковые сводные числа не означают одинаковых данных.
- Всегда рисуйте данные перед тем, как подбирать модель.
- Моменты низкого порядка теряют форму; график её сохраняет.
- Квартет Энскомба — обязательный аргумент в пользу визуализации.