null
эссе · §06 · аналитика · платформы · ~15 минут · 2026.08

лишний контроль

переменная в модели может убрать смещение, а может его создать — и по таблице не отличить

Есть привычка, которая выглядит как осторожность и таковой не является. Считаешь эффект фичи на выручку, добавляешь в модель возраст, регион, платформу, стаж — на всякий случай, чтобы «учесть всё». Логика понятна: чем больше учтено, тем чище оценка. Логика неверна. Часть переменных действительно чистит оценку, часть съедает ровно тот эффект, который ты меряешь, а часть создаёт связь там, где её не было. В сводной таблице все три выглядят одинаково — колонка и колонка.

почему вообще нужен контроль

Начнём с того, чего нельзя сделать никогда. Чтобы точно узнать эффект, нужно увидеть одного и того же человека в двух версиях мира: с фичей и без. Этого не бывает — наблюдается ровно один исход. Второй остаётся навсегда невидимым, и это называют основной проблемой каузального вывода[1].

Всё остальное — способы подставить вместо невидимого исхода кого-то другого. Рандомизация подставляет случайно выбранную половину и работает не потому, что группы одинаковы, а потому, что причина их различия — монета, и она ни с чем не связана. Когда монету бросить нельзя, приходится подбирать похожих, и вот тут появляется контроль: уравнять группы по тому, чем они изначально отличались.

Отсюда и ошибка. Контроль кажется универсальной процедурой «сделать группы сопоставимыми», а на деле он работает только для одной роли переменной из трёх.

три роли, одинаковые с виду

Различие не в самой переменной, а в том, как она включена в устройство мира. Три случая исчерпывают почти всё.

конфаундер XYZ общая причина контролировать медиатор XYZ звено пути не контролировать коллайдер XYZ общее следствие не контролировать
стрелка — направление влияния. одна и та же переменная Z занимает три разных положения, и решение о контроле в каждом своё. по данным положение не определяется.

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

Медиатор — звено на пути от причины к следствию. Новый онбординг повышает выручку, потому что поднимает долю дошедших до первого заказа. Добавь «дошёл до первого заказа» в модель — и увидишь, что онбординг «не влияет на выручку». Правда: он влияет через то, что ты только что зафиксировал. Контроль медиатора не убирает смещение, а вычитает часть искомого эффекта.

Коллайдер — общее следствие. Вот здесь начинается неинтуитивное.

как контроль создаёт связь из ничего

Возьми две вещи, между которыми связи нет вовсе. Пусть талант и удача независимы, и пусть в фонд берут тех, у кого сумма таланта и удачи выше порога.

Теперь смотри только на принятых. Среди них появляется отрицательная связь: если человек прошёл при среднем таланте, значит ему повезло; если прошёл при среднем везении, значит талантлив. Ни талант не влияет на удачу, ни удача на талант — но внутри принятых они спорят за одно место в сумме.

Связи не было. Она возникла в тот момент, когда ты ограничил взгляд общим следствием. Отбор по коллайдеру — тот же контроль, только сделанный не в модели, а на входе в данные, и именно поэтому его не замечают[2].

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

То же с любым «активные пользователи», «дошедшие до конца воронки», «оставившие отзыв». Каждый такой фильтр — обусловливание на следствии, и каждый может породить корреляцию из воздуха.

чем это опасно на практике

Свести к таблице.

роль Zчто делает контрольрешение
конфаундерубирает смещениеконтролировать
медиаторвычитает часть эффектане контролировать
коллайдерсоздаёт ложную связьне контролировать
следствие Yстирает эффект целикомне контролировать
ни при чёмничего, кроме потери точностиможно опустить

Отсюда главное следствие. Правило «добавь побольше контролей, так безопаснее» ложно не в деталях, а в основании: две трети возможных ролей делают оценку хуже. Осторожность здесь состоит не в количестве переменных, а в способности назвать роль каждой.

И проверить это по данным нельзя. Схема с конфаундером и схема с коллайдером дают разные истинные ответы при одинаковых таблицах корреляций. Направление стрелок в данных не записано — оно приходит из знания о том, как устроен предмет. Формальный критерий, отделяющий допустимые наборы контролей от недопустимых, называют критерием заднего входа[3], и он оперирует именно стрелками, а не числами.

и что тогда делать с Симпсоном

Теперь можно вернуться к парадоксу Симпсона и договорить то, что обычно остаётся недоговорённым.

Совет «всегда сегментируй» звучит разумно и в общем случае неверен. Разбиение по подгруппам — это и есть контроль, и оно подчиняется тем же правилам. Разбил по конфаундеру — увидел правду. Разбил по медиатору или коллайдеру — испортил оценку ровно тем же действием.

В примере с камнями в почках разбивать нужно: размер камня — причина и выбора метода, и исхода, чистый конфаундер. А если бы подгруппой оказался, скажем, побочный эффект лечения, разбивка по нему исказила бы всё. Таблицы в обоих случаях выглядят одинаково парадоксально.

Вот почему у парадокса Симпсона нет статистического решения. Данные не сообщают, какой ответ верен — агрегированный или разбитый. Ответ следует из устройства предмета, и любая попытка получить его из одних чисел упирается в то, что обе схемы порождают одну и ту же таблицу.

практика

Правило, заменяющее «добавь на всякий случай», простое и неудобное: перед тем как включить переменную, назови её роль вслух.

Влияет ли она на обе величины сразу — тогда это конфаундер, включай. Лежит ли она между причиной и следствием — тогда медиатор, оставь снаружи или считай отдельно, если тебя интересует именно механизм. Не является ли она следствием обеих — тогда коллайдер, руки прочь. Не знаешь — значит не знаешь, включаешь ли ты поправку или ошибку, и это само по себе результат, который стоит записать.

Тот же вопрос задай каждому фильтру выборки. «Оставили только активных» — почему они активны, не связано ли это с тем, что меряешь. Фильтры кажутся гигиеной данных, а работают как контроль, только молча.

И последнее, ради чего всё это. Рандомизация ценна не тем, что даёт большие выборки или красивые интервалы. Она ценна тем, что снимает вопрос о ролях: когда причина распределения — монета, ни конфаундеров, ни коллайдеров на входе нет по построению. Всё, что делает наблюдательный анализ, — пытается восстановить это свойство рассуждением. Иногда получается. Но платой всегда служит допущение, которое нельзя проверить теми же данными, — и честный анализ отличается от нечестного тем, что называет это допущение прямо.

поля
[1]Формулировка «основная проблема каузального вывода» принадлежит Полу Холланду, «Statistics and Causal Inference» (JASA, 1986), в рамках подхода потенциальных исходов Неймана—Рубина: у каждого объекта есть исход при воздействии и без него, наблюдается ровно один.
[2]Смещение отбора через общее следствие описал Джозеф Берксон (1946) на больничных данных: две независимые болезни оказываются связанными среди госпитализированных, потому что каждая повышает шанс попасть в больницу.
[3]Критерий заднего входа (back-door criterion) — Джудея Пёрл, «Causality» (2000): набор переменных допустим для контроля, если он перекрывает все пути, идущие в причину, и не открывает путей через коллайдеры.
[4]Пятая строка таблицы — переменная, не связанная ни с чем: её включение не смещает оценку, но расходует степени свободы и расширяет интервал. Безвредна для правильности, не бесплатна для точности.
// парадокс СимпсонаПочему у парадокса нет статистического решения — только причинное.