- 28.09.2025
- 13.11.2025
- обучение
- #causal_inference
ЭТО ЧЕРНОВИК В ПРОЦЕССЕ ПРАВКИ
Слайды можно скачать тут ciw01.pdf
Ноутбук rmlci_w1.ipynb

Много лет мы с Ирой Голощаповой собирались сделать курс по Causal Inference, на курс нас не хватило, но зато сделали серию воркшопов про анализ причинно-следственных связей, это первый.
Воркшопы будут построены "от обратного" - сначала будем рассказывать "на пальцах", а потом будем понемного обосновывать и усложнять. Кому хочется большей академичности - можно начать смотреть воркшопы в обратном порядке.
К одному и тому же примеру мы будем возвращаться неоднократно, с разными подходами и библиотеками.
Чем воркшоп отличается от курса:
- никто никого не оценивает
- нет домашних работ
- вместо теории - ссылки на почитать
- никаких сертификатов об окончании.

Предыдущие наши мероприятия про Causal Inference:
- Митап ODS Reliable ML по АБ-тестированию и Causal Inference
- Датафест, Causal Inference in ML
- Датафест, Interpretable & Causal ML
- Датафест, Reliable ML
Плейлист с выступлениями с этих мероприятий.

По анализу причинно-следственных связей есть много хороших книг:
- Causal Inference for The Brave and True переведена на русский как Причинно-следственный анализ для смелых и честных.
- Дружелюбная эконометрика
- Causal Artificial Intelligence
- Introduction to Causal Inference
- Applied Causal Inference Powered by ML and AI
Я поддерживаю список ссылок про causal inference.

План серии воркшопов:
- Ортогонализация: Мы поговорим про ортогонализацию, мы на самом деле не обсудим всю ортогонализацию, здесь мы её только зацепим краем ← вы находитесь здесь
- Difference in Difference и синтетический контроль: для меня это одна и та же тема, хотя их обычно рассказывают отдельно.
- Матчинг:
- Мета-лернеры:
- Хороший и плохой контроль. Какие переменные включать в анализ, а какие нет.
- CATE
- Инструментальные переменные
- Пропущенные переменные
- Causal Discovery
- Обзор библиотек
Дополнительные воркшопы:
- Витовт Копыток расскажет про regression discontinuity design и regression kink.

Что именно мы понимаем под Causal Inference?
Мы пытаемся исследовать эффект воздействия.
То есть вот это из Брэда Нейла иллюстрация, что замечено, что если человек просыпается в обуви, то у него часто болит голова.
Но это не потому, что обувь ему на голову надавила, а потому что в обуви на трезвую голову редко засыпают.
Так вот, у нас есть какое-то воздействие.
То есть, например, мы спим в обуви или не спим в обуви.
Есть какой-то результат, голова болит.
Есть какая-то популяция и выборка из нее, которую мы исследуем.
А есть какой-то конфаундер, это некоторый внешний фактор, который воздействует и на наш результат, и на наше воздействие.
Скажем так, если мы пили с вечера, то шансы уснуть в обуви увеличиваются, ну и с головной болью тоже.
Есть эндогенность, экзогенность, систематическая ошибка, все это мы будем обсуждать.
Causal Inference вырос в эпидемиологии, поэтому воздействие они имели в виду поставить привку или сделать какую-нибудь операцию.
Так вот, предположим, мы исследуем какое-нибудь влияние чего-нибудь, прививок или, допустим, надетых перед сном ботинок.
Самый очевидный подход – это провести Randomized Control Trial, то есть, например, АБ-тесты.
Мы берем и то надеваем ботинки, то не надеваем ботинки, потом отслеживаем, что у нас с головой.
Общая схема АБ-тестов – мы вмешались в жизнь одной части популяции (тестовая группа), другую часть (контрольную группу) мы оставили в покое и посмотрели, что получится.
АБ-тесты это прекрасно, если они у вас работают.
Мы чуть позже обсудим, почему АБ-тесты вообще работают и как именно они не работают.
Сейчас хотелось бы отметить три момента.
Первое, это то, что АБ-тесты направлены в будущее. То есть мы можем притвориться, что мы делаем АБ-тесты на исторических данных, когда к нам приходят и говорят, слушай, вот мы тут поменяли дизайн, как он повлиял. То есть мы тогда не делали АБ-тесты, а сейчас уже поздно их делать. Но нам интересно, как это влияло на будущее, например. Или мы, например, планируем АБ-тесты и хотим понять, что влияет, что не влияет. Мы можем сделать АБ-тесты на исторических данных, притворившись, что мы в прошлом, что мы разделяем людей на контрольную группу и тестовую группу, но в конечном итоге мы заново изобретем матчинг из causal inference, который мы будем разбирать на третьем семинаре, и можно просто не притворяться, что это А/Б тест, а сразу назвать это матчингом.
Суть матчинга в том, что мы находим в популяции похожие объекты, различающиеся только тем, что на одни воздействия было, на другое нет, и смотрим на разницу результатов.
Второе - не все, что нас интересует, мы можем поменять. То есть, некоторое воздействие мы не можем случайно применять к части популяции по организационным, юридическим причинам или каким-нибудь еще.
На эту тему есть дискуссия.
Можно ли установить причинно-следственную связь, если мы в принципе не можем повлиять на причину?
То есть, например, если у нас интересует, как различается отклик мужчин и женщин на рекламный звонок по телефону, навряд ли мы будем отбирать тысячу мужчин, половине менять пол и смотреть, как изменился их отклик на звонки.
Но что-то делать надо, и мы, используя ровно те же самые техники causal inference, можем попробовать оценить это влияние, хотя это не будет в классическом смысле воздействием.
То есть мы не поменяли им пол, пол у них был и без нас, но мы хотели бы выяснить, как он влияет.
Или, например, мы поменяли цену для всех клиентов. Как установить причинно-следственную связь, если у нас нет контрольной группы? Например, если мы делаем какую-то акцию по телевидению на всю аудиторию, или у нас сильный сетевой эффект, или если мы по закону обязаны продавать по одной и той же самой цене, у нас могут быть сложности с контрольной группой, хотя люди выкручиваются.
Здесь и далее мы не будем различать то, что мы могли бы поменять, и то, что поменять не могли. И то, и другое для нас будут воздействия.
Да, еще иногда при анализе АБ-тестов часто выясняется, что учли таки не все. И назначение получилось не совсем случайным. Можно, расстоившись, выкинуть АБ-тест, а можно попробовать выявить внесенное смещение и исправить.
АБ-тесты прекрасны, так же, как все остальные инструменты, они имеют ограничения, часто их делают неправильно, не всегда они нужны, но мы не про них. Не воспринимайте все это как критику АБ-тестов, они клевые. Если ситуация позволяет, используйте.
Следующий важный момент – это неразличимость процессов по их следам. Есть, например, такой рассказ у Акутагавы «Ворота Расемон», там четыре свидетеля преступления сходились абсолютно в ключевых факторах повествования, но сама история у каждого была совершенно разной.
И это именно то, что мы видим в анализе данных. Разные процессы генерации данных могут порождать похожие данные, и глядя только в данные, мы не всегда их можем различить.
Например, простая история, мы позвонили клиенту, и он рассердился на нас и стал покупать меньше. Это, кстати, мой случай, то есть мне звонят с рекламой, а я перестаю там покупать.
Или мы позвонили клиенту, потому что он, как нам кажется, перестанет вот-вот покупать, ну и часть клиентов все-таки начала покупать, хотя и не так много, как раньше. И там и там мы увидим падение продаж после звонков клиентов, но это совершенно разная история.
В большинстве случаев нам нужно заранее решить, что на что влияет, прежде чем мы начали это влияние оценивать.
Есть методы, позволяющие при определенных обстоятельствах восстановить причинно-следственный граф из данных, и мы будем обсуждать это в семинаре про causal discovery.
Еще есть пропущенные переменные. Например, у нас есть данные об объеме продаж, о цене единицы товара, температуру на улице, и мы видим, что цена поднялась, а продажи выросли. Какие модели генерации данных тут могли сработать?
На рынке дефицит, спрос растет и даже спад спроса, возникший в результате повышения цены, его не пересилил, не смазал.
Либо просто растет курс доллара, все цены в рублях, наша цена растет чуть медленнее курса доллара, то есть с точки зрения клиента товар-то дешевеет, вот покупают больше.
Ну или мы подняли цену настолько, что нас обратил внимание другой потребительский сегмент и покупает нас, решив, что мы качественные.
И вот глядя только в данные, мы не различим эти ситуации, у нас есть пропущенные, влияющие переменные. Некоторые из них мы можем собрать, но мы никогда не будем уверены, что собрали их все. И про это мы поговорим в разделе про пропущенные переменные.
Ну и про то, что ML-инженеры любят использовать всю доступную информацию, ну может быть отобрать из них те, которые лучше предсказывают. Задача машинного обучения ставится как задача предсказания, задача causal inference ставится как задача выявления влияния и получается зачастую, что модели, которые хуже предсказывают результат, лучше выявляют влияние и вот это вот в хорошем-плохом контроле мы будем разбирать.
Зачастую у нас есть похожие группы и случайно так вышло, что к одной из них воздействие применялось, а к другой нет. Например, в одной области разрешили торговать алкоголем только два часа в обед, а в другой точно такой же похожий торгуют с утра и до вечера. И в разделе про ДНД и синтетический контроль мы обсудим, как работать с такими естественными экспериментами, какие там есть камни и проблемы подводные.
В Causal Inference есть набор отработанных рецептов, они довольно просты, хорошо проработаны, делай раз, делай два, делай три. Такие готовые рецепты они называют металернерами, а мы их обсудим в отдельном воркшопе.
Иногда мы оцениваем воздействие косвенно, это инструментальная переменная.
Еще иногда мы оцениваем среднее воздействие, как сейчас, то есть насколько у нас в среднем влияют надетые ботинки на головную боль. А иногда нам нужно не среднее влияние, а влияние на конкретный объект. То есть, например, мы хотим понять, кто из наших клиентов лучше отреагирует на маркетинговую акцию. Нас не интересует среднее влияние на клиентов клиентов. Нас интересует, как отобрать из наших клиентов те 5%, до которых мы этой акции хотим дотянуться. И тут нам помогает оценка условного среднего воздействия. Про нее тоже есть раздел.
Большинство того, что мы тут делаем, можно сделать с помощью готовых библиотек. И так и надо поступать. В иллюстративных целях мы будем делать некоторые вещи руками, чтобы понять, как это устроено. Но когда вы делаете какую-нибудь оценку руками, вы фактически изобретаете causal inference заново. Вам нужно очень аккуратно все делать, строить доверительные интервалы трудно и так далее и тому подобное. Ну, в общем, есть везде, где можно использовать готовые библиотеки, надо использовать готовые библиотеки. Так и шансов ошибиться меньше и быстрее. И последняя тема у нас будет как раз разбор библиотек.
А если кто-то хочет рассказать, я буду рассказывать про библиотеки для Python, если кто-то хочет рассказать про библиотеки для R или, например, для Rust, пишите мне, я с удовольствием уступлю кафедру.
Ну и сегодня мы поговорим про ортогонализацию, не столько мы поговорим, сколько начнем про нее говорить. Это подход, который позволяет вычистить систематическую ошибку из наших наблюдений. Технически это, наверное, самая сложная тема, не считая causal discovery.
А мы с нее начнем, потому что это часть Causal Inference, более всего понятная ML-инженерам. Во-первых, она довольно универсальна, во-вторых, довольно свежая и часто является хорошим бейзлайном, то есть быстро делаем черновое решение и потом смотрим, может быть мы можем сделать лучше.
Фундаментальная проблема причинно-следственного анализа состоит в том, что у нас нет параллельной вселенной, чтобы сравнить другой вариант, контрафактический. То есть если бы у нас была параллельная вселенная, мы бы в одной поставили человеку прививку, а в другой нет, и смотрели бы, что изменилось.
Или в одной мы бы легли спать в ботинках, в другой нет и сравнили бы головную боль.

У любой проблемы есть очевидное, простое и неправильное решение. В данном случае это просто мы возьмем привитых и непривитых и сравним. На этом пути нас ожидает куча удивительных открытий.
Во-первых, те, кого лечат, умирают чаще, чем те, кого не лечат. Это факт.
Само попадание в больницу опасно. Тут внутри больничные инфекции и врачебные ошибки и у процедуры есть осложнения.
Но здравый смысл подсказывает, что здоровые люди умирают редко и еще реже ложатся в больницу. А больные люди чаще умирают и в больницу попадают тоже часто. То есть чаще всего виновато не лечение, а болезнь.

Строго говоря, и смертность, и назначенное лечение зависит от состояния здоровья пациента, и состояние здоровья является кофаундером, то есть чем-то, что влияет одновременно на наше лечение, тритмент и на итоговый результат.
Мы могли бы убрать влияние кофаундера, назначая лечение случайно. Ну или в нашем случае случайно отказывая в лечении. Это помогло бы, но у нас были бы некоторые проблемы юридического и этического характера.
То есть мы вне зависимости от состояния здоровья хватаем человека на улице, подвергаем лечению, а потом смотрим, чаще они после лечения умирают или нет. Вот настоящая наука!

Замечательный пример есть в книжке «Введение про дружелюбное эконометрика», что на самом деле число преступлений и количество патрулей связаны. Патрули появляются на улице потому, что там случаются преступления, и там дается такая клевая рекомендация – случайно отправляйте полицейских в ряд районов, получится АБТС, тогда мы хорошо можем получить несмещенную оценку.
Это примерно как менять пол в эксперименте. Я, кстати, против книги ничего не имею, книга прекрасная, там просто игрушечный пример, вот я его игрушечный и комментирую.
Предположим, что мы хотим, разберем ситуацию, что как раз преступлений тем больше, чем больше патрульных на улице.

От чего зависит количество патрульных? То есть нарисуем граф причинности.
Я вот тут нарисовал такой, вы можете нарисовать другой, но есть некоторое благополучие района, и в зависимости от него отправляют больше или меньше патрулей на улицы. В зависимости от благополучия района у нас случается больше или меньше преступлений, ну и полиция на улице тоже влияет на это.
Однако мы не видим все совершенные преступления, мы видим только те, которые зарегистрированы. Если человека ограбили, а он не пошел в полицию, или его ударили по лицу, он не пошел в полицию, он не попадет в статистику, в наш анализ. И вот патрули влияют не только на количество преступлений совершенных, но и на полноту их учета.
Соответственно, у нас есть кофаундеры благополучия района и зарегистрированных преступлений. Если мы начнем проводить АБ-тесты, просто случайно раскидывая патрули по городу, мы разрежем вот эту зависимость между благополучием района и количеством патрулей.
То есть АБ-тест, благодаря тому, что мы будем случайно назначать количество патрулей, убьет, разрежет вот эту вот зависимость. Если на мне красным повешено.
Но у нас останется другая зависимость, то есть у нас есть зависимость между количеством совершенных преступлений и зарегистрированных. И она все равно будет нам мешать.
В данном случае у нас получается, что поскольку мы предполагаем, что полиция снижает количество преступлений, что бы там ни говорили, и мы полагаем, что полиция увеличивает полноту регистрации преступлений, это приведет к тому, что эффект от полиции будет занижен.
То есть полиция будет снижать количество преступлений, а полнота учета будет расти. То есть мы выявим эффект от полиции не полностью.
Но мы могли бы что-то с этим поделать. Например, мы могли бы учитывать, пришел человек в полицию сам или вместе с патрулем, да, то есть проконтролировать, повлиял ли патруль на учет правонарушения. Ну, тогда бы у нас анализ был бы точнее, но, кстати, встает вопрос, почему количество совершенных преступлений влияет на количество патрулей.

Ведь у нас же стрелка в другую сторону. То есть мы показываем, что на что влияет у нас. Получается, что хвост машет собакой. Получается, что мы как будто спутаем причину и следствие.Ну и вот тут нас ждет неприятное открытие.
Как мы узнаем вообще о причинах?
У нас бывает априорное знание механизма. Я сам построил механизм, я точно знаю, что если я нажму эту кнопку, отсюда вылетит вот эта пулька.
Либо мы можем наблюдать через действие. Например, мы можем сегодня нажать на кнопку, пулька вылетела, завтра не нажать на кнопку, пулька не вылетела. И таким образом строить свои выводы о причинности.
Либо мы можем смотреть на кнопку и пульку, как другие на нее нажимают, и глядя в корреляцию этих вещей, которая как бы не подразумевает у нас причинно-следственные связи, тем не менее эту связь выявлять.
Ну и главное, что мы используем в быту, это последовательность. То есть если А случилось перед Б, то А может быть причиной. Если А случилось после Б, А не может быть причиной.
есть интересная история с ретроспективными молитвами если кто не слышал для проверки разных инструментов анализа данных хорошо брать какие-нибудь дата сеты где проблема доведена до абсурда и вот
Я знаю два таких исследования. Первое – это когда брали мертвых лососей, клали их в томограф и показывали им картинки и выявляли статистически значимую активацию тех или иных областей мозга. История с дохлыми лососями.
А второе – это про ретроспективные молитвы. То есть специальная группа читала молитвы о здоровье пациентов. Правда, эти пациенты болели 10 лет назад, но те, кто читал молитву, они не знали исхода. Поэтому это был совершенно чистый эксперимент. И на самом-то деле молитва помогает - во всяком случае, статзначимость авторы статьи показали. Если кому интересно, погуглите ретроспективная молитва.
Но мы отвергаем этот научный результат и будем считать, что последовательность изолирует причинность. То есть если что-то случилось перед чем-то, то не могло быть следствием этого.

Проблема в том, что в тех данных, которые мы анализируем, они часто неразличимы. Несмотря на то, что у нас причины и следствия расположены во времени в определенном порядке, в данных мы, например, фиксируем их раз в день. И они там неразличимы.
То есть, например, если у нас дождь идет и земля мокрая, чему причина?
земля промокла и дождь пошел.
Или, например, дождь пошел, потому что земля промокла.
Мы не можем различить это, если у нас нет фиксации с точностью до секунд.
Кстати, в этом конкретном случае мокрая земля действительно вызывает дождь - грозовые тучи так и образуются, солнце нагревает влажные участки земли, поднимается водяной пар, образуется дождь, но самостоятельно вызывать дождь у вас так не получится.

В чате слушатели пишут, что случившееся позже может быть причиной случившегося раньше. Пример выплата дивидендов и повышения цены акций.
Кажется, что да, но на самом деле я считаю, что тут есть пропущеные влияющие факторы.
То есть если мы берем граф причинности и отрезаем от него какие-то куски, то нам может казаться что следствие было перед причиной. Думаю, что у них была общая причина -есть какие-то причины по которой было понятно что выплатят дивиденды и эти причины вызвали повышение цены акций. Дивиденды наверняка не в рамках А/Б тестов выплачивались, что-то им предшествовало.
Решение о выплате скорее всего принималось на основе экономических показателей и политических терок, экономические показатели могли быть доступны, политические терки тоже как-то выясняются. В общем я остаюсь при своем мнении, что следствие идет после причины.
Кстати, про графы - есть классы марковской эквивалентности С точки зрения причинности все вот эти комбинации внутри одного блока одинаковы. То есть мы не можем их различить без дополнительной информации.

[00:32:01,347] [SPEAKER_00] Можем ли мы как-нибудь убрать зависимости? [00:32:07,865] [SPEAKER_00] Ну и если вернуться к вот этому мегасписку удивительных открытий, то те, кого лечат, действительно умирают чаще. [00:32:19,163] [SPEAKER_00] Повышение цен ведет к росту продаж обычно через общие какие-то признаки рынка. [00:32:24,691] [SPEAKER_00] Чем больше пожарных, тем больше ущерб. [00:32:26,875] [SPEAKER_00] Это понятно, потому что 100 пожарных на мелкий пожар не приедет. [00:32:32,096] [SPEAKER_00] Алкоголь в малых дозах полезен, но это потому, что на самом деле люди, у которых тяжелые проблемы со здоровьем обычно воздерживаются. [00:32:40,827] [SPEAKER_00] Ну и еще смешная история, что курильщики гораздо чаще доживают до 100 лет, но только на бумаге. [00:32:45,253] [SPEAKER_00] То есть в тех местах, где пенсия дедушки это значительная сумма, его не всегда показывают властям и продолжают получать пенсию, пока у него не случится юбилей и не приедет телевидение. [00:32:59,434] [SPEAKER_00] Вот, а там по ссылке очень хорошо разобрана эта история удивительная. [00:33:04,461] [SPEAKER_00] Так, и что же мы можем сделать, чтобы вот эти удивительные факты анализировать правильно? [00:33:18,236] [SPEAKER_00] То есть там везде какая-нибудь есть зависимость от одного и того же признака и в нашем тритменте, в нашем воздействии и в нашем результате. [00:33:29,489] [SPEAKER_00] Ну, подходов, в общем, два. [00:33:32,353] [SPEAKER_00] Первое, мы можем какую-нибудь зависимость разорвать, назначая тритмент случайно, но, как мы видели в примере с полицейскими, мы можем так не все тритменты разорвать. [00:33:49,314] [SPEAKER_00] Ну и, во-вторых, мы можем проконтролировать, то есть учесть некоторую переменную. [00:33:54,319] [SPEAKER_00] Мы можем сказать, ага, ну вот эту вот конкретную переменную мы [00:33:58,632] [SPEAKER_00] Сделаем на нее поправку при расчете, мы рассчитаем пропенсии Тискора или как-нибудь еще ее учтем. [00:34:05,881] [SPEAKER_00] И получается, что, например, если у нас А влияет на Б, Б влияет на С, а мы пытаемся выявить, влияет ли А на С. Ну, А, скорее всего, влияет на С, А связано с С, А ассоциировано с С. [00:34:25,210] [SPEAKER_00] Если Б мы при этом знаем, то есть проконтролировали, то А перестает быть ассоциировано с С. [00:34:51,382] [SPEAKER_00] И мы можем уверенно сказать, что да, скорее всего, этот ребенок будет плохо успевать. [00:34:58,510] [SPEAKER_00] При условии, что мы не знаем, есть ли оно у ребенка. [00:35:02,936] [SPEAKER_00] Но, это вот первая диаграмма, которая АБЦ. [00:35:06,500] [SPEAKER_00] Но если мы внезапно знаем, что у ребенка нет этого заболевания, то связь между заболеванием родителей и успеваемостью ребенка исчезает. [00:35:18,248] [SPEAKER_00] Ну, с поправкой на то, что это могла быть не единственная связь. [00:35:26,697] [SPEAKER_00] Если у нас А и С оба влияют на некоторое Б, и мы это Б не знаем, то есть мы не можем сказать, что они как-то связаны. [00:35:46,447] [SPEAKER_00] Но если мы это бы знаем, то между ними внезапно появляется связь. [00:35:53,378] [SPEAKER_00] Например, вылетел пример из головы, но история какая, что давайте вот это сначала разберем, про этот у меня пример в голове остался. [00:36:05,313] [SPEAKER_00] Предположим, что у нас есть А и С, между которыми мы пытаемся выяснить причинно-следственную связь. [00:36:15,181] [SPEAKER_00] И они зависят от Б. Например, опять же. [00:36:20,213] [SPEAKER_00] Продажи мороженого и количество убийств на улицах, они и то и другое зависят от температуры. [00:36:28,943] [SPEAKER_00] То есть, когда людям жарко, они ведут себя менее воздержанно, ну и мороженое тоже покупают больше. [00:36:37,255] [SPEAKER_00] Таким образом, если мы не знаем, какая температура на улице, то мы можем... [00:36:45,543] [SPEAKER_00] выявить зависимость между потреблением мороженого и уровнем убийства. [00:36:52,309] [SPEAKER_00] Но если мы точно знаем, какая температура, то такой зависимости нет. [00:37:00,918] [SPEAKER_00] Точно так же, допустим, рост ребенка, он здорово скоррелирован с ростом родителей. [00:37:10,889] [SPEAKER_00] И если мы не знаем рост ребенка, [00:37:16,070] [SPEAKER_00] то, зная рост одного родителя, мы ничего не можем сказать про рост другого. [00:37:20,396] [SPEAKER_00] Но если мы знаем рост ребенка, то во многих случаях у нас есть возможность делать предположение. [00:37:35,141] [SPEAKER_00] Например, у нас очень высокий ребенок и один родитель низкого роста, мы можем предположить, [00:37:41,972] [SPEAKER_00] предположить, что второй родитель у него высокий. [00:37:45,978] [SPEAKER_00] То есть связь вот эта появилась именно, когда мы проконтролировали вот эту перемену. [00:37:52,525] [SPEAKER_00] Тут Григорий меня поправляет, что не убийство утопленники в том учебнике было. [00:37:57,771] [SPEAKER_00] Я вспоминал книгу Шекли, где при определенной температуре люди начинали друг друга убивать. [00:38:08,764] [SPEAKER_00] Когда температура падала, они начинали [00:38:11,655] [SPEAKER_00] Мериться, по-моему, там было сколько там по Фаренгейту? [00:38:17,163] [SPEAKER_00] 100, по-моему, 150. [00:38:19,847] [SPEAKER_00] Вот, неважно.

[00:38:20,907] [SPEAKER_00] И из корреляции на самом-то деле следует причинно-следственная связь. [00:38:33,626] [SPEAKER_00] То есть нас все время учат говорить, что корреляция не предполагает причинность, но на самом деле кое-что она предполагает. [00:38:42,795] [SPEAKER_00] Есть принцип Рейнбаха, который говорит, что из корреляции между А и Б следует что-нибудь из трех. [00:38:49,721] [SPEAKER_00] Либо связь от А в Б, либо А причина Б, либо Б причина А, либо у них есть какая-то общая причина. [00:38:58,708] [SPEAKER_00] На эту тему есть хороший как раз доклад от Григория, ссылка на него есть. [00:39:04,237] [SPEAKER_00] Егор напоминает про лестницу причинности. [00:39:11,048] [SPEAKER_00] Тут история такая, что контрафактическую реальность мы можем наблюдать только в синтетических данных. [00:39:24,329] [SPEAKER_00] Поэтому, конечно, схема клевая на практике. [00:39:29,036] [SPEAKER_00] Ну и помаленьку переходите. [00:39:32,503] [SPEAKER_00] к практике, то есть мы вот так вот и будем идти в вебинары, то есть сначала пламенная речь и потом какая-нибудь скучное тыканье в ноутбук. [00:39:44,655] [SPEAKER_00] Вот, да, ассоциация это обобщение корреляции на нелинейные и прочие типы связи. [00:39:50,882] [SPEAKER_00] Григорий меня поправил, я как раз тут и написал по этому, потому что он много раз меня уже про это поправлял. [00:39:58,010] [SPEAKER_00] Вот.

[00:39:58,592] [SPEAKER_00] Есть такой парадокс Симпсона, его в своей статье Эдвард Симпсон упомянул в 51 году. [00:40:08,668] [SPEAKER_00] Нам было два вида лечения и два вида камней в почках. [00:40:15,217] [SPEAKER_00] Маленькие камни в почках и большие камни в почках. [00:40:18,543] [SPEAKER_00] И получалось, что если сравнить эффект [00:40:24,985] [SPEAKER_00] то лечение А было хуже, чем лечение Б, если в среднем. [00:40:29,791] [SPEAKER_00] Но если разбить на группы маленькие и большие, то оказывается, что внутри каждой группы лечение А лучше. [00:40:40,748] [SPEAKER_00] И встает вопрос, а вот мы приходим и какое же лечение мы хотим. [00:40:46,856] [SPEAKER_00] А тут все не так однозначно. [00:40:52,018] [SPEAKER_00] Во-первых, конечно, если мы учтем влияние камней, то есть влияние размера камней, то все встанет на свои места. [00:41:01,592] [SPEAKER_00] То есть у нас очень смещенная выборка, то есть, грубо говоря, лечение Б получали люди в основном с легкими случаями, а лечение А в основном с тяжелыми случаями. [00:41:16,010] [SPEAKER_00] И если мы сделаем поправку на размер камней, то получится, что у нас... [00:41:20,858] [SPEAKER_00] Лечение А, конечно, выгоднее. [00:41:24,760] [SPEAKER_00] Но получается, что мы учли дополнительный признак, размер камней, и решение изменилось. [00:41:38,532] [SPEAKER_00] А если бы мы еще учли пол, вес, возраст, больницу, в которой проводилась операция, время года, что получилось бы, мы не знаем. [00:41:45,818] [SPEAKER_00] То есть любое утверждение о причинности строится на наших галлюцинациях о том, как устроен мир. [00:41:51,452] [SPEAKER_00] Несмотря на то, что casual discovery позволяет при некоторых обстоятельствах получить вызывающие доверие граф причинности, на самом-то деле мы всегда должны принимать на себя ответственность за граф причинности. [00:42:06,050] [SPEAKER_00] То есть вот мы решили, что мир устроен так, что именно, скажем, лечение вызывает этот эффект, а это влияет на лечение и так далее, да. [00:42:21,152] [SPEAKER_00] один из примеров как можно вывернуть это все наизнанку что возможно на самом-то деле лучшее решение лечения это не А, а Б но просто оно дороже и ресурсов у большинства госпиталей на него мало и поэтому они везут таких больных в другой госпиталь и после перевозки смертности количество осложнений растет поэтому менее эффективное но более доступное на местах лечения А и выигрывает такое тоже может быть вот

[00:42:52,456] [SPEAKER_00] И основная проблема причинности, у нас параллельной Вселенной нет, и мы не можем посмотреть, что было бы, если бы не применили воздействие. [00:43:07,402] [SPEAKER_00] Но мы можем представить себе, что было бы, это контрафактические варианты, и... [00:43:15,557] [SPEAKER_00] Для того, чтобы они у нас были, мы можем вместо того, чтобы брать реальные данные, брать синтетические. [00:43:22,063] [SPEAKER_00] Потому что если на синтетических данных мы научимся вытаскивать эти самые причинно-следственные связи, наверное, у нас это будет и в реальности. [00:43:39,079] [SPEAKER_00] Пример, допустим, с болезнью. [00:43:40,081] [SPEAKER_00] То есть то, что люди умирают чаще, когда их лечат. [00:43:45,005] [SPEAKER_00] Что тут можно сделать? [00:43:46,646] [SPEAKER_00] Ну, действительно, те, кого лечат, умирают чаще, но мы знаем, что назначенное решение зависит от здоровья. [00:43:53,795] [SPEAKER_00] То есть это граф причинно-следственной связи, который у нас есть в голове. [00:43:57,018] [SPEAKER_00] Но мы хотим, чтобы назначенное лечение не зависело как будто, как будто случайно. [00:44:02,625] [SPEAKER_00] Но мы не можем отказывать людям в лечении. [00:44:06,710] [SPEAKER_00] Также смертность зависит от здоровья. [00:44:09,172] [SPEAKER_00] Ну, мы хотели бы, чтобы смертность зависела от лечения, от нездоровья, но над этим мы не... [00:44:15,262] [SPEAKER_00] то есть смерть придет и заберет вне зависимости от нашего желания по этому поводу. [00:44:22,512] [SPEAKER_00] А почему вообще мы хотим, чтобы не зависело? [00:44:26,797] [SPEAKER_00] То есть чем нам эта зависимость мешает? [00:44:28,820] [SPEAKER_00] Почему она мешает?

[00:44:29,842] [SPEAKER_00] Это из книги «Дружелюбная эконометрика», там это немножко строже показывается, но что тут хотелось бы сказать, что если у нас есть некоторый кофаундер, [00:44:45,873] [SPEAKER_00] он вносит и его кавариация с нашими регрессионными остатками не нулевая, то он вносит смещение. [00:44:57,447] [SPEAKER_00] И если кавариация положительная, он вносит положительное смещение, если отрицательное, отрицательное смещение. [00:45:05,215] [SPEAKER_00] То есть то... [00:45:07,016] [SPEAKER_00] то оцененный параметр, который мы получили в результате моделирования, тут они используют линейную регрессию, но в общем можно использовать что-нибудь другое, он будет смещен в ту сторону, куда его сместит этот самый кофаундер. [00:45:24,835] [SPEAKER_00] Что мешает нам нормально оценить.

[00:45:26,717] [SPEAKER_00] А нельзя ли его как-нибудь сместить обратно? [00:45:33,184] [SPEAKER_00] И вот тут мы можем... [00:45:36,092] [SPEAKER_00] привести, скорректировать нашу картину мира. [00:45:38,697] [SPEAKER_00] То есть мы можем посмотреть не на то, каков был объем лечения, а каков был объем лечения сверхобычного в таких обстоятельствах. [00:45:50,398] [SPEAKER_00] Тем самым мы выявим ситуации, когда лечили, когда не принято лечить и не лечили, когда принято лечить. [00:46:00,206] [SPEAKER_00] То есть мы уберем выборочное смещение, то есть мы по остальным признакам, которые у нас есть, мы спрогнозируем, а стали бы лечить этого больного или нет. [00:46:13,121] [SPEAKER_00] И найдем разницу между вот этим предсказанным уровнем воздействия и реальным воздействием, найдем регрессионные остатки. [00:46:20,231] [SPEAKER_00] То есть таким образом мы уберем выборочное смещение. [00:46:25,197] [SPEAKER_00] Как бы все получат у нас одинаковое лечение. [00:46:29,958] [SPEAKER_00] И затем у людей, вообще говоря, разная смертность, разное здоровье. [00:46:34,967] [SPEAKER_00] Мы могли бы объяснить часть этой смертности, собственно, состоянием самих пациентов. [00:46:42,400] [SPEAKER_00] То есть у нас есть дисперсия, которую объясняет наше здоровье. [00:46:48,065] [SPEAKER_00] Общая дисперсия нашего результата. [00:46:50,289] [SPEAKER_00] Часть дисперсии зависит от нашего воздействия, а часть просто от состояния пациентов. [00:46:57,903] [SPEAKER_00] То есть люди болеют или люди здоровы. [00:47:01,731] [SPEAKER_00] И мы можем построить предсказание, выздоровели бы люди или нет на остальных признаках, без учета нашего воздействия. [00:47:11,436] [SPEAKER_00] И таким образом часть дисперсии объяснить. [00:47:14,039] [SPEAKER_00] То есть мы строим предсказанный исход болезни без учета воздействия. [00:47:19,646] [SPEAKER_00] И берем регрессионные остатки. [00:47:22,289] [SPEAKER_00] То есть у нас есть отклонение лечения от ожидаемого, отклонение смертности от ожидаемого. [00:47:28,456] [SPEAKER_00] То есть мы получили то самое, что лечение у нас не зависит от здоровья, потому что вот это вот... [00:47:41,726] [SPEAKER_00] Отклонение и лечение от обычного, там уже все факторы учтены, в том числе и здоровье. [00:47:48,916] [SPEAKER_00] И смертность тоже у нас внезапно не зависит от здоровья, потому что мы уже учли здоровье в смертности, мы всю эту ковариацию съели. [00:48:00,911] [SPEAKER_00] И теперь мы можем с чистой совестью построить модель регрессионных остатков организма. [00:48:10,481] [SPEAKER_00] Смертности от регрессионных остатков нашего лечения. [00:48:14,190] [SPEAKER_00] Собственно, это и есть ортогонализация. [00:48:22,291] [SPEAKER_00] Она многолика, она базируется на ортогональности по Ньюману, она [00:48:29,213] [SPEAKER_00] может использоваться в нелинейных случаях, но общий подход, общая идея ортогонализации именно такая. [00:48:38,126] [SPEAKER_00] То есть мы выполняем дебайсинг, то есть убираем выборочное смещение и динозинг, то есть объясняем часть дисперсии исходного результата. [00:48:49,485] [SPEAKER_00] Если, кстати, вспомнить АБ-тесты, то... [00:48:53,851] [SPEAKER_00] Вот все эти методы повышения разрешающей способности АБ-тестов это как раз вот денойзинг, то есть объяснение дисперсии. [00:49:05,469] [SPEAKER_00] Вообще, как я уже говорил, я против АБ-тестов ничего не имею, они один из инструментов козл инфинитс. [00:49:11,639] [SPEAKER_00] Вот, а теперь бы вопросов. [00:49:18,150] [SPEAKER_00] Но ортогональность по неймону не имеет отношения к идентификации, она просто является условием, что так можно делать. [00:49:28,922] [SPEAKER_00] И Черножуков в 2016 году как раз обосновывал, что так можно и можно не только с помощью линейной регрессии, но и с помощью чего-нибудь более сложного. [00:49:44,277] [SPEAKER_00] Да. [00:49:47,242] [SPEAKER_00] И, ну, просто если у нас нет ортогональности, то у нас все равно будет смещение, мы смещение не уберем, да, действительно, нужна для асимптотической нормальности оценка. [00:50:01,871] [SPEAKER_00] Вот. [00:50:02,130] [SPEAKER_00] И что можно сделать тут фактически? [00:50:10,699] [SPEAKER_00] Да, там поправки на скорость оценки и так далее. [00:50:15,284] [SPEAKER_00] Я скину статью про ортогональность. [00:50:19,309] [SPEAKER_00] Там это немножко более подробно разобрано. [00:50:23,132] [SPEAKER_00] Но мы к этой теме будем возвращаться еще несколько раз. [00:50:26,856] [SPEAKER_00] Это, кстати, важное замечание. [00:50:29,320] [SPEAKER_00] Она немножко не на том уровне, на котором хотелось провести этот вебинар. [00:50:35,666] [SPEAKER_00] Но действительно в нелинейных моделях у нас там есть [00:50:41,614] [SPEAKER_00] Понятие скорости оценки, да. [00:50:43,577] [SPEAKER_00] И что тут важно, что мы, вот тут у меня нарисована регрессия Y от X, кстати, у меня тут опечатка, да, вот, тритмента от X, но на самом-то деле мы можем использовать сложные какие-нибудь методы машинного обучения для предсказания того, назначим ли мы этому больному лечение. [00:51:11,769] [SPEAKER_00] И также мы можем использовать сложные методы машинного обучения для предсказания того, выживет больной без лечения или нет. [00:51:21,463] [SPEAKER_00] И тут есть проблема. [00:51:22,385] [SPEAKER_00] Методы машинного обучения обычно дают такое себе предсказание. [00:51:28,172] [SPEAKER_00] То есть оно не калиброванное, то есть не имеет никакого отношения к вероятности. [00:51:37,065] [SPEAKER_00] И оно... [00:51:40,559] [SPEAKER_00] Смещенная, то есть обычно это переобученная штука, то есть сами по себе методы машинного обучения, они такие спорные бывают. [00:51:52,532] [SPEAKER_00] И в работе Черножукова как раз там разбирается такая история, он говорит, ну а давайте мы будем предсказывать деля на фолды. [00:52:06,344] [SPEAKER_00] Но я много лет занимаюсь машинным обучением и хочу сказать, что поделить на фолды это та еще история. [00:52:12,152] [SPEAKER_00] То есть в нетривиальных случаях вы не можете поделить хорошо на фолды. [00:52:16,498] [SPEAKER_00] Поэтому все эти методы, все они тоже немножко галлюцинации. [00:52:22,467] [SPEAKER_00] Но при определенных условиях, при аккуратном обращении все это работает. [00:52:29,438] [SPEAKER_00] Но опять же это... Да, cross-wall predict, не забывать. [00:52:33,184] [SPEAKER_00] На самом деле... [00:52:35,487] [SPEAKER_00] Кросс вал предикт это тоже та самая еще история. [00:52:39,391] [SPEAKER_00] То есть, например, если вы делаете кросс вал предикт без дедупликации, то у вас попадают одни и те же примеры в одни и те же фолды. [00:52:48,802] [SPEAKER_00] А если вы делаете с дедупликацией, то почему вы его не взвешиваете? [00:52:52,347] [SPEAKER_00] Ну вот эта вот вся история, она сложнее, чем просто сказать давайте сделаем кросс вал предикт. [00:52:59,876] [SPEAKER_00] Вот. [00:53:00,056] [SPEAKER_00] Почему ортогонализация не часть матчинга? [00:53:02,239] [SPEAKER_00] Ну... [00:53:04,900] [SPEAKER_00] Вообще-то, с моей точки зрения, весь causal inference – это ортогонализация. [00:53:12,369] [SPEAKER_00] То есть, как таковая ортогонализация – это общая идея, к которой можно свести весь causal inference. [00:53:22,244] [SPEAKER_00] И то, что какую-то часть называют ортогонализацией, а часть ортогонализации не называют, [00:53:33,351] [SPEAKER_00] Ну, в общем, так. [00:53:36,135] [SPEAKER_00] Смотрите, ортогонализация в записи на слайде как теорема Фришева-Улавеля, ну да, но теорема Фришева-Улавеля, она про декомпозицию линейной регрессии. [00:53:48,291] [SPEAKER_00] А если у нас, допустим, используется Аме... [00:53:59,525] [SPEAKER_00] Если у нас используются более сложные подходы, например, такие как случайный лес, то у нас нет ничего про это не говорил. [00:54:13,882] [SPEAKER_00] Путаются два термина ортогонализация в смысле зависимости тритмента и ортогонализация по нейму? [00:54:21,431] [SPEAKER_00] Да, они называются одинаково, поэтому они и путаются. [00:54:25,327] [SPEAKER_00] Но я имею в виду, что ортогонализация в смысле мы убираем зависимость нашего результата от кофаундеров, мы убираем зависимость нашего тритмента от кофаундеров и получается у нас как раз моделька. [00:54:45,077] [SPEAKER_00] Вот. [00:54:47,440] [SPEAKER_00] И... [00:54:51,094] [SPEAKER_00] То же самое можно про большинство методов тут сделать. [00:54:57,342] [SPEAKER_00] Если все так, если на весь adversarial validation на фолды будет лучше, adversarial validation та тоже самая еще история. [00:55:12,563] [SPEAKER_00] Тут радикальная, кардинальная проблема между экономитристами и ML-щиками, как между [00:55:21,132] [SPEAKER_00] войнами света и тьмы. [00:55:21,932] [SPEAKER_00] То есть ML-щикам, если оно предсказывает, то почему оно предсказывает? [00:55:27,980] [SPEAKER_00] Да и хрен с ним, хорошо. [00:55:29,541] [SPEAKER_00] Но adversarial validation, ну просто другое смещение можете добавить. [00:55:35,307] [SPEAKER_00] Не факт, что оно станет меньше. [00:55:40,253] [SPEAKER_00] Про... Что еще сказать? [00:55:45,119] [SPEAKER_00] Конкретно у... [00:55:47,878] [SPEAKER_00] Черножукова есть доказательство того, что при определенных обстоятельствах в нужную фазу Луны случайный лес это то, что нужно. [00:56:00,998] [SPEAKER_00] Ладно, теперь можно сделать паузу, если кому-то надо, либо продолжить, поскольку у нас запись.

[00:56:12,594] [SPEAKER_00] Что мы тут имеем? [00:56:14,157] [SPEAKER_00] Мы будем говорить про библиотеку ЭКОНМЛ. [00:56:18,574] [SPEAKER_00] в примерах, а еще мы будем делать такие игрушечные примеры с данными. [00:56:25,282] [SPEAKER_00] Библиотека EconML, вот она, и у нее есть как раз примеры, например, для исправления АБ-тестов, введения в Козел Инференс и описания как раз [00:56:44,208] [SPEAKER_00] разных методов оценки в разных условиях. [00:56:49,693] [SPEAKER_00] То есть вот конкретно здесь ссылка на статью Черножукова, который этот подход и описывает. [00:56:57,262] [SPEAKER_00] И сам по себе ЭКОНМЛ делает это достаточно просто. [00:57:05,530] [SPEAKER_00] То есть вы выбираете некоторые модели, которые будут оценивать отдельно [00:57:14,768] [SPEAKER_00] Влияние кофаундеров на ваш результат и на тритмент. [00:57:19,132] [SPEAKER_00] А потом выбирайте некоторую модель, которая будет сводить это все воедино. [00:57:25,018] [SPEAKER_00] То есть в примерах, которые я говорил раньше, это у нас будут трилинейные модели. [00:57:32,907] [SPEAKER_00] На самом деле, скорее всего, нет.
https://www.pywhy.org/EconML/spec/estimation/dml.html
[00:57:39,014] [SPEAKER_00] И вот еще мы будем... [00:57:43,456] [SPEAKER_00] работать с синтетическими данными. [00:57:45,820] [SPEAKER_00] То есть здесь я сгенерировал датасет, в котором есть готовые контрафактические примеры и мы на протяжении вебинаров будем его и другие датасеты так сказать курощать. [00:58:03,586] [SPEAKER_00] Вот. [00:58:03,987] [SPEAKER_00] С датасетами.

Материалы
Ссылки
*