сеньорчикОткрыть в Telegram
← вся теориятеория к собесу · Каузальный вывод

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

Зачем это спрашивают

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

Типовые формулировки: «A/B невозможен, как оценишь эффект?», «зачем матчинг, если можно добавить ковариаты в регрессию?», «кому слать промо?».

// Главная фраза темы: без рандомизации всё стоит на допущении об отсутствии скрытых конфаундеров, и это допущение нельзя проверить данными - только доменной логикой. Кто произносит это первым, сразу выглядит взрослым.

Скрытые конфаундеры и propensity score

Вся причинность по наблюдениям стоит на одном допущении с длинным именем - unconfoundedness. Смысл человеческий: все переменные, которые влияют И на попадание в воздействие, И на исход, у нас измерены и учтены.

Это утверждение о мире, а не свойство данных. Никакой тест его не подтвердит: скрытый конфаундер потому и скрытый, что его нет в таблице. Аргументировать можно только знанием домена - «мы знаем, как именно людям доставалась эта фича, и вот полный список того, что на это влияло».

Propensity score - вероятность попасть в группу воздействия, предсказанная по наблюдаемым признакам. Польза в сведении задачи: вместо балансировки по двадцати признакам сразу балансируем по одному числу. Дальше два способа применения. Матчинг: каждому получившему воздействие подбирается похожий по propensity из тех, кто не получил, и сравниваются пары. IPW (inverse propensity weighting): каждому наблюдению даётся вес, обратный вероятности оказаться в своей группе, - редкие в своей группе весят больше, и выборка становится похожей на рандомизированную.

// Баланс проверяется ПОСЛЕ процедуры, всегда. Распределения ковариат в группах должны сойтись, обычный критерий - стандартизованная разность средних (SMD, standardized mean difference) меньше 0.1. Матчинг без проверки баланса - ритуал, а не метод: ты сделал процедуру и не узнал, сработала ли она.

ковариата
признак человека, измеренный до воздействия: возраст, стаж в продукте, прошлые покупки. Именно по ним и уравнивают группы

Пересечение групп и двойная защита

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

Что происходит без него. Propensity уползает к нулю или к единице, а вес в IPW считается как единица, делённая на вероятность. При вероятности 0.001 вес получается тысяча, и вся оценка эффекта начинает держаться на трёх наблюдениях с чудовищными весами. Интервал либо раздувается, либо, что хуже, врёт узостью.

Житейский смысл overlap такой: если фичу получили только пользователи старше пятидесяти из Москвы, то сравнивать их не с кем, и никакая статистика этого не починит. Честных выходов два - сузить выборку до области пересечения и прямо сказать, что вывод только про неё, либо признать, что данные на вопрос не отвечают.

// Двойная защита (AIPW, augmented inverse propensity weighting) склеивает две модели: модель исхода - что произойдёт с человеком - и модель воздействия - кто вообще в него попадает. Оценка остаётся корректной, если верна хотя бы одна из двух. Два шанса вместо одного за небольшую цену.

sensitivity-анализ
проверка хрупкости вывода: насколько сильным должен быть ненаблюдаемый конфаундер, чтобы результат развалился. Если хватает слабенького - так и надо сказать вслух

Uplift: кого трогать, а не кто купит

Разница видна на одном примере. Модель «вероятность покупки» отправит скидку тем, у кого эта вероятность максимальна, то есть тем, кто и так собирался купить. Покупка произойдёт, отчёт будет прекрасный, деньги сгорят впустую.

Uplift-модель предсказывает другую величину - индивидуальный прирост от воздействия, CATE (conditional average treatment effect): насколько скидка изменит поведение именно этого человека. Её максимум лежит совсем не там, где максимум вероятности покупки.

Аудитория раскладывается на четыре куска, понятных бизнесу без перевода. Убеждаемые купят только со скидкой - вот их и надо трогать. Уверенные купят в любом случае, скидка им это чистый убыток. Потерянные не купят никак. И спящие собаки - те, кого промо оттолкнёт: напоминание о подписке заставляет её отменить.

// Инструменты: мета-обучатели (T-, S-, X-learner), которые надстраиваются над любой обычной моделью, и causal forest. Всем им нужны данные, где воздействие хотя бы на части выборки назначалось случайно, иначе вместо эффекта снова измеряется конфаундинг. И «спящие собаки» - вовсе не экзотика: модель, которая просто перестаёт трогать часть аудитории, часто окупается быстрее той, что кого-то дополнительно уговаривает.

Как отвечать: «A/B невозможен. Как оценишь эффект по историческим данным?»

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

Допущение названо до метода, процедура идёт с проверками, подача - с оценкой хрупкости. Именно такой порядок отличает дисциплину от жонглирования словом propensity.

На чём валят

  • Называть коэффициент регрессии «эффектом»: без дизайна и допущений это ассоциация.
  • Сделать матчинг по propensity и не проверить баланс после - процедура ради процедуры.
  • Не заметить отсутствие пересечения групп: веса взрываются, оценка держится на горстке наблюдений.
  • Строить uplift как классификацию купивших: промо уходит тем, кто купил бы и так.
  • Забыть про спящих собак и разослать промо всем подряд, включая тех, кого оно оттолкнёт.

Проверьте себя

Пять вопросов из банка по этой подтеме. Всего их 16, остальные разбираются в тренажёре.

  1. #observational_causal1 / 5
    Почему контроль за переменной-медиатором (пост-трит) искажает оценку эффекта?
    A)Переменная-медиатор — это конфаундер, и потому её контроль нужен для точности
    B)Медиатор на пути эффекта; контролируя его, «съедаешь» часть эффекта
    C)Контроль за медиатором вообще никак не влияет на итоговую оценку эффекта
    D)Медиатор — случайная ошибка измерения, её нужно устранять из модели
    показать ответ и разбор
    +B)Медиатор на пути эффекта; контролируя его, «съедаешь» часть эффекта

    // разбор: Медиатор лежит на причинном пути X → M → Y. Добавляя его в контроль, вы блокируете часть этого пути и «съедаете» долю самого эффекта, который хотели измерить, — total effect занижается. Это ошибка контроля пост-трит переменной. Роли надо различать: конфаундер контролируют, медиатор и коллайдер — нет.

  2. #observational_causal2 / 5
    Зачем в причинном анализе рисуют направленный граф (causal DAG)?
    A)Чтобы наглядно визуализировать корреляционную матрицу всех признаков
    B)Чтобы ускорить обучение модели за счёт удаления лишних признаков из данных
    C)Показывает, какие переменные контролировать, чтобы закрыть backdoor-пути
    D)Чтобы отсортировать признаки по их предсказательной важности в модели
    показать ответ и разбор
    +C)Показывает, какие переменные контролировать, чтобы закрыть backdoor-пути

    // разбор: Causal DAG кодирует предполагаемые причинные связи и позволяет формально решить, какие переменные включать в контроль: критерий backdoor указывает набор, закрывающий «чёрные ходы» (пути через конфаундеры) и не открывающий новых через коллайдеры. Так граф отвечает на вопрос «за что контролировать», который данные сами по себе не решают.

  3. #observational_causal3 / 5
    В рамках потенциальных исходов в чём «фундаментальная проблема причинного вывода»?
    A)Потенциальные исходы трудно формально определить для одного объекта в один момент времени
    B)Проблема лишь в том, что причинный эффект можно измерить только на бесконечно большой выборке из объектов
    C)Для каждого объекта наблюдаем лишь ОДИН исход (с воздействием или без); второй, контрфактический, никогда не виден
    D)Причинный эффект одинаков у всех объектов, и потому его вполне достаточно измерить всего на одном из них
    показать ответ и разбор
    +C)Для каждого объекта наблюдаем лишь ОДИН исход (с воздействием или без); второй, контрфактический, никогда не виден

    // разбор: У каждого объекта два потенциальных исхода: Y(1) при воздействии и Y(0) без него, а индивидуальный эффект — их разность. Но объект либо получил воздействие, либо нет, поэтому наблюдаем ровно ОДИН исход, а второй — контрфактический — принципиально ненаблюдаем (это и есть фундаментальная проблема). Отсюда причинность оценивают на уровне групп/средних при допущениях (рандомизация или unconfoundedness). Эффекты у объектов различаются (гетерогенны).

  4. #observational_causal4 / 5
    Чем ATE отличается от ATT и CATE?
    A)ATE — средний эффект по всей популяции, ATT — среди фактически получивших воздействие, CATE — в подгруппе с заданными признаками
    B)Это три названия одной величины; на практике они совпадают вплоть до последнего знака
    C)ATE считается в эксперименте, ATT — на наблюдательных данных, а CATE не получится оценить
    D)Различаются лишь способом округления итогового числа эффекта, но совсем не тем, для кого именно он посчитан
    показать ответ и разбор
    +A)ATE — средний эффект по всей популяции, ATT — среди фактически получивших воздействие, CATE — в подгруппе с заданными признаками

    // разбор: Оценки эффекта различаются целевой аудиторией. ATE — средний эффект, если бы воздействие применили ко ВСЕЙ популяции. ATT — средний эффект среди фактически получивших воздействие (часто он и интересен). CATE — эффект в подгруппе с конкретными признаками (основа персонализации/uplift). При гетерогенности эффекта они РАЗЛИЧАЮТСЯ, поэтому важно, какой именно оценивается. Способ подсчёта тут ни при чём.

  5. #observational_causal5 / 5
    Propensity-взвешивание даёт несмещённый эффект только при ключевом непроверяемом допущении. Каком?
    A)Что воздействие назначалось случайно — иначе сам propensity score сложно посчитать
    B)Что все признаки в модели propensity нормально распределены и при этом никак не коррелируют между собой
    C)Что размер обработанной и контрольной групп в точности равны между собой ещё до применения взвешивания
    D)Unconfoundedness (ignorability): при учтённых ковариатах назначение воздействия не связано с потенциальными исходами
    показать ответ и разбор
    +D)Unconfoundedness (ignorability): при учтённых ковариатах назначение воздействия не связано с потенциальными исходами

    // разбор: Методы на propensity (matching, IPW) дают каузальную оценку при unconfoundedness / ignorability: после учёта наблюдаемых ковариат назначение воздействия независимо от потенциальных исходов, то есть НЕТ неучтённых конфаундеров. По данным это не проверить (о ненаблюдаемом судить нельзя) — отсюда роль доменных знаний и анализа чувствительности. Строгая рандомизация не требуется (иначе метод не нужен), нормальность признаков и равные размеры групп — тоже не то.

дальше

Теорию прочитали. Навык ставится повторением

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