Квартет Энскомба: почему нельзя верить одной статистике

Четыре набора данных с идентичной статистикой выглядят на графике совершенно по-разному.

Квартет Энскомба (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), даёт одинаковую статистику для облака в форме динозавра, звезды и круга.

Итог

  • Одинаковые сводные числа не означают одинаковых данных.
  • Всегда рисуйте данные перед тем, как подбирать модель.
  • Моменты низкого порядка теряют форму; график её сохраняет.
  • Квартет Энскомба — обязательный аргумент в пользу визуализации.
Проверьте себя
1. Что демонстрирует квартет Энскомба?
AЧто корреляция всегда означает причинность
BЧто наборы с одинаковыми средними, дисперсией и корреляцией могут иметь совершенно разную структуру
CЧто графики не нужны, если есть статистика
DЧто линейная регрессия всегда точна
2. Почему сводные статистики могут вводить в заблуждение?
AОни всегда вычислены с ошибкой
BЭто моменты низкого порядка, которые теряют информацию о форме распределения
CИх нельзя посчитать без графика
DОни работают только для больших выборок
3. Какой практический вывод следует из квартета Энскомба?
AНикогда не считать корреляцию
BВсегда строить график данных, прежде чем подбирать и доверять модели
CИспользовать только параболическую регрессию
DУдалять все выбросы автоматически