Текст
                    
Алекс Руис де Вилья Роберт Причинно-следственный анализ в науке о данных
Causal Inference for Data Science ALEIX RUIZ DE VILLA ROBERT
Причинно-следственный анализ в науке о данных Алекс Руис де Вилья Роберт Москва, 2025
УДК 004.6:519.25 ББК 16.35 Р83 Р83 Алекс Руис де Вилья Роберт Причинно-следственный анализ в науке о данных / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2025. – 432 с.: ил. ISBN 978-5-93700-365-2 Понимание сути и роли причинности имеет большое значение для анализа данных. Эта книга послужит прочной основой для применения методов причинно-следственного вывода в повседневных задачах науки о данных. Вы научитесь правильно выбирать и применять математические и статистические инструменты, необходимые для успешного моделирования причинно-следственных связей. Книга адресована начинающим и опытным аналитикам данных, а также специалистам в области машинного обучения, экономики и статистики, желающим усовершенствовать процесс принятия решений. УДК 004.6:519.25 ББК 16.35 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ©DMKPress 2025. Authorized translation of the English edition. © 2025 Manning Publications. This translation is published and sold by permission of Manning Publications, the owner of all rights to publish and sell the same. ISBN (анг.) 9781633439658 ISBN (рус.) 978-5-93700-365-2 © 2025 Manning Publications Co. All rights reserved © Оформление, издание, перевод, ДМК Пресс, 2025
Посвящается моему сыну Арану

Краткое оглавление Часть I. Причинно-следственный анализ и роль искажающих факторов................................................... 27 1  Введение в причинность................................................. 29 2  Первые шаги: работа с искажающими факторами........ 60 3  Применение причинно-следственного анализа...............102 4  Как машинное обучение и причинно-следственный анализ могут помочь друг другу......................................123 Часть II. Формула корректировки на практие ...................... 161 5  Поиск сопоставимых случаев с использованием меры склонности..........................................................163 6  Расчет прямых и косвенных эффектов с помощью линейных моделей........................................198 7  Работа со сложными графами.....................................228 8  Расширенные инструменты в библиотеке DoubleML.....276 Часть III. Другие стратегии помимо формулы корректировки......................................................... 305 9  Инструментальные переменные...................................307 10  Схема оценки потенциальных исходов ..........................332 11  Эффекты событий во времени......................................350
Оглавление Предисловие от издательства..............................................................................14 Предисловие...........................................................................................................15 Благодарности........................................................................................................16 О книге.....................................................................................................................18 Об авторе.................................................................................................................24 Об иллюстрации на обложке...............................................................................25 ЧАСТЬ I. Причинно-следственный анализ и роль искажающих факторов.................................................... 27 Введение в причинность............................................................. 29 1 2 1.1. Как работает причинно-следственный анализ...........................................31 1.1.1. Шаг 1: определение типа данных......................................................31 1.1.2. Шаг 2: изучение задачи.......................................................................32 1.1.3. Шаг 3: создание модели . ....................................................................32 1.1.4. Шаг 4: представление модели другим...............................................33 1.1.5. Шаг 5: применение методов причинно-следственного анализа.....33 1.2. Различия между причинно-следственными моделями и прогностическими моделями машинного обучения....................................35 1.3. Экспериментальные исследования..............................................................37 1.3.1. Мотивирующий пример: развертывание нового веб-сайта..........37 1.3.2. A/B-тестирование................................................................................40 1.3.3. Рандомизированные контролируемые исследования...................41 1.3.4. Шаги проведения A/B-тестирования..............................................42 1.3.5. Ограничения A/B-тестирования и RCT..........................................44 1.4. Наблюдательные исследования....................................................................45 1.4.1. Моделирование синтетических данных..........................................47 1.4.2. Причинно-следственные связи при наличии искажающих факторов..........................................................................................................49 1.5. Обзор основных статистических концепций............................................51 1.5.1. Эмпирические распределения и распределения сгенерированных данных..............................................51 1.5.2. Условные вероятности и ожидания..................................................53 1.6. Для дополнительного чтения.......................................................................57 1.7. Контрольные вопросы...................................................................................58 Итоги........................................................................................................................59 Первые шаги: работа с искажающими факторами................... 60 2.1. Основы причинно-следственного анализа и парадокс Симпсона..........62 2.1.1. Чем обусловлена эта проблема?.........................................................64 2.1.2. Развивайте интуицию: как исправить проблему.............................66 2.1.3. Решение парадокса Симпсона...........................................................67 2.2. Обобщение на другие задачи................................................................69
Оглавление 9 2.2.1. Описание проблемы с помощью графа............................................70 2.2.2. Формулирование того, что хотелось бы узнать..............................70 2.2.3. Поиск способа вычисления причинно-следственной связи.........71 2.2.4. Формулирование того, что хотелось бы узнать: язык вмешательств..................................................................................................71 2.2.5. Поиск способа вычисления причинно-следственной связи: формула корректировки...............................................................................74 2.2.6. Какие результаты дает метод лечения в каждой ситуации? Предположение о положительности..........................................................76 2.3. Вмешательства и RCT.....................................................................................78 2.4. Первая встреча со структурным подходом.................................................79 2.4.1. Моделирование примера почечнокаменной болезни...................81 2.4.2. Вмешательства в структурном подходе............................................83 2.5. Когда применять формулу корректировки.................................................85 2.5.1. RCT или A/B-тестирование...............................................................86 2.5.2. Искажающие факторы........................................................................87 2.5.3. Ненаблюдаемые искажающие факторы...........................................88 2.5.4. Медиаторы............................................................................................89 2.5.5. Множество искажающих факторов..................................................90 2.5.6. Переменные, прогнозирующие результат.......................................91 2.5.7. Переменные, прогнозирующие выбор метода лечения...................................................................................93 2.5.8. Условное вмешательство.....................................................................93 2.5.9. Объединение всех предыдущих ситуаций.......................................95 2.5.10. Обобщение различий между вмешательством и применением формулы корректировки.................................................96 2.6. Итак, каков план?............................................................................................97 2.7. Основные уроки главы...................................................................................99 2.8. Контрольные вопросы.................................................................................100 Итоги......................................................................................................................101 3 Применение причинно-следственного анализа.......................... 102 4 Как машинное обучение и причинно-следственный анализ могут помочь друг другу.............................................................123 3.1.Когда и зачем использовать графы в причинно-следственном анализе....................................................................103 3.2. Шаги по формулированию задачи с использованием графов...............105 3.2.1. Составьте список всех переменных............................................... 106 3.2.2. Создайте свой граф............................................................................108 3.2.3. Сформулируйте свои предположения ...........................................112 3.2.4. Сформулируйте свои цели................................................................113 3.2.5. Проверьте предположение о положительности..........................114 3.3. Другие примеры............................................................................................115 3.3.1. Рекомендательные системы.............................................................115 3.3.2. Ценообразование...............................................................................118 3.3.3. Моделирование..................................................................................118 3.4. Для дальнейшего чтения..............................................................................121 3.5. Контрольные вопросы.................................................................................121 Итоги......................................................................................................................121 4.1. Что дает обучение с учителем?.................................................................. 126 4.1.1. Когда следует использовать причинно-следственный анализ, а когда обучение с учителем?........................................................128
10 Оглавление 4.1.2. Цель аппроксимации данных.......................................................... 129 4.1.3. Когда будущее и прошлое имеют одинаковое поведение............131 4.1.4. Когда причинно-следственный анализ и обучение с учителем совпадают?.................................................................................133 4.1.5. Ошибка прогнозирования – ложный друг.....................................134 4.1.6. Проверка вмешательств....................................................................140 4.2. Как обучение с учителем участвует в причинно-следственном анализе?..................................................................141 4.2.1. Эмпирические распределения и распределения сгенерированных данных в формуле корректировки...........................143 4.2.2. Гибкость формулы корректировки ................................................144 4.2.3. Формула корректировки для непрерывных распределений .....145 4.2.4. Алгоритмы расчета формулы корректировки..............................145 4.2.5. Перекрестное обучение: предотвращение переобучения......... 149 4.3. Другие применения причинно-следственного анализа в машинном обучении.........................................................................................153 4.3.1. Обучение с подкреплением..............................................................153 4.3.2. Справедливость .................................................................................155 4.3.3. Ложные корреляции.........................................................................155 4.3.4. Обработка естественного языка..................................................... 156 4.3.5. Объяснимость.................................................................................... 156 4.4. Для дальнейшего чтения............................................................................. 156 4.5. Контрольные вопросы.................................................................................158 Итоги......................................................................................................................158 ЧАСТЬ II. Формула корректировки на практике ...................161 Поиск сопоставимых случаев с использованием меры склонности............................................................................163 5 6 5.1. Знакомство с мерой склонности............................................................... 166 5.1.1. Поиск соответствий для оценки причинно-следственных связей............................................................... 167 5.1.2. Но есть ли соответствие?................................................................. 168 5.1.3. Почему сопоставление может быть трудным............................... 169 5.1.4. Как меры склонности можно использовать для расчета ATE.....171 5.2. Основные понятия мер склонности..........................................................172 5.2.1. С какими случаями мы работаем?....................................................173 5.2.2. Что такое мера склонности?........................................................... 176 5.2.3. Предположение о положительности – это... предположение..... 176 5.3. Оценки меры склонности на практике.....................................................177 5.3.1. Подготовка данных............................................................................177 5.3.2. Вычисление меры склонности........................................................178 5.3.3. Оценка предположения о положительности................................181 5.3.4. Вычисление ATE на основе мер склонности.................................187 5.4. Вычисление корректировки меры склонности: упражнение.............. 194 5.4.1. Шаги упражнения............................................................................. 195 5.5. Для дальнейшего чтения............................................................................. 196 5.6. Контрольные вопросы................................................................................ 196 Итоги..................................................................................................................... 197 Расчет прямых и косвенных эффектов с помощью линейных моделей................................................198
Оглавление 11 6.1. Оценка причинно-следственных связей с помощью линейных моделей..........................................................................201 6.1.1. Моделирование задачи ценообразования: знакомство...............201 6.1.2. Прямые и косвенные эффекты........................................................207 6.2. Изучение причинно-следственной динамики с помощью линейных моделей...............................................................................................214 6.2.1. Аналогия с газом, текущим по трубам.............................................215 6.2.2. Как корреляция распространяется в графе..................................215 6.2.3. Расчет причинно-следственной связи и корреляции по коэффициентам при стрелках..............................................................220 6.2.4. Линейные модели и оператор «do»................................................222 6.3. Контрольные вопросы................................................................................ 226 Итоги..................................................................................................................... 226 7 8 Работа со сложными графами..............................................228 7.1. Изменение корреляции между двумя переменными с учетом третьей...................................................................................................232 7.1.1. Пример условной независимости времени прихода на работу........................................................................................................233 7.1.2. Математический пример условной независимости.....................234 7.1.3. Разбиение причинно-следственной модели на независимые модули...............................................................................235 7.1.4. Кирпичики DAG: факторизация распределений вероятностей....................................................................240 7.1.5. Что такое d-разделение?...................................................................247 7.1.6. Определение d-разделения..............................................................251 7.2. Критерий обходного пути...........................................................................253 7.2.1. Важность критерия обходного пути...............................................258 7.3. Хорошие и плохие наборы корректируемых переменных................... 261 7.3.1. Хорошие наборы корректируемых переменных......................... 261 7.3.2. Нейтральные наборы корректируемых переменных................. 262 7.3.3. Плохие наборы корректируемых переменных............................ 262 7.4. Возвращаясь к предыдущим главам........................................................... 264 7.4.1. Эффективные наборы корректируемых переменных................ 264 7.4.2. Оценка склонности........................................................................... 268 7.4.3. И снова: не включайте переменные в модель только потому, что они делают ее более точной................................... 269 7.4.4. Следует ли делать поправку на доход?........................................... 269 7.5. Дополнительный инструмент для выявления причинно-следственных связей: do-исчисление............................................272 7.6. Для дальнейшего чтения..............................................................................273 7.7. Контрольные вопросы.................................................................................274 Итоги......................................................................................................................275 Расширенные инструменты в библиотеке DoubleML.............276 8.1. Двойное машинное обучение.................................................................... 279 8.1.1. Теорема FWL: предшественница DML...........................................281 8.1.2. Нелинейные модели в DML.............................................................285 8.1.3. DML на практике............................................................................... 290 8.1.4. Гетерогенные эффекты воздействия............................................. 294 8.2. Доверительные интервалы........................................................................ 296
12 Оглавление 8.2.1. Моделирование новых наборов данных с помощью бутстрэппинга......................................................................... 297 8.2.2. Аналитические формулы вычисления доверительных интервалов....................................................................... 298 8.3. Оценки с двойной надежностью................................................................300 8.3.1. AIPW на практике...............................................................................302 8.4. Для дальнейшего чтения..............................................................................302 8.5. Контрольные вопросы.................................................................................303 Итоги......................................................................................................................303 ЧАСТЬ III. Другие стратегии помимо формулы корректировки..........................................................305 Инструментальные переменные........................................... 307 9 10 11 9.1. Знакомство с IV на примере........................................................................309 9.1.1. Граф примера......................................................................................311 9.1.2. Предположения IV.............................................................................312 9.1.3. Инструментальные переменные и RCT.........................................314 9.2. Оценка причинно-следственной связи с помощью IV............................315 9.2.1. Применение IV с линейными моделями........................................315 9.2.2. Применение IV с частично линейными моделями......................318 9.2.3. Альтернативная формула для метода IV.........................................319 9.2.4. Отсутствие общей формулы для обобщенного графа IV.............320 9.3. Инструментальные переменные на практике..........................................320 9.3.1. Двухэтапный алгоритм наименьших квадратов (2SLS)...............322 9.3.2. Слабые инструменты.........................................................................324 9.3.3. IV и DoubleML....................................................................................327 9.4. Ссылки............................................................................................................330 9.5. Контрольные вопросы.................................................................................331 Итоги......................................................................................................................331 Схема оценки потенциальных исходов ..................................332 10.1. Что такое потенциальный исход?............................................................333 10.1.1. Индивидуальные исходы................................................................334 10.1.2. Коллективные исходы.....................................................................336 10.1.3. Причинно-следственные эффекты...............................................337 10.1.4. Предположения о потенциальных исходах................................338 10.2. Связь метода потенциальных исходов с методом графов....................339 10.2.1. Первый закон причинно-следственного анализа.......................339 10.2.2. Выражение предположений PO с помощью DAG......................340 10.2.3. Контрфактуалы................................................................................341 10.3. Формула корректировки с потенциальными исходами.......................343 10.4. Инструментальные переменные с потенциальными исходами..........347 10.5. Контрольные вопросы...............................................................................348 Итоги......................................................................................................................349 Эффекты событий во времени.............................................350 11.1. Какие типы данных будут использоваться?............................................354 11.2. Метод разрывной регрессии.....................................................................355 11.2.1. Моделирование данных..................................................................356 11.2.2. Терминология RDD..........................................................................358 11.2.3. Предположения...............................................................................360
Оглавление 13 11.2.4. Оценка эффекта...............................................................................360 11.2.5. RDD на практике..............................................................................361 11.3. Синтетический контроль..........................................................................373 11.3.1. Моделирование данных..................................................................376 11.3.2. Терминология метода синтетического контроля.......................377 11.3.3. Предположения...............................................................................378 11.3.4. Оценка эффекта...............................................................................379 11.3.5. Синтетический контроль на практике.........................................380 11.3.6. Выбор периодов обучения и прогнозирования..........................380 11.4. Метод сравнения разностей......................................................................386 11.4.1. Моделирование данных..................................................................388 11.4.2. Терминология DiD...........................................................................389 11.4.3. Предположения...............................................................................392 11.4.4. Оценка эффекта...............................................................................394 11.4.5. Практика...........................................................................................395 11.5. Контрольные вопросы...............................................................................401 11.6. Сравнение методов.....................................................................................401 11.7. Ссылки..........................................................................................................402 Итоги......................................................................................................................402 Приложение A. Математика, лежащая в основе формулы корректировки................................................................403 Приложение B. Решения упражнений в главе 2................................407 B.1. Решение парадокса Симпсона для метода лечения B.............................407 B.2. Наблюдать и делать – это не одно и то же................................................407 B.2.1. Решение...............................................................................................408 B.3. Что нужно скорректировать?.................................................................... 409 B.3.1. RCT..................................................................................................... 409 B.3.2. Искажающие факторы......................................................................410 B.3.3. Ненаблюдаемые искажающие факторы........................................412 B.3.4. Медиаторы..........................................................................................413 B.3.5. Переменные, прогнозирующие результат....................................414 Приложение C. Техническая лемма о мерах склонности...................416 Приложение D. Доказательство двойной надежности оценки ...........................................................420 D.1. Свойство двойной надежности по отношению к T-learner...................420 D.2. Свойство двойной надежности относительно обратного взвешивания вероятности..................................................................................421 Приложение E. Техническая лемма для альтернативной формулы инструментальной переменной........................................423 Приложение F. Доказательство формулы неидеального соответствия инструментальной переменной................................424 Предметный указатель..................................................................427
Предисловие от издательства Отзывы и пожелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны. Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@gmail.com; при этом укажите название книги в теме письма. Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com. Список опечаток Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах. Нарушение авторских прав Пиратство в интернете по-прежнему остается насущной проблемой. Издательство «ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли применить санкции. Ссылку на подозрительные материалы можно прислать по адресу dmkpress@gmail.com. Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.
Предисловие Впервые проблема причинно-следственного анализа привлекла мое внимание в 2016 году, когда я прочитал статью о причинности и совершенно ничего не понял. Заинтересовавшись этой экзотической темой, я прочитал работы Джуды Перла (Judea Pearl). Поначалу я не думал, что с помощью математических и статистических инструментов можно многого добиться в моделировании причинности. Но, продолжая читать, я понял, что причинность имеет большое значение с прикладной точки зрения. В 2016 году я уже несколько лет работал специалистом по данным. Мне нравилось исследовать методы машинного обучения; это был новый мир, в котором мое техническое образование давало хорошее преимущество. Машинное обучение открыло двери в различные отрасли и компании, позволяя мне наслаждаться своей работой. Между 2016 и 2018 годами я начал понимать, что прогресс в машинном и особенно в глубоком обучении в значительной мере был достигнут путем проб и ошибок, без глубокого понимания его внутренних механизмов. Основное внимание уделялось вычислительной мощности и программированию, а не моделированию мира. Я не против такого подхода, но он не удовлетворял меня. В то же время я все глубже исследовал область причинно-следственного анализа. С каждым днем я обнаруживал, что все больше разделяю его цели – получение ответа на вопрос «почему» – и его методы, уделяющие большое внимание статистике и математике, но при этом включающие и программирование. В конце 2018 года я решил взять годовой отпуск, чтобы вплотную заняться темой причинно-следственного анализа. Я понял, что компании часто испытывают трудности с точной оценкой эффекта своих решений, и казалось неизбежным, что они быстро осознают необходимость выявления причинно-следственных связей и создадут вакансии для специалистов в этом направлении. Когда я обсуждал рабочие проблемы со своими коллегами, то заметил, что способен быстрее и точнее понять и проанализировать их проблемы, чем раньше. А на личном уровне изучение причинно-следственного анализа кардинально изменило мой взгляд на мир: я начал находить причинно-следственные связи во многих сферах жизни общества, включая здравоохранение, экономику, журналистику, политику и т. д. Приятно тратить время на получение новых знаний, которые могут принести мне доход, а также помочь лучше понять мир, в котором мы живем. С 2018 года я объяснял основы причинно-следственного анализа на многих семинарах, занятиях, в статьях, а теперь и в этой книге! Каждый раз, когда я рассказываю об этой теме, я испытываю то же волнение, что и тогда, когда впервые ее открыл.
Благодарности Начав писать эту книгу, я думал, что мне понадобится год. Какой же я был наивный! Работа над книгой заняла три года, и я очень горжусь и доволен результатом. Я думаю, что мне удалось найти точный баланс между теорией и практикой, между интуицией и формализмом, что не всегда легко сделать. Я благодарю свою жену Терезу за поддержку всех моих сумасшедших идей и проектов. Я люблю тебя (и далеко не только потому, что ты поддерживала меня во время работы над этой книгой!). Я также благодарю мою маму Ану, отца Кике и сестру Джулию за постоянную поддержку на протяжении всей моей жизни. Моя потребность понять, почему все так, как есть, и что мы можем сделать, чтобы изменить это, во многом воспитана ими. Огромное спасибо издательству Manning за то, что вложили время, силы, терпение и деньги в создание этой книги. Из членов команды Manning я хотел бы особо поблагодарить Фрэнсис Лефковиц (Frances Lefkowitz). Без нее эта книга не получилась бы такой, какая она есть. Но не только за это: она также сделала все, чтобы этот долгий писательский труд принес свои плоды. Ее наставничество и точка зрения значительно повлияли на мою манеру общения с другими в повседневной работе. (Сейчас она, вероятно, думает, как бы получше перефразировать эти предложения!) Работать с вами, Фрэнсис, было истинным удовольствием. Я также хотел бы поблагодарить производственную команду Manning, которая постаралась привести эту книгу к ее окончательному виду. Не могу не вспомнить также моих друзей и коллег, внесших множество исправлений и предложений для улучшения книги: это Ллоренс Бадьелла (Llorenç Badiella), Карлос Очоа (Carlos Ochoa), Бартек Скорульски (Bartek Skorulski), Мария Хосе Пелаес (María José Peláez) и Хесус Серкидес (Jesús Cerquides). Большое вам спасибо! Я также очень благодарен рецензентам, чьи предложения помогли сделать эту книгу лучше: это Ади Шавит (Adi Shavit), Алексей Агарков (Alexey Agarkov), Аюш Бихани (Ayush Bihani), Бенедикт Штеммлер (Benedikt Stemmler), Брайан Коколиккио (Brian Cocolicchio), Карлос Айя-Морено (Carlos Aya-Moreno), Эдгар Хасслер (Edgar Hassler), Эзра Шредер (Ezra Schroeder), Грегорио Пикколи (Gregorio Piccoli), Джиллиан Моррисон (Jillian Morrison), Кали Канеко (Kali Kaneko), Каран Гупта (Karan Gupta), Кей Энгельхардт (Kay Engelhardt), Ким Фальк Йоргенсен (Kim Falk Jørgensen), Лара Томпсон (Lara Thompson), Максим Волгин (Maxim Volgin), Микаэль Дотри (Mikael Dautrey), Питер Хенсток (Peter Henstock), Питер Рабинович (Peter Rabinovitch), Салил Атали
Благодарности 17 (Salil Athalye), Серджио Говони (Sergio Govoni), Шантану Нима (Shantanu Neema), Симона Сгуацца (Simone Sguazza), Судипта Мукерджи (Sudipta Mukherjee), Томас Джозеф Хейман (Thomas Joseph Heiman), Тимоти Лин (Timothy Lin), Тони Дубицкий (Tony Dubitsky) и Тимотеуш Володзко (Tymoteusz Wołodźko). Спасибо также Шону Тейлору (Sean Taylor), Матеусу Факуре (Matheus Facure), Филиппу Баху (Philipp Bach) и Полу Хунермунду (Paul Hünermund) за их поддержку. Особое спасибо Рамону Наварро (Ramon Navarro) и Эудальду Кампруби (Eudald Camprubí) – основателям стартапа Nuclia в городе Манресе (Каталония) – за то, что поняли мою страсть к причинно-следственным связям и оставили меня в своей команде. Рамон и Эдуард, в глубине души вы знаете, что вашему стартапу было бы лучше в Грасии, Барселона, но все мы знаем, что в этой жизни нет ничего идеального! Наконец, я выражаю признательность многим исследователям, посвятившим десятилетия продвижению темы причинно-следственных связей и выводу ее на передний план для всех нас, чтобы мы могли продолжить развивать ее. Я хочу поблагодарить Джуду Перла (Judea Pearl), выразив свою благодарность способом, который он бы точно оценил: от противного. Если бы не он, я бы никогда не рискнул войти в мир причинно-следственной связи. Список исследователей, внесших вклад в причинно-следственную связь, велик. Среди них Э. Барейнбойм (E. Bareinboim), расширивший область применения графовых моделей в причинно-следственной связи. Методы причинноследственного анализа с более статистическим и эконометрическим уклоном были разработаны благодаря таким людям, как Дж. Робинс (J. Robins), Д. Рубин (D. Rubin), В. Черножуков (V. Chernozhukov), Г. Имбенс (G. Imbens), Дж. Ангрист (J. Angrist), М. Дж. ван дер Лаан (MJ van der Laan), А. Ротницки (A. Rotnitzky) и Э. Х. Кеннеди (E.H. Kennedy). Затем следует Б. Шолкопф (B. Schölkopf) с его коллегами, углубившиеся в исследование связей между причинно-следственной связью и машинным обучением. И это только малая часть, на самом деле таких исследователей очень и очень много.
О книге Эта книга была написана и для начинающих, и для опытных специалистов по данным, для практиков и исследователей машинного обучения, для аналитиков данных, экономистов и статистиков, желающих усовершенствовать процесс принятия решений с использованием результатов наблюдений. Ее цель – дать вам прочную основу для применения методов причинно-следственного анализа в повседневных задачах. Она даст вам интуитивное понимание в выборе правильных инструментов, которое в сочетании с более формальным подходом гарантирует вам уверенность в своих действиях. Предварительные требования Для работы с книгой вам понадобятся базовые знания по следующим темам. „ Теория вероятности: – основные формулы вероятности, такие как закон полной вероятности и условные вероятности; – базовые распределения вероятностей, такие как гауссово и биномиальное; – как генерировать случайные числа с помощью компьютера. „ Статистика: – линейная и логистическая регрессия; – доверительные интервалы; – рекомендуется: понимание основ A/B-тестирования и рандомизированных контролируемых испытаний (как выполняется распределение по группам и проверка гипотез). „ Программирование: – базовые навыки программирования (чтение/написание простых программ) как минимум на одном языке программирования, например Python, R или Julia. „ Машинное обучение: – перекрестная проверка и настройка гиперпараметров; „ рекомендуется: опыт работы с моделями машинного обучения, такими как kNN, случайные леса, бустинг и глубокое обучение.
О книге 19 Структура книги Книга разделена на три части. Часть I посвящена основам, необходимым для понимания причин и следствий. Здесь вы узнаете, когда применять причинно-следственный анализ; как определенные переменные, известные как искажающие факторы, могут затруднить анализ; и как оценить причинно-следственные связи, устранив их влияние с помощью метода, называемого формулой корректировки. „ Глава 1 представляет два способа причинно-следственного анализа на основе данных: с помощью экспериментов (этот способ еще называют A/B-тестированием, или рандомизированным контролируемым испытанием) или без них. Здесь также объясняются риски анализа неэкспериментальных данных при наличии искажающих факторов. „ Глава 2 представляет формулу корректировки, которая оценивает причинно-следственное влияние в неэкспериментальных данных путем устранения влияния искажающих факторов. „ Глава 3 приводит примеры моделирования анализа с использованием графов. „ Глава 4 объясняет использование машинного обучения для расчета формулы корректировки и показывает, как причинно-следственный анализ может улучшить некоторые аспекты машинного обучения. В части II рассматриваются реальные проблемы, с которыми можно столкнуться при использовании формулы корректировки из части I. „ Глава 5 рассказывает, как выявить нехватку данных в оцениваемом вами решении. „ Глава 6 объясняет, как оценить причинно-следственные связи непрерывных переменных с помощью линейных моделей. „ Глава 7 рассказывает, как с помощью критерия обходного пути выбрать переменные для включения в анализ, если причинноследственный граф слишком сложный. „ Глава 8 описывает прием двойного машинного обучения (продвинутый метод оценки причинно-следственных связей) и доверительные интервалы. В главе также объясняется, как их вычислить с помощью пакета DoubleML. В части III показаны дополнительные методы изучения причин и следствий помимо формулы корректировки. „ Глава 9 представляет метод инструментальных переменных, использующий независимый источник вариации для оценки причинно-следственной связи, и не требует знания каких-либо искажающих факторов, влияющих на результаты. „ Глава 10 обсуждает схему оценки потенциальных исходов – альтернативу графовым причинно-следственным моделям. „ Глава 11 объясняет методы, связанные со временем, часто используемые в экономике, такие как синтетический контроль, метод разрывной регрессии и метод сравнения разностей.
20 О книге Путь обучения и философия этой книги Первым делом вы узнаете, как определить, что имеет место причинно-следственная проблема. Не каждый вопрос имеет причинно-следственную связь, иногда просто нужно описать происходящее или предсказать, что произойдет в будущем. Затем вы пройдете через этапы осмысления причинно-следственных вопросов, включая следующие важные идеи: „ когда нужно провести эксперимент, когда использовать причинно-следственные связи, а когда – машинное обучение; „ использование причинно-следственных диаграмм для представления происходящего в реальном мире; „ использование этих диаграмм для четкого обозначения своих целей, предположений, рисков, на которые вы идете, и что ваши данные могут и не могут вам рассказать; „ проверка наличия всей необходимой для анализа информации (переменных) и выяснение, чего не хватает; „ оценка причинно-следственных связей с использованием статис­ тических методов и методов машинного обучения. Различные стили обучения Не все обучаются одинаково: кто-то предпочитает учиться на примерах, другие заглядывают в код, а кто-то находит более ясными математические выкладки. Я включил в книгу все три аспекта. У вас может быть свой предпочтительный метод обучения, но я предлагаю выйти из зоны комфорта и попробовать другие. Если вы легко читаете и понимаете математические формулы, то попробуйте применить методы с использованием синтетических наборов данных. И наоборот, если вам больше нравится исследовать программный код, то попробуйте внимательно прочитать и осмыслить математические доказательства. Чем больше точек зрения на этот материал у вас будет, тем лучше вы его поймете. Когда я изучаю что-то новое, то следую подходу «сначала думай, потом читай». Далее я перечислю основные его положения для тех, кто захочет попробовать учиться так же, как я. „ Увидев технический термин, я стараюсь самостоятельно вспомнить его определение и только потом заглядываю в книгу. „ Если в книге утверждается какой-то факт, например о том, что искажающие факторы вызывают ложные корреляции, то я обдумываю его смысл, прежде чем прочитать объяснение. „ Когда в книге говорится о математической идее, например о линейной регрессии, я придумываю пример в голове. Благодаря этому мои мысли начинают совпадать с тем, что я читаю. Поначалу этот подход может показаться немного сложным, потому чтение движется медленнее, но он очень помогает в долгосрочной
О книге 21 перспективе. Вот почему я добавил в книгу разделы «Сначала подумай, потом читай» – они должны поощрять сначала думать. Как проверить, действительно ли вы поняли описываемую идею? „ Не спрашивайте себя, поняли ли вы идею, а спросите себя, знаете ли вы, как ее использовать. Если вы не сможете четко ответить на этот вопрос, то, вероятно, вы не до конца поняли идею. „ Если вам захочется вернуться к прочитанному тексту еще раз, то потратьте немного времени, перечитайте его и лишь потом двигайтесь дальше. „ Отличный способ убедиться, что вы что-то поняли, – объяснить это простыми словами. Поэтому в каждой главе вы найдете раздел с контрольными вопросами, которые помогут вам проверить себя. „ Еще одна хорошая проверка – способность обобщить основные идеи. Вот почему в конце каждой главы есть раздел «Итоги». А как быть, если вы на чем-то застрянете? Не торопитесь и двигайтесь постепенно, шаг за шагом. Вам некуда спешить. Развитие интуиции и освоение методологии Чтобы начать использовать причинно-следственный анализ, необходимо освоиться с его идеями и методами, а для этого нужна практика решения правильных типов задач. Развивайте свою интуицию Причинно-следственный анализ увлекателен, потому что смешивает идеи, которые кажутся как естественными, так и удивительно неожиданными. В нашей повседневной жизни мы часто думаем о причинах и следствиях. Например, мы все согласны, что если идет дождь и земля становится мокрой, то дождь является причиной сырости земли. Все просто. Однако намного сложнее понять, откуда мы знаем, что существует причинно-следственная связь. Мы просто наблюдаем, как одно событие происходит перед другим. Читая эту книгу, вы столкнетесь с идеями, которые могут оказаться вам новыми или неожиданными. Возможно, вам придется взглянуть на знакомые идеи, такие как условные вероятности, линейные модели и даже модели машинного обучения, под новым углом. Я представлю эти точки зрения с примерами и понятиями, которые легко усвоить. Однако, придерживаясь интуитивных объяснений, мы иногда пропускаем формальные детали. Не поймите меня неправильно: определения, теоремы и формулы должны быть на 100 % правильными. Неформальность не является оправданием неточностей. Однако, следуя идее Джорджа Э. П. Бокса (George E.P. Box) о том, что «все модели неверны, но некоторые полезны», эта книга фокусируется на простом объяснении полезных идей, часто с использованием метафор и упрощений.
22 О книге В данной книге вы столкнетесь с некоторой неформальностью, когда мы будем обсуждать различия между причинным анализом, машинным обучением и статистикой. Например, я могу сказать, что причинный анализ предназначен для поиска причин, а машинное обуче­ ние – для прогнозирования. Это не абсолютно точное утверждение, а скорее обобщение, которое поможет вам определить тип задачи, стоящей перед вами, и необходимые для ее решения инструменты. По мере погружения в причинно-следственный анализ вы обнаружите, что, как и в любой области знаний, существует некоторое перекрытие между предметами и подходами, а границы несколько размыты (если вас интересуют формальные основы анализа причинности, то я настоятельно рекомендую прочитать книгу Джуды Перла (Judea Pearl) «Causality»; 2000, Cambridge University Press). В этой книге примеры используются не только для объяснения идей причинно-следственного анализа, но и для демонстрации его применения. Было очень важно соблюсти баланс в количестве деталей, включенных в эти примеры. Чем примеры подробнее, тем реалис­тичнее они становятся. Но если деталей слишком много, то можно «не увидеть леса за деревьями», что сделает примеры менее полезными. Обычно я привожу простые примеры, чтобы вам было легче их понять и найти аналогии с вашей ситуацией позже. Практикуйте методологию Чтобы помочь вам освоить методы причинно-следственного анализа, помимо упражнений я часто использую повторение. Вы узнаете, как выявлять причинно-следственные связи с использованием булевых переменных, линейных моделей, различных алгоритмов, моделей машинного обучения и многого другого. Сначала может показаться, что каждая глава посвящена отдельной теме, но спустя какое-то время вы заметите, что мы часто делаем нечто похожее, просто подходим с разных сторон. В анализе причинно-следственных связей важно знать и понимать, что делать, но часто не менее важно знать, чего не нужно делать. Может быть много потенциальных причин, о которых мы даже не подозреваем. Эти не известные неизвестные жизненно важны. Помимо понимания, какие формулы следует использовать в разных ситуациях, также важно знать, когда стоит сражаться, а когда лучше отступить. Осознание того, что вы знаете, а чего нет, поможет вам избежать многих проблем. Эти знания позволят вам выбирать проекты, в которых вы с большей вероятностью добьетесь успеха. О примерах программного кода Эта книга содержит множество примеров исходного кода как в пронумерованных листингах, так и в обычном тексте. В обоих случаях исходный код оформлен моноширинным шрифтом, чтобы визуально отделить его от обычного текста.
О книге 23 Во многих случаях исходный код был дополнительно отформатирован; мы добавили разрывы строк и изменили отступы, чтобы уместить примеры по ширине книжной страницы. В некоторых примерах мы удалили комментарии из листингов, если код достаточно подробно описывается в тексте. Код в книге был создан с помощью Quarto и преобразован в файлы HTML (для R) и IPYNB (для Python). Фрагменты выполняемого кода можно загрузить на сайте https://livebook.manning.com/book/causal-inference-for-data-science. Весь код, показанный в примерах, вместе с ответами к упражнениям доступен на веб-сайте книги www.manning.com/ books/causal-inference-for-data-science и в репозитории GitHub https:// github.com/aleixrvr/CausalInference4DataScience. Живое обсуждение книги Приобретая книгу «Причинно-следственный анализ в науке о данных», вы получаете бесплатный доступ к онлайн-платформе для чтения, организованной издательством Manning Publications, где можно оставлять комментарии к книге в целом или к конкретным разделам и абзацам. Там вы можете делать заметки для себя, задавать технические вопросы и отвечать на них, а также получать помощь от автора и других пользователей. Чтобы получить доступ к форуму и зарегистрироваться на нем, откройте в веб-браузере страницу https:// livebook.manning.com/book/causal-inference-for-data-science/discussion. Узнать больше о форумах Manning и познакомиться с правилами поведения можно по адресу https://livebook.manning.com/discussion. Издательство Manning обязуется предоставить своим читателям место встречи, где может состояться содержательный диалог между отдельными читателями и между читателями и автором. Но со стороны авторов отсутствуют какие-либо обязательства уделять форуму какое-то определенное внимание – их присутствие на форуме остается добровольным (и неоплачиваемым). Мы предлагаем задавать авторам стимулирующие вопросы, чтобы их интерес не угасал! Форум и архив с предыдущими обсуждениями остается доступным на сайте издательства, пока книга продолжает издаваться.
Об авторе Алекс Руис де Вилья Роберт (Aleix Ruiz de Villa Robert) вот уже более 15 лет работает специалистом по данным. Имеет степени доктора философии по математике и магистра по финансовой математике, полученные в Автономном университете Барселоны. Был руководителем отдела науки о данных в LaVanguardia.com и SCRM (Lidl International Hub) и главным специалистом по данным в Onna. С 2019 года работает как фрилансер и занимается исследовательскими проектами и преподаванием в различных университетах и бизнес-школах. Он также консультирует стартап Nuclia. Алекс очень активен в организации открытых мероприятий, связанных с наукой о данных. Помогал управлять Barcelona R Users Group с 2011 по 2017 год, а также основал и был соорганизатором конференций Barcelona Data Science and Machine Learning с 2014 по 2021 год.
Об иллюстрации на обложке На обложке книги «Причинно-следственный анализ в науке о данных» изображена иллюстрация под названием «Гречанка», взятая из коллекции Жака Грассе де Сен-Совера, опубликованной в 1788 году. Каждая иллюстрация в коллекции тщательно прорисована и раскрашена вручную. В те дни по одежде было легко определить, где живет человек, чем занимается и какое положение занимает в обществе. Мы в издательстве Manning славим изобретательность, предприимчивость и радость компьютерного бизнеса обложками книг, изображающими богатство региональных различий многовековой давности, оживших благодаря иллюстрациям, таким как эта.

Часть I Причинно-следственный анализ и роль искажающих факторов В ероятно, вы слышали поговорку «Корреляция – это не причинно-следственная связь». Но что она означает? Помогает ли корреляция понять причинно-следственную связь? Например, у вас может появиться желание узнать, как изменение цены на товар влияет на его продажи. В этой части книги вы узнаете, что лучший способ выяснить, является ли одно явление причиной другого, – провести эксперименты. Однако не всегда есть такая возможность. Вот тут-то и вступает в игру причинно-следственный анализ. Одна из главных причин, почему простое изучение корреляций в отсутствие экспериментальных данных может не помочь (и даже увести в неправильном направлении), – это искажающие факторы (confounders). Искажающие факторы – это факторы, влияющие как на решение, которое мы оцениваем, так и на результат, который нас интересует. Они играют важную роль в причинно-следственном анализе. В главе 2 вы узнаете, насколько такие факторы могут исказить анализ и как оценить их влияние на ваше решение, устранив их с помощью формулы корректировки (adjustment formula).
28 Причинно-следственный анализ и роль искажающих факторов Глава 3 научит пользоваться графами для моделирования анализа. Графы помогут вам четко сформулировать ваши цели, изложить ваши предположения и выяснить, какие причины и следствия можно оценить на основе имеющихся данных. Наконец, в главе 4 вы узнаете, как использовать машинное обучение для получения формулы корректировки в случаях, когда имеется множество факторов, искажающих результаты.
1 Введение в причинность В этой главе: „ „ „ „ когда и почему необходим причинно-следственный анализ; как работает причинно-следственный анализ; различия между наблюдаемыми и экспериментальными данными; соответствующие статистические концепции. Во многих компаниях и организациях, использующих машинное обуче­ние, главной целью является возможность делать обоснованные предположения о том, что произойдет в будущем. Например, в больнице могут пожелать выявить группу пациентов с наибольшими рис­ ками, чтобы начать лечить их в первую очередь. Часто достаточно просто уметь делать такие предположения, а понимание сути происходящего не всегда необходимо. Причинно-следственный анализ заключается в выяснении, почему что-то происходит. Более того, речь идет о том, чтобы получить ответ на вопрос: что можно сделать, чтобы изменить результат? Например, в больнице могут пожелать понять, какие факторы вызывают определенную болезнь. Если эти факторы известны, то с целью сокращения числа заболевших можно предпринять такие шаги, как консультирование по вопросам политики общественного здравоохранения или поддержка исследований по разработке препаратов, предотвращающих заболевание. Почему причинность важна для любого, кто работает с данными? Будучи специалистами по данным или аналитиками, мы больше всего
Глава 1 Введение в причинность 30 интересуемся вопросами, связанными с пониманием причин и следствий. Мы говорим, что X обусловливает Y, если при изменении X изменяется и Y. Например, если ваша цель – удержать клиентов, то вам может быть интересно узнать, какие действия заставят их остаться. Это причинно-следственный вопрос: вы пытаетесь выяснить, что стоит за показателями удержания клиентов, чтобы вы могли их улучшить. Эта идея применима во многих областях, таких как разработка маркетинговых стратегий, установление цен, добавление новых функций в приложение, внесение изменений в организацию, внедрение новых политик и разработка лекарств. Понимание причинно-следственных связей помогает нам увидеть последствия наших решений и определить, какие факторы влияют на результаты. Спроси себя Подумайте, какие вопросы у вас возникают, когда вы смотрите на данные. Сколько из них касаются причинно-следственной связи? Подсказка: многие причинно-следственные вопросы подразумевают рассмотрение последствий решений или выявление факторов (особенно тех, которые можно изменить), влияющих на ваши результаты. Понять причинно-следственную связь непросто. Например, представьте, что вы пытаетесь выяснить, почему кто-то болеет чаще, а ктото реже. При просмотре данных вы замечаете, что люди, живущие в сельской местности, болеют чаще, чем городские жители. Означает ли это, что жизнь в сельской местности заставляет людей болеть? Если бы это было правдой, то после переезда в город вы должны бы болеть реже. Но так ли это? Жизнь в городе имеет свои проблемы, такие как загрязнение воздуха, нехватка свежей еды и стресс. Поэтому тот факт, что жители городов болеют реже, может быть связан с тем, что у городских жителей обычно более высокие доходы и они могут позволить себе лучшие лекарства, более полезную пищу и абонемент в спортзал. Если это действительно так, то переезд из деревни в город не сделает вас здоровее. Фактически без дохода, который позволит вам заботиться о здоровье или смягчить новые городские риски для здоровья, вы можете начать болеть еще чаще и сильнее. Этот пример демонстрирует распространенную проблему непонимания причины и следствия. Тот факт, что жизнь в городе и более крепкое здоровье часто идут рука об руку, вовсе не означает, что жизнь в городе делает людей более здоровыми. Именно в таких ситуациях мы часто говорим: «Корреляция – это не причинно-следственная связь». Факт совместного происхождения двух явлений не доказывает, что одно из них является причиной другого. Могут быть и другие, более важные причины, объясняющие различия, например величина дохода, как в нашем примере. Вот почему анализ причинно-следственных связей так важен для специалистов по данным: он дает инструменты для оценки причин-
31 Как работает причинно-следственный анализ но-следственных связей, т. е. помогает отличать простые совпадения (корреляции) от истинных причин (причинно-следственных связей) и позволяет определять фактические факторы, приводящие к определенным результатам. 1.1. Как работает причинно-следственный анализ Продолжим наш пример с попыткой выяснить, что вызывает определенную болезнь. Допустим, у вас есть набор данных, включающий сведения о пациентах (возраст, сколько раз лечился в больнице и другая подобная информация) и о лечении, которое они получили. Что бы вы сделали, чтобы понять, что вызывает болезнь? Давайте посмот­рим, как определить причины с помощью пяти шагов, которые обычно используются для решения причинных задач (рис. 1.1). Мы рассмот­рим эти шаги подробнее далее в этой книге. 1. Определите, какими данными вы располагаете – экспериментальными или наблюдаемыми. 2. Постарайтесь лучше понять задачу (контекст, переменные, ...). 3. Создайте модель, описывающую связи между переменными. 4. Покажите свою модель другим участникам анализа, расскажите им о целях и предположениях, чтобы получить их отклик. 5. Примените методы причинно-следственного анализа к данным и модели, чтобы ответить на вопросы о причинах: a. Укажите, какие задачи может решать ваша модель. b. Оцените причинно-следственные связи и доверительные интервалы, используя соответствующие формулы. Формула корректировки Инструментальные переменные Временные ряды Рис. 1.1. Пять шагов процесса анализа причинно-следственной связи 1.1.1. Шаг 1: определение типа данных Первое, что нужно выяснить, – это как были созданы данные. Иногда перед сбором данных можно выполнить эксперимент. Это позволяет контролировать среду, чтобы быть уверенными в том, что нас интересует. В таких случаях мы работаем с экспериментальными данными. Однако не всегда есть возможность проводить эксперименты. Например, пытаясь выяснить, как курение влияет на подростков, и зная, что
32 Глава 1 Введение в причинность курение может вызывать рак, мы не можем из этических соображений заставить подростков курить. Или если перед нами старые данные и мы не можем вернуться во времени, чтобы поставить эксперимент. Когда нет возможности провести эксперименты для получения данных, то это означает, что перед нами данные наблюдений. Эти два типа данных сильно различаются. Как правило, результаты анализа экспериментальных данных вызывают больше доверия, чем данных наблюдений. Когда нет возможности проводить эксперименты, на помощь приходит причинно-следственный анализ. Если вас волнуют причинно- следственные вопросы, но нет экспериментальных данных, значит, вам нужен причинно-следственный анализ. В нашем примере город– деревня эксперимент не проводился; мы просто собирали данные по мере их поступления. То же касается примера об определении причины некоторых заболеваний. 1.1.2. Шаг 2: изучение задачи Чтобы выяснить, что заставляет людей болеть, нужно собрать все возможные причины. Помимо основных данных, таких как возраст, пол и место жительства, также нужна история болезни пациента. Хотя поговорка «чем больше информации, тем лучше» может напомнить вам мантру из сферы больших данных (Big Data), здесь она приобретает особое значение. В машинном обучении можно строить точные прогностические модели, не имея всех переменных, но в причинно-следственном анализе пропуск релевантной переменной может привести к ошибочным выводам. Например, иногда знание о сопутствующих заболеваниях (других заболеваниях, помимо того, что интересует) может быть очень важным. Допустим, по какой-то причине у вас нет доступа к информации о сопутствующих заболеваниях пациентов. Применение причинноследственного анализа не поможет вам определить причину изучаемого заболевания. Однако вы сможете создать успешную прогностическую модель с помощью машинного обучения. Это обусловлено тем, что сопутствующие заболевания приводят к более частым визитам в больницу. Вследствие этого даже в отсутствие подробностей о сопутствующих заболеваниях пациентов у вас могут иметься сильно коррелированные данные в виде частоты визитов пациентов, которой может оказаться достаточно для машинного обучения, чтобы предсказать вероятность заболевания пациентов. 1.1.3. Шаг 3: создание модели Собрав все важные факторы, вы создаете причинно-следственную модель, которая попытается выделить истинную причинно-следственную связь путем учета потенциальных искажающих переменных, которые могут влиять как на переменные «причина», так и на переменные «следствие». Причинно-следственные модели – это концептуальные рамки, часто представленные с использованием ориентированных ациклических графов (Directed Acyclic Graph, DAG), которые визуально отображают причинно-следственные связи между переменными,
Как работает причинно-следственный анализ 33 включая потенциальные промежуточные переменные и искажающие факторы. В причинном графе переменные представлены в виде узлов, а причинно-следственные связи между ними – в виде стрелок. В главе 3 мы детальнее рассмотрим причинное моделирование с помощью DAG и будем использовать его на протяжении большей части этой книги. Другой подход к причинному моделированию – использование уравнений, о которых мы поговорим в главе 10. Вы можете создавать простые модели с небольшим количеством факторов и допущений. Но если модель слишком проста, она может плохо отражать реальный мир и не поможет вам делать точные прог­ нозы. С другой стороны, со сложными моделями трудно обращаться с точки зрения математических формул, вычислительных методов или проверки соответствия сложных предположений действительности. В конце концов, лучший способ узнать, достаточно ли хороша ваша модель, – это определить ее полезность для вашей цели. Например, если модель создается для личного приложения поиска объектов на фотографиях, то некоторые ошибки могут быть допустимы. Но если модель предназначена для использования в беспилотном автомобиле, то небольшая ошибка может привести к аварии. В последнем случае модель должна быть сверхточной, чтобы быть полезной. 1.1.4. Шаг 4: представление модели другим Ваша модель основывается на определенных допущениях и ясной цели (обычно для оценки причинно-следственных связей). Очень важно доходчиво описать эти предположения и цели и вступить в диалог с экспертами и другими участниками анализа. Этот шаг жизненно важен, поскольку вы можете упустить из виду важные переменные или неправильно понять, как они связаны. В нашем примере вы можете показать модель врачам и биологам, чтобы узнать их мнение. Общение с другими людьми – хорошая практика, которая помогает задавать правильные вопросы, согласовывать общие цели и точно определять возможные переменные и их взаимосвязи. Такой процесс сотрудничества помогает свести к минимуму «слепые зоны» и повысить надежность анализа. 1.1.5. Шаг 5: применение методов причинноследственного анализа На этом заключительном этапе наступает пора применить методы причинно-следственного анализа к набору данных и использовать модель для получения ответов на причинные вопросы. Помните, что наличие корреляции между двумя переменными не всегда говорит о том, что одна из них является причиной другой. Часто корреляция в отсутствие прямой причинно-следственной связи обусловлена некоторым третьим фактором, который влияет на обе переменные. Такие третьи факторы называют искажающими факторами (confounders), и мы более детально разберем их в этой главе.
34 Глава 1 Введение в причинность Неформально говоря, в причинном анализе наличие искажающих факторов является корнем всех зол, поскольку они могут приводить к ошибочным выводам. К счастью, причинный анализ предоставляет набор формул, алгоритмов и методологий для их учета и включает ряд шагов: 1 Спросите себя, на какие вопросы позволяет ответить имеющаяся у вас информация, и выясните, на какие из ваших причинных вопросов можно ответить, используя вашу модель и ваши данные. Иногда недостаток информации об искажающих факторах может превратиться в проблему. Определите, какие недостатки можно преодолеть, и рассмотрите альтернативные решения для устранения других, такие как сбор новых данных или поиск суррогатных переменных. 2 Проведите границу между корреляцией и причинно-следственной связью, используя ваши данные для оценки причинно-следственного влияния. Это делается с помощью определенного набора формул. Большая часть нашей книги посвящена объяснению, как, когда и почему следует использовать эти формулы, как выбирать подходящие формулы для различных видов задач и как эффективно применять их с использованием статистических методов и методов машинного обучения. В этой книге мы рассмотрим три разных метода оценки причинноследственных связей и обсудим, когда и как их применять. „ Формула корректировки. Формула корректировки – это математическая формула, разработанная для устранения искажающих факторов, которые могут повлиять на решение. Обсуждение этой формулы и ее применения занимает большую часть данной книги. Основная формула объясняется в главе 2, а ее вариации – в главах 4–8. „ Инструментальные переменные. Некоторые методы используют дополнительную переменную, называемую инструментом. Эти переменные не связаны ни с какими искажающими факторами и напрямую влияют только на обработку, а не на результат. Они служат независимыми источниками вариации. Существует много версий этого метода, но в этой книге, в главе 10, мы рассмотрим только его базовую форму. „ Методы временных рядов. Эти методы были открыты эконометристами и хорошо подходят для данных временных рядов. К ним относятся сравнение разностей (differences in differences), модели разрывной регрессии и синтетический контроль. Как и метод инструментальных переменных, этот тоже имеет множест­во вариантов. В этой книге, в главе 11, мы рассмотрим только варианты, применимые к временным рядам. Помимо оценки причинно-следственных связей, также необходимо рассчитать доверительные интервалы, как описано в главе 8. Для оценки доверительных интервалов существуют общие методы, такие
Различия между причинно-следственными моделями и прогностическими... 35 как бутстрэппинг, а также специальные методы для каждого из трех методов, часто включаемые в соответствующие пакеты программного обеспечения. Как я уже отмечал, существует два подхода к проведению причинного анализа. Первый, популяризированный Джудой Перлом, лауреатом премии Тьюринга, использует ориентированные ациклические графы (DAG). Второй основан на потенциальных результатах (potential outcomes, PO). Этот подход ближе к статистике и эконометрике и был разработан и популяризирован Дональдом Рубином (Donald Rubin), Джеймсом Робинсом (James Robins), Гвидо Имбенсом (Guido Imbens) и лауреатом Нобелевской премии Джошуа Энгристом (Joshua Angrist). В первой и второй частях этой книги мы будем использовать язык DAG, а в третьей части – работать с PO. Каждый подход использует разные обозначения и базовые концепции, но по своей сути они схожи. Оба дают одинаковые результаты для многих задач, но иногда тот или другой может оказаться более подходящим. 1.2. Различия между причинно-следственными моделями и прогностическими моделями машинного обучения Основной принцип, которым руководствуется эта книга, прост: чем понятнее инструменты анализа причинно-следственных связей и контекст задачи, тем надежнее будут результаты причинного анализа. Свою цель я вижу в том, чтобы вооружить вас прочными знаниями, чтобы вы могли уверенно применять причинный анализ в повседневной работе. Поэтому мы углубимся в математику, алгоритмы и статис­ тические расчеты. Если вы пришли из мира машинного обучения, то поначалу эти детали могут показаться вам немного ошеломляющими, и вы зададитесь вопросом: зачем их изучать? В некотором смысле причинный анализ ближе к статистике, чем машинное обучение. Проще говоря, теоретические основы причинно-следственного анализа необходимо знать, потому что в отличие от прогностических моделей машинного обучения трудно определить, точны ли причинно-следственные выводы. Поэтому для оценки своих выводов специалистам по причинно-следственному анализу необходимо более глубоко понимать происходящее в их моделях. Например, для построения успешных моделей прогностического машинного обучения знание тонкостей проектирования моделей или предметной области не является обязательным условием. Конкурс Kaggle можно выиграть, не имея вообще никаких знаний предметной области. Аналогично для создания успешных прогностических моделей можно использовать метод опорных векторов (support vector machines, SVM), не понимая сложной математики, лежащей в его основе. Можно создавать очень точные текстовые классификаторы, используя наборы векторных представлений, не зная, как эти представ-
Глава 1 Введение в причинность 36 ления создаются. Можно даже обучать надежные нейронные сети, не понимая математических различий между различными стратегиями градиентного спуска. Конечно, создание надежного продукта на основе прогностической модели требует понимания особенностей работы этой модели. Без этого понимания ваша модель может страдать предвзятостью или, в более серьезных случаях, нанести вред обществу. Вот почему мы заботимся о справедливости и объяснимости в машинном обучении – они помогают решать эти проблемы и обеспечивать ответственное и этичное использование технологии. В отличие от прогностического моделирования, причинный анализ требует четкого понимания четырех ключевых областей проблемы, перечисленных ниже. „ Определения – такие концепции, как ложные корреляции, искажающие факторы, вмешательства и т. д., сложны, но отражают аспекты реальности. Без их четкого понимания ваши причинноследственные модели могут получаться некорректными. „ Предположения – выбор конкретных методов для применения основан на предположениях. В этой книге многие предположения изначально заложены в направленный ациклический граф (DAG). „ Риски и ограничения – понимание, что можно вывести из данных, а что нельзя, а также понимание последствий упущения соответствующей переменной имеет огромное значение в причинном анализе. Эти соображения могут существенно повлиять на выводы. „ Цели – четкое определение того, что оценивается, имеет большое значение. Определение целей помогает направлять процесс причинного анализа. Давайте проиллюстрируем эту разницу между двумя типами моделей на примере. Закончив строительство дома, вы можете осмотреть получившийся результат и убедиться, что каждая деталь (стены, потолки, двери) соответствует планам, составленным архитектором. Так можно узнать, правильно ли построен дом. Аналогично в машинном обучении можно узнать, будет ли обученная модель работать в соответствии с ожиданиями, опробовав ее на тестовом наборе данных с использованием перекрестной проверки. По сути, как только модель будет завершена, предполагая, что будущие данные ведут себя аналогично прошлым, вы сможете оценить, насколько хорошо ваша модель будет работать. Но предположим, что вы хотите убедиться, что ваш дом выдержит землетрясения. Как оценить устойчивость дома к землетрясениям? Это причинно-следственный вопрос (какое влияние землетрясение окажет на структурную целостность дома?), требующий причинноследственного подхода. Ждать настоящего землетрясения непрактично, поэтому вы изучаете другие способы повысить свою уверенность. „ Определение правильного процесса строительства сейсмостойких зданий – вы полагаетесь на теорию влияния землетрясений на здания и строите свой дом в соответствии с этой теорией. Это
Экспериментальные исследования 37 гарантирует, что полученный дом будет построен правильно, поскольку вы тщательно контролируете каждый шаг процесса строи­тельства. „ Моделирование сценариев – если теория не идеальна или нужна дополнительная уверенность, то можно создать модель и сымитировать небольшие землетрясения, чтобы понаблюдать за реакцией вашего дома. В причинно-следственном анализе это сравнимо с созданием синтетических данных для проверки эффективности метода, который планируется использовать. Использование правильных процессов строительства и моделирование сценариев повышают уверенность, но они не являются окончательными решениями. Даже если ваши выводы верны, если вы им не доверяете, вы не будете действовать в соответствии со своими выводами. Вы можете задаться вопросом, есть ли такой инструмент, как перекрестная проверка, для задач причинного анализа. К сожалению, как отмечается далее в книге, такого инструмента не существует. Единственный способ узнать, верны ли ваши выводы, – это проверить их в реальном мире или провести эксперимент, например A/Bтестирование или рандомизированное контролируемое испытание. По сути, цель причинно-следственного анализа – понять, что произойдет в сценарии, отличном от того, что произошло на самом деле, – означает, что без тестирования достигнуть 100%-ной уверенности в точности ваших выводов практически невозможно. 1.3. Экспериментальные исследования Как мы уже говорили, наличие экспериментальных данных определяет необходимость причинно-следственного анализа. В этом разделе мы познакомимся с A/B-тестированием, также известным как рандомизированные контролируемые испытания (randomized controlled trials, RCT), и выясним, почему этот вид тестирования считается золотым стандартом для установления причинно-следственных связей. Несмотря на то что эта книга не фокусируется на них, многие методы причинно-следственного анализа пытаются имитировать то же, что и A/B-тестирование. Вот почему важно его понимать. 1.3.1. Мотивирующий пример: развертывание нового веб-сайта Представьте, что вы работаете в онлайн-бизнесе, например в элект­ ронной коммерции. Веб-сайт имеет решающее значение для вашей компании, поскольку качественный сайт дает пользователям чувство комфорта и способствует увеличению числа продаж. За последние два года было собрано множество отзывов постоянных клиентов, в которых они рассказали, что им не нравится в сайте, поэтому вы имеете четкое представление о том, что нужно улучшить. Компания решает переделать веб-сайт и добавить в него все новые функции, о которых просили клиенты. Через шесть месяцев напряженной работы ITотдела обновленный веб-сайт был запущен.
38 Глава 1 Введение в причинность Теперь вы начинаете сомневаться: имело ли смысл прикладывать такие усилия? Увеличил ли новый веб-сайт вовлеченность пользователей и продажи? Вы основывали необходимость обновления на отзывах самых лояльных клиентов, которые казались надежными. Но то, что нравится одной группе клиентов, может не понравиться остальным. У ваших постоянных клиентов особые потребности, и они не могут представлять большинство ваших пользователей. Поэтому вы понимаете, что важно проверить показатели веб-сайта, чтобы определить успешность новой версии. Через месяц наблюдений вы просматриваете данные и видите график изменения посещений веб-сайта с течением времени (рис. 1.2). На первый взгляд кажется, что веб-сайт терял клиентов до запуска новой версии, а после ее внедрения число посещений начало расти. Похоже, что ваши усилия окупились! Число посещений (тысяч) посещения версия новая старая дни Рис. 1.2. Сравнение трафика веб-сайта до и после запуска новой версии. Ваша цель – выяснить, помогло ли обновление сайта привлечь большее количество посетителей Вы запустили новый веб-сайт сразу после праздника и понимаете, что это может быть причиной первоначального падения и последующего роста посещений сайта. Спад может быть простым следствием праздничного затишья, а подъем – обычным послепраздничным
Экспериментальные исследования 39 всплеском, не обязательно вызванным внедрением новых функций. Но у вас есть предчувствие, что без обновления сайта этот прирост мог быть меньше. Чтобы по-настоящему понять эффект от переделки сайта, вы решаете сравнить текущее число посетителей с тем же перио­дом прошлого года. Но сложности не заканчиваются учетом сезонности. На трафик сайта могут влиять и другие факторы. Например, немалую роль в привлечении дополнительных посетителей могла сыграть недавняя маркетинговая кампания. Это предполагает, что для оценки успешности нового веб-сайта нужно учесть множество разных потенциальных влия­ний, а не только время его запуска. Сначала подумай, потом читай Какие еще факторы могут влиять на количество посещений? На цифры может влиять не только сезонность, но и другие факторы: „ „ „ „ „ посещаемость сайта могла увеличить маркетинговая кампания; возможно, ваши конкуренты совершили ошибку, и их клиенты ушли к вам; на доверие клиентов и удобство использования веб-сайта могли повлиять новые правила (например, Общий регламент по защите данных [General Data Protection Regulation, GDPR]); большое значение могут иметь успешные новые сотрудники; общая социально-экономическая ситуация могла улучшиться по сравнению с прошлым годом. Чем больше вы углубляетесь, тем очевиднее становится, насколько сложно оценить эффект нового веб-сайта. Чтобы по-настоящему сравнить новый сайт со старым, в идеале необходимо одно из двух условий. Первое – очень стабильная среда, где все, кроме веб-сайта, осталось таким же, как в прошлом году, – сценарий. Такой сценарий редко встречается в нашем переменчивом мире. Второе – выявление и учет всех возможных факторов, способных повлиять на посещаемость сайта, включая те, о которых вы можете даже не подозревать. Например, ваш конкурент мог внести значительные изменения у себя, косвенно повлиявшие на ваш трафик, но вы не можете точно определить, что именно они сделали. А кроме того, есть неизвестные факторы – переменные, которые влияют на трафик вашего сайта, но о которых вы не знаете. Эти неизвестные особенно сложны. Учитывая сложность воспроизведения любого из этих идеальных сценариев, возникает вопрос: есть ли другой способ уверенно определить, является ли новый веб-сайт успешным? Эта задача подчеркивает сложность причинного анализа связи в реальных условиях, где конт­роль или даже идентификация всех переменных часто невозможны.
40 Глава 1 Введение в причинность 1.3.2. A/B-тестирование Самый эффективный способ решения проблем, описанных выше, – провести A/B-тестирование: особый вид эксперимента, призванный обеспечить необходимую ясность. Однако перед погружением в A/Bтестирование важно понять, какие события вызываются теми или иными другими событиями. Такое понимание помогает оценить, как с помощью A/B-тестирования изолировать влияние изменения одной переменной (например, дизайна веб-сайта) на результат (например, количество посещений или продаж) и получить более ясную картину причины и следствия. Развивайте интуицию Наша главная цель – выяснить, какая из двух версий наберет больше посещений. Для этого мы сначала рассмотрим сложности изучения данных из рис. 1.2. Затем разберем различные решения и будем улучшать их шаг за шагом. Этот процесс естественным образом приведет нас к объяснению сути A/B-тестирования. Обычно мы считаем, что X является причиной Y, если изменение X приводит к изменению Y. В нашем сценарии X – это версия веб-сайта, а Y – количество его посещений. Чтобы эмпирически измерить влияние X на Y, исходя из этого определения, нам нужно изменить X и посмотреть, изменится ли Y. Но проблема в том, что изменение X не должно сопровождаться изменением других факторов, которые могут повлиять на Y. Например, если новый веб-сайт запускается одновременно с новой маркетинговой кампанией, то будет трудно понять, связано изменение Y с изменением веб-сайта или с проведением кампании. В идеальном мире для точной оценки влияния нового дизайна вебсайта на количество посещений достаточно создать две идентичные вселенные: одну со старым веб-сайтом и одну с новым. Тогда любую разницу в посещениях можно напрямую отнести к версии веб-сайта. К сожалению, создание таких параллельных вселенных невозможно, поэтому вам придется искать другой подход. Вообще говоря, на количество посещений веб-сайта в любой момент времени могут влиять два основных фактора: окружающая среда (или контекст) и тип посетителей. Для справедливого сравнения старой и новой версий веб-сайта желательно, чтобы эти факторы были одинаковыми для обеих версий, насколько это возможно. Один из способов гарантировать одинаковые условия для обеих версий – провести эксперимент, в котором оба веб-сайта будут работать одновременно. В этом случае любые внешние изменения, такие как новые законы или конкурентные стратегии, будут одинаково влиять на обе версии. Следующая сложность состоит в том, чтобы решить, какие пользователи увидят ту или иную версию веб-сайта. Технически пользо-
Экспериментальные исследования 41 вателей можно идентифицировать с помощью файлов cookie, что позволит переадресовывать их к определенной версии сайта. С точки зрения бизнеса может показаться логичным направлять самых частых посетителей на новый сайт, поскольку именно их отзывы послужили толчком к изменениям. Такое условие выглядит более разум­ным для бизнеса, но усложняет эксперимент. Если только частые пользователи увидят новую версию, то будет трудно сказать, связано изменение общего количества посещений с улучшениями веб-сайта или оно обусловлено тем, что эти конкретные пользователи более склонны посещать его чаще. Это критически важный момент: какую бы характеристику вы ни использовали для оценки версий веб-сайта, результаты вашего эксперимента все равно будут вызывать сомнения. Вам придется от- ветить на вопрос о том, действительно ли изменения в количестве посещений вызваны модификациями веб-сайта или они являются результатом определенного поведения выбранной вами группы пользователей. Единственный способ гарантировать, что ваш выбор не внесет никакой предвзятости, – выбирать пользователей случайно, наугад. Представьте, что для каждого человека (напомню, что по нашим условиям каждый имеет уникальный идентификатор) проводится виртуальное подбрасывание монеты и выбирается версия сайта, к какой его направить, – A или B. Выбранная версия связывается с идентификатором пользователя, и при следующем посещении пользователь будет направлен к той же версии, т. е. версии не будут меняться при каждом следующем посещении. Эта процедура гарантирует, что при большом количестве пользователей группы A и B будут иметь одинаковое распределение характеристик населения, и такие параметры, как частота посещения ими вашего сайта, возраст, место жительства и другие важные детали, которые могут влиять на посещаемость сайта, будут равномерно распределены между двумя группами. A/B-тестирование – это эксперимент по тестированию двух разных вариантов, A и B, чтобы увидеть, какой из них лучше подходит для конкретной цели. Оба варианта тестируются одновременно, и пользователям случайным образом назначается вариант A или B без учета их личных качеств. Этот метод гарантирует тестирование обоих вариантов в одинаковых условиях, и если у вас достаточно большое число пользователей, то обе группы будут схожи с точки зрения важных характеристик людей, которые посещают ваш веб-сайт. 1.3.3. Рандомизированные контролируемые исследования A/B-тестирование известно уже очень давно. В здравоохранении A/B-тестирование называется рандомизированные контролируемые исследования (randomized controlled trials, RCT) и используется уже сотни лет. Самый ранний из известных нам случаев тестирования имел место в 1747 году, когда Джеймс Линд (James Lind) искал способ лечения цинги.
42 Глава 1 Введение в причинность Основная идея та же самая. Предположим, у вас есть новый способ лечения, который, по вашему мнению, может вылечить опреде- ленную болезнь. Вы хотите проверить, так ли это. С этой целью вы создаете две группы: одна (экспериментальная, или интервенционная, группа) получает новое лекарство, а другая (контрольная группа) получает что-то еще для сравнения, например старое лекарство или плацебо (вещество под видом лекарства, которое не оказывает влияния на болезнь). Это – группы A и B. Важно, чтобы люди не назначались ни в одну из групп на основе таких факторов, как возраст, потому что тогда вы не узнаете, сработало лечение само по себе или из-за конкретных особенностей включенных в нее людей. Поэтому назначение лечения производится случайным образом, как в A/Bтестировании. Официально A/B-тестирование считается разновидностью RCT. Но вообще термин RCT используется в основном в здравоохранении, а термин A/B-тестирование – в разного рода компаниях, особенно осуществляющих свою деятельность в интернете. В этой книге оба термина будут использоваться для обозначения одного и того же: у нас есть лечение или решение, которое нужно принять, и мы хотим увидеть, как это повлияет на конкретный результат. 1.3.4. Шаги проведения A/B-тестирования Метод проведения A/B-тестирования похож на научный метод: сначала выдвигается гипотеза, а затем проводится эксперимент, чтобы проверить ее истинность. Для более подробных объяснений ознакомьтесь с разделом «Дополнительная литература». Здесь мы просто приводим краткий обзор. Шаг 1: гипотеза и план эксперимента Эксперимент начинается с выдвижения гипотезы, которая должна описывать интересующую вас причинно-следственную связь между лечением или решением и желаемым результатом. Например, если вы придумали новый способ лечения болезни, то первоначальная гипотеза может заключаться в утверждении, что этот новый метод работает так же хорошо, как и старый (то есть новый метод не обязательно лучше). Согласно этому предположению, применение нового метода не даст никаких дополнительных преимуществ. Однако если новый способ лечения действительно лучше, то эксперимент должен предоставить доказательства, чтобы опровергнуть эту гипотезу. После формулирования гипотезы планируется эксперимент. План эксперимента может значительно различаться, особенно между A/Bтестированием веб-сайтов и RCT новых медицинских методов лечения. RCT, как правило, более сложны, потому что имеют дело со здоровьем людей (что подразумевает соблюдение множества правил и международных стандартов и уважение конфиденциальности). Они также должны учитывать психологические эффекты использования плацебо и поиск добровольцев для исследования. С другой стороны,
Экспериментальные исследования 43 A/B-тестирование цифровых платформ может быть проще, так как при этом этические проблемы обычно отсутствуют, и пользователи могут участвовать в тестировании, даже не осознавая этого. Шаг 2: исполнение Проводя эксперимент, будьте очень осторожны, чтобы не допустить никаких ошибок, особенно в процессе рандомизации, потому что ошибки могут привести к неверным выводам. Шаг 3: анализ После завершения эксперимента вы получаете данные, показывающие, как отреагировала каждая группа. Например, вы можете обнаружить, что новый метод излечивает 80 % пациентов, а старый – только 70 %. В упрощенном виде эти данные могли бы выглядеть так: „ старый метод лечения: 1, 0, 0, 1, 1, 1, 1, 0, 1, 1; „ новый метод лечения: 1, 1, 1, 0, 1, 1, 1, 1, 1, 0. Здесь «1» означает излечение пациента, а «0» – нет. При необходимости можно проанализировать и другие результаты. Теперь главный вопрос: «Действительно ли новое лечение лучше старого?» С показателем выздоровления на 10 % выше кажется, что так оно и есть. Разница в средних результатах между двумя группами известна как средний лечебный эффект (average treatment effect, ATE). Он говорит нам, насколько эффективнее один метод лечения по сравнению с другим. ATE очень важен для причинно-следственной связи и будет подробно рассматриваться в главе 2. Важная интерпретация Поскольку люди по группам распределяются случайным образом, то при достаточно большой выборке обе группы будут иметь схожие характеристики, такие как возраст, пол и т. д. Это означает: вычисляя средний результат для группы, вы оцениваете, что произойдет, если все получат это лечение. Таким образом, вычисление ATE – это оценка разницы в эффективности нового и старого способов лечения, если бы они были применены ко всей популяции. Следующий вопрос после вычисления ATE: «Если провести эксперимент снова тем же способом, то получатся ли те же результаты?» Ответ «Нет» в таком случае означает, что результатам нельзя доверять. На самом деле нельзя ожидать получить те же результаты при повторении эксперимента. Каждый раз, когда проводится эксперимент, ситуация у каждого участника может немного меняться, что может повлиять на результаты. Это заставляет задуматься, какое количество результатов обусловлено случайностью. Отделение сигнала от шума является ключевой частью статистики. Обычно случайность A/B-тестирования анализируется с помощью проверки гипотез и p-значений, но некоторые предпочитают байесовскую проверку
44 Глава 1 Введение в причинность гипотез. Мы не будем здесь погружаться в эти методы, а желающие смогут найти дополнительную информацию в разделе «Дополнительная литература». Важно отметить, что RCT и A/B-тестирование могут сказать нам, приводят ли два варианта к разным результатам, но они не объясняют причин этого. Например, если новый дизайн веб-сайта имеет много изменений по сравнению со старым и наблюдается разница в количест­ве посещений, то вы не сможете точно сказать, какое конкретное изменение привело к этой разнице. С другой стороны, если ваш тест изменяет что-то незначительное и это не оказывает большого эффекта, то вам может понадобиться действительно большая группа людей, чтобы заметить разницу. Поэтому важно найти хороший баланс. Контрольная точка Давайте подчеркнем, насколько важны A/B-тестирование или RCT для установления причинно-следственной связи со статистической достоверностью. Это самый надежный метод подтверждения причинно-следственной связи. Если вы в этом сомневаетесь, то прочитайте еще раз раздел 1.3.2. Выполняя каждый шаг, подумайте, что можно было бы сделать иначе. Запишите свои вопросы и размышления, чтобы при чтении следующих разделов увидеть, прояснятся ли они. 1.3.5. Ограничения A/B-тестирования и RCT A/B-тестирование и RCT являются золотым стандартом для обнаружения причинно-следственной связи: по возможности старайтесь всегда проводить A/B-тестирование или RCT. Однако, как и любые инструменты, они также имеют свои ограничения. Ниже перечислены некоторые ситуации, когда A/B-тестирование или RCT невозможны и вместо них можно использовать причинно-следственный анализ. „ Экспериментирование невозможно. Например, если вы хотите узнать, как новый продукт вашего конкурента повлиял на ваши продажи, то можно, скрестив пальцы на удачу, попросить конкурентов сообщить вам статистику своих продаж. „ Экспериментировать неэтично. Если вы хотите узнать, вызывает ли курение рак у детей, то было бы неэтично заставлять курить детей в экспериментальной группе. „ Экспериментирование сопряжено со значительными затратами времени или средств. Чтобы узнать наверняка, имеет ли лечение долгосрочные побочные эффекты, эксперимент должен проводиться длительное время. „ Недостаток внешней валидности. Обычно для проведения RCT необходимо набирать людей-добровольцев. Добровольцы могут иметь личную заинтересованность к участию в эксперименте (деньги, возможное выздоровление и т. д.). Поэтому выборка может получиться нерепрезентативной. В этом случае мы говорим, что недостает внешней валидности.
Наблюдательные исследования 45 Вопрос Какие эксперименты вы могли бы провести в своей организации для выявления интересующих вас причинно-следственных связей? Как бы вы их спроектировали? Подсказка: попробуйте спроектировать эксперименты, связанные с ответами, которые вы дали в этой главе. 1.4. Наблюдательные исследования Эксперименты – хорошая штука, потому что ясно показывают причинно-следственную связь между двумя переменными. Но не всегда есть возможность проводить эксперименты. Когда такая возможность отсутствует, вы попадаете в область наблюдаемых данных: данных, которые не были получены с помощью A/B-тестирования или RCT. В этом разделе рассказывается о том, что может пойти не так без A/Bтестирования. Наблюдаемые данные обычно охватывают большую часть данных, с которыми мы работаем. Спроси себя Какие виды наблюдаемых данных использует ваша организация? Вот некоторые примеры наблюдаемых данных: „ база данных клиентов, которая связывает маркетинговые компании с реакцией клиентов; „ отслеживание изменений продаж на основе решений, принимаемых компанией; „ данные о том, как разные страны справились с COVID-19, и последствиях распространения вируса. Как правило, большинство данных используются для оценки социальной политики без проведения экспериментов. Мы привыкли делать выводы из наблюдаемых данных (иногда правильные, иногда не очень). Далее мы рассмотрим, почему с наблюдаемыми данными может быть сложно работать. Когда нужен причинный анализ? Причинный анализ необходим, когда приходится принимать решения на основе наблюдаемых данных. Если вы продолжите погружение в сферу причинного анализа, то в какой-то момент обнаружите, что этот вид анализа также помогает извлечь информацию из результатов RCT или A/B-тестирования, которую нельзя извлечь иным способом. Однако для простоты мы сначала рассмотрим применение причинного анализа только к наблюдаемым данным.
Глава 1 Введение в причинность 46 Как уже упоминалось, «корреляция – это не причинно-следственная связь». Это известное высказывание в статистике. Здесь под корреляцией понимается не математическая формула, а тот факт, что два явления происходят вместе. Но насколько обманчивой она может быть? Рассмотрим диаграмму (рис. 1.3), показывающую связь между доходом от игровых автоматов и количеством присуждений степени доктора философии в области информатики. Математическая корреляция между этими показателями очень высокая и равна 0,98. Это может создать впечатление, что одно является причиной другого. Но если подумать, то нетрудно понять, что эта идея не имеет смысла. Общий доход, полученный от игровых автоматов коррелирует с Количеством присуждений степени доктора философии в области информатики в США 2000 присуждений $2 млрд 1500 присуждений $1.75 млрд $1.5 млрд 1000 присуждений $1.25 млрд 500 присуждений $1 млрд Доход от игровых автоматов Присуждения докторской степени в области информатики Доход от игровых автоматов Корреляция: 98.51 % (r = 0.985065) Присуждения докторской степени в области информатики Рис. 1.3. Связь между доходами от игровых автоматов и количеством присуждений степени доктора философии в области информатики. Между этими показателями существует сильная корреляция, но это не является доказательством наличия причинно-следственной связи. Источник: www.tylervigen.com/spurious-correlations И еще Посетите замечательную веб-страницу Spurious Corrections (www. tylervigen.com/spurious-correlations) Тайлера Вигена (Tyler Vigen), где приводятся примеры необычных корреляций. В некоторых случаях можно дать правдоподобное объяснение наблюдаемой корреляции, но есть и такие, которые явно не имеют смысла. Наличие корреляции между двумя явлениями не означает, что одно из них является причиной другого. Но почему они коррелируют? Обычно этому есть причина! Часто корреляция обусловлена влиянием общей причины. Например, рост доходов от игровых автоматов и количества докторов философии в области информатики можно объяснить ростом численности населения. Чем больше людей, тем больше клиентов игровых автоматов и больше студентов, получающих высшее образование.
47 Наблюдательные исследования Люди часто думают, что если два явления происходят вместе, то у них должна быть общая причина. Это не всегда так, но иногда такой подход может быть полезен. Идею общей причины, влияющей на оба явления, можно показать с помощью графика, например как на рис. 1.4. Рис. 1.4. Доходы от игровых автоматов и количест­ во присуждений степени доктора философии в информатике растут с ростом населения, поэтому население является потенциальной общей причиной этих двух явлений Население Доходы Докторские степени Можно сказать, что простого наличия корреляции недостаточно, чтобы говорить о причине и следствии. Это объясняется тем, что причинность имеет направление. Например, когда вы зажигаете огонь на газовой плите со стоящей на ней кастрюлей с водой, то понимаете, что огонь заставит воду вскипеть. В причинно-следственном анализе мы выражаем это так: огонь → кипение. Эта связь не работает в обратном направлении, она не симметрична. Очевидно, что кипение воды, например в микроволновке, не зажжет огонь на плите. Поэтому хотя корреляция рассматривает два явления так, будто они могут влиять друг на друга в равной степени (corr(x, y) = corr(y, x)), причинно-следственная связь так не работает. Корреляция слепа относительно причинно-следственной направленности. 1.4.1. Моделирование синтетических данных В предыдущем разделе вы узнали, что фактор может связывать другие факторы вместе. В этом есть определенный смысл, не так ли? Но можно ли проверить верность этой идеи? Конечно. Для этого можно создать синтетические наборы данных и опробовать на них свои идеи. Мы воспользуемся выдуманными данными, чтобы показать, как два явления могут казаться связанными, когда на самом деле это не так. Давайте создадим число, отражающее численность населения США, и назовем его population. Затем создадим две новые переменные, revenue и doctorates. Их значения будут основаны только на population, без учета какой-либо информации друг о друге. В конце вы заметите, что doctorates и revenue выглядят так, как будто они связаны. Это пример так называемой ложной корреляции. Код в листингах 1.1 и 1.2 показывает, что корреляция между doctorates и revenue составляет 0,95. Этот пример не доказывает, что численность населения является фактической причиной связи между доходами от игровых автоматов и количеством присвоений степени доктора философии в информатике. Он просто предполагает, что причиной связи может быть третий фактор, такой как численность населения, влияющий и на доходы, и на количество докторов философии.
Глава 1 Введение в причинность 48 Листинг 1.1. (R) Создание синтетического набора данных с ложными корреляциями set.seed(1234) time <- 2000:2009 В миллионах population <- 280 + 3 * (time - 2000) + человек rnorm(n=length(time), sd=0.1) revenue <- 1.25 + (population - 280) * 0.015 + В миллиардах долларов rnorm(n=length(time), sd=0.05) ) doctorates <- 700 + (population - 280) * 30 + rnorm(n=length(time), sd=10) В единицах cor(doctorates, revenue) человек Листинг 1.2. (Python) Создание синтетического набора данных с ложными корреляциями from numpy.random import uniform, seed, normal from numpy import arange, corrcoef import pandas as pd seed(1234) time = arange(2000, 2010) В миллионах population = 280 + 3 * (time - 2000) + \ человек normal(size=len(time), scale=0.1) В миллиардах revenue = 1.25 + (population - 280) * 0.015 + \ долларов normal(size=len(time), scale=0.05) doctorates = 700 + (population - 280) * 30 + \ normal(size=len(time), scale=10) В единицах corrcoef(doctorates, revenue)[0][1] человек В этой книге мы будем использовать много синтетических наборов данных. Причина в том, что когда мы работаем с данными как аналитики, наша главная цель – создать модель реального мира. Есть процесс, который создает данные, например законы физики или реальные явления. Мы пытаемся выяснить, как работает реальность, на основе имеющихся у нас данных. Но вот в чем загвоздка: у нас нет прямого способа увидеть эти правила. Мы можем только догадываться о них на основе данных и экспериментов. Поэтому, даже хорошо потрудившись, мы не можем быть уверены, что наши выводы в точности соответствуют происходящему в реальности. Всегда есть некоторая неопределенность. На рис. 1.5 показано, как мы используем данные для представления реальности.
Наблюдательные исследования Реальность Генерирование данных Анализ данных 49 Данные Рис. 1.5. Стандартные шаги в анализе данных: мы собираем некоторые данные, генерируемые средой. Процесс генерации данных скрыт. Наша цель – изучить эти данные и выяснить, как в действительности работает процесс. Рассматривайте это как разновидность реверс-инжиниринга Когда мы изучаем новую тему, нам важно знать, делаем ли мы это правильно. В нашем случае при работе с реальными данными, как уже отмечалось выше, мы не всегда можем быть уверены в правильности наших результатов. Нам нужен процесс для проверки нашей методологии. Вот как можно решить эту проблему: вместо использования реальных данных мы создаем синтетические данные, а затем используем методы, которые, по нашему мнению, лучше всего подходят для их анализа. Мы точно знаем, как создавались эти данные, а это все равно, что знать «истину» или правильные ответы. Это помогает нам увериться в точности наших выводов. Сравните это с обучением плаванию. Сначала вы учитесь в безопасном мелком бассейне, где можно коснуться дна. Это похоже на анализ данных, когда заранее известны правильные ответы. Получив основные навыки и закрепив их в безопасной среде, вы сможете перемес­ титься в более сложные условия, например начать плавать в открытом море. Это похоже на анализ реальных данных, когда правильные ответы заранее неизвестны. 1.4.2. Причинно-следственные связи при наличии искажающих факторов В этом разделе представлен базовый граф, который вы часто будете видеть в данной книге. Разберем простейший пример, требующий причинно-следственного анализа: оценку влияния одной переменной на другую при общем влиянии на них третьей переменной. Этот третий фактор может создавать ложные корреляции между переменными, запутывать общую картину и приводить к классической проблеме «корреляция – это не причинно-следственная связь». Первый большой шаг в этой книге – научиться выделять это смещение, называемое смещением искажающего фактора, с помощью так называемой формулы корректировки, которую мы рассмотрим в главе 2. Вот сценарий для размышления. Вы – врач, и у вас появилось новое лекарство от некоторой болезни. Первичные исследования показали, что оно эффективнее лекарств, применяемых в настоящее время. Вы почти год испытываете это новое лекарство на пожилых пациентах, которые чаще болеют этой болезнью. Однако новый препарат получают не только пожилые пациенты, но и молодые. Теперь, основываясь на своем собственном опыте, вы хотите выяснить, действительно ли новый препарат так эффективен, как утверждают исследования. Ситуацию можно представить с помощью графа на рис. 1.6.
Глава 1 Введение в причинность 50 Возраст Лечение Выздоровление Рис. 1.6. Помимо препарата, на выздоровление может повлиять третий фактор. Такие третьи факторы называют искажающими факторами. Например, искажающим фактором в этом примере является возраст Возраст влияет на выбор лекарства (лечения), поскольку вы учитываете возраст пациента, прежде чем принять решение о конкретном препарате. Кроме того, возраст влияет на скорость выздоровления, поскольку пожилые люди обычно выздоравливают медленнее, чем молодые. В анализе влияния решения на результат, когда имеется третий фактор, влияющий и на решение, и на результат, мы называем этот фактор искажающим. В нашем сценарии искажающим фактором является возраст. В реальной жизни мы часто сталкиваемся не с одним, а сразу с несколькими искажающими факторами. Фактор, влияние которого мы пытаемся измерить, часто называют переменной лечения или решения. Результат, который нас интересует, или что мы хотим увидеть в результате лечения, называется исходом. См. рис. 1.7. Искажающий фактор Лечение Исход Рис. 1.7. Этот граф играет важную роль в причинном анализе, и вы будете часто с ним сталкиваться. При анализе влияния лечения на исход вам могут мешать факторы, влияющие и на то, и на другое. Такие факторы называются искажающими, и они могут изменить связь между лечением и исходом Искажающий фактор получил такое название, потому что он может затруднить анализ данных. Вам будет трудно сказать, вызваны ли изменения в исходе изменением лечения или влиянием искажающего фактора. В этом примере новый препарат давался в основном пожилым людям, поэтому вы не можете уверенно утверждать, чем обусловлено ускоренное выздоровление – препаратом или возрастом пациента. Эта ситуация означает, что формула ATE, используемая вами для измерения эффективности влияния нового препарата на всех пациентов, в этом случае не работает. Сначала подумай, потом читай Какие искажающие факторы могут выявиться при проведении A/Bтестирования или RCT? Чтобы понять эту идею, давайте еще раз посмотрим, что такое искажающий фактор: это фактор, который влияет как на выбор лечения, так и на исход. Но в экспериментах выбор лечения основан только на случайности (т. е. лечение назначается случайным образом). Эта случайность не меняет исход, поэтому можно сказать, что в экспериментальных данных нет искажающих факторов. Это ключевая причина, почему экспериментальные данные надежнее наблюдаемых.
Обзор основных статистических концепций 51 Причинно-следственный анализ дает нам инструменты для исследования наблюдаемых данных, а не экспериментальных. На рис. 1.7 показан типичный граф независимо от того, содержит он один или несколько искажающих факторов. Первые несколько глав данной книги посвящены этому сценарию. В частности, вы узнаете, как получить непредвзятые оценки ATE, когда это возможно. 1.5. Обзор основных статистических концепций В этом разделе мы рассмотрим некоторые статистические идеи, важные для этой книги. Вы могли познакомиться с ними на вводных лекциях по статистике. Если вы уже знакомы с этими концепциями, то можете смело пропустить данный раздел. Однако имейте в виду, что для дальнейшего изучения причинного-следственного анализа очень важно понимать концепции условной вероятности и ожидания, которые мы будем часто использовать в книге. 1.5.1. Эмпирические распределения и распределения сгенерированных данных В практических задачах обычно есть два различных распределения. Первое – это распределение, которое генерирует данные. В действительности за создание данных отвечает физический механизм. Это то, что мы называем процессом генерирования данных. Этот процесс может иметь некоторую неопределенность и, следовательно, присущее ему распределение вероятностей, которое мы будем называть распределением сгенерированных данных. За редким исключением, мы ничего не знаем об этом распределении. Законы, которые создают наши данные, обычно определяются природой, и у нас нет доступа к этой информации. Возьмем в качестве примера подбрасывание монеты. Подбрасывая монету n раз с вероятностью выпадения орла P(H) = p, мы ожидаем, что в конечном итоге, когда n стремится к бесконечности, мы получим долю p выпадений орлов и долю 1 – p выпадения решек. Дело в том, что мы не знаем точного значения p. Даже если процесс изготовления монеты был тщательно настроен, в нем все равно могут сохраняться некоторые неточности. Обычно мы предполагаем, что p = 1/2, но чтобы подтвердить это предположение, потребуется бесконечное число подбрасываний. Поэтому на самом деле мы не знаем истинного значения p. Другое распределение – это то, что мы называем эмпирическим распределением, полученным из выборки. Предположим, что мы подбросили монету пять раз и получили О, О, Р, Р, Р. Мы можем обобщить результаты, как показано в табл. 1.1. Мы ожидаем, что если подбросить монету не пять, а большее количество раз, то вероятность получить О (орел) в нашей выборке будет близка к p.
Глава 1 Введение в причинность 52 Таблица 1.1. Эмпирическое распределение по выборке О, О, Р, Р, Р Исход Вероятность О 2/5 Р 3/5 Формально мы можем так поступить, потому что выборка сама по себе является распределением: эмпирическим распределением. Если предположить, что каждое наблюдение имеет одинаковый вес и у нас есть размер выборки n, то вероятность каждого наблюдения равна 1/n. В нашем случае каждое наблюдение имеет вес 1/5, а распределение вероятностей в точности соответствует показанному в табл. 1.1. Тогда математическое ожидание этого распределения совпадает со средним значением по выборке: . Эмпирическое распределение и распределение, генерирующее данные, тесно связаны. Когда n стремится к бесконечности, эмпирическое распределение стремится к распределению, генерирующему данные. Этот результат известен как теорема Гливенко–Кантелли, которая является сугубо технической и не будет рассматриваться в этой книге. Эта теорема также справедлива для различных ситуаций, например когда переменная непрерывна или когда вместо случайной величины у нас есть случайный вектор. Предположим, мы хотим, чтобы выиграл орел. Обозначим успех (орел) как 1, а неудачу (решку) как 0. В таком случае предыдущая выборка (О, О, Р, Р, Р) превратится в 1, 1, 1, 0, 0, а доля выпадений орла совпадет со средним значением, обозначенным как x̃ = 2/5. В то же время это среднее значение можно вычислить как . Аналог среднего для распределения, генерирующего данные, называемый ожиданием, вычисляется с использованием того факта, что P(О) = p. Для заданной бинарной случайной величины X ожидание вычисляется как . Итак, мы получаем вероятность выпадения орла x̃ = 2/5, но если бы у нас была очень большая выборка, то эта вероятность была бы близка к p. Обратите внимание на обозначение, использованное для различения выборочного среднего (x̃ ) ожидания (E[X]). В статистике нас часто интересуют ответы на вопросы, связанные с различиями между выборкой и базовым процессом, сгенерировавшим данные, например достаточен ли размер выборки, чтобы быть уверенными в результате, получаемом из выборки.
Обзор основных статистических концепций 53 Имейте в виду При выяснении причинно-следственных связей прежде всего нужно определить правильную формулу для использования. После этого можно выбирать наилучший статистический подход. Углубленное обсуждение оптимальных статистических методов и определения доверительных интервалов вы найдете в главе 8. По этой причине, подойдя к выбору формулы, мы фокусируемся на распределении, генерирующем данные, а выбирая статистические подходы, переходим к эмпирическому распределению. 1.5.2. Условные вероятности и ожидания Для работы с этой книгой необходимо твердое понимание условных вероятностей и условных ожиданий. Если вы уже знакомы с этими понятиями, то можете пропустить данный раздел. Однако, как показывает мой опыт, условные вероятности сложнее, чем кажется. Я начал изучать их с первого курса университета, но только годы спустя почувствовал, что понимаю их суть. Так что если какая-то из этих концепций вам не до конца понятна, то продолжайте читать этот раздел. Условные вероятности Начнем с предположения, что у нас есть некоторые данные, как в табл. 1.2 с переменными X, Y и Z. Значение a используется намеренно, чтобы выработать привычку к абстрактной записи условных вероятностей. Таблица 1.2. Смоделированные данные X Y Z 3 0,03 A 6 –24,08 A a 7,01 A –2 –3,00 B a 10,89 B В этом случае обусловливание X = a означает получение новой таб­ лицы и выбор тех случаев, когда переменная X равна a. С точки зрения программирования это равносильно фильтрации данных, т. е. выбору строк, как в табл. 1.3. Переменные Y и Z, при ограничении X = a, обозначаются как Y | X = a и Z | X = a соответственно. Обусловливание X = a может изменить распределение Y и Z. Например, если в табл. 1.2 переменная Z принимает значение A в трех случаях из пяти, то в табл. 1.3 она принимает значение A в одном случае из двух. Это можно записать как P(Z = A) = 3/5 и P(Z = A | X = a) = 1/2.
Глава 1 Введение в причинность 54 Таблица 1.3. Смоделированные данные, обусловленные X = a X Y Z a 7,01 A a 10,89 B Возможно, в прошлом вы уже познакомились с условными вероятностями на примере математической формулы , где запятая (,) обозначает союз и: P(Z = A, X = a) означает вероятность одновременного выполнения условий Z = A и X = a. Преимущество этой формулы в том, что она показывает, как можно рассчитать условные вероятности на основе исходной табл. 1.2 и частот (вероятностей) появления событий Z = A и X = a. Формула получена на основе шагов, которые мы выполнили для вычисления P(Z = A | X = a) = 1/2, разделив следующие величины: . Выражение остается неизменным при делении числителя и знаменателя на 5 (количество строк в табл. 1.1), поэтому приходим к выражению . Обусловливать можно сразу несколько переменных. Например, обу­ словливая X = a и Z = B, мы получаем табл. 1.4. Выбор переменной Y при ограничениях X = a и Z = B обозначается как Y | X = a, Z = B. Так же, как и раньше, мы можем вычислить P(Y = 10,89 | X = a, Z = B) = 1, поскольку 10,89 – это уникальное значение, которое принимает переменная Y при ограничениях X = a и Z = B. Таблица 1.4. Смоделированные данные, обусловленные условиями X = a и Z = B X Y Z a 10,89 B
55 Обзор основных статистических концепций В общем случае, если есть две переменные X и Y, то условие X = x, вероятно, изменит поведение Y, а частота, с которой Y принимает свои значения, будет отличаться от частоты до введения условия P(Y = y | X = x). Иногда, чтобы сделать формулы более удобными для чтения, мы будем слегка злоупотреблять записью и писать P(Y | X) или даже P(Y | X = x) вместо полного правильного выражения P(Y = y | X = x). Условную вероятность можно вычислить из исходной вероятности P по формуле . Условные ожидания Теперь, когда посредством обусловливания мы получили новую переменную (Y | X = a в предыдущем примере), из нее можно вычислить некоторые типичные величины, такие как P(Y = 7,01 | x = a) = 1/2 (потому что у нас осталось только два наблюдения) или P(Y = 1 | X = a) = 0. В частности, мы можем вычислить ожидание этой новой переменной, называемое условным ожиданием: E[Y | X = a]. В нашем примере, поскольку для Y | X = a каждое наблюдение имеет вес 1/2, ожидание E[Y | X = a] = 7,01 × 1/2 + 10,89 × 1/2 = 8,95. Обратите внимание, что если переменная Y является бинарной, то E[Y | X ] = P(Y | X). Чтобы убедиться в этом, достаточно применить определение условного ожидания. Поскольку Y категориальна, она принимает только два значения: 0 и 1. То есть E[Y | X ] = 1 × P(X = 1 | X ) + 0 × P(X = 0 | X ) = P(X = 1 | X ). На рис. 1.8 мы смоделировали данные, чтобы на еще одном примере показать разницу между распределением переменной и ее условными распределением и ожиданием. Слева показана выборка переменной Y, которая является комбинацией выборок из двух различных гауссовых распределений: одно основано на значении x = 0 с ожиданием 0, а другое – на значении x = 2 с ожиданием 2. Как видите, среднее значение выборки безусловного распределения равно 1. Но справа те же значения y разделены на две группы, каждая для соответствующего значения x: левая группа – это распределение Y | X = 0, а правая группа – условное распределение Y | X = 2. Черные точки представляют ожидание E[Y | X = 0] и E[Y | X = 2]. Точки были смещены по оси x для наглядности и избежания наложения.
Глава 1 Введение в причинность y y 56 Рис. 1.8. Слева – выборка переменной y. Справа – те же данные, разделенные на два разных значения x, что дает условные распределения для разных x. Центральные черные точки – это средние значения для каждой группы, поэтому слева – безусловное ожидание, а справа – два условных ожидания На протяжении всей книги мы будем говорить о E[Y | X] как об абстрактной величине. Это означает, что она отделена от любого конкретного набора данных или задачи. В машинном обучении или причинноследственном анализе нас интересует связь между некоторой переменной X и результатом Y. Итак, как можно представить E[Y | X] в целом? Математическая нотация E[Y | X] определяет простой рецепт: 1 E[Y | X] – это сокращенная запись для выбора конкретных значений x и y: т. е. на самом деле подразумевается E[Y | X = x]. 2 Эта запись предполагает выборку из данных случаев, где X = x. 3 Расчет среднего значения переменной Y для этой конкретной группы. В общем случае, поскольку выражение E[Y | X = x] зависит только от значения x, E[Y | X = x] можно рассматривать как функцию от x. До сих пор мы говорили о вычислении условных ожиданий с использованием числовых (табл. 1.4) и визуальных (рис. 1.8) примеров. Чтобы упростить использование абстрактной величины E[Y | X = x], давайте теперь рассмотрим пример, в котором нужно представить условные ожидания на основе данного здесь описания. Возьмите численность населения страны по своему выбору. Мысленно создайте две группы: группу A, включающую людей моложе 30 лет, и группу B, включающую людей старше 30 лет. Дадим переменной, определяющей группу, имя X. Итак, X = A обозначает группу людей моложе 30 лет, а X = B – группу людей старше 30 лет. Предположим, что вас интересуют закономерности, наблюдаемые в росте людей (обозначим эту переменную как Y). Вы знаете, как вычислить средний рост для группы A. Эту величину нетрудно выразить в математических терминах. Как вы только что видели, выбор группы A и последующее вычисление их среднего роста обозначается как E[Y | X = A]. Соответственно, процесс выбора группы B и вычисления среднего роста для нее обозначается как E[Y | X = B]. Обратите внимание, что мы говорим об абстрактных величинах в отсутствие каких-либо данных.
Для дополнительного чтения 57 Другая ситуация, когда может понадобиться вычислить условные вероятности и ожидания, – когда имеется явная функциональная связь между переменными. Предположим, что вместо данных у вас есть следующая линейная модель: Y = 1 + 2 X + ε, где ε – центрированное гауссово распределение. Это означает, что X может изменяться независимо, а Y зависит от X и некоторого случайного фактора. Обусловливание X = x просто означает, что значение X будет установлено равным x, тогда как переменная Y все еще может изменяться из-за случайности ε. В общем случае, если Y, X и ε связаны некоторой функцией Y = f(X, ε), обусловленной X = x, то означает, что теперь Y будет меняться при фиксированном X: Y = f(X = x, ε). Таким образом, условное ожидание E[Y | X = x] необходимо рассчитывать только с учетом случайности, поскольку x – фиксированное значение. В главе 2 вы увидите, что при наличии искажающих факторов расчет условных вероятностей не всегда дает хороший ответ на причинные вопросы и нужно найти формулу, чтобы удалить влияние искажающих факторов из расчетов. Обратите внимание, что понятие условной вероятности является статистическим или вероятностным понятием, но не причинным. Условная вероятность P(Y | X) просто означает вычисление частоты события Y среди случаев, когда также происходит событие X. Таким образом, она описывает частоты, или вероятности, событий. 1.6. Для дополнительного чтения „ 1 A/B-тестирование: – «Refuted Causal Claims from Observational Studies»: https://experimentguide.com/refuted_observational_studies; – Ron Kohavi, Roger Longbotham, Dan Sommerfield, and Randal M. Henne «Controlled Experiments on the Web: Survey and Practical Guide» (Springer, 2009): www.robotics.stanford.edu/~ro nnyk/2009controlledExperimentsOnTheWebSurvey.pdf; – глава «A/B Testing» в книге1 Дэвида Свита (David Sweet) «Experimentation for Engineers» (Manning, 2023): www.manning. com/books/experimentation-for-engineers; – Stefan Thomke «Experimentation Works: The Surprising Power of Business Experiments» (Harvard Business Review Press, 2020): https://store.hbr.org/product/experimentation-works-thesurprising-power-of-business-experiments/10248; Свит Д. Тюнинг систем: экспериментирование для инженеров от A/B-тестирования до байесовской оптимизации. Питер, 2024. ISBN: 978-5-4461-2157-1. – Прим. перев.
Глава 1 Введение в причинность 58 „ 1.7. – Ron Kohavi, Diane Tang, and Ya Xu, «Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing»1 (Cambridge University Press, 2020): https://experimentguide.com. Причинно-следственный анализ: – Judea Pearl and Dana Mackenzie «The Book of Why: The New Science of Cause and Effect»2 (Basic Books, 2018) – здесь вы найдете описание причинно-следственной связи с философской точки зрения, без формул и инструментов, которые можно было бы использовать для решения задач; – Judea Pearl, Madelyn Glymour, and Nicholas P. Jewell «Causal Inference In Statistics: A Primer» (Wiley, 2016) – техническая вводная книга, более техническая, чем та, которую вы сейчас читаете; – Judea Pearl «Causality: Models, Reasoning, and Inference» (Cambridge University Press, 2020) – потрясающая книга, но ее трудно читать; – Joshua Angrist and Jörn-Steffen Pischke «Mostly Harmless Econometrics» (Princeton University Press, 2009) – классика экономет­рики. Авторы также написали более вводную версию под названием «Mastering ’Metrics: The Path from Cause to Effect» (Princeton University Press, 2014); – Guido Imbens and Donald Rubin «Causal Inference for Statistics, Social, and Biomedical Sciences: An Introduction» (Cambridge University Press, 2015). В этой книге основное внимание уделяется границе между RCT и причинно-следственным анализом. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 В чем разница между наблюдаемыми и экспериментальными данными? Ответ в разделе 1.1.1. 2 Когда следует проводить A/B-тестирование или RCT? Ответ в разделе 1.3.5. 3 При проведении A/B-тестирования, если выборка достаточно большая, обе группы будут иметь одинаковые выборочные характеристики. Почему? Ответ в разделе 1.3.4, «Шаг 3: анализ». 1 2 Кохави Рон, Тан Диана, Сюй Я. Доверительное А/В-тестирование: Практическое руководство по контролируемым экспериментам. ДМК-Пресс, 2021. ISBN: 978-5-97060913-2. – Прим. перев. Перл Джуда, Маккензи Дана. Думай «почему?». Причина и следствие как ключ к мышлению. АСТ, 2023. ISBN: 978-5-17-123140-8. – Прим. перев.
Итоги 4 5 59 Назовите одну причину, почему корреляции не всегда могут служить доказательством причинно-следственной связи. Ответ в разделе 1.4. Какие факторы можно обнаружить при проведении A/Bтестирования? Ответ в разделе 1.4.2. Итоги „ „ „ „ „ „ Причинно-следственный анализ использует методы и инструменты для выявления причинно-следственных связей между лечением и исходом путем исследования данных. Искажающие факторы влияют как на лечение, так и на исход, усложняя определение причинно-следственных связей на основе одних только корреляций. Выявление искажающих факторов имеет решающее значение. Всегда проводите эксперименты (RCT или A/B-тестирование), если это возможно. Случайное назначение лечения ослабляет влияние искажающих факторов и позволяет получить самые четкие оценки. Когда эксперименты невозможны, приходится иметь дело с наблюдаемыми данными. Причинно-следственный анализ помогает принимать обоснованные решения на основе таких данных. Ориентированные ациклические графы (directed acyclic graph, DAG) помогают проиллюстрировать взаимосвязи между переменными и выявить возможные пути искажений. Средний лечебный эффект (average treatment effect, ATE) количественно определяет причинно-следственное влияние одной переменной на другую. Расчет ATE зависит от искажающих факторов и будет подробно описан в следующих главах.
2 Первые шаги: работа с искажающими факторами В этой главе: „ „ „ влияние искажающих факторов: парадокс Симпсона; устранение искажающих факторов с помощью формулы корректировки; когда следует применять формулу корректировки. Представьте, что у вас появился вопрос, касающийся причинно-следственной связи, например вы решили оценить последствия прошлого решения, выбрать лучший из двух методов лечения или определить, какая из двух маркетинговых стратегий эффективнее. Вы сравниваете два варианта, A и B. Это могут быть прошлые решения, медицинские методы лечения или маркетинговые кампании, и вы хотите узнать их влияние на некоторый результат. Вы могли бы подумать, что для этого достаточно посмотреть, что произойдет при использовании A и B, и сравнить два результата, чтобы определить, что лучше – A или B. Однако, как мы увидим далее в этой главе, такой интуитивный подход часто может приводить
Первые шаги: работа с искажающими факторами 61 к неверным выводам, особенно при работе с наблюдаемыми данными. Это критически важный аспект! Подумайте, как часто вы или другие принимали решения подобным образом. В главе 1 говорилось, что при работе с наблюдаемыми данными (т. е. с данными, не полученными в ходе контролируемого эксперимента) мы часто сталкиваемся с искажающими факторами. Эти факторы влияют как на лечение (или воздействие), так и на исход. Это означает, что искажающие факторы могут вызывать изменения как в лечении, так и в исходе, и мы можем даже не знать об их существовании или не иметь никакой информации о них. Искажение Искажающий фактор – это переменная, влияющая на переменную решения/лечения и одновременно на исход. Искажающий фактор Лечение Исход Искажающий фактор влияет как на лечение, так и на результат. Он мешает точно измерить эффект лечения путем сравнения средних значений. Видя положительную корреляцию между двумя переменными, вы можете задаться вопросом: предполагает ли эта корреляция причинно-следственную связь между ними? Даже если вы знаете, что на данные влияют искажающие факторы, не должна ли положительная корреляция подразумевать некоторую форму причинно-следственной связи? Ответ – нет. В следующем разделе мы рассмотрим парадокс Симпсона, который иллюстрирует, почему неправильно интерпретировать корреляцию как причинно-следственную связь. Он показывает, что факторы, влияющие на результаты, могут превратить положительную причинно-следственную связь в отрицательную корреляцию и наоборот. Поэтому, полагаясь исключительно на корреляции, можно прийти к совершенно неверным выводам. Однако иногда бывает возможно устранить влияние искажающих факторов, что позволяет получать несмещенные оценки. В этой главе на примере парадокса Симпсона вы научитесь распознавать такие ситуации. Затем мы воспользуемся математическим методом, известным как формула корректировки, для расчета причинно-следственных эффектов. Мы также формально определим средний лечебный эффект (average treatment effect, ATE), представленный в главе 1. ATE измеряет общую разницу в результатах, даваемых двумя методами лечения, помогая определить, какой вариант, A или B, эффективнее. В рандомизированном контролируемом исследовании (randomized controlled trial, RCT) или A/B-тестировании можно напрямую рассчитать ATE, вычислив разность средних значений результатов двух альтернатив.
62 Глава 2 Первые шаги: работа с искажающими факторами Однако при использовании наблюдаемых данных разность средних значений не всегда точно отражает ATE. Эта глава закладывает основу для остальной части книги. Вы получите хорошее представление о том, как искажающие факторы могут усложнить анализ и как эффективно с ними бороться. Эти знания помогут вам: „ быть осторожнее при проведении прямых сравнений между вариантами данных наблюдений; „ определять ситуации, в которых можно управлять искажающими факторами; „ применять специальную формулу для различения корреляций и причинно-следственных связей. Зачем нужна формула корректировки? Формула корректировки (adjustment formula) – это инструмент, помогающий найти реальную причинно-следственную связь между двумя переменными. Она устраняет влияние искажающих факторов, которые могут скрыть истинную причинно-следственную связь. Первая цель этой главы – научиться применять формулу корректировки, которая позволяет устранить искажающие эффекты, чтобы оценить причинно-следственные эффекты. Вторая цель – определить ситуации, в которых необходимо применять формулу корректировки. В главе 4 вы узнаете, как рассчитать формулу корректировки с использованием методов машинного обучения. А во второй части книги познакомитесь с различными адаптациям формулы корректировки, такими как меры склонности, широко используемые в здравоохранении, линейные модели для анализа тенденций, а также узнаете, как применять готовые модели машинного обучения для работы с нелинейными отношениями. В этой главе мы будем работать в основном с графами, состоящими из трех узлов: лечение, исход и искажающий фактор. В главе 7 мы исследуем приемы решения задач с несколькими искажающими факторами, вступающими в сложные взаимодействия и описываемые как сложные графы. В этой главе мы также поговорим о том, когда уместно использовать формулу корректировки, а когда нет. 2.1. Основы причинно-следственного анализа и парадокс Симпсона Представьте, что вы работаете в больнице, где лечат почечнокаменную болезнь двумя разными методами: А и В. Мы рассмотрим реальный набор данных из исследования 1986 года (www.ncbi.nlm.nih.gov/ pmc/articles/PMC1339981; цифры были немного скорректированы в образовательных целях), представленный в табл. 2.1. В исследовании участвовало 700 пациентов, 350 из них получили лечение А, а 350
63 Основы причинно-следственного анализа и парадокс Симпсона пациентов – лечение В. Исследование не было рандомизированным контролируемым испытанием, поэтому данные являются наблюдаемыми. Переменная Размер в наборе данных сообщает размер камней в почках до лечения. Таблица 2.1. Набор данных по лечению почечнокаменной болезни Метод лечения Размер Пациентов Выздоровевших A Маленький 87 81 B Маленький 270 234 A Большой 263 192 B Большой 80 50 Больнице приходится выбирать между двумя методами лечения: А и В. Она может выбрать только один метод, поэтому было решено провести исследование, чтобы определить лучший. Сначала подумай, потом читай Основная задача: в больнице могут использовать только один метод лечения, поэтому важно определить, какой из них лучше. Чтобы ответить на этот вопрос, нужно рассчитать долю выздоровевших пациентов. Стоит ли при этом проводить стратификацию по размеру камней в почках? Для начала рассчитаем доли без стратификации. Доли выздоровевших пациентов показаны в табл. 2.2. Таблица 2.2. Доли выздоровевших пациентов в зависимости от метода лечения Доля выздоровевших Метод A Метод B 78 % (273/350) 81 % (284/350) Очевидно, что метод B имеет лучшие показатели выздоровления, поэтому на первый взгляд выглядит более предпочтительным. Однако у нас есть также информация о размере камней в почках, мы можем уточнить первоначальный анализ, приняв во внимание эту переменную. В табл. 2.3 приводятся данные с разбивкой по размеру камней. Таблица 2.3. Доли выздоровевших в зависимости от метода лечения и размера камней Маленькие камни Большие камни Метод A Метод B 93 % (81/87) 87 % (234/270) 73 % (192/263) 63 % (50/80) И для маленьких, и для больших камней метод A показывает лучшие результаты. Но как так получилось? Ведь в табл. 2.2 мы видели, что
Глава 2 Первые шаги: работа с искажающими факторами 64 без учета размеров камней лучшим оказался метод B. Это пример так называемого парадокса Симпсона: анализируя только метод лечения и исход, мы получаем противоположный результат, чем после включения в анализ размера камней. Парадокс Симпсона Парадокс Симпсона – это ситуация, когда тенденция проявляется в разных группах данных, но исчезает или меняется на противоположную при объединении этих групп. 2.1.1. Чем обусловлена эта проблема? Давайте проанализируем данные с другой точки зрения. На рис. 2.1 показано распределение камней в группах пациентов, получавших разное лечение. Как видите, налицо дисбаланс в назначении лечения для пациентов с разными размерами камней в почках, что затрудняет сравнение результатов. Метод A подразумевает проведение открытых хирургических операций, более рискованных, но и более эффективных при лечении больных с большими камнями. Метод B не подразумевает открытых хирургических операций. Среди всех пациентов у 51 % камни имеют маленький размер. Среди тех, кто получил лечение методом B, 77 % имели маленькие камни; а среди тех, кто получил лечение методом A, маленькие камни имели 25 %. Вся выборка 51 % 49 % Размер Метод B 77 % 22 % Большой Маленький Метод A 25 % 75 % Рис. 2.1. Метод лечения в большинстве случаев назначается в зависимости от размеров камней в почках. При наличии более крупных камней, что считается более сложным случаем, обычно назначается метод A, тогда при наличии только мелких камней (более легкие случаи) обычно назначается метод B. В обоих сценариях распределение размеров камней значительно отличается от общего распределения
Основы причинно-следственного анализа и парадокс Симпсона 65 Как оказывается, врачи выбирают метод лечения, исходя из размера камней, когда при наличии крупных камней обычно назначается открытая хирургическая операция. Это означает, что метод A назначается в более сложных случаях, а метод B – в более простых. Это создает дисбаланс при сравнении двух методов лечения. Сначала подумай, потом читай Прежде чем продолжить, попробуйте построить граф, описывающий взаимосвязи между переменными в этой задаче. Схема на рис. 2.2 иллюстрирует динамику получения данных и подчеркивает взаимосвязи между размером камня, выбором метода лечения и выздоровлением. Врачи выбирали метод лечения, исходя из размеров камней в почках, что обозначено стрелкой от переменной «Размер» к переменной «Метод» на диаграмме. Размер камней также влияет на выздоровление, и это влияние показано еще одной стрелкой от переменной «Размер» к переменной «Выздоровление». Наконец, основной эффект, который мы хотели бы оценить, – влияние метода лечения на выздоровление, представлен стрелкой от переменной «Метод» к переменной «Выздоровление». Эта диаграмма помогает визуализировать взаимосвязи и потенциальные искажающие эффекты в данных. Размер Рис. 2.2. Влияние метода лечения на исход, где роль искажающего фактора играет размер камней Метод Выздоровление Сначала подумай, потом читай Попробуйте представить ситуацию, когда стрелка от переменной «Размер» к переменной «Метод» указывает в обратном направлении. Означает ли это, что метод лечения влияет на размер камней в почках? Представьте, что лечение по какой-то причине увеличивает размер камней в почках. Очевидно, что метод, направленный на удаление камней, не должен увеличивать их размер – это бессмысленно. Далее в этой главе мы обсудим, как направление эффекта определяет необходимость использования формулы корректировки. Важность знания предметной области Диаграмма на рис. 2.2 показывает, что распределение размеров камней различается при лечении разными методами. Из справоч-
66 Глава 2 Первые шаги: работа с искажающими факторами ной информации мы знаем, что врачи выбирают метод, исходя из размера камней. Без опыта в этой области мы бы не знали, что на что влияет – размер камней на выбор метода лечения или наоборот. Направление влияния определяется знанием предметной области, и, как мы увидим, понимание контекста задачи может кардинально повлиять на результаты. 2.1.2. Развивайте интуицию: как исправить проблему В предыдущем разделе мы определили причину парадокса: в разных методах лечения неравные пропорции крупных камней, которые сложнее лечить. Поэтому методы лечения нельзя сравнивать напрямую, поскольку метод A назначается в более сложных случаях, чем метод B. В этом разделе я помогу вам понять, как найти решение, справедливо сравнивающее оба метода лечения. Источник проблемы – искажение Давайте обсудим, что такое искажение и как оно усложняет понимание причины и следствия. Искажение происходит, когда два обстоятельства, таких как большие камни и метод лечения A, часто встречаются вместе. Если рассматривать только результаты лечения методом A, то мы не сможем сказать, чем обусловлен успех – самим методом лечения или тем, что он часто применяется в тяжелых случаях (большие камни). Это затрудняет отделение эффекта лечения от размера камня. Мы видим, что обстоятельства встречаются вместе (имеет место корреляция), но неясно, существует ли между ними причинно-следственная связь. С другой стороны, A/B-тестирование лишено искажающих факторов. Этот подход позволит точно измерить эффект для каждой группы без каких-либо искажающих факторов. Обусловленность – часть решения В причинном анализе главный интерес представляет измерение причинного влияния изменения одной переменной на изменение остальных. Как обусловленность влияет на причинность? Обусловливая переменную, мы фиксируем ее значение, чтобы оно не менялось, и тем самым устраняем ее влияние. Давайте поговорим об этом чуть подробнее. Обусловленность означает выбор всех случаев с определенным значением некоторой переменной. Обусловливая переменную, мы фиксируем ее значение. Например, обусловливая Размер = Большой, мы должны выбрать пациентов с большими камнями в нашем наборе данных. В пределах этой группы размер больше не меняется и влияет на всех пациентов одинаково. Значение переменной Размер фиксируется, и тем самым устраняется эффект влияния размера (см. рис. 2.3).
67 Основы причинно-следственного анализа и парадокс Симпсона Рис. 2.3. Обусловливание Размер = Большой означает выбор подмножества данных, где переменная Размер имеет значение Большой. Обусловливая переменную, мы фиксируем ее значение и тем самым устраняем ее влияние на другие переменные Размер = Большой Метод Выздоровление Это означает, что, сфокусировавшись на группе пациентов с большими камнями, мы избавляемся от искажения связи между методом лечения и выздоровлением и можем измерить эффект без какой-либо предвзятости. Как показано в табл. 2.2, доля пациентов с большими камнями, успешно вылеченных методом A, составляет 73 %, а доля вылеченных методом B – 63 %. Разница составляет 11 %. В случаях с мелкими камнями метод A эффективен в 93 % случаев, а метод B – в 87 %, разница в 6 %. Поскольку 11 % и 6 % измерены без предвзятости и в обоих случаях метод A оказался лучше, то мы можем с уверенностью утверждать, что метод A лучше, чем B. Однако наш анализ на этом не заканчивается. Нам еще нужно определить, насколько метод A лучше. У нас есть две несмещенные оценки (11 % и 6 %), и в следующем разделе я покажу, как их объединить, чтобы найти общий эффект. 2.1.3. Решение парадокса Симпсона Наша задача – ответить на вопрос: коль скоро больница может использовать только один метод лечения, то какой следует выбрать? Сначала подумай, потом читай Мы увидели, что распределение размеров камней различается для разных методов лечения. Какова была бы доля крупных камней среди тех, кто получил лечение А, если бы все получили это лечение? Как показано на рис. 2.2, если бы все получили лечение A, то доля пациентов с большими камнями, прошедших лечение методом A, составила бы 49 %. Это важный момент. Есть два разных сценария: исторические данные показывают, что 77 % пациентов с большими камнями получили лечение A, но в новом гипотетическом сценарии лечение методом A применяется к выборке, в которой только 49 % пациентов страдают от присутствия больших камней в почках. Теперь задача состоит в том, чтобы адаптировать исторические данные к этому новому гипотетическому сценарию. Формула полной вероятности Формула полной вероятности дает альтернативную возможность вычислить условные вероятности путем стратификации по группам. В нашем примере мы можем записать: P(Выздоровление = 1 | Метод = A) =
68 Глава 2 Первые шаги: работа с искажающими факторами P(Выздоровление = 1 | Размер = Большой, Метод = A)P(Размер = Большой, Метод = A) + P(Выздоровление = 1 | Размер = Маленький, Метод = A)P(Размер = Маленький, Метод = A). Эту формулу можно прочитать так: Общая эффективность = Эффективность в случаях с большими камнями × Частота случаев с большими камнями + Эффективность в случаях с маленькими камнями × Частота случаев с маленькими камнями. Напомню, что эффективность метода А для всей популяции составляет 78 % (табл. 2.4, приводится повторно для удобства). Это значение можно вычислить как отношение выздоровевших к общему числу тех, кто получил лечение А. Но его можно вычислить и другим способом, используя теорему о полной вероятности (см. врезку «Формула полной вероятности»): вычислив эффективность для тех, кто получил лечение А и имеет большие камни (73 %), умножить результат на час­ тоту, с которой это происходило (100 % – 25 % = 75 %), повторить то же для маленьких камней и сложить результаты: 78 % = 73 % × 75 % + 93 % × 25 %. Таблица 2.4. Доли выздоровевших в зависимости от метода лечения и размера камней (повторяется для удобства чтения) Маленькие камни Большие камни Метод A Метод B 93 % (81/87) 87 % (234/270) 73 % (192/263) 63 % (50/80) Теперь мы в состоянии ответить на главный вопрос. При применении метода A ко всем пациентам соотношение крупных/мелких камней было бы уже не 75 % / 25 %, а 49 % / 51 %. В этой новой гипотетической ситуации можно применить ту же формулу, но взвесить соотношением 49 % / 51 %. Эффективность метода A в случаях с большими камнями все равно составила бы 73 %, но метод A использовался бы только в 49 % случаев. Применяя тот же аргумент к мелким камням, получаем формулу: 83 % = 73 % × 49 % + 93 % × 51 %. Давайте объединим обе формулы, чтобы подчеркнуть различия: 78 % = 73 % × 75 % + 93 % × 25 %; 83 % = 73 % × 49 % + 93 % × 51 %. Таким образом, при применении метода A для лечения всех пациентов можно ожидать уровень выздоровления 83 %. Это больше пре-
Обобщение на другие задачи 69 дыдущих 78 %. Как мы и ожидали, в этой новой гипотетической ситуации метод A получит меньше сложных случаев (крупные камни), поэтому уровень успеха будет выше. Теперь, получив ожидаемую эффективность метода А, повторим процесс для метода B. В конце концов, больница должна выбрать метод с наиболее высоким уровнем выздоровления при применении лечения ко всем пациентам. (Забегая вперед: метод А оказался лучшим.) Я настоятельно рекомендую вам попробовать выполнить решение самостоятельно. Ответ вы найдете в конце главы. Упражнение 2.1 Какова была бы эффективность метода B, если бы он применялся ко всем? Какой метод лучший? Эта новая формула, которую мы открыли, называется формулой корректировки. Но что она вычисляет? В следующем разделе мы выясним, что это такое, и дадим ей название. 2.2. Обобщение на другие задачи В предыдущем разделе мы рассмотрели пример парадокса Симпсона и познакомились с решением проблемы. Можно ли применить вновь полученные знания к другим ситуациям? Можно ли использовать аналогичный метод корректировки пропорций (формулу корректировки) в похожих ситуациях? Сначала давайте определим, что подразумевается под словами «похожие ситуации». Вернемся к примеру с почечнокаменной болезнью и сосредоточимся на общих шагах и ключевых принципах, которые могут помочь при решении других задач. „ О задаче. – Мы имеем дело с двумя методами лечения и их влиянием на результат, в частности на скорость выздоровления. – Имеется некоторый третий искажающий фактор, влияющий как на выбор лечения, так и на сам результат. „ О решении. 1 Мы описали задачу с помощью графа. 2 Определили цель: узнать, что произойдет в ситуации, отличной от текущей. Сформулировали эту цель в виде вопроса: каким будет результат, если каждый получит лечение одним конкретным методом? 3 Разработали метод получения ответа на этот вопрос: подсчитать, каким был бы результат, если бы все пациенты получили лечение методом A, сделать то же самое для лечения методом B, а затем сравнить результаты, чтобы увидеть разницу. Чтобы использовать решение в различных контекстах, нужно принять концепцию абстракции. Абстракция может показаться жесткой стеной, которая блокирует более глубокое понимание, но давай-
70 Глава 2 Первые шаги: работа с искажающими факторами те рассмотрим ее более доступную сторону: гибкость. Абстрактная концепция – это обобщенная идея, присутствующая во многих сценариях. Обычно при входе в новую область требуется время, чтобы ознакомиться с ее основными концепциями, терминологией и правилами. Это требует специализации. Однако если есть возможность применить знания из других областей, то ваша адаптация становится проще (и если повезет, то вы можете даже привнести что-то новое). Это осуществимо, если в областях имеются общие черты. Таким образом, владение абстрактными концепциями даст вам конкурентное преимущество и поможет быстро адаптироваться к новым ситуациям. Машинное обучение иллюстрирует этот подход, используя обобщенный метод поиска связей между признаками и результатами, применимый в различных отраслях и областях. Вернемся к примеру с камнями в почках и попробуем абстрактные элементы. 2.2.1. Описание задачи с помощью графа Первый шаг к абстракции включает создание графа, описывающего взаимодействия между переменными. На этом графе переменные (узлы) представляют физические величины или метрики, а стрелки – отношения между этими переменными. Когда мы рисуем простую стрелку, которая может представлять сложную связь, мы теряем информацию о специфике этой связи. Например, мы можем думать, что размер почечного камня влияет на скорость выздоровления, но не можем математически описать это влияние. Однако базовая связь часто встроена в собранные данные, и при необходимости эту связь можно прояснить с помощью таких методов, как обучение с учителем. То, что нарисовано на графе, так же важно, как и то, что не нарисовано. Когда мы рисуем граф всего с тремя узлами, мы фактически утверждаем, что для решения задачи нужны только эти элементы. Но имейте в виду, что пример с камнями в почках – это всего лишь упрощение, сделанное с целью помочь вам понять основы причинноследственного анализа. Обычно в реальных ситуациях приходится сталкиваться со множеством других факторов. После создания графа начинается самый сложный этап. В этот момент мы отходим от реального мира и сосредоточиваемся только на построенной модели – графе. Весь анализ и выводы о парадоксе Симпсона были сделаны только на основе графа и имеющихся у нас данных, нам не нужна была никакая дополнительная информация. Вот почему очень важно со всей ответственностью отнестись к составлению графа. Если граф выглядит для вас неубедительным, то вы не будете доверять и выводам, к которым он вас приведет! 2.2.2. Формулирование того, что хотелось бы узнать Мы решили определить, какой из двух методов лечения лучше. Преж­ де чем углубляться в анализ, нужно понять, что значит «лучше». В идеале мы хотели бы знать, что произойдет, если все получат лечение методом A, что произойдет, если все получат лечение методом B, а затем
Обобщение на другие задачи 71 сравнить число выздоровевших. То есть наша цель – смоделировать ситуацию, в которой все получат лечение определенным методом (ситуацию, которая не произошла), используя данные из ситуации, когда оба вида лечения были назначены пациентам (реальность). Это огромный скачок в сторону абстракции. Подумайте об этом так, как описано далее. Допустим, больница должна сделать выбор между разными методами лечения болезни. Для этого нужно знать, какой метод лечения работает лучше. Если понадобится ответить на аналогичные вопросы при решении других задач, то мы должны определить, что означает «все получают одинаковое лечение» в каждом случае. И помните, у нас могут быть разные графы, представляющие разные сценарии. Поэтому нужно решение, которое можно вывести как из графа, так и из данных. Вот почему важно иметь формальное определение ключевой меры для любого графа. Однако честно предупреждаю: оно будет довольно абстрактным! 2.2.3. Поиск способа вычисления причинноследственной связи Мы выяснили, что, переоценивая эффективность лечения с помощью формулы корректировки, можно смоделировать сценарий, в котором всем пациентам предоставляется лечение одним и тем же методом. Задача выбора метода лечения почечнокаменной болезни наглядно иллюстрирует основы причинно-следственного анализа. Но есть одна загвоздка: у вас может сложиться неверное впечатление, что формула корректировки всегда имитирует то, что произошло бы, если бы все получили одинаковое лечение. Это не всегда так. Поэтому нам нужна теория, которая на основе графа будет помогать определять, когда стоит применять формулу корректировки, а когда нет. В каждой задаче причинно-следственного анализа, с которой вы столкнетесь, вам придется адаптировать эти три абстрактные концепции под конкретную ситуацию, как показано на рис. 2.4. В этом разделе мы сосредоточимся на шагах 2 и 3 диаграммы. 1. Опишите задачу с помощью графа. 2. Сформулируйте, что хотели бы узнать. Рис. 2.4. Абстрактные концепции, которые необходимо адаптировать к каждой задаче причинно-следственного анализа 3. Найдите способ вычисления причинно-следственной связи. 2.2.4. Формулирование того, что хотелось бы узнать: язык вмешательств Давайте определим, что такое вмешательство (intervention), чтобы его можно было использовать для решения задач. Наш пример парадокса
Глава 2 Первые шаги: работа с искажающими факторами 72 Симпсона включает следующую ситуацию. Исторически существовала некоторая динамика, или процессы генерации данных, когда врачи делали первоначальные предположения о размере камней в почках и на основе этих предположений выбирали метод лечения. Таким образом, события генерируются с определенной частотой, например что 49 % камней являются большими. Распределение вероятностей, которое генерирует эти частоты (вероятности, которые наблюдались бы в бесконечно большой выборке), будет обозначаться как P. Тогда мы говорим, что P(Размер = Большой) = 49 %. Процесс генерации данных для примера с камнями в почках показан на рис. 2.5 (где S обозначает Size (размер), T – Treatment (метод лечения) и R – Recovery (долю выздоровевших)). S T R Рис. 2.5. Процесс генерации данных, создающий наблюдаемое распределение вероятностей P. S означает Size (размер), T – Treatment (метод лечения) и R – Recovery (долю выздоровевших) В какой-то момент мы задумываемся о том, что произойдет, если всем назначить лечение методом А. То есть мы вмешиваемся в систему. Система перестанет вести себя как прежде, потому что мы меняем ее динамику, чтобы понаблюдать разные частоты. Распределение вероятностей в этом новом сценарии обозначается как P|do(T = A). (Слово do используется для выражения факта вмешательства в систему – выполнения каких-то действий.) Поскольку лечение методом A будет предоставлено всем, то его результат больше не зависит от размера (S); процесс генерации графа создает распределение, изображенное на рис. 2.6. S T=A R Рис. 2.6. Процесс генерации данных производит распределение вероятностей при вмешательстве P|do(T = A), которое моделирует, что произойдет, если всем пациентам назначить лечение методом A В двух словах P | T = A обозначает распределение вероятностей в выборке, включающей тех, кто прошел курс лечения методом A. С другой стороны, P | do(T = A) обозначает распределение вероятностей в сценарии, когда всем пациентам назначается лечение методом A. Иными словами, P | T = A – это то, что наблюдается в нашем наборе данных, а P | do(T = A) и P | do(T = B) – это то, что нам нужно знать, чтобы определить, какой метод лечения лучше.
Обобщение на другие задачи 73 Давайте теперь дадим формальное определение вмешательства в любой общий граф. Это поможет нам ясно выразить нашу цель. Формальное определение вмешательства В графе вмешательство в узел T со значением A означает создание нового графа, где все стрелки, указывающие на T, удаляются, а T получает фиксированное значение A. Граф вмешательства выводит новый набор частот, который мы называем P|do(T = A). Это абстрактное определение представляет то, что произошло бы при гипотетическом вмешательстве. Если бы мы провели вмешательство в нашей больнице, то результат, вероятно, не совпал бы в точности с результатом, представленным моделью, потому что на практике всегда есть исключения, но это определение не учитывает их. Однако это упрощенное определение транслирует эффекты вмешательства в реальности в нашу математическую модель, что позволяет эмулировать интересующую нас величину в графе. Это определение вмешательства является ключевым компонентом теории причинно-следственной связи. Такое определение может удивить вас, но оно достаточно полезно, поскольку описывает идеальную ситуацию, дающую ответ на наш главный вопрос: какой эффект даст тот или иной метод лечения? Остальная часть книги будет посвящена тому, как и когда можно смоделировать этот сценарий на основе других данных и других причинно-следственных вопросов. Обратите внимание, что вмешательство и обусловливание – это два разных понятия с разным значением. Обусловливание в исторических данных касается того, что мы видели, тогда как вмешательство касается ситуации, в которой мы делаем что-то, потенциально отличающееся от того, что имело место в реальности. Проверьте свои знания Можно ли сказать, что вмешательство – это то же самое, что и наблюдение? То есть можно ли сказать, что в примере с парадоксом Симпсона P(R = 1 | T = A) и P(R = 1 | do(T = A)) – это одно и то же? Чтобы ответить на этот вопрос, нужно спросить, как определяется каждая величина. Величина P(R = 1 | T = A) относится к наблюдаемой (исторической) вероятности выздоровления (Recovery, R) при назначении лечения (Treatment, T) методом A. Формально говоря, эта величина является условной вероятностью: мы выбираем субпопуляцию пациентов, которые получили лечение методом A, и вычисляем вероятность выздоровления, которая в нашем примере составляет 78 %. А что означает P(R = 1 | do(T = A))? Эта формула описывает величину, найденную в разделе 2.1.3. Если бы мы назначили лечение методом
74 Глава 2 Первые шаги: работа с искажающими факторами A всем пациентам, то распределение размеров (Size, S) камней изменилось бы, и мы получили бы вероятность выздоровления 83 %: P(R = 1 | T = A) = 78 %; P(R = 1 | do(T = A)) = 83 %. Запомните, что величина P(R = 1 | T = A) – это то, что мы наблюдали, а величина P(R = 1 | do(T = A)) отвечает на вопрос, что произойдет, если всем пациентам назначить лечение методом A. Главное различие между этими двумя величинами в том, что при P | T = A распределение размеров почечных камней является специфичным для метода лечения A (25 % мелких, 77 % крупных), тогда как при P | do(T = A) распределение размеров соответствует всей популяции (51 % мелких, 49 % крупных). Упражнение 2.2 Чтобы лучше понять разницу между наблюдением и вмешательством, ознакомьтесь с дополнительным упражнением «Наблюдать и делать – это не одно и то же» в приложении B. 2.2.5. Поиск способа вычисления причинноследственной связи: формула корректировки Наконец, мы добрались до формулы корректировки. Она вычисляет вероятность выздоровления в графе вмешательства. Упрощая обозначения и обозначая «да» как 1, а «нет» как 0, мы получаем P(R = 1|do(T = A) = 83 % = 73 % × 49 % + 93 % × 51 % = P(R = 1|T = A, S = Large) × P(S = Large) + P(R = 1|T = A, S = Small) × P(S = Small). Волшебство этой формулы в том, что она позволяет вычислить то, чего не наблюдалось в действительности, P(R = 1|do(T = A)), на основе имеющихся наблюдений: вероятности P. Формула корректировки В общем случае для графа на рис. 2.6 с любыми дискретными переменными S, R и T формула корректировки вычисляет на основе наблюдаемых данных вероятность при вмешательстве: . Эта формула примечательна тем, что не требует делать какие-либо предположения о распределении вероятностей P (ну, помимо того, что она дискретная, впрочем, формулу легко адаптировать к непрерывному случаю)! Это означает, что она работает в самых разных ситуациях. Если вам интересно, как формула корректировки выводится
75 Обобщение на другие задачи математически, я настоятельно рекомендую ознакомиться с приложением A «Математика, лежащая в основе формулы корректировки». Формула корректировки для исходов с несколькими значениями Мы легко можем найти ситуации, когда результат R не является бинарной переменной, а имеет много возможных значений r1, …, rk. Например, предположим, что результат R – это количество дней, необходимое пациенту для выздоровления. Нас может интересовать вероятность выздоровления пациентов за определенное количество дней r, если всем будет назначено лечение методом A: P(R = r|do(T = A)). Но еще больше нас может интересовать ожидаемое количество дней до выздоровления пациента, если всем будет назначено лечение методом A, или, говоря математически, E[R|do(T = A)]. Формула корректировки в этом случае имеет следующий вид: . Давайте посмотрим, как была получена эта формула. Первым делом нам нужно узнать величину E[R|do(T = A)]. Для этого можно воспользоваться определением математического ожидания переменной: . Теперь к каждому члену можно применить формулу корректировки, P(R = rk|do(T = A)), в результате чего получится . В свое время у меня был учитель, который предложил менять порядок суммирования всякий раз, когда возникает двойное суммирование, потому что это часто приводит к интересным результатам. Последуем этому совету и сначала просуммируем по s, а затем по k. В результате мы приходим к выражению, которое можно упростить с помощью условных ожиданий, что и было нашей целью: . Для непрерывных переменных эта формула должна быть выражена через интегралы. Но это редко бывает необходимо, поскольку на практике она применяется непосредственно к данным, поэтому мы пока опустим ее обсуждение. Формула корректировки и другие графы Формула корректировки дает нам величину P(R = 1|do(T = A)), если процесс генерации данных следует графу, подобному тому, что изображен на рис. 2.6. Но в общем случае она неверна. Нас может заинтересо-
76 Глава 2 Первые шаги: работа с искажающими факторами вать вычисление P|do(T = A) во множестве задач. В некоторых из них мы можем использовать формулу корректировки, а в других – нет. По­ дробнее о том, для каких графов можно использовать формулу корректировки, а для каких – нет, мы поговорим в главе 7. Напомню, что наша главная цель – узнать, работает ли метод лечения A лучше, чем метод B. Средний лечебный эффект (ATE) Средний лечебный эффект (average treatment effect, ATE) двух альтернативных значений A и B переменной T для бинарной переменной R определяется как разность: ATE = P(R = 1|do(T = A)) – P(R = 1|do(T = B)). А если переменная R имеет множество значений, то ATE = E(R|do(T = A)) – E(R|do(T = B)). В зависимости от того, является ли эта разность положительной или отрицательной, мы можем выбрать оптимальное лечение. В примере с почечнокаменной болезнью если ATE положителен, то это означает, что вероятность выздоровления выше, если всем пациентам назначить лечение методом A. Таким образом, если по условию задачи мы должны придерживаться какого-то одного метода лечения, то выбор должен пасть на метод A. Если ATE отрицателен, то, соответственно, мы должны выбрать метод B. Решение упражнения 1 говорит нам, что P(R = 1|do(T = A)) = 83 %, тогда как P(R = 1|do(T = B)) = 74 %, поэтому ATE = 9 % и мы должны выбрать метод A. 2.2.6. Какие результаты дает метод лечения в каждой ситуации? Предположение о положительности Формула корректировки неявно требует важного предположения, о котором мы еще не говорили. Представьте необычную ситуацию, когда метод лечения A был протестирован только на пациентах с большими камнями в почках. Это досадно, потому что мы не знаем точно, какие результаты даст его назначение пациентам c мелкими камнями. Если метод не был опробован ранее, то у нас не будет никакой информации о его эффективности. Выражаясь математическим языком, мы не можем использовать член, представляющий эффективность метода A при лечении пациентов с мелкими камнями P(R = 1|T = A, S = small), потому что событие (T = A, S = small) никогда не происходило: то есть P(T = A|S = small) = 0. Давайте теперь поговорим о том, что такое предположение о положительности. Пусть P0 – распределение сгенерированных данных (вместо эмпирического распределения, полученного из данных). Чтобы применить формулу корректировки, мы требуем, чтобы для каждого значения искажающей переменной мы могли видеть оба типа лечения: то есть для каждого значения искажающей переменной S = s, которое может встретиться (P0(S = s) > 0), и для каждого значения переменной лечения T = t, 0 < P0(T = t|S = s) < 1.
Обобщение на другие задачи 77 То же относится к случаю, когда переменная S = (S1, …, Sp) – вектор. Для любой комбинации значений, такой что P0(S1 = s1, …, Sp = sp) > 0, 0 < P0(T = t|S = s1, ..., sp) < 1. Определение предположения о положительности Мы говорим, что предположение о положительности выполняется, если для всех значений, которые может принимать искажающий фактор, s = (s1, …, sp) и для каждого метода лечения, T = t, мы имеем 0 < P0(T = t|S = s) < 1. Мы также требуем, чтобы вероятность не была равна 1, поскольку это означало бы, что для данного конкретного значения искажающего фактора в данных есть только один метод лечения. Обратите внимание, что предположение записано в терминах распределения генерации данных, а не наблюдаемого эмпирического распределения. Отсутствие данных о методе лечения T = t для значения S = s (P(T = t|S = s) = 0) – это проблема, которую можно устранить, собрав больше данных (увеличив размер выборки). Однако фактическая проблема заключается в том, что даже при наличии большего количества данных мы можем никогда не собрать эту информацию. Такое возможно, если метод лечения намеренно не назначается определенному подмножеству пациентов. Например, врачи могут решить не назначать оперативное вмешательство пожилым пациентам, потому что это сопряжено с высоким риском осложнений. Всякий раз, когда проблема заключается в политике назначения лечения, увеличение размера выборки не сможет решить ее: всегда будет существовать комбинация факторов, влияющих на результаты, S = s и T = t, которая никогда не произойдет, что математически выражается в терминах распределения генерации данных как P0(T = t|S = s) = 0. Это определение легко проверить, когда есть только один ковариат и он категориальный (как в примере с почечнокаменной болезнью). Если для каждого значения S (в данном случае small (маленькие) и large (большие)) имеются результаты применения обоих методов лечения, то предположение о положительности выполняется. Однако если для определенного значения S нет данных, скажем результатов применения метода A, то теоретически это не означает, что предположение о положительности не выполняется. Вполне возможно, что проблема исчезнет с увеличением размера выборки: если P0(T = A|S = s) очень мала и мы соберем больше данных, то в какой-то момент получим данные о методе лечения A с искажающим фактором S. На практике если у нас есть только один или несколько искажающих факторов, а для некоторого значения нет данных о методе лечения, то это вызывает тревогу. Мы либо говорим, что для этих значений искажающего фактора мы не можем оценить эффект вмешательства, либо, если этого недо-
78 Глава 2 Первые шаги: работа с искажающими факторами статочно (в зависимости от контекста), мы заключаем, что вообще не можем оценить причинно-следственную связь. В практических исследованиях обычно имеется несколько искажающих факторов, и некоторые из них даже могут быть непрерывными. К сожалению, в таких случаях невозможно проверить выполнение предположения о положительности. Рассмотрим случай, когда один искажающий фактор S является непрерывным: вероятность того, что S повторно принимает определенное значение s, равна нулю (потому что в непрерывной переменной вероятность получения определенного значения всегда равна нулю). Соответственно, мы никогда не сможем проверить предположение о положительности по данным. Вот почему на практике это условие должно быть принято. Похожая ситуация возникает при наличии множества категориальных искажающих факторов. Представьте, что у нас имеется большой набор искажающих факторов. Тогда любая конкретная комбинация значений S = (S1, …, Sp) будет появляться очень редко, а значит, у нас будет очень мало данных о них. Если для конкретной комбинации S = (S1, …, Sp) наблюдается только один из двух методов лечения, то мы не можем быть уверены, заключается ли проблема в том, что при этой комбинации данный метод лечения никогда не назначается, или в том, что у нас недостаточно данных. На практике, в зависимости от типа проблемы, вы будете уделять больше или меньше внимания этому предположению. Например, в здравоохранении при сравнении различных методов лечения отсутствие данных об одном методе лечения в определенной подгруппе населения является проблемой, с которой необходимо бороться (и мы поговорим об этом в главе 5). 2.3. Вмешательства и RCT Выше было сказано, что вмешательство – это модель применения одного и того же метода лечения ко всем пациентам в нашей выборке. Предположим, что вместо этого определения мы используем альтернативное: вмешательство – это когда проводится рандомизированное контролируемое испытание (randomized controlled trial, RCT), то есть лечение назначается рандомизированно. Как оказывается, в таком случае мы придем к тем же выводам и, следовательно, к той же формуле корректировки. Это хорошо, потому что мы можем думать о вмешательствах как о применении одного и того же лечения ко всем пациентам или применении RCT, что лучше всего подходит для каждого человека и каждой ситуации. Рассмотрим еще раз рис. 2.3. Сначала подумай, потом читай Если применить RCT для измерения влияния метода на вероятность выздоровления, то какая доля больших камней придется на лечение методом А? Какова ожидаемая вероятность выздоровления в RCT для метода лечения А?
79 Первая встреча со структурным подходом Аргумент довольно похож на аргумент из раздела 2.1.3. Если лечение назначается случайным образом, то 50 % пациентов получат лечение методом A. Но что еще важнее, соотношение больших/маленьких камней среди пациентов, получающих лечение методом A, будет таким же, как и во всей выборке, поэтому на лечение методом A придется 49 % крупных камней. Если рассчитать вероятность выздоровления для тех, кто получает лечение методом А, то она составит 83 % = 73 % × 49 % + 93 % × 51 %, что в точности совпадает с вероятностью P(R = 1|do(T = A)). Вы можете задать вопрос: что произойдет, если, отталкиваясь от наблюдаемых данных, мы проведем RCT, то как будет выглядеть граф, представляющий процесс генерации данных? Ответ: мы должны удалить стрелку от S (размер) к T (метод лечения), потому что размер камней в почках больше не влияет на выбор метода лечения. Мы получаем граф, изображенный на рис. 2.7. Рис. 2.7. Граф, изображающий RCT. В RCT на результат могут влиять различные факторы, но ни один из них не влияет на выбор метода лечения, потому что лечение назначается случайно. Это означает, что нет никаких факторов, которые могли бы вмешаться в исход S T R По сути, мы говорим, что для расчета гипотетического показателя выздоровления для RCT мы должны использовать ту же формулу и получить тот же граф (за исключением значений для T (метод лечения), которые в этом случае могут быть как A, так и B). Причинно-следственный анализ пытается сымитировать применение RCT Распределение вероятностей при вмешательстве P|do(T = A) выводит одну и ту же величину в двух ситуациях одновременно: при проведении гипотетического RCT и измерении эффекта применения лечения методом A ко всем пациентам. Вот почему мы говорим, что P|do(T = A) решает задачу имитации RCT. 2.4. Первая встреча со структурным подходом В этом разделе мы рассмотрим другой способ представления вмешательств, известный как структурный подход. Вместо использования графов этот подход опирается на функции. Он немного похож на написание программного кода, что может помочь некоторым читателям понять его. Структурные уравнения по сути являются просто другим способом выражения той же информации, которая находится в графе. Неформальное их представление будет дано в приложении A «Математика, лежащая в основе формулы корректировки», а формальное – в главе 7.
80 Глава 2 Первые шаги: работа с искажающими факторами Давайте рассмотрим, как можно представить простые графы, используя структурный подход. Представьте связь, изображенную на рис. 2.8, где метод лечения влияет на вероятность выздоровления пациента. Структурный подход представляет эту связь с помощью функции: Recovery := f(Treatment, U). Переменная U представляет набор неизвестных факторов, уникальных для каждого пациента, Рис. 2.8 Граф, моделирующий таких как возраст, которые могут влияние выбора метода лечения повлиять на выздоровление пациен(Treatment) на вероятность выздота, но не связаны с лечением. Если ровления (Recovery). Здесь предпобы мы исключили переменную U и лагается, что никакие другие фактозаписали формулу как Recovery = ры не имеют отношения к анализу, f(Treatment), то по сути утверждали подобно условиям в RCT бы, что вероятность выздоровления (Recovery) зависит исключительно от метода лечения (Treatment). Это означало бы, что все пациенты, получающие одинаковое лечение, имели бы одинаковые шансы на выздоровление, что явно не так. Метод лечения Вероятность выздоровления Символ := Символ := известен как оператор присваивания и использован в формуле вместо обычного символа равенства (=), потому что обозначает присваивание, как в программировании. Когда мы пишем Y := 2X, это означает, что как только станет известно значение X, мы тут же сможем вычислить значение Y как 2 × X. Однако изменение значения Y не повлечет изменения значения X. В математическом уравнении, таком как Y = 2X, напротив, изменение значения X изменяет значение Y, и наоборот. Этот символ может показаться незначительной деталью, но он отражает неотъемлемое направление причинности, когда изменения X влияют на Y. Он представляет направление причинной стрелки X → Y. В этом конкретном случае функция f представляет, помимо прочих факторов, сложную биологию пациента, которая включает в себя очень сложную динамику. В практических ситуациях мы редко знаем функцию f. Тем не менее, как будет показано в главах 4 и 8, мы можем аппроксимировать эти функции с помощью моделей машинного обучения. В структурном подходе мы должны смоделировать каждую переменную. В данной модели переменная Treatment (метод лечения) не зависит ни от какой другой переменной в графе, поэтому мы говорим, что это результат случайной величины: T := U0. Давайте смоделируем пример почечнокаменной болезни с помощью структурного подхода (см. рис. 2.9). Для этого мы должны смоделировать каждую переменную в графе:
81 Первая встреча со структурным подходом S := US ; T := g(S, UT); R := f(S, T, UR). Каждой переменной соответствует свой член U, представляющий все неизвестные факторы, которые на нее влияют. Размер Рис. 2.9. Граф, моделирующий динамику данных о почечнокаменной болезни Метод Выздоровление 2.4.1. Моделирование примера почечнокаменной болезни Как обсуждалось в разделе 1.5.1, один из лучших способов понять новый метод – опробовать его на данных, созданных искусственно. Это поможет убедиться в правильности наших результатов. Итак, давайте смоделируем динамику примера почечнокаменной болезни с помощью программного кода. Мы не знаем реальной связи между методом лечения, размером и выздоровлением. Вот почему в этом примере мы будем полагаться на связь, оцениваемую по данным. Например, предположим, что вероятность выздоровления пациентов с мелкими камнями при применении метода лечения А составляет 93 % и получена из табл. 2.3. Другими словами, будем использовать эмпирическое распределение (см. раздел 1.6.1). Листинги 2.1 и 2.2 определяют функции g и f и показывают, как они используются для создания набора данных. Листинг 2.1. (R) Генерация синтетических данных для задачи почечнокаменной болезни library(data.table) set.seed(1234) patients_n <- 10000 g <- function(size, u_1){ Вероятности, вычисленные по формуле условной вероятности: P(T|S) = P(T, S)/P(S) Всего пациентов = 750 prob_small <- 0.51 prob_large <- 1 - prob_small prob_A <- ifelse( size == 'small', (87/750)/prob_small, (263/750)/prob_large ) return(ifelse(u_1 < prob_A, "A", "B")) } f <- function(size, treatment, u_2){ Вероятности, полученные из табл. 2.3
82 Глава 2 Первые шаги: работа с искажающими факторами if(size=='small'){ prob <- ifelse(treatment == 'A', 0.93, 0.87) }else{ prob <- ifelse(treatment == 'A', 0.73, 0.63) } return(ifelse(u_2 < prob, 1, 0)) } kidney_data <- data.frame() for(patient in 1:patients_n){ u_0 <- runif(1) u_1 <- runif(1) u_2 <- runif(1) size <- ifelse(u_0 < 0.51, 'small', 'large') treatment <- g(size, u_1) recovery <- f(size, treatment, u_2) kidney_data <- rbind( kidney_data, data.frame(size=size, treatment=treatment, recovery=recovery) ) } setDT(kidney_data) kidney_data[, .(recovery_prob = mean(recovery)), treatment] Листинг 2.2. (Python) Генерация синтетических данных для задачи почечнокаменной болезни from numpy.random import uniform, seed import pandas as pd seed(1234) Вероятности, вычисленные по формуле patients_n = 10000 условной вероятности: def g(size, u_1): P(T|S) = P(T, S)/P(S) Всего пациентов = 750 prob_small = 0.51 prob_large = 1 - prob_small prob_A = (87 / 750) / prob_small if size == "small" else \ (263 / 750) / prob_large Вероятности, полученreturn "A" if u_1 < prob_A else "B" ные из табл. 2.3 def f(size, treatment, u_2): if size == "small": prob = 0.93 if treatment == "A" else 0.87 else: prob = 0.73 if treatment == "A" else 0.63 return 1 if u_2 < prob else 0 sizes = [] treatments = [] recoveries = [] for patient in range(patients_n): u_0 = uniform(size=1)
83 Первая встреча со структурным подходом u_1 = uniform(size=1) u_2 = uniform(size=1) size = "small" if u_0 < 0.51 else "large" treatment = g(size, u_1) recovery = f(size, treatment, u_2) sizes.append(size) treatments.append(treatment) recoveries.append(recovery) kidney_data = pd.DataFrame( {"size": sizes, "treatment": treatments, "recovery": recoveries} ) kidney_data.groupby("treatment")["recovery"].mean() Результаты (сценария на R) показаны в табл. 2.5. Мы получаем вероятности выздоровления, аналогичные приведенным в табл. 2.2 (до некоторой степени неопределенности): 81 % для метода лечения A и 78 % для метода лечения B. Таблица 2.5. Результаты, полученные сценарием на R Метод лечения Вероятность выздоровления A 0.8 B 0.78 2.4.2. Вмешательства в структурном подходе Теперь посмотрим, как вмешательство реализуется в коде. В этом случае мы смоделируем операцию R|do(T = A). Напомню, что согласно определению вмешательства мы должны удалить все стрелки, направленные из переменной T, и присвоить ей значение A. В коде мы присваиваем значение лечения A всем пациентам. Листинг 2.3. (R) Генерация набора данных при вмешательстве лечения A kidney_data_A <- data.frame() for(patient in 1:patients_n){ u_0 <- runif(1) u_1 <- runif(1) u_2 <- runif(1) Все пациенты получают size <- ifelse(u_0 < 0.51, 'small', 'large') лечение методом A treatment <- 'A' recovery <- f(size, treatment, u_2) kidney_data_A <- rbind( kidney_data_A, data.frame(size=size, treatment=treatment, recovery=recovery) ) } setDT(kidney_data_A) kidney_data_A[, .(recovery_prob = mean(recovery)), treatment]
Глава 2 Первые шаги: работа с искажающими факторами 84 Листинг 2.4. (Python) Генерация набора данных при вмешательстве лечения A sizes = [] treatments = [] recoveries = [] for patient in range(patients_n): u_0 = uniform(size=1) u_1 = uniform(size=1) u_2 = uniform(size=1) size = "small" if u_0 < 0.51 else "large" treatment = "A" recovery = f(size, treatment, u_2) sizes.append(size) treatments.append(treatment) recoveries.append(recovery) Все пациенты получают лечение методом A kidney_data_A = pd.DataFrame({ "size": sizes, "treatment": treatments, "recovery": recoveries} ) kidney_data_A.groupby("treatment")["recovery"].mean() Метод лечения Вероятность выздоровления A 0.83 Как видите, результаты аналогичны полученным с помощью формулы корректировки (до некоторой степени неопределенности) в разделе 2.1.3: 83 % для метода лечения А. Давайте смоделируем эффект проведения RCT, выбирая методы лечения случайным образом. Листинг 2.5. (R) Моделирование RCT kidney_data_RCT <- data.frame() for(patient in 1:patients_n){ u_0 <- runif(1) u_1 <- runif(1) u_2 <- runif(1) size <- ifelse(u_0 < 0.51, 'small', 'large') treatment <- ifelse(u_1 < 0.5, 'A', 'B') recovery <- f(size, treatment, u_2) kidney_data_RCT <- rbind( kidney_data_RCT, data.frame(size=size, treatment=treatment, recovery=recovery) ) } setDT(kidney_data_RCT) kidney_data_RCT[, .(recovery_prob = mean(recovery)), treatment]
Когда применять формулу корректировки 85 Листинг 2.6. (Python) Моделирование RCT sizes = [] treatments = [] recoveries = [] for patient in range(patients_n): u_0 = uniform(size=1) u_1 = uniform(size=1) u_2 = uniform(size=1) size = "small" if u_0 < 0.51 else "large" treatment = "A" if u_1 < 0.5 else "B" recovery = f(size, treatment, u_2) sizes.append(size) treatments.append(treatment) recoveries.append(recovery) kidney_data_RCT = pd.DataFrame({ "size": sizes, "treatment": treatments, "recovery": recoveries }) kidney_data_RCT.groupby("treatment")["recovery"].mean() Метод лечения Вероятность выздоровления A 0.83 B 0.75 Как и ожидалось, RCT дает нам оценки, аналогичные полученным в листингах 2.3 и 2.4, и из формулы корректировки, с некоторой степенью неопределенности. Решение формулы корректировки для метода лечения B рассчитано в разделе «Решение парадокса Симпсона для метода лечения B» в приложении B и составляет 74 %. 2.5. Когда применять формулу корректировки Подведем итог: пример с почечнокаменной болезнью помог нам, во-первых, выяснить, что хотим узнать (эффект гипотетического вмешательства), и, во-вторых, узнать, как рассчитать его с помощью формулы корректировки. Однако эта формула далеко не универсальный инструмент. Поэтому давайте теперь рассмотрим несколько простых графов, чтобы понять, когда и как правильно рассчитывать эффект вмешательства. Чтобы попрактиковаться в использовании формулы корректировки, мы будем следовать тому же подходу, что и раньше: создадим искусственные наборы данных и посмотрим, является ли формула корректировки правильным методом оценки ATE. Для представления альтернатив формуле корректировки мы выполним серию упражнений с похожей структурой. Целью каждого из них является правильный выбор формулы для расчета ATE. Используя переменные T (Treatment – метод лечения) и O (Outcome – исход, результат), мы проработаем следующие шаги:
Глава 2 Первые шаги: работа с искажающими факторами 86 1 Проверим структурные уравнения и посмотрим, как меняется результат при использовании разных методов лечения в этих уравнениях. Подход тот же, что и в разделе 2.4.2, но с математическими расчетами вместо программирования. Это означает, что вам придется вручную рассчитать все уравнения при изменении метода лечения: – установить T = 1, независимо от остальных переменных, и вычислить ожидаемое значение O (которое, говоря математическим языком, равно E[O |do(T = 1)]); – установить T = 0 и вычислить ожидаемое значение O (говоря математическим языком, E[O|do(T = 0)]); – вычислить разность ATE = E[O|do(T = 1)] – E[O|do(T = 0)]. 2 Оценим разность средних значений по данным, то есть E[O|T = 1] – E[O|T = 0]. 3 Применим формулу корректировки к набору данных. 4 Ответим на следующий вопрос: существует ли несмещенная оценка истинного значения ATE в разности средних значений и формуле корректировки? Таким образом, в каждом упражнении я попрошу вас заполнить табл. 2.6, где adjustment(t) обозначает функцию, вычисляющую формулу корректировки на основе данных для метода лечения t. Таблица 2.6. Результаты упражнений Истинное значение ATE E[O|T = 1] – E[O|T = 0] adjustment(1) – adjustment(0) Оценка ATE Получив результаты, вы сможете убедиться в правильности оценки ATE, поскольку она должна быть аналогична истинному значению ATE, вычисленному на шаге 1. Решение Пошаговое решение в коде вы найдете в конце главы, на веб-сайте книги по адресу www.manning.com/books/causal-inference-for-data-science, в репозитории книги на GitHub (https://mng.bz/vJXq) и в разделе «Что нужно скорректировать?» в приложении B. Если вы растерялись и не представляете, как начать это упражнение, то загляните в решение RCT или A/B-тестирования! 2.5.1. RCT или A/B-тестирование Самый простой граф – это граф для RCT на рис. 2.10. Мы видели, что другие переменные могут влиять на O: например, согласно данным по почечнокаменной болезни, возраст пациентов влияет на скорость их
87 Когда применять формулу корректировки выздоровления. На самом деле можно ожидать, что на O влияют многие переменные. Однако в нашем случае они не оказывают существенного влияния на связь между T и O (проверьте случай прогностических переменных в разделе 2.5.6). Рис. 2.10. RCT или A/B-тестирование. T (Treatment) обозначает метод лечения, а O (Outcome) – исход (или результат) T O Проверьте свои знания Какой граф вмешательства соответствует рис. 2.10? Для ответа на этот вопрос нужно вспомнить определение графа вмешательства. Чтобы ввести переменную T со значением t и увидеть ее влияние на O, нужно создать новый граф, из которого удалены все стрелки, исходящие из искажающего фактора C, и установить в переменной T значение t. Но в нашем случае искажающие факторы отсутствуют! Поэтому в этой модели граф вмешательства и наблюдаемый граф выглядят одинаково. В виде формулы это можно записать так: P(O|do(T = t)) = P(O|T = t). Из всего сказанного вытекает, что наблюдаемые величины P(O|T = t) уже являются величинами, представляющими интерес P(O|do(T = t)). Этого следовало ожидать. Если вы помните, в RCT и A/B-тестировании нет никаких искажающих факторов, потому что искажающие факторы – это переменные, которые влияют на T. Однако в RCT и A/Bтестировании единственной переменной, влияющей на T, является случайность, поскольку пациенты или группы A и B назначаются случайным образом. Вот почему в RCT наблюдаемые вероятности определяют причинно-следственную связь. И вот почему при проведении RCT не нужно применять формулу корректировки, достаточно прямого расчета разности средних значений исхода O для каждой группы. Упражнение по моделированию RCT Заполните табл. 2.6, используя процесс генерации данных со следующими параметрами и размером выборки 10 000: T := B(0,5); R := B(0,3)T + B(0,5)(1 – T). Обратите внимание, что T и R – бинарные переменные, а B(p) выводится из распределения Бернулли с математическим ожиданием p. 2.5.2. Искажающие факторы Мы уже довольно хорошо знаем граф с искажающим фактором, изображенный на рис. 2.11, и рассмотрели его на примере почечнокаменной болезни. В данном случае, чтобы рассчитать эффект вмешательства, нужно применить формулу корректировки.
Глава 2 Первые шаги: работа с искажающими факторами 88 C T O Рис. 2.11. Граф с искажающим фактором Упражнение по моделированию искажающего фактора Заполните табл. 2.6, используя процесс генерации данных со следующими параметрами и размером выборки 10 000: C := B(0,8); T := B(0,6)C + B(0,2)(1 – C); R := B(0,3)T + B(0,5)(1 – T) + C + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). 2.5.3. Ненаблюдаемые искажающие факторы Представьте, что в примере с почечнокаменной болезнью, по словам врачей, метод лечения выбирался, исходя из размеров камней, но, к сожалению, размеры камней не сохранились, потому что использованное программное обеспечение не было предназначено для сохранения этих данных. Далее для обозначения на графе влияния таких ненаблюдаемых переменных мы будем использовать пунктирные рамки (см. рис. 2.12). C T O Рис. 2.12. Граф с ненаблюдаемым искажающим фактором (с переменной, о которой нет данных) Мы знаем, что должны применить формулу корректировки. Однако у нас нет никакой информации о C (Confounder – конфаундер, искажающий фактор). Это означает, что мы не можем вычислить величину P(O|T, C) или P(C) и, соответственно, не можем оценить влияние T на O. Будьте внимательны, не упускайте из виду искажающие факторы На практике мы можем знать о существовании многих искажающих факторов, но редко, когда знаем все такие факторы. Парадокс Симпсона показал нам, что отказ от использования формулы корректировки может привести к выбору неправильного лечения. Соответственно, эффект от невключения релевантного фактора может оказаться раз-
89 Когда применять формулу корректировки рушительным. Пропуск релевантных искажающих факторов является ахиллесовой пятой формулы корректировки. Чтобы решить эту проблему, следует стараться включить как можно больше переменных. К сожалению, в реальных сценариях у вас может не быть доступа ко всем из них. В таких случаях крайне важно явно отметить это и сообщить тем, кто заинтересован в вашем анализе. Существуют инструменты для анализа чувствительности получаемых результатов к неучтенным искажающим факторам. Однако их обсуждение выходит за рамки этой книги. Если вам интересно, то поищите информацию по этой теме в специализированной литературе об анализе чувствительности в причинно-следственном анализе. Упражнение по моделированию ненаблюдаемых искажающих факторов Заполните табл. 2.6, используя процесс генерации данных со следующими параметрами и размером выборки 10 000: C := B(0,8); T := B(0,6)C + B(0,2)(1 – C); R := B(0,3)T + B(0,5)(1 – T) + C + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). 2.5.4. Медиаторы Представьте, что в примере с почечнокаменной болезнью лечение назначается случайным образом, но по какой-то причине после лечения размер камня изменяется. Обратите внимание, что хотя мы используем одно и то же слово размер, в действительности сейчас мы имеем два размера: размер до лечения и размер после лечения. Эту ситуацию иллюстрирует рис. 2.13. Рис. 2.13. Граф с медиатором. В данном случае медиатором является размер камней после лечения. После назначения лечения пациенту размер камней в его почках может измениться. M обозначает Mediator (медиатор), T – Treatment (метод лечения) и O – Outcome (исход, результат) M T O На первый взгляд кажется, что метод лечения влияет на выздоровление двумя способами: прямым (T → O) и косвенным (T → M → O). Поскольку часть эффекта от T до O проходит через M, переменнуюM принято называть медиатором. Чтобы оценить общий эффект влияния T на O, нас не интересуют разные пути, которыми лечение приводит к выздоровлению. Все эти пути обусловлены выбором метода лечения. Проще говоря, нам не нужно перехватывать ни один из
90 Глава 2 Первые шаги: работа с искажающими факторами двух путей, поэтому P(O|do(T = t)) = P(O|T = t). Тот же вывод можно сделать с формальной точки зрения: граф вмешательства и наблюдаемый граф одинаковы. У нас также будет иметь место равенство P(O|do(T = t)) = P(O|T = t), поэтому применять формулу корректировки не требуется. Случай, когда формула корректировки и эффект вмешательства не совпадают Даже если величина вмешательства и наблюдаемая величина одинаковы, может возникнуть вопрос: что произойдет, если применить формулу корректировки в примере с медиатором. Обычно это даст другую, новую величину и, что особенно важно, неверную. Поэтому в данном случае не нужно применять формулу корректировки: сделав это, мы внесем смещение. В некоторых конкретных задачах бывает интересно различать прямые и косвенные эффекты. Несколько примеров такого различения будет показано в главах 6 и 7. Упражнение по моделированию медиатора Заполните табл. 2.6, используя процесс генерации данных со следующими параметрами и размером выборки 10 000: T := B(0,4); M := B(0,6)T + B(0,2)(1 – T); R := B(0,4)T + B(0,5)(1 – T) + M + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). 2.5.5. Множество искажающих факторов Мы выяснили, как применять формулу корректировки в случае с одним искажающим фактором. Но на практике часто приходится иметь дело со множеством таких факторов. Представьте, что мы разрабатываем новую версию мобильного приложения и хотим узнать, как она повлияет на вовлеченность пользователей. Мы могли бы ожидать, что наибольшая вовлеченность будет наблюдаться среди молодых людей как более привычных к технологиям, и в то же время можно предположить, что молодежь будет взаимодействовать с приложением несколько иначе. Таким образом, в данном случае возраст является искажающим фактором. К типичным искажающим факторам можно отнести возраст, местоположение и пол. Многие искажающие факторы можно представить, как показано на рис. 2.14. Формула корректировки имеет тот же вид, но в ней используются такие члены, как P(Y|X, Z1, Z2, …, Zn) или P(Z1, …, Zn). То есть Z рассматривается как случайный вектор. Однако вычисление этих вероятностей – непростая задача. Отмечу заранее, что для этого мы
91 Когда применять формулу корректировки будем использовать методы машинного обучения (глава 4). ... Z1 Рис. 2.14. Граф с p различными искажающими факторами. Обычно на практике мы имеем не один, а множество искажающих факторов Zp X Y В этой ситуации также необходимо проверить предположение о положительности, которое в данном случае выражается всеми сопутствующими переменными вместе: P(T|X, Z1, Z2, …, Zn) > 0. Это означает, что все комбинации всех значений всех искажающих факторов были опробованы в какой-то момент. Это крайне тяжелое требование, особенно когда имеется большое количество искажающих факторов. Рост числа переменных дает комбинаторный взрыв, а это означает, что выборка данных тоже должна расти в экспоненциальной прогрессии. Мы поговорим об этом подробнее в главе 4, когда включим в формулу корректировки методы машинного обучения. 2.5.6. Переменные, прогнозирующие результат Рассмотрим ситуацию, описанную выше, когда имеются прогностические переменные (одна или несколько P), которые не влияют на переменную T (рис. 2.15). Рис. 2.15. Прогностическая переменная P предсказывает исход, но не метод лечения. С точки зрения смещения в этом случае между применением формулы корректировки и вычислением простой разности средних нет никакой разницы. Однако корректировка на прогностическую переменную может принести свою пользу, поскольку она способна уменьшить дисперсию оценок P T O Проверьте свои знания Какой граф соответствует рис. 2.15? И снова ответ на этот вопрос заключается в том, что граф вмешательства и наблюдаемый граф выглядят одинаково, а это означает, что P(O|do(T = t)) = P(O|T = t). Более того, в данном конкретном случае формула корректировки и P(O|T = t) совпадают.
92 Глава 2 Первые шаги: работа с искажающими факторами Выше и дальше: математический вывод формулы корректировки для прогностической переменной результата В этой врезке приводится краткое доказательство для тех, кому интересно, почему формула корректировки дает тот же результат, что и P(O|T = t). Вопервых, обратите внимание, что на рис. 2.15 P и T независимы, поэтому P(t, p) = P(t)P(p). Теперь используем это предположение при расчете формулы корректировки. По определению формулы корректировки мы имеем . Мы можем переформулировать предыдущее предположение о независимости, получив P(p) = P(T = t, p)/P(T = t). Подставляя этот член в предыдущее уравнение, имеем . Применяя определение условного ожидания P(O|T = t, p) = P(O, T = t, p)/P(T = t, p), члены P(T = t, p) сокращаются, давая . Суммирование всех членов P(O, T = t, p) относительно p дает нам P(O, T = t). Поэтому, наконец, . Со статистической точки зрения P(O|T = t) просто использует информацию T и O, тогда как при использовании формулы корректировки задействуются все остальные переменные P. Даже если две величины стремятся к одному и тому же значению, статистически полезно использовать формулу корректировки, потому что она может уменьшить дисперсию оценок и, соответственно, повысить их точность. Упражнение по моделированию прогностической переменной Заполните табл. 2.6, используя процесс генерации данных со следующими параметрами и размером выборки 10 000: T := B(0,4); P := B(0,4); O := B(0,4)T + B(0,5)(1 – T) + P + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1).
93 Когда применять формулу корректировки 2.5.7. Переменные, прогнозирующие выбор метода лечения Остался еще один случай: когда прогностические переменные предсказывают выбор метода лечения, но не его результат, как показано на рис. 2.16. Рис. 2.16. И снова с точки зрения смещения нет никакой разницы между применением формулы корректировки или простым вычислением разности средних. Однако корректировка на переменную, предсказывающую метод лечения, может принести вред, потому что она способна увеличить дисперсию оценок P T O Здесь граф вмешательства и наблюдаемый граф различаются. Однако мы находимся в ситуации, когда формула корректировки и прямое вычисление P(O|T) снова дают один и тот же результат. Выше и дальше: математический вывод формулы корректировки для прогностической переменной выбора метода лечения Поскольку переменные P влияют на O только через T, вся информация, необходимая для прогнозирования O, содержится в T (более по­ дробно об этом будет рассказываться в главе 7), что приводит к равенству P(O|T, P) = P(O|T): . В отличие от предыдущего примера, где корректировка для прог­ ностических переменных результата может уменьшить дисперсию оценок, корректировка для прогностических переменных выбора метода лечения может увеличить дисперсию. Поэтому рекомендуется не контролировать такие прогностические переменные, если это возможно. 2.5.8. Условное вмешательство Представьте, что нам нужно рассчитать эффект вмешательства для определенного значения искажающего фактора Z. Например, если в примере с почечнокаменной болезнью выбрать только пациентов с маленькими камнями (рис. 2.17), то какой эффект окажет назначение каждому пациенту метода лечения A?
Глава 2 Первые шаги: работа с искажающими факторами 94 Z=z T O Рис. 2.17. Иногда бывает желательно оценить эффект выбора метода лечения для определенной подгруппы. Как показано на этом графе, это можно сделать, сначала обусловив искажающий фактор, а затем сравнив средние исходы. Здесь Z обозначает искажающий фактор, T – метод лечения, а O – исход (результат) Проверьте свои знания Рассмотрите рис. 2.17 и скажите, какой граф вмешательства соответствует вмешательству do(T = t). В этом случае если обусловить определенное значение z, то эффект переменной Z исчезает (это происходит не всегда, как будет показано в главе 7). То есть для этой конкретной выборки Z не имеет вариации и потому не влияет ни на T, ни на O. Это означает, что граф вмешательства (из которого удалены все стрелки, заканчивающиеся на T) выглядит точно так же, как наблюдаемый граф. Формально вероятность O в графе вмешательства для случаев, когда Z = z, выражается как P(O|do(T = t), Z = z). Это называется z-специфическим эффектом. Но поскольку оба графа, вмешательства и наблюдений, одинаковы, мы имеем P(O|do(T = t), Z = z) = P(O|T = t, Z = z). Рассуждение остается верным независимо от того, является Z случайной величиной или случайным вектором. Это означает, что вмешательство для конкретного набора искажающих факторов Z = z можно вычислить так же, как условную вероятность. Мы вернемся к этому вопросу в главе 4, когда будем говорить о методах машинного обучения. Определение z-специфических эффектов Определение P(O|do(T = t), Z = z) требует осторожности и внимательности при его чтении. Оно было представлено следующим образом: сначала мы обусловили интересующую нас выборку (пациентов, для которых Z = z), а затем вмешиваемся в граф. Однако если всегда действовать именно так, то рано или поздно возникнут проблемы. Рассмотрим пример на рисунке ниже, где размер камней S выступает в роли медиатора. Если сначала установить условие S = Маленький, то это равносильно выбору пациентов, у которых после лечения в почках останутся маленькие камни. Но если мы назначим определенное лечение для всех, то попадем в странную ситуацию, когда у некоторых пациентов с маленькими камнями после изменения метода лечения камни окажутся большими. И тогда наш мозг взорвется! Это похоже на странную петлю, зависящую от времени.
95 Когда применять формулу корректировки Сложно четко определить влияние вмешательства на группу пациентов, определяемую размером камней после лечения. Для этого необходимо использовать контрфактуалы, как описано в главе 10. S T O В такой ситуации можно использовать контрфактуалы (краткое введение в контрфактуалы вы найдете в главе 10). Но в общем случае P(O|do(T = t), Z = z) означает следующее: сначала мы вмешиваемся, а затем выбираем интересующую нас популяцию Z = z. Если у нас есть искажающий фактор, то неважно, когда мы вмешиваемся – сначала или потом, потому что значение не изменится из-за выбора метода лечения. Вот почему в этом разделе порядок не имеет значения. 2.5.9. Объединение всех предыдущих ситуаций Давайте обобщим типы переменных, которые мы обсудили, и их влия­ ние на анализ данных. Работая с данными, проверьте, присутствуют ли в вашем исследовании какие-либо из следующих типов переменных (см. рис. 2.18). „ Наблюдаемые факторы, которые могут потребовать корректировки (C1). Ненаблюдаемые факторы, которые могут потребовать корректировки (C2). Последние представляют наибольший риск для корректности результатов анализа. „ Прогностические переменные (P), предсказывающие исход, которые не требуют корректировки, но могут помочь уменьшить дисперсию оценок. „ Прогностические переменные, предсказывающие выбор метода лечения (PT), которые влияют на принятие решений, но не на исход (O). Их включение может увеличить дисперсию оценки ATE, поэтому обычно лучше их исключить. „ Медиаторы (М) обычно не включаются в формулу корректировки; конкретные случаи обсуждаются в главах 6 и 7. PT C1 C2 T P O M Рис. 2.18. Все предыдущие ситуации в одном графе В табл. 2.7 перечислены все типы переменных и указывается, следует ли включать их в формулу корректировки.
Глава 2 Первые шаги: работа с искажающими факторами 96 Таблица 2.7. Типы переменных и необходимость их включения в формулу корректировки Тип переменных Надо ли включать в формулу корректировки для вычисления P(O = 1|do(X = x))? Искажающий фактор Определенно надо Неизвестные искажающие факторы Надо бы, но невозможно, и это проблема! Медиаторы Нет: их включение вызовет смещение Переменные, предсказывающие исход Их включение не вызывает смещения, и в общем случае рекомендуется включать их, так как это может улучшить статистическую точность Переменные, предсказывающие выбор метода лечения Их включение не вызывает смещения, но в общем случае нежелательно включать их, так как это может ухудшить статистическую точность Конечно, это довольно упрощенное представление отношений между переменными, которые могут быть очень сложными. Например, наблюдаемые и ненаблюдаемые искажающие факторы могут быть взаимосвязаны (см. рис. 2.19). В главе 7 мы рассмотрим ситуацию с имеющимся допустимым графом и разработаем инструмент, называемый критерием обходного пути, чтобы проверить возможность оценки ATE и выбрать переменные для включения в формулу корректировки. C Z T O Рис. 2.19. Реальные сценарии могут быть намного сложнее. Например, пусть мы знаем, что на наше исследование влияет искажающий фактор, но у нас нет информации о нем. Может ли корректировка других переменных помочь получить несмещенную оценку? Мы рассмот­ рим такие сценарии в главе 7 2.5.10. Обобщение различий между вмешательством и применением формулы корректировки В разделе 2.2.5 была представлена формула корректировки как способ оценки эффекта вмешательства. Затем, в разделе 2.5, мы узнали, что формула корректировки не всегда подходит для этого (например, она не подходит в ситуациях с присутствием медиатора, см. раздел 2.5.4). На рис. 2.20 представлен краткий обзор, который должен помочь вам визуально увидеть различия между условной вероятностью, вероятностью с вмешательством и формулой корректировки.
97 Итак, каков план? Тип графа Ориентированный ациклический граф Рандомизированное контролируемое исследование (X – ковариаты) X T Искажающий фактор (C) Наблюдаемая вероятность P(O|T=A) Вероятность вмешательства P(O|do(T=A)) Формула корректировки = = ≠ = = ≠ O C T Медиатор (M) O M T O Рис. 2.20. Различия между условной вероятностью, вероятностью c вмешательством и формулой корректировки для случаев RCT и при наличии искажающих факторов и медиаторов. Знаки равенства и неравенства указывают, согласуются ли соседние величины. T обозначает Treatment (метод лечения), C обозначает Confounder (искажающий фактор), M обозначает Mediator (медиатор), X обозначает ковариаты В случае RCT три значения выстраиваются в линию. Это означает, что даже если учитываются такие характеристики, как возраст пациента (X), формула корректировки все равно дает несмещенную оценку эффекта после вмешательства. Однако когда имеется искажающий фактор, наблюдаемые условные вероятности и вероятности c вмешательством, как правило, различаются (вспомните парадокс Симпсона). В таком случае можно использовать формулу корректировки для расчета вероятности с вмешательством. В ситуациях, связанных с медиатором, наблюдаемые вероятности и вероятности с вмешательством равны. Но формула корректировки имеет тенденцию давать смещенную оценку. 2.6. Итак, каков план? Формула корректировки – это лишь один из методов, который можно использовать на шаге 5 в блок-схеме причинного анализа, которая была показана в главе 1 (рис. 1.1) и повторно приводится на рис. 2.21. Но знание формулы корректировки – это только начало. Для ее применения к конкретной задаче требуются дополнительные шаги, как показано на рис. 2.22. Сначала вам придется выяснить, оправдано ли применять формулу корректировки к вашему ориентированному ациклическому графу (directed acyclic graph, DAG), и если оправдано, то какие переменные следует корректировать (объясняется в главе 7). Затем нужно проверить, выполняется ли предположение о положительности (описано в главе 5).
Глава 2 Первые шаги: работа с искажающими факторами 98 1. Определите, какими данными вы располагаете – экспериментальными или наблюдаемыми. 2. Постарайтесь лучше понять задачу (контекст, переменные, ...). 3. Создайте модель, описывающую связи между переменными. 4. Покажите свою модель другим участникам анализа, расскажите им о целях и предположениях, чтобы получить их отклик. 5. Примените методы причинно-следственного анализа к данным и модели, чтобы ответить на вопросы о причинах: a. Укажите, какие задачи может решать ваша модель. b. Оцените причинно-следственные связи и доверительные интервалы, используя соответствующие формулы. Инструментальные переменные Формула корректировки (мы здесь) Временные ряды Рис. 2.21. Пять шагов процесса анализа причинно-следственных связей 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (глава 7). Проверьте предположение о положительности (глава 5). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Переменная воздействия имеет непрерывный тип или бинарный? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (глава 6) Точная Двойное машинное обучение (глава 8) Бинарный Количество переменных для корректировки? Мало Прямое применение формулы корректировки (глава 2) Много Алгоритм T-learner (глава 4) Рис. 2.22. На этой диаграмме представлен подход, который используется в частях I и II книги и основан на применении формулы корректировки в различных сценариях и с использованием различных методов
Основные уроки главы 99 Второе, что нужно сделать, – получить численную оценку. Вы будете использовать разные методы в зависимости от характера переменной воздействия (в примерах выше – переменная, определяющая метод лечения). Если эта переменная является бинарной, то у вас будет два варианта. При наличии небольшого количества искажающих факторов можно применить формулу корректировки как она есть (как описано в этой главе). Но если искажающих факторов много относительно размера выборки, то, как объясняется в главе 4, вам придется применить методы машинного обучения. С другой стороны, если переменная обработки непрерывна, то формулу корректировки, описанную в этой главе, нельзя применить напрямую. В этом случае у вас есть два варианта. Если вам нужна ориентировочная оценка, полученная с использованием понятных вам методов и которую можно использовать в качестве ориентира перед дальнейшим анализом, тогда следует использовать линейные методы (глава 6). Если же вам нужен точный результат, учитывающий нелинейные отношения, тогда следует использовать двойное машинное обучение (глава 8). СОВЕТ. Блок-схема на рис. 2.22 очень полезна. Однако следует помнить, что она не совсем точна. Например, методы анализа непрерывных переменных применимы и к бинарным переменным. Кроме того, формально метод двойного машинного обучения не является применением формулы корректировки, однако его можно применять при тех же обстоятельствах, и он выполняет похожую работу. Вот почему мы включили его сюда. 2.7. Основные уроки главы Ниже приводится список, цель которого – устранение недоразумений, которые могут возникнуть при попытке ответить на причинно-следственные вопросы без использования соответствующих инструментов. „ Мы знаем, что корреляция не является причинно-следственной связью, но если есть какая-то корреляция, то должна быть и какаято причинно-следственная связь в том же направлении, верно?! Эта идея ошибочна, и доказательством ошибочности может служить парадокс Симпсона: если вы используете только корреляции, то решение может кардинально измениться в зависимости от набора переменных, включенных в анализ. Не полагайтесь только на корреляции. „ Данные не говорят сами за себя. Мы увидели, что в причинном анализе нельзя полагаться только на данные. Нужно создать модель получения данных, и эта модель подскажет вам, какие формулы применять.
Глава 2 Первые шаги: работа с искажающими факторами 100 „ „ Увеличение объема данных не решит проблему. Один из способов, с помощью которого решаются проблемы в Big Data, – это сбор еще большего количества данных (большего числа переменных или большего объема выборки). Например, глубокое обучение помогает создавать более точные модели за счет увеличения объема данных и размера сети. Однако в причинно-следственном анализе увеличение количест­ ва данных помогает не всегда. В примере с почечнокаменной болезнью у нас было всего восемь точек данных, и мы решали нашу задачу не путем увеличения размера выборки, а смоделировав проблему с причинно-следственной точки зрения. Одной корреляции недостаточно. Корреляция – это симметричная функция переменных: corr(x, y) = corr(y, x). Но причинно-следственная связь не симметрична: если x вызывает y, то изменение y не меняет x. Поэтому при анализе причинно-следственных связей нужно использовать язык, явно выражающий направленность. 2.8. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Что такое искажающий фактор? Ответ во врезке «Искажение». 2 Зачем нужна формула корректировки? Ответ в разделе «Формула корректировки». 3 Формула корректировки может применяться не всегда. Опишите случай с тремя переменными, когда не следует применять формулу корректировки. Ответ в разделе 2.5.4. 4 Каковы возможные последствия отказа от использования формулы корректировки, когда это необходимо, или, наоборот, от ее применения, когда этого делать не следует? Ответ в разделе 2.5. 5 Что обозначает понятие вмешательства в причинно-следственную связь в реальном мире? Вспомните формальное определение вмешательства во врезке «Формальное определение вмешательства». Ответ в разделе 2.3. 6 Что измеряет средний лечебный эффект (average treatment effect, ATE)? Ответ в разделе 2.2.5.
Контрольные вопросы 101 Итоги „ „ „ „ „ „ „ Прежде чем выносить суждение о причинно-следственной связи, вспомните парадокс Симпсона: он показывает, как могут меняться выводы в зависимости от набора переменных, включенных в анализ. Этот факт должен предостеречь вас от простого сравнения двух альтернатив при работе с данными наблюдений, поскольку результат может быть некорректным. Чтобы отличить корреляцию от причинно-следственной связи, можно использовать формулу корректировки. Знание предметной области имеет решающее значение при анализе причинно-следственной связи, потому что оно приведет вас к графу, который подскажет, следует ли применять формулу корректировки. Главный риск в любом причинном анализе – пропуск релевантных искажающих факторов. Поэтому вы должны четко указать, о каких искажающих факторах у вас есть информация, а о каких – нет. RCT и A/B-тестирование гарантируют отсутствие искажающих факторов. Вот почему всегда рекомендуется проводить их, если это возможно. Прежде чем применять формулу корректировки, необходимо проверить предположение о положительности: чтобы оценить, как воздействие работает в конкретной ситуации, его необходимо опробовать в какой-то момент в прошлом. Используйте графы для пояснения и информирования остальной части команды о целях и предположениях анализа.
3 Применение причинноследственного анализа В этой главе: „ „ „ создание ориентированного ациклического графа для описания закономерностей генерирования данных; как с помощью ориентированного ациклического графа сделать предположения явными; представление рекомендательных систем, ценообразования и маркетинговых задач с помощью графов. В предыдущей главе мы увидели, что причинно-следственные задачи можно моделировать в виде графов, а также узнали, что граф имеет большое значение для оценки искомого причинного воздействия и что в зависимости от геометрии графа может потребоваться применить формулу корректировки. Теперь мы обсудим, как создавать такие графы. В этой главе мы рассмотрим несколько примеров сценариев применения методов причинно-следственного анализа. Конкретные причинно-следственные задачи обычно решаются в два шага. Сначала описание задачи переводится на язык причинно-следственных связей. Графы являются отличными инструментами для этого – они помогают поместить в модель всю имеющуюся информацию о том,
Когда и зачем использовать графы в причинно-следственном анализе 103 как были получены данные. Создание графа имеет решающее значение, поскольку он определяет, какие формулы, такие как формула корректировки, будут использоваться позже. Многие считают этот этап сложным и не знают, с чего начать. Вот почему в этой главе мы рассмотрим примеры, которые продемонстрируют процесс создания графа и помогут вам начать создавать собственные графы. Научившись создавать графы, представляющие ваши задачи, мы перейдем к следующему шагу – использованию формул, алгоритмов или других методов для оценки причинно-следственных связей. Этому этапу будут посвящены последующие главы книги. Примеры в этой главе упрощены. Их главная цель – проиллюстрировать основные случаи, которые могут послужить вам основой решения вашей конкретной задачи. Мы постарались избежать чрезмерной детализации, чтобы сделать примеры простыми для понимания и легко адаптируемыми к другим ситуациям. Когда использовать ориентированные ациклические графы (DAG) Решение задачи анализа причинно-следственных связей рекомендуется начинать с рисования соответствующего графа. Это поможет вам четко сформулировать свои предположения, выяснить, какие переменные нужны, а какие нет, и установить конкретные цели анализа. 3.1. Когда и зачем использовать графы в причинно-следственном анализе В главе 1 мы представили блок-схему на рис. 1.1, которую снова приводим здесь на рис. 3.1. Эта схема представляет типичные шаги анализа причинно-следственных связей с использованием графов. (Напомню, что есть еще один подход, называемый структурой потенциальных результатов (potential outcomes framework), который не полагается на графы, мы рассмотрим его в части III книги.) Графы играют важную роль в большинстве этих шагов. Давайте посмот­ рим, как они используются в каждом шаге от 2 до 5 (точки a и b). Мы предполагаем, что работаем с данными наблюдений, поэтому не включаем шаг 1. В этой главе мы подробно рассмотрим шаг 5 в схеме на рис. 3.1. „ На какие вопросы может помочь ответить имеющаяся у нас информация? Использование графа для выявления целей, которые могут быть достигнуты. Например, если бы мы не измерили размеры камней в примере с почечнокаменной болезнью, то не смогли бы оценить эффект лечения. „ Проверка выполнения предположения о положительности (см. главу 2). Другие предположения для оценки модели с данными будут обсуждаться в главе 7.
104 Глава 3 Применение причинно-следственного анализа 2. Постарайтесь лучше понять задачу (контекст, переменные, ...). 3. Создайте модель, описывающую связи между переменными. 4. Покажите свою модель другим участникам анализа, расскажите им о целях и предположениях, чтобы получить их отклик. 5. Примените методы причинно-следственного анализа к данным и модели, чтобы ответить на вопросы о причинах: a. Укажите, какие задачи может решать ваша модель. b. Проверьте соответствие предположений, сделанных в модели, и ваших данных. c. Оцените причинно-следственные связи и доверительные интервалы, используя соответствующие формулы. Рис. 3.1. Пять шагов процесса анализа причинно-следственных связей Отметим еще раз, что знание предметной области просто полезно в машинном обучении, но в причинно-следственном анализе оно жизненно важно. В главе 2 мы узнали, что, выбирая метод лечения, врачи оценивают размеры камней в почках. Эту тонкость можно узнать, только спросив врачей напрямую. И эта переменная влияет на нашу модель, проводя стрелку от размера к методу лечения. Следовательно, чтобы оценить влияние метода лечения на вероятность выздоровления, мы должны использовать формулу корректировки. Если бы стрелка указывала в другую сторону (от метода лечения к размеру) в предположении, что метод лечения влияет на размеры камней, то нам не нужна была бы формула корректировки. Проще говоря, модель определяет, какие расчеты должны быть выполнены позже. Графы показывают, какие переменные важны в нашем исследовании и как они взаимосвязаны. В этой книге мы в основном будем использовать ориентированные ациклические графы (DAG). Слово «ориентированные» означает, что ребра в таких графах имеют вид стрелок, показывающих причинно-следственную связь (изменение A влияет на B, но не наоборот). Слово «ациклические» означает, что никакой путь в таком графе не приведет обратно в уже пройденный узел (это скорее ограничение, чем особенность). Следуя по стрелкам, вы никогда не вернетесь в исходную точку. Взгляните на примеры графов на рис. 3.2 и 3.3. Графы играют важную роль, связывая аналитиков и экспертов в предметной области. С помощью графа вы сможете вступить в сотрудничест­во с экспертами, чтобы: „ убедиться, что все релевантные переменные учтены, включая имеющиеся и отсутствующие; „ определить, какие переменные напрямую связаны, а какие нет (указаны стрелками); „ уточнить цели анализа, например какие причинно-следственные эффекты следует оценить (представлены стрелками).
105 Шаги по формулированию задачи с использованием графов A A B C Рис. 3.2. В ациклическом графе никакой путь не возвращается назад в исходную точку B C Рис. 3.3. В циклическом графе имеется путь, начинающийся и заканчивающийся в узле A: A → B → C → A Наши заключения в значительной степени будут основываться на графе, который должен содержать всю необходимую информацию. Поэтому крайне важно со всем тщанием подойти к его созданию. В следующем разделе приводятся некоторые рекомендации, которые помогут избежать неверных выводов. К счастью, графы просты и понятны, что облегчает общение между аналитиками и экспертами в предметной области, а также между самими аналитиками. Для выработки привычки создавать графы, описывающие решаемые задачи, в первое время может потребоваться приложить некоторые усилия. Но эти усилия окупят себя: каждый раз, сталкиваясь с новой причинной задачей, даже самой простой, первым делом нужно спросить себя, как будет выглядеть граф. Повторяя эту стратегию снова и снова, вы привыкнете оформлять причинные вопросы в виде графов. Начав создавать свой граф, вы увидите, что какие-то его части получаются очень четкими, а другие – размытыми. А иногда вы даже не будете знать, с чего начать. Советы, предложенные в этой главе, должны облегчить вам путь. В какой-то момент вам придется иметь дело со сложными графами (с множеством стрелок и узлов). В таких случаях начните с простого, с отдельных частей графа, которые вы понимаете лучше всего, а позже вы сможете увеличить сложность, добавив больше узлов и стрелок. После создания графа хорошо бы показать его другим. Это поможет вам убедиться, что он соответствует цели анализа, и узнать, не упус­ тили ли вы что-то важное. 3.2. Шаги по формулированию задачи с использованием графов Давайте рассмотрим последовательность шагов создания графа: 1 Составьте список всех релевантных переменных, которые могут участвовать в процессе генерации данных. При необходимости проконсультируйтесь с экспертами в предметной области. Помните, что перечисление всех переменных имеет большое значение для учета всех искажающих факторов, что очень важно в причинно-следственном анализе.
Глава 3 Применение причинно-следственного анализа 106 Создайте граф, изучив каждую пару переменных, и определите наличие прямой причинно-следственной связи между ними. Если такая связь есть, то отразите ее направление стрелкой. 3 Четко сформулируйте основные предположения и ограничения вашей модели. Убедитесь, что все в команде их понимают. 4 Убедитесь, что все участники согласны с целями анализа. 5 Проверьте, достаточно ли изменчивости в данных, чтобы ответить на интересующие вас причинно-следственные вопросы. Например, проверьте предположение о положительности, которое гласит, что для каждого значения искажающих факторов есть данные о различных типах воздействия. В следующих разделах мы подробно рассмотрим каждый шаг. 2 3.2.1. Составьте список всех переменных Представьте, что вы работаете на медиаплатформе, которая ежедневно публикует статьи о спорте и культуре на своем веб-сайте, а также в социальных сетях. Вам поручено анализировать данные с целью помочь журналистам принимать решения по контенту. Руководитель команды журналистов хочет знать, какая тема в спорте или культуре привлечет большее число читателей. Это распространенная потребность во многих отраслях: сравнение эффективности. Один из подходов – это A/B-тестирование: для каждой новой статьи выберите наугад, будет ли она посвящена спорту или культуре; затем через какое-то время сравните количество просмотров двух статей. Однако в вашем проекте такой подход может оказаться невыполнимым. Во-первых, в некоторых ситуациях A/B-тестирование вынуждает писать текст на определенную тему, но в этот момент может не быть подходящих новостей для освещения в статье. Такие статьи не будут вызывать интереса, и, соответственно, количество просмот­ ров страницы будет ниже ожидаемого. Во-вторых, время, необходимое для измерения эффективности, зависит от количества читателей. Если аудитория большая, то вы быстро соберете данные, а если она маленькая, то тестирование может затянуться на недели или месяцы и нанести вред вашему бизнесу, поскольку ожидаемый контент не будет доставлен вовремя. Сначала нужно понять контекст, чтобы проанализировать эту проб­ лему, оценив причинно-следственные связи в исторических данных. Вот как мог бы выглядеть этот процесс в вашей компании: 1 Команда журналистов выбирает тему для каждой статьи. 2 Маркетинговая команда выбирает рекламную платформу для каждой статьи. Обычно статьи о спорте рекламируются на Facebook, потому что маркетинг считает, что там они расходятся быстрее. Статьи о культуре обычно рекламируются с помощью Google AdWords, потому что люди, ищущие культурную информацию, могут наткнуться на эти статьи во время просмотра Google (например, в процессе поиска места проведения или подробностей расписания).
Шаги по формулированию задачи с использованием графов 107 Количество просмотров страниц для каждой статьи нельзя сравнивать напрямую, потому что выбор платформы может влиять на просмотры страниц. Некоторые платформы могут быть более эффективными, чем другие. Спроси себя Какие переменные могут что-то сказать об этой теме? Они могут играть разные роли: Какие переменные описывают воздействие или определяют решения? „ Какие переменные описывают результат? „ Какие переменные влияют на результат? Какие имеются контекстуальные переменные, такие как социаль„ но-экономический статус страны? Определите переменные, которые оказывают прямое или косвенное влияние на результат или не оказывают такого влияния. Например, вы не можете напрямую управлять популярностью темы, но можете продвигать ее; вы не можете напрямую изменять уровень холестерина, но можете контролировать его с помощью диет или лекарств; погода может не иметь прямого влияния на результат. „ Крайне важно перечислить все релевантные переменные: и те, по которым у нас есть данные, и те, по которым у нас нет данных, и даже те, которые мы затрудняемся описать. В предыдущих главах не раз говорилось, что пропуск релевантных искажающих факторов – один из основных рисков в причинно-следственном анализе: они могут изменить выводы на диаметрально противоположные, как в парадоксе Симпсона. Иногда мы знаем о существовании релевантного искажающего фактора, но не имеем о нем информации. Например, в сценарии с почечнокаменной болезнью, если врачи упоминают, что при выборе метода лечения они учитывают размеры камней, но у нас нет этих данных, то придется признать, что причинно-следственный анализ невозможен. Мы должны перечислить все искажающие факторы, потому что если мы не будем достаточно осторожны, то можем ограничить себя и не сделать явными ненаблюдаемые искажающие факторы из-за страха прийти к выводу, что наша задача не имеет решения. В главе 7 мы рассмотрим возможные обходные пути в некоторых таких ситуациях. В нашем примере критически важными переменными, которые следует учитывать, являются: „ переменная решения – тема сообщения; „ переменной результата может быть количество просмотров, хотя также интерес могут представлять такие результаты, как количество просмотров за долгий или короткий промежуток времени или отношение количества просмотров страниц к затратам на написание статьи этого типа;
Глава 3 Применение причинно-следственного анализа 108 также необходимо учесть конкретную рекламную платформу, выбранную для каждой публикации (реклама в Facebook, Google AdWords и т. д.). Наш исторический набор данных состоит из трех столбцов: «тема», «платформа» и «количество просмотров». Каждая запись представляет статью и описывает ее тему, платформу для рекламы и количество просмотров. Выбранные к данному моменту переменные явно перечислены группой журналистов. Однако на модель могут влиять и другие факторы, например: „ сезонность: спортивные сезоны влияют на интерес к статье, поэтому сезонность важна; „ год: на интерес к статье могут влиять такие важные события, как олимпиада, строительство новых стадионов и смена составов команд; „ популярность темы: большой интерес к статье о поп-группе может быть вызван популярностью этой группы в данный момент. Измерение популярности может быть сложной задачей и будет обсуждаться далее в этой главе. Этот список переменных может дополняться контекстом и подробностями. Кроме того, некоторые рекламные платформы предоставляют информацию о переходах с определенных объявлений, что может упростить анализ. Однако определенное объявление могло быть показано пользователю много раз, пока тот, наконец, не щелкнул на нем. Если у нас нет этой информации, то мы припишем все заслуги последнему показанному объявлению, что даст нам искаженную картину. Этого не произойдет, если использовать причинно-следственную модель. Поскольку посещения страниц происходят после размещения рекламы публикации, щелчок (переход) приписывается факту показа рекламы (один или несколько раз), а не только последнему показу. „ 3.2.2. Создайте свой граф После составления списка переменных смоделируйте связь между каждой парой переменных. Для любой пары X и Y может обнаружиться, что между ними: „ нет прямой причинно-следственной связи (хотя может быть косвенная связь через другие переменные); „ есть прямая причинно-следственная связь, где либо X вызывает Y, либо Y вызывает X. Значение стрелки Мы ставим стрелку X → Y всякий раз, когда думаем, что X оказывает влияние на Y. То есть мы поставим стрелку, и когда уверены, что такое влияние есть, и когда не уверены в этом. Мы не ставим стрелку, только когда уверены, что X и Y не имеют прямой причинно-следственной связи.
Шаги по формулированию задачи с использованием графов 109 Формально (подробнее об этом рассказывается в главе 7) мы говорим, что Y может быть рассчитана как функция от X и, возможно, от некоторых других переменных или эффектов, выраженных через случайную величину U: Y := f(X, U). Другими словами, Y зависит от X. Но одного знания X недостаточно, чтобы определить точное значение Y, потому что на Y влияют и другие неизвестные факторы U. Вот почему, даже если известна X, переменная Y | X все равно остается случайной величиной (случайность здесь исходит из U). Напомню, что для выражения направления стрелки X → Y мы используем символ :=. Обычно переменная U может подразумевать другие ненаблюдаемые переменные, способные влиять на процесс. Если наблюдаются другие переменные Z и они влияют на Y, то мы можем записать этот факт как Y := f (X, Z, U). Для простоты, поскольку значение стрелки не меняется, рассмотрим случай без других переменных. Эту формулу следует читать, как принято в программировании: зная значение X, мы можем вычислить значение Y через функцию f. Но изменение Y не изменит значения X. Утверждение, что Y является функцией от X, является очень общим. Оно включает и такой странный случай, когда зависимость через f на самом деле не является зависимостью от X, например f(X, U) = U. Желательно избегать такого рода вырожденного случая. Проблема в том, что с формальной точки зрения трудно наложить ограничение на f, сказав, что она действительно зависит от X. Поэтому когда мы ставим стрелку X → Y, то тем самым мы как бы говорим, что потенциально X может влиять на Y, включая случай, когда это не так. Предположения, связанные с отсутствием стрелок Когда мы говорим, что между X и Y нет стрелки (т. е. нет прямой причинно-следственной связи), то тем самым мы высказываем предположения о нашей модели. Например, сравните рис. 3.4, где все узлы соединены стрелками, и рис. 3.5. В последнем случае, когда мы приступаем к анализу причинно-следственных связей между переменными, мы видим, что А влияет на С, А влияет на D и С влияет на D, и наша интуиция подсказывает нам, что переменная B не играет никакой роли в этой модели, ее можно безопасно удалить и тем самым упростить модель. Так действует предположение, выраженное отсутствием стрелок, связывающих B с другими узлами. С другой стороны, граф на рис. 3.4 содержит четыре узла, и все они связаны. На данный момент мы не можем его упростить. Часто определить направление стрелки помогает использование времени: что чему предшествует. Если этого недостаточно, то можно использовать метафору слушателя, предложенную Джудом Перлом: X является причиной Y, если Y слушает X и определяет ценность услышанного. – Метафора слушателя, Джуда Перл
Глава 3 Применение причинно-следственного анализа 110 A B A B C D C D Рис. 3.4. Пример графа с четырьмя взаимосвязанными узлами. Единственные предположения, которые здесь можно сделать, касаются направлений стрелок Рис. 3.5. Пример графа с четырьмя узлами, предполагающий отсутствие причинно-следственных связей между некоторыми из них. Здесь предположения выражаются отсутствием стрелок А теперь вернемся к примеру релевантности темы, представленному в разделе 3.2.1. Наша цель – вычислить причинно-следственное влияние темы на количество просмотров страниц, представленное стрелкой от темы к количеству просмотров, которое мы стремимся оценить. Мы будем рассматривать сезонность и популярность как искажающие переменные (для простоты мы исключим переменную «год», которая также является искажающим фактором). Выбор платформы следует за выбором темы, поэтому тема влияет на выбор платформы. Кроме того, выбор платформы может влиять на количество просмотров, что отражает ее роль в рекламе. Разумно также предположить, что платформы учитывают сезонность и популярность темы при принятии решения о том, когда и кому показывать рекламу. Соответственно, мы добавляем стрелки от сезонности и популярности к платформе. Учитывая, что имеет место некоторая неопределенность, мы проявляем осторожность и добавляем стрелки (напомню, что стрелки мы убираем только тогда, когда абсолютно уверены в отсутствии прямого влияния). Получившийся граф показан на рис. 3.6. Сезонность Популярность Платформа Тема Количество просмотров Рис. 3.6. Граф, показывающий влияние темы на просмотры страниц. Сезонность и популярность являются искажающими факторами, а платформа – медиатором
Шаги по формулированию задачи с использованием графов 111 Выше и дальше В причинно-следственном анализе есть область, называемая выявлением причинно-следственных связей, которая фокусируется на автоматическом получении причинно-следственного графа из данных. Как правило, воссоздать граф исключительно из данных невозможно, не выдвинув дополнительных предположений. Мы не будем углубляться в эту область, но для любопытных читателей ниже приводится крат­ кое объяснение. Представьте сценарий с двумя переменными, X и Y. Мы можем измерить их корреляцию, которая симметрична (corr(X, Y) = corr(Y, X)), но она не указывает направление связи: X → Y или Y → X. Известно (см. главу 7), что любое распределение пар (X, Y) производят две причинно-следственные модели, но со стрелками, указывающими в противоположных направлениях. Следовательно, совместная вероятность (X, Y) не позволяет однозначно определить направление стрелки, т. е. направление нельзя определить на основе одних только данных. Как работать с циклическими графами При получении циклического графа, например когда A является причиной для B, а B является причиной для A, мы сталкиваемся с проблемой, потому что ациклические графы не могут представлять такие ситуации. В подобных случаях у нас будут иметься стрелки A → B и B → A, образующие петлю (A → B → A). Однако эту проблему можно решить с помощью временных рядов с данными, собранными за разные периоды времени. В следующем разделе мы объясним, как использовать временные ряды для развертывания графа во времени. К сожалению, пока нет устоявшейся готовой теории, которая могла бы направлять нас при работе с ориентированными графами, которые нельзя развернуть во времени. Поэтому если у вас нет временных рядов, то применение теории, изложенной в этой книге, может оказаться сложной задачей. Рассмотрим пример магазина, в котором мы повышаем цену на определенный товар. Это изменение наверняка повлияет на спрос, что, в свою очередь, повлияет на ваше следующее решение вновь скорректировать цену. Однако при более внимательном рассмотрении вы понимаете, что цена не сразу влияет на спрос и наоборот. Требуется время, чтобы изменение цены повлияло на спрос, и время, чтобы вы переоценили свое решение и снова скорректировали цены. Чтобы представить это в графическом виде, мы создаем цик­лический граф, где цена влияет на спрос, а спрос – на цену. При взгляде на такой граф создается впечатление, что оба влияния происходят одновременно. В действительности это не так. Сегодняшние цены влияют на сегодняшний спрос, который впоследствии повлияет на завтрашние
112 Глава 3 Применение причинно-следственного анализа цены. Мы можем решить эту проблему, развернув процесс во времени и рассмотрев каждую переменную в ее конкретной точке времени. Например, если Pt представляет цену в момент времени t, а Dt – спрос в момент Dt–1 Dt Dt+1 времени t, то мы можем написать Pt → Dt → P(t + 1). Это позволяет избежать цик­ лов в графе, как показано на рис. 3.7. Более того, можно предположить, что Pt–1 Pt Pt+1 цены, установленные в момент времени Рис. 3.7. График, представt – 1, влияют на решение о ценах в моляющий скидки на основе мент времени t. В то же время те, кто исторической частоты покуне смог купить товар в момент времени пок. Цена и спрос влияют на t – 1, будут готовы купить его в момент цены и спрос в будущем времени t, поэтому Dt – 1 тоже влияет на Dt. 3.2.3. Сформулируйте свои предположения Большинство сделанных нами предположений встроены в конструкцию графа: выбор переменных, размещение стрелок и их направления. Хорошей практикой считается, когда первоначальная версия графа выносится на суд других членов команды. В ходе совместного обсуждения можно определить, какие стрелки следует добавить или удалить. Например, при обсуждении графа на рис. 3.6 может возникнуть спор о необходимости включения стрелки от сезонности к платформе. Ктото может утверждать, что решение платформы о том, какую рекламу показывать, основано на популярности темы, а не на времени года, откуда вытекает, что сезонность не оказывает прямого влияния на платформу, и имеет только косвенное влияние на нее через популярность. Если мы в этом убеждены (и наше убеждение подкреплено дополнительной информацией), то можем удалить стрелку от сезонности к платформе и добавить еще одну – от сезонности к популярности. Однако если мы не можем с уверенностью утверждать, что сезонность имеет или не имеет прямого влияния на платформу, то оставим стрелку как есть. С измерением популярности может возникнуть проблема. Мы не уверены, что влечет за собой популярность или как ее рассчитать. Как один из подходов – можно подсчитать, как часто тема появляется в различных СМИ, но такое исследование может оказаться дорогостоящим. Другой вариант – использовать третьи сервисы, такие как Google Trends, которые могут быть не очень точными, но охватывают большую часть необходимой информации. Приняв решение использовать сторонний сервис, мы должны сообщить об этом остальной части команды. Рассмотрим простой пример, включающий компанию с несколькими командами, работающими над различными проектами, и наша цель – измерить эффективность каждой команды с точки зрения затрат времени на реализацию проекта. Нам нужно собрать данные по переменным «команда» и «эффективность». Поскольку проекты могут различаться по сложности, мы также должны включить переменную «проект», чтобы учесть это.
Шаги по формулированию задачи с использованием графов 113 Итого, у нас есть три переменные: «команда», «проект» и «эффективность». Очевидно, что обе переменные, «команда» и «проект», влияют на «эффективность»: некоторые команды более эффективны, чем другие, а некоторые проекты сложнее других, что соответственно влияет на «эффективность». Однако, попытавшись определить, влияет ли «проект» на «команду», мы окажемся в ситуации, похожей на ситуацию с почечнокаменной болезнью, обсуждавшуюся в предыдущей главе. Она показана на рис. 3.8. Мы не можем измерить эффективность каждой команды напрямую, потому что некоторым командам могут быть назначены более сложные проекты и прямое сравнение будет несправедливым. Однако если у команд будет право выбора проектов для реализации, то ситуация изменится. Общее время, потраченное на проект, уже учитывает выбор проекта, который становится ответственностью команды. По сути, влияние выбора проекта на их эффективность становится их заботой. Направление стрелки будет таким, как показано на рис. 3.9. Проект Рис. 3.8. Граф представляет ситуацию, в которой группы не выбирают, над каким проектом работать Команда Эффективность Проект Рис. 3.9. Граф представляет ситуацию, в которой группы выбирают, над каким проектом работать Команда Эффективность Похожий сценарий может возникнуть при оценке выступления музыканта. Несмотря на то что качество музыкального инструмента может влиять на игру, оно часто считается частью музыки. 3.2.4. Сформулируйте свои цели Приступая к анализу причинно-следственных связей, мы преследуем конкретные цели, и у разных заинтересованных сторон могут быть разные ожидания относительно результатов. Крайне важно точно указать, что мы хотим от анализа, чтобы избежать того, что статистики называют ошибкой III рода: предоставление правильного ответа на неправильный вопрос. К счастью, цели можно выразить в виде стрелок на графах и тем самым обеспечить четкое и ясное понимание целей всеми заинтересованными сторонами. В примере с выбором темы наша цель – определить, как выбор темы влияет на общее количество просмотров страниц. В нашей модели тема может влиять на количество просмотров двумя возможными путями: прямым (интерес пользователей к теме) и косвенным (через платформу, выбранную для рекламы статьи). Общий эффект –
Глава 3 Применение причинно-следственного анализа 114 это эффект влияния всеми путями одновременно. Размышляя о влия­ нии темы как таковой, мы не учитываем общий эффект, потому что он также содержит эффект влияния платформы. На самом деле нас интересует прямой эффект, изолированный от эффекта платформы. На рис. 3.10 этот эффект показан в виде более толстой стрелки. В настоящее время у нас нет инструментов для измерения этого эффекта. При использовании сезонности и популярности в качестве искажающих факторов корректирующая формула даст нам общий эффект влияния темы на количество просмотров – агрегированный эффект влияния двух путей, но не прямой эффект. Более подробно о прямых и косвенных эффектах будет рассказываться в главе 7. Анализ не обязательно должен заканчиваться оценкой влияния темы. Другим интересным аспектом может быть оценка эффективности платформы. Используя те же данные и модель, можно поставить перед собой новую цель: определение влияния платформы на количество просмотров. Это повлечет за собой расчет эффекта влияния более толстой стрелки, показанной на рис. 3.11. Для этого можно применить формулу корректировки, включив в качестве искажающих факторов сезонность, популярность и тему. Сезонность Популярность Платформа Платформа Тема Популярность Сезонность Количество просмотров Рис. 3.10. Прямое влияние темы на общее количество просмотров страниц Тема Количество просмотров Рис. 3.11. Влияние платформы на общее количество просмотров страниц 3.2.5. Проверьте предположение о положительности В нашем примере если статьи о культуре рекламируются только в Google, а статьи о спорте – и в Google, и в Facebook, то это можно рассматривать как ограничение (см. табл. 3.1). Поскольку у нас нет данных о том, каким интересом будут пользоваться статьи о культуре на платформе Facebook (так как статьи такой тематики там не рекламировались), то мы не сможем точно оценить влияние платформы на количество просмотров страниц. В этом случае тема выступает в роли искажающего фактора. Поэтому было бы несправедливо сравнивать влияние платформы по темам. В лучшем случае мы можем измерить разницу в интересе, когда статьи по обеим темам рекламируются только в Google, или сравнить
Другие примеры 115 эффективность Google и Facebook при рекламировании статей спортивной направленности. Прямая оценка влияния платформы на просмотры страниц по темам будет сопряжена со сложностями из-за отсутствия данных по одной из платформ. Таблица 3.1. В каких комбинациях у нас есть данные? Культура Спорт Facebook Нет Есть Google Есть Есть Определение предположения о положительности (повторение) Мы говорим, что предположение о положительности выполняется, если для всех значений, которые может принимать искажающий фактор, s = (s1, …, sp), и для каждого метода лечения, T = t, мы имеем 0 < P0(T = t|S = s) < 1. В общем случае проверка предположения о положительности играет важную роль. Эта проверка позволяет измерить разницу во влиянии между двумя альтернативами, но только когда есть информация об обеих. В случаях, когда информация имеется только об одной альтернативе, мы не сможем точно оценить причинно-следственные эффекты, поэтому следует ограничить анализ той частью данных, которая включает обе альтернативы. Важно отметить, что отсутствие положительности не отражено в графике. Стрелка указывает на причинно-следственную связь, а не на наличие данных для всех возможных комбинаций значений переменных. Поэтому чтобы точно оценить причинно-следственные эффекты, мы должны убедиться, что наши данные включают информацию об обеих альтернативах. 3.3. Другие примеры В этом разделе мы рассмотрим несколько примеров, которые могут вдохновить вас на применение в своей работе методов анализа причинно-следственных связей. 3.3.1. Рекомендательные системы Мы все знакомы с рекомендательными системами, которые предлагают сериалы на стриминговых платформах или товары на сайтах элект­ронной коммерции. Обычно, чтобы предсказывать, какие товары заинтересуют того или иного клиента, эти системы используют методы обучения с учителем.
116 Глава 3 Применение причинно-следственного анализа Представьте ситуацию, когда мы переходим на сайт крупной платформы электронной коммерции, продающей широкий спектр товаров. Пос­ ле просмотра или покупки товаров рекомендательная система предлагает товары, дополняющие недавнюю покупку. Огромный объем доступных товаров означает, что без рекомендаций вы можете даже не заметить многие из них. Этот процесс похож на работу функции автодополнения текста, которая предлагает возможные варианты продолжения. Однако иногда список доступных товаров невелик, и прогнозирования следующего товара недостаточно, чтобы механизм рекомендаций оказал значимое влияние. Например, представьте, что вы владеете супермаркетом, где клиент постоянно покупает хлеб каждое утро по понедельникам, средам и пятницам. Вы можете точно предсказать, что он купит хлеб в следующий понедельник утром. Если вы обучите рекомендательную систему как прогностическую модель, то она порекомендует купить хлеб в следующий понедельник, достигнув 100%-ной точности. Но тот факт, что клиент купил хлеб, не связан с рекомендацией, потому что он сделал бы это в любом случае. В этом сценарии на графе нет стрелки от рекомендации к покупке, поскольку рекомендательная система не влияет на покупку товара клиентом (см. рис. 3.12). История покупок Клиент Рекомендация Покупка Рис. 3.12. График рекомендательной системы, которая не влияет на клиента. Эта система может точно предсказывать поведение клиента, но она не влияет на его действия Проверьте свои знания Рассмотрим необычный сценарий, когда предыдущая ситуация складывается в отношении всех товаров и клиентов. Представьте, что у вас есть мобильное приложение с рекомендательной системой, которая очень хорошо (со 100%-ной точностью) предсказывает, что купят клиенты, которые все равно купили бы эти товары, независимо от рекомендации. И вы решили измерить эффективность этой рекомендательной системы, т. е. оценить, насколько рекомендательная система увеличивает объем продаж. Для этого вы проводите A/B-тестирование. Одна группа получает рекомендации от вашей рекомендательной системы, а другая использует приложение с отключенными рекомендациями. Каков средний эффект воздействия (average treatment effect, ATE) в этом сценарии использования рекомендательной системы по сравнению с ее отсутствием? Если ситуация на рис. 3.12 справедлива для всех клиентов и товаров, то ATE равен нулю, поскольку рекомендательная система не оказывает влияния на продажи. Однако это не означает, что обучение рекомендательных систем как прогностических моделей бесполезно. Описанная ситуация иллюстрирует, что можно обучить рекомендательную систему, которая точно предсказывает поведение клиентов, но не влияет на их действия.
117 Другие примеры Следует отметить, что точность прогнозирования обученной рекомендательной системы, оцененная с использованием таких методов, как перекрестная проверка, может неточно отражать ее реальное влия­ние. Поэтому после обучения рекомендательной системы важно проверить ее эффективность, проведя A/B-тестирование, как описано выше. Это позволит оценить, влияет ли рекомендательная система на поведение клиентов и приводит ли она к увеличению продаж. Рассмотрение этой ситуации через призму причинно-следственной связи открывает иную перспективу. Здесь рекомендации служат методами воздействия (или лечения, если проводить аналогию с примером почечнокаменной болезни). Каждую рекомендацию можно рассматривать как потенциальное воздействие (лечение), и наша цель – понять, как пользователи системы реагируют на рекомендацию того или иного товара, по сравнению с тем, когда эти товары не рекомендуются. В конечном счете наша цель – определить, какие рекомендации оказывают наиболее существенное влияние на пользователей. Это влияние можно измерить, оценив вероятность совершения покупки пользователем, когда товар рекомендован, по сравнению с тем, когда он не рекомендован. По сути, наша цель – рассчитать влияние рекомендаций на поведение покупателей. Если у нас уже есть работающая система рекомендаций и мы даем рекомендации на основе истории покупок, то мы можем описать, как генерируются данные в определенный момент времени. Наши данные включают историю покупок каждого клиента и могут включать демографическую информацию, такую как пол, возраст и место жительства. Однако важно признать, что в нашем наборе нет исчерпывающих данных, описывающих каждого клиента, особенно их психологические черты, влияющие на решения о покупках. Поэтому мы должны рассматривать переменную «личность» как ненаблюдаемую, выступающую в качестве искажающего фактора, влияющего на «исторические покупки» и «покупки», как показано на рис. 3.13. Рис. 3.13. Стандартный граф рекомендательной системы. Ключевой особенностью здесь является стрелка от «Исторических покупок» к «Рекомендациям», представляющая воздействие рекомендателя Исторические покупки Личность Рекомендация Покупки На практике на рекомендации могут влиять дополнительные факторы, такие как сезонность и погода. Мы исключили эти факторы из текущего анализа для простоты, но вообще они обязательно должны учитываться в каждой рекомендательной системе как релевантные внешние воздействия. При проведении причинно-следственного анализа мы фокусируемся на оценке влияния рекомендации на покупку товара по сравнению с отсутствием рекомендации. Это соответствует расчету ATE рекомендаций по покупкам, как показано на рис. 3.13. Это не совсем соответствует сце-
Глава 3 Применение причинно-следственного анализа 118 нариям, описанным в главе 2, из-за ненаблюдаемых факторов, однако в главе 7 мы увидим, как вычислить ATE с помощью формулы корректировки при ее применении к переменной (или переменным) «исторические покупки». А более подробно о применении причинно-следственного анализа в рекомендательных системах мы поговорим в разделе 3.4. 3.3.2. Ценообразование Задача ценообразования заключается в поиске идеальной цены на товар, которая максимизирует прибыль компании. Это влечет необходимость проведения экспериментов с разными ценами и сравнением полученной прибыли. Обычно с ростом цены количество проданных товаров уменьшается. Наша цель – точно определить цену, которая максимизирует доход, который вычисляется как произведение цены и количества проданных товаров. Рассмотрим сценарий с участием цифровой платформы. В идеале мы бы провели A/B-тестирование с двумя или более ценами, чтобы обеспечить справедливое сравнение. Однако в некоторых странах демонстрация разных цен разным клиентам является незаконной из-за потенциальных проблем с дискриминацией. Но даже если это законно, такая практика может нанести ущерб репутации компании, если клиенты узнают о расхождениях в ценах. Поэтому A/B-тестирование цен может оказаться весьма деликатным делом. Именно здесь причинно-следственный анализ может оказать ценную помощь. Представьте, что мы предоставляем скидки клиентам в зависимости от того, как часто они совершают покупки: чем чаще совершаются покупки, тем больше скидка. Важно избегать полного разделения, когда значительные скидки предоставляются только постоянным клиентам, а небольшие – нечастым. Поступив так, позже вы столкнетесь с проблемой, поскольку предположение о положительности не будет выполняться. Чтобы решить эту проблему, необходимо случайным образом назначать как большие, так и маленькие скидки как постоянным, так и редким клиентам. После сбора данных можно узнать оптимальную скидку. Постоянные клиенты получают более высокие скидки, и в то же время они с большей вероятностью купят больше товаров. Таким образом, частота исторических покупок выступает в качестве искажающего фактора при расчете эффекта скидки на покупку (см. рис. 3.14). Частота Скидка Покупки Рис. 3.14. Граф, представляющий скидки на основе исторической частоты покупок 3.3.3. Моделирование В этом разделе мы рассмотрим несколько упрощенных примеров замены компьютерных симуляторов инструментами причинного анализа. Симуляторы часто бывают сложными, и полная замена их инстру-
Другие примеры 119 ментами причинного анализа невозможна. Поэтому данный раздел послужит лишь мысленным экспериментом для читателей, желающих погрузиться глубже. Если вам это не интересно, то можете смело переходить к следующему разделу. Существует категория задач, которые обычно решаются с помощью инструментов симулятора. Эти инструменты служат различным целям: прогнозирование результатов, прогнозирование в условиях, отличных от тех, которые наблюдались исторически, и генерация данных для сценариев, которые невозможно наблюдать напрямую. Симуляторы работают иначе, чем машинное обучение или причинноследственный анализ. Они создают физическую модель реальности, а затем моделируют данные, характеризующие различные условия. Например, рассмотрим моделирование динамики дорожного движения для принятия таких решений, как изменение маршрута или закрытие полос. Аналогичным образом моделирование потоков пациентов в больницах помогает определить отделения, дополнительное финансирование которых может значительно улучшить работу больницы. Хотя мы в этом примере сосредоточимся только на моделировании дорожного движения, но основные принципы, с которыми мы познакомимся, применимы и к другим сценариям. Симуляторы дорожного движения стремятся максимально точно имитировать реальность, требуя сложных деталей, таких как сигналы светофора, типы автомобилей и поведение водителей. Однако мы можем упростить моделирование с помощью причинно-следственного анализа, создав модель, которая учится на существующих данных, а политика дорожного движения служит вмешательством в модель. Представьте город с детекторами на улицах, которые измеряют две величины: интенсивность потока и занятость. Интенсивность потока – это количество автомобилей, проезжающих мимо детектора, скажем, за час. Интенсивности потока недостаточно, чтобы описать состояние улицы. У потока может быть низкая интенсивность, потому что в настоящее время по улице проезжает мало автомобилей или их так много, что они застряли в пробке. Помимо интенсивности потока нам нужна его плотность, то есть количество автомобилей, приходящихся на единицу расстояния. Плотность 100 % означает, что все пространство улицы занято и автомобили стоят, тогда как плотность, близкая к 0 %, означает, что улица свободна и автомобили движутся с максимальной скоростью. Конкретный детектор D играет две роли для других детекторов: предшествующие детекторы отправляют поток к D, а следующие за ним – получают поток от D. Чем интенсивнее поток выше по течению (на участках, предшествующих нашему детектору), тем больше автомобилей прибудет к выбранному нами детектору. С другой стороны, чем больше плотность потока ниже по течению (на участках, следующих за нашим детектором), тем больше будет плотность потока, текущего мимо нашего детектора. Плотность всегда возрастает вверх по течению. На рис. 3.15 показан поток трафика мимо детектора D. Мы можем нарисовать прямую стрелку сверху вниз всякий раз, когда автомобили
Глава 3 Применение причинно-следственного анализа 120 могут проехать от одного детектора к другому по другим улицам, объезжая детектор D стороной. Автомобили едут в направлении стрелок, поэтому поток тоже течет в этом направлении. Однако чтобы нарисовать граф, описывающий динамику затора, стрелки следует поменять местами: затор ниже по течению вызовет затор на детекторе D и других детекторах выше по течению, как показано на рис. 3.16. Выше по течению Выше по течению D Ниже по течению Рис. 3.15. Пример, когда D получает поток от детекторов выше. Стрелки описывают поток D Ниже по течению Рис. 3.16. Пример с затором у детектора D, возникшим из-за затора у детекторов ниже по течению. Стрелки описывают, как распространяется затор Представьте, что детектор D находится на тихой улице с редким трафиком, а детекторы выше и ниже по течению – на широких улицах с большим трафиком. Если произойдет авария в точке D, то это повлияет на трафик выше по течению. Но как сильно? Поскольку трафик в D небольшой, то и его воздействие на трафик выше по течению может быть небольшим. Попытавшись извлечь ответ на этот вопрос Время t – 1 Выше по напрямую из данных, мы можем дать течению неверный ответ. Плотность Согласно историческим данным, когда возле детекторов ниже по течению возникает затор, то пробка достигает Интенсивность детектора D и детекторов выше по течению. То есть, исследовав данные за Время t дни, когда возле D имел место затор, мы Основной детектор увидим, что детекторы выше по течению тоже отмечают затор. Но не из-за Плотность D, а из-за детекторов ниже по течению! Теперь, когда мы увидели некоторые Интенсивность причинно-следственные связи, мы можем сделать вывод, что детекторы ниже Ниже по по течению действуют как искажающие течению факторы в расчете влияния D на детекПлотность торы выше по течению. Чтобы рассчитать эффект влияния D на детекторы выше по течению, мы должны будем Интенсивность применить формулу корректировки. Мы даже можем развить этот пример. Рис. 3.17. Описание поведения Странно иметь два графа, объясняюдорожного трафика, развернущих одну и ту же систему. Эту проблему тое во времени
Контрольные вопросы 121 можно решить, как делали это в разделе 3.2.2, в подразделе «Как работать с циклическими графами», развернув граф во времени и получив схему на рис. 3.17. Включив время в нашу модель, мы неявно говорим, что нам нужно больше данных. Нам нужны разные измерения интенсивности и плотности потока за каждый период времени. 3.4. Для дальнейшего чтения Ниже приводится список некоторых ресурсов для тех, кто желает поближе познакомиться с причинно-следственным анализом и рекомендательными системами: „ Тобиас Шнабель (Tobias Schnabel), Адит Сваминатана (Adith Swaminathan), Ашудип Сингх (Ashudeep Singh), Навин Чандак (Navin Chandak) и Торстен Йоахимс (Thorsten Joachims) «Recommendations as Treatments: Debiasing Learning and Evaluation» (Материалы 33-й Международной конференции по машинному обуче­нию, 2016): https://proceedings.mlr.press/v48/schnabel16.pdf; „ SIGIR 2016 Tutorial on Counterfactual Evaluation and Learning for Search, Recommendation and Ad Placement (https://www.cs.cornell. edu/~adith/CfactSIGIR2016/); „ Амир Х. Джадидинеджад (Amir H. Jadidinejad), Крейг Макдональд (Craig Macdonald) и Иад Оунис (Iadh Ounis) «The Simpson’s Paradox in the Offline Evaluation of Recommendation Systems» (https:// arxiv.org/pdf/2104.08912.pdf); „ Стивен Боннер (Stephen Bonner) и Флавиан Василе (Flavian Vasile) «Causal Embeddings for Recommendation» (https://arxiv.org/ abs/1706.07639). 3.5. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Когда следует вставлять стрелку в ориентированный ациклический граф (DAG)? Ответ ищите в разделе «Значение стрелки». 2 В чем разница между общим, прямым и косвенным эффектами? Ответ ищите в разделе 3.2.4. 3 Как обрабатывать ситуации, когда событие A влияет на B, а позже B влияет на A? Ответ ищите в разделе «Как работать с циклическими графами». Итоги „ Создание графов требует практики. Чтобы выработать привычку, каждый раз, сталкиваясь с причинно-следственной задачей, начинайте с размышлений о том, как будет выглядеть граф. Всегда начинайте с простого.
Глава 3 Применение причинно-следственного анализа 122 „ „ „ Наличие стрелок говорит не только о предположениях, но и об их отсутствии. Хорошей практикой является сотрудничество с экспертами в предметной области при создании графа. Создание графа состоит из пяти шагов: 1 Составьте список всех релевантных переменных, которые могут участвовать в процессе генерации данных. При необходимости проконсультируйтесь с экспертами в предметной области. Помните, что перечисление всех переменных имеет большое значение для учета всех искажающих факторов, что очень важно в причинно-следственном анализе. 2 Создайте граф, изучив каждую пару переменных, и определите наличие прямой причинно-следственной связи между ними. Если такая связь есть, то отразите ее направление стрелкой. 3 Четко сформулируйте основные предположения и ограничения вашей модели. Убедитесь, что все в команде их понимают. 4 Убедитесь, что все участники согласны с целями анализа. 5 Проверьте, достаточно ли изменчивости в данных, чтобы ответить на интересующие вас причинно-следственные вопросы. Например, проверьте предположение о положительности, которое гласит, что для каждого значения искажающих факторов есть данные о различных типах воздействия.
4 Как машинное обучение и причинноследственный анализ могут помочь друг другу В этой главе: „ „ „ что оценивают модели машинного обучения; когда использовать причинно-следственный анализ, а когда – машинное обучение; использование моделей машинного обучения в формуле корректировки. В последние годы машинное обучение переживает взрывной рост и произвело революцию в таких областях, как распознавание изображений, перевод с одного языка на другой и управление беспилотными транспортными средствами. Эти достижения настолько велики, что у многих создается впечатление, будто машинное обучение является универсальным решением для создания копии человеческого интеллекта. Однако, как и любой инструмент, машинное обучение имеет свои ограничения. Как мы узнаем в этой главе, одним из наиболее
124 Глава 4 Как машинное обучение и причинно-следственный анализ... заметных ограничений является борьба за эффективную обработку причинности. ИИ должен включать методы причинно-следственного анализа наряду с методами машинного обучения, чтобы раскрыть весь свой потенциал. Мы здесь 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (глава 7). Проверьте предположение о положительности (глава 5). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Непрерывный/Бинарный treatment variable type? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (глава 6) Точная Двойное машинное обучение (глава 8) Бинарный Количество переменных для корректировки Мало Прямое применение формулы корректировки (глава 2) Много Алгоритм T-learner (эта глава) Применение формулы корректировки Наиболее распространенная форма машинного обучения, обуче­ ние с учителем, фокусируется на создании прогнозов на основе исторических данных и направлено на создание прогностических моделей для прогнозирования результатов (y) на основе входных переменных (x). Эти модели обычно используются, например, для прогнозирования будущих продаж или автоматизации таких задач, как определение спама. В обучении с учителем акцент делается на точности прогнозов, что часто приводит к моделям, воспринимаемым как черные ящики, потому что нас редко волнует, как модели приходят к своим прогнозам. Причинно-следственный анализ работает по-другому. Он направлен на выявление причинно-следственных связей между переменными, в частности на выявление факторов, влияющих на результат (y) и оценку этого влияния. Это может показаться вам очень похожим на линейную регрессию, но регрессия в первую очередь имеет дело
Контрольные вопросы 125 с корреляциями, а не с причинно-следственными связями. О сходстве линейной регрессии и причинно-следственного анализа мы поговорим в главе 6. А пока мы должны признать, что причинно-следственный анализ и обучение с учителем имеют разные цели и используют разные методологии. Оба предполагают моделирование связи между x и y, но их цели и подходы существенно различаются. В этой главе мы попробуем выяснить, когда лучше использовать машинное обучение, а когда причинно-следственный анализ. Мы также рассмотрим ситуации, когда эти две методологии дополняют друг друга и помогают достичь наилучших результатов. Чтобы достичь поставленной цели, мы должны понять основные цели и ограничения обеих методологий, а также узнать, какие статистические величины они оценивают. Первая часть этой главы посвящена исследованию природы обуче­ния с учителем. Как мы увидим, его главная цель – оценить условное ожидание, которое в случае категориальных переменных является просто условной вероятностью. Однако, как мы узнали, когда знакомились с основами причинно-следственного анализа, условные вероятности значительно отличаются от вероятностей вмешательства. Например, в главе 2, изучая проблему почечнокаменной болезни, мы узнали, что условные вероятности рассказывают нам о том, что мы наблюдаем, а распределение вероятностей вмешательства объясняет, что произойдет, если всем пациентам назначить одинаковое лечение. Создав модель обучения с учителем, которая точно оценивает условные вероятности, мы можем вывести наиболее вероятный результат. Этот метод, который предсказывает будущие события на основе данных, наблюдавшихся в прошлом, эффективен для прогнозирования. Однако он надежен, только если будущие события обладают тем же поведением, что и прошлые. Это первое ограничение обучения с учителем, которое мы рассмотрим в данной главе. Вероятности вмешательства, напротив, оценивают, что произошло бы в другом сценарии. Четкое понимание этого различия поможет нам определить, когда лучше применять машинное обучение, а когда использовать причинно-следственный анализ. Хотя машинное обучение и причинно-следственный анализ служат разным целям, они могут дополнять друг друга. Например, машинное обучение может помочь в причинно-следственном анализе, предоставляя эффективный способ реализации формулы корректировки. Как вы наверняка помните, формула корректировки опирается на условные вероятности. Поскольку оценка этих вероятностей является целью обучения с учителем, мы можем использовать модели машинного обучения для более точной реализации формулы корректировки. Существует также несколько альтернативных методов для достижения этой цели, которые будут представлены во второй части этой главы и подробно рассмотрены в последующих главах.
126 Глава 4 Как машинное обучение и причинно-следственный анализ... Когда следует использовать машинное обучение в причинно-следственном анализе? Методы машинного обучения с учителем следует использовать при наличии большого количества искажающих факторов для реализации формулы корректировки. 4.1. Что дает обучение с учителем? Если говорить кратко, то обучение с учителем преследует цель прог­ нозирования. Прогнозы делаются путем интерполяции событий, происшедших в прошлом. Мы объясним это утверждение далее. ПРИМЕЧАНИЕ. Далее я буду предполагать, что вы знакомы с основами статистического моделирования, с линейными моделями и логистической регрессией. Я также буду предполагать, что вы немного знакомы с методами моделирования машинного обуче­ния (такими как деревья решений, k-ближайших соседей, нейронные сети) и принципом перекрестной проверки. В главе используется несколько основных концепций машинного обучения, и мы рассмотрим их на тот случай, если вы с ними незнакомы. С формальной точки зрения, чтобы создать модель обучения с учителем, нужен набор исторических данных D = {(xi, yi)}, где xi – вектор, а yi – переменная (а иногда и вектор, в зависимости от решаемой задачи). Например, x может быть изображением, а y – категорией животных; или x может быть количеством продаж товара до сегодняшнего дня, а y может быть прогнозом продаж на завтра. Всякий раз, когда выходная переменная y является категориальной, мы говорим, что это задача классификации, а когда она непрерывна, мы называем ее регрессией. Цель состоит в том, чтобы на основе данных D создать функцию f, применяя которую, можно для каждого x вычислить результат f(x) и использовать его в качестве прогноза истинного значения y. Конечно, мы предполагаем, что в момент прогноза f(x) мы не будем знать истинного значения y, в противном случае нам не понадобился бы прогноз. Функцию f нельзя построить из ничего, поэтому мы должны придать ей некоторую структуру или сделать предположения о ее форме. Например, это может быть линейная модель, дерево решений (производные модели, такие как случайные леса или расширяемые деревья [boosted trees]), метод k-ближайших соседей или модель глубокого обуче­ния. Мы выражаем такую структуру, говоря, что функция f принадлежит к семейству F (семейству линейных моделей или деревьев решений). На практике мы выбираем тип модели (семейство функций), который лучше всего подходит (с точки зрения точности, вычислительных ресурсов и т. д.) для каждой конкретной задачи. Для поиска оптимальной прогностической функции используется исторический набор данных D. Мы ищем функцию, которая лучше всего предсказывает (соответствует) прошлому. С математической точки
127 Что дает обучение с учителем? зрения наша цель – найти или создать функцию f, которая лучше всего соответствует данным D. Это означает, что предсказание, вычисленное функцией, максимально близко к событиям в прошлом. При этом мы должны определить, что означает «близко». Чтобы упрос­тить задачу, сосредоточимся на задаче регрессии, где Y является непрерывной величиной, а понятие расстояния между двумя точками a и b – это квадрат потерь (a – b)2. Нам нужно, чтобы для каждого наблюдения xi в имеющемся наборе данных наша прогностическая функция f давала результат, максимально близкий к соответствующему значению yi, поэтому мы стремимся минимизировать потери (yi – f(xi))2. Усредняя по всем наблюдениям, мы приходим к выводу, что нам нужна функция в конкретном семействе функций F, которая минимизирует эмпирические потери: . В зависимости от выбранного типа функций (семейства F) такая минимизация выполняется или аппроксимируется определенным способом. Например, алгоритм подгонки дерева решений под данные путем минимизации эмпирических потерь сильно отличается от алгоритмов, используемых для подгонки (обучения) нейронных сетей. Используя этот процесс, мы можем найти функцию, которая лучше всего предсказывает прошлое. Но будет ли эта функция так же хорошо предсказывать будущее? Совершенно необязательно. Если функция слишком гибкая, например имеет много параметров, то она может так хорошо подстраиваться под прошлое, что не сможет отличить сигнал от шума и потому будет давать плохие прогнозы на будущее. Это называется переобучением. Чтобы избежать переобучения, можно применить стратегию, похожую на ту, которую некоторые используют для подготовки к экзаменам. Мы можем просто изучить решения всех экзаменационных задач прошлых лет, но тогда у нас не будет уверенности, поняли ли мы базовые концепции или просто механически запомнили ответы на задачи. С другой стороны, мы можем выбрать подмножество экзаменов и отложить их в сторону. Затем изучить подходы к решению других задач и всякий раз, почувствовав уверенность в своих знаниях, проверить себя на подмножестве задач, которые мы отложили и еще не решали. Это поможет нам понять, насколько хорошо мы подготовились к экзамену. В машинном обучении эта стратегия называется перекрестной проверкой на наборе задач, разделенном на обучающую и контрольную выборки. Чтобы проверить, не слишком ли сильно привязана найденная модель к особенностям прошлого, мы отбираем подмножество данных в выборку, называемую контрольной, а остальные данные помещаем в обучающую выборку, которую используем для подгонки (обучения) модели. Полученная модель, обученная на обуча­ ющей выборке, используется для прогнозирования на контрольной выборке. Эти прогнозы проверяются на соответствие тому, что про-
128 Глава 4 Как машинное обучение и причинно-следственный анализ... изошло в реальности (для контрольных данных известно, что произошло в действительности). Различия между прогнозами и реальностью на контрольной выборке позволят нам судить, насколько хорошо модель будет работать в будущем, при ее применении к новым данным. Из различных семейств функций и конфигураций мы выбираем для прогнозирования ту модель, которая показывает минимальную ошибку при применении к контрольной выборке. 4.1.1. Когда следует использовать причинно-следственный анализ, а когда обучение с учителем? И причинно-следственный анализ, и обучение с учителем предполагают создание модели, которая связывает входную переменную x с выходной переменной y. Может показаться, что они делают одно и то же, но в действительности это не так. Как мы увидим в этом разделе, главное различие заключается не в самих моделях, а в том, как эти модели используются после их создания. Для иллюстрации рассмотрим сценарий, в котором и причинный анализ, и обучение с учителем могут создавать одну и ту же модель, но использовать ее по-разному. В начале пандемии COVID-19 некоторые больницы стремились выяснить, каких пациентов с положительной реакцией на тест следует лечить в первую очередь. Они разработали прогностическую модель, использовавшую информацию о пациенте, такую как возраст и имеющиеся заболевания, чтобы оценить, сколько дней пройдет, прежде чем пациента придется перевести в отделение интенсивной терапии (ОИТ). Эта модель помогла больницам уделить особое внимание пациентам, которым с большей вероятностью понадобится помощь в ОИТ в ближайшее время. Ценность модели заключалась в точности ее прог­ нозов. Имея такой инструмент, врачам не приходилось беспокоиться о том, какие факторы привели к госпитализации пациента, или о деталях построения модели. Основное внимание уделялось исключительно тому, насколько правильно модель предсказывала количество дней, в течение которых пациент может оставаться в общей палате, что позволяло больнице управлять приоритетами на основе этих прогнозов. С другой стороны, если бы статистик имел доступ к тому же набору данных, то он, скорее всего, создал бы модель, связывающую те же входные и выходные переменные, но его целью было бы понять, какие факторы вынуждают перевести пациента в отделение интенсивной терапии. То есть статистик использовал бы свои выводы не для выбора пациентов, которых следует лечить в первую очередь, а для поддержки политики здравоохранения, которая помогла бы предотвратить необходимость интенсивной терапии у пациентов. Например, если анализ показал, что пожилые люди подвергаются более высокому риску тяжелого течения COVID, то статистик мог бы рекомендовать им оставаться дома и ограничить общение с другими людьми. На протяжении многих лет статистики стремятся выявить факторы, влияющие на результаты. Причинно-следственный анализ совершенствует этот процесс, добавляя новый уровень формализма,
129 Что дает обучение с учителем? новые методологии и инструменты, специально разработанные для решения причинно-следственных задач. По сути, роль специалиста по причинно-следственному анализу похожа на роль статистика: он определяет, какие факторы увеличивают вероятность, что того или иного пациента придется перевести в отделение интенсивной терапии. Причинно-следственный анализ дает нам более специализированные инструменты для эффективного решения таких задач. Интересно отметить, что прогностические и причинно-следственные модели могут выглядеть очень похожими. Например, для обоих случаев характерно использование линейных моделей. Главное различие заключается в том, как используются эти модели, что влияет на их создание и проверку. Например, модели машинного обучения час­ то проверяются с помощью метода перекрестной проверки, что помогает выбрать переменные для включения в модель. Напротив, выбор переменных для причинно-следственного анализа – это процесс скрупулезного выявления искажающих факторов. Кроме того, как мы увидим далее в этой главе, одной лишь перекрестной проверки недостаточно для проверки причинно-следственных моделей. По возможности эти модели следует проверять с помощью A/B-тестирования. Диаграмма на рис. 4.1 иллюстрирует, когда использовать тот или иной подход. Если вы не уверены, то спросите себя: хотите ли вы повлиять на входные или выходные переменные? Используйте ПРИЧИННОСТЬ, если ваши действия ОКАЗЫВАЮТ ВЛИЯНИЕ X Используйте МАШИННОЕ ОБУЧЕНИЕ, если ваши действия ЗАВИСЯТ от результата F (ваша модель) Y Причинность = Причинный анализ + AB-тестирование/RCT Рис. 4.1. Когда следует использовать причинно-следственный анализ, а когда машинное обучение. Входные данные модели обозначаются как X, а результат – как Y 4.1.2. Цель аппроксимации данных Мы узнали, что процесс обучения машинной модели заключается в уменьшении разницы между фактическими данными и предсказания­ ми модели путем минимизации эмпирического риска. Вопрос в том, что оценивает модель. Ответ: условное ожидание. Но не будем торопить события; начнем с очень простого примера. Представьте, что у вас есть n различных значений a1, ..., an (например, рост людей), сгенерированных некоторым распределением вероятностей. Допустим, вам нужно спрогнозировать только одну величину. Прогноз должен быть как можно ближе к каждому числу ai.
130 Глава 4 Как машинное обучение и причинно-следственный анализ... Таким образом, вы можете поставить задачу поиска числа, который минимизирует расстояние до всех ai. Для удобства выберем сумму квадратов ошибок: . Оказывается, что оптимальное значение µ, минимизирующее все расстояния, является средним значением a1, ..., an: . Вы, возможно, уже знаете, что среднее значение минимизирует сумму квадратов ошибок. Простое доказательство этого приводится в следующей врезке. Я представляю это доказательство здесь, потому что оно дает подсказку о происходящем. Интересно отметить, что похожая логика применима к определению наилучшего предиктора среди моделей машинного обучения при использовании функции квад­ рата потерь. Выше и дальше: почему среднее значение является лучшим предиктором для набора значений Доказать, что среднее значение является лучшим предиктором с точки зрения минимизации суммы квадратов ошибок, можно с помощью несложных алгебраических построений. Допустим, что есть некоторое значение a, которое является лучшим предиктором, чем среднее значение. Возможно ли это? Нет. Мы должны сравнить сумму квадратов ошибок, используя это конкретное значение a с суммой квадратов ошибок, используя среднее значение µ. Для этого можно прибегнуть к математическому трюку, одновременно прибавляя и вычитая µ, и получить это выражение: . Обратите внимание: может показаться, что в члене (µ – a)2 не хватает члена 1/n. Но это не так, поскольку (µ – a)2 является константой (не зависит от i), и мы добавляем ее n раз. Переставляя члены и учитывая, что по определению µ последний член равен нулю:
131 Что дает обучение с учителем? . Итак, мы видим, что для любой величины a среднее расстояние до множества (a1, …, an) больше среднего расстояния до среднего . То есть среднее значение является лучшим предиктором при использовании квадрата потерь в качестве расстояния. Применим эти знания к задаче обучения машинной модели. Рассмотрим задачу регрессии, для решения которой мы решили создать модель, прогнозирующую некоторую выходную переменную Y с использованием ковариатов X1, ..., Xm. Например, предположим, что мы пытаемся создать модель, которая угадывает, сколько дней может провести пациент в отделении интенсивной терапии. У нас есть информация о его возрасте и о наличии других проблем со здоровьем. Через Y мы будем обозначать количество дней, через X1 – возраст и через X2 – сопутствующие заболевания. Как мы знаем, разные люди одинакового возраста и с одинаковым комплексом сопутствующих заболеваний могут оставаться в отделении интенсивной терапии разное время. Математически это выражается так: для тех, у кого есть набор значений (x1, ..., xm), мы можем рассмотреть условную переменную результата Y |x1, ..., xm. Какое значение лучше всего будет предсказывать распределение Y |x1, ..., xm, если используем функцию квадратов потерь? Согласно доказательству в предыдущей врезке, наилучшим предиктором будет среднее значение Y |x1, ..., xm: т. е. E[Y |x1, ..., xm]. Какую цель преследует модель обучения с учителем? Лучшим предиктором Y, основанным на значениях x1, ..., xm и функции квадрата потерь, является условное ожидание E[Y |x1, ..., xm]. В задачах классификации разница невелика, поскольку для бинарной переменной Y условное ожидание E[Y |x1, ..., xm] = P(Y = 1|x1, ..., xm). То есть любая модель обучения с учителем, обученная для максимизации точности (классификации) или минимизации среднеквадратичной потери (регрессии), стремится оценить значение E[Y |x1, ..., xm]. 4.1.3. Когда будущее и прошлое имеют одинаковое поведение Теперь, увидев, что оценивает модель обучения с учителем, у вас может возникнуть закономерный вопрос: в каких случаях будет правиль-
132 Глава 4 Как машинное обучение и причинно-следственный анализ... ным ее использовать? Интуиция подсказывает, что обучение с учите- лем дает хорошие результаты, пока будущее и прошлое имеют схожее поведение. На самом деле за этим утверждением стоит больше, чем интуиция. Базовая теория машинного обучения, такая как размерность Вапника–Червоненкиса (Vapnik–Chervonenkis, VC) и вероятно приближенно корректное (probably approximately correct, PAC) обучение, начинается с предположения наличия набора данных пар (xi, yi), где xi – это признаки, а yi – результаты, которые независимы и одинаково распределены. То есть все пары (xi, yi) генерируются одним и тем же распределением (сгенерированы в рамках одной и той же динамики), и каждая пара (xi, yi) не зависит от других. Такое предположение касается не только данных, полученных в прошлом, но и тех, что будут получены в будущем, по которым будет делаться прогноз. Это формальный способ выражения одинакового поведения данных из прошлого и будущего. Но если прогностические модели полезны, когда будущее и прошлое имеют одинаковое поведение, то как быть, если мы заинтересованы во вмешательстве в систему и изменении ее поведения? Мы должны действовать осторожно, потому что вмешательство в систему изменит ее динамику и также изменит распределение результатов, вследствие чего прогностическая модель перестанет давать точные прогнозы. Например, в начале пандемии COVID-19 эпидемиологи создали модели, предсказывавшие экспоненциальный рост заболеваний. Эти прогнозы убедили общество принять меры против COVID. И некоторые из этих мер сработали, замедлив распространение болезни. Как это ни парадоксально, но модели, которые изначально помогали странам принимать решения, стали плохими предикторами. Мы создали прогностическую модель (довольно хорошую), которая подтолкнула нас к действиям, и эти действия сделали первоначальные прогнозы несостоятельными. Но, несмотря на это, модель оказалась очень полезной! Этот пример говорит нам, что, собираясь использовать прогностическую модель для принятия решений, мы должны знать, чего ожидать от прогнозов, и понимать, как они повлияют на будущее. Когда нужна модель, имитирующая работу природы? Знание, как работает природа, не является необходимым условием для точных прогнозов. Например, можно довольно точно предсказать время восхода солнца завтра на Земле, если сказать, что оно будет таким же, как сегодня, что и делали наши предки на протяжении столетий без знания астрономии. Однако предсказание времени восхода солнца завтра на Марсе в определенном месте требует создания физической модели Солнечной системы. Другими словами, если ситуация не сильно меняется, то машинное обучение показывает хорошие результаты. Но если нужно предсказать, что произойдет в новых ситуациях, то необходимо прибегнуть к причинно-следственному анализу.
Что дает обучение с учителем? 133 4.1.4. К  огда причинно-следственный анализ и обучение с учителем совпадают? Может ли прогностическая модель заменить причинно-следственную модель? Иногда каждую ситуацию нужно рассматривать индивидуально. Например, представьте, что вы торгуете на сайте интернет-магазина и пытаетесь определить лучшие цены на свои товары. До настоящего момента вы предоставляли скидки в основном постоянным клиентам, а не случайным покупателям. Теперь же вы задались целью определить, как цена влияет на решение клиента купить товар. Сначала подумай, потом читай Представьте, что вы создаете граф для демонстрации этой идеи: как бы он выглядел? Вообразите два разных сценария создания прогностической модели. Один использует только цену в качестве входных данных, а другой – цену и лояльность. Как каждая модель отреагирует на изменение стратегии скидок? Используя имеющиеся данные, вы можете построить модель, которая показывает вероятность покупки клиентом продукта по определенной цене. В этой модели, которую можно назвать покупка = f(цена), в роли входных данных используется только цена, а в роли выходных – решение о покупке. Если вы сохраните политику скидок неизменной, то модель иногда будет точно предсказывать вероятность покупки без привлечения какой-либо другой информации. Поскольку скидки обычно предоставляются лояльным клиентам, то сама цена уже многое говорит о лояльности клиента. Это означает, что цена сама по себе несет достаточно информации, чтобы указать, является ли клиент лояльным. Но что произойдет, если вы начнете предлагать скидки всем, чтобы удержать больше клиентов? Тогда прогнозы вашей модели, вероятно, не сбудутся. Поскольку теперь скидки даются всем клиентам, модель, анализирующая только цену, может ошибочно подумать, что эти клиенты лояльны. В прошлом данные, используемые для обучения модели, содержали скидки, предоставляемые лояльным клиентам. Поэтому модель, скорее всего, предскажет высокую вероятность покупки для случайных клиентов, даже притом что многие из них просто знакомятся с вашими предложениями. Ваша новая стратегия ценообразования не соответствует историческим данным. Вероятность оказаться случайным клиентом и получить скидку изменилась и теперь отличается от исторического распределения. Очевидным решением является включение в модель переменной лояльности, чтобы получить модель покупки = f(цена, лояльность). Достаточно ли этого для улучшения прогнозов? Ответ: да. Лояльность – это искажающий фактор, как показано на рис. 4.2. Как мы
134 Глава 4 Как машинное обучение и причинно-следственный анализ... видели в главе 2 (вспомните z-специфические эффекты), в этом случае наблюдаемые распределения и распределения вмешательства для определенной степени лояльности одинаковы: P(Покупка | do(скидка), лояльность) = P(Покупка | скидка, лояльность). Лояльность Цена Покупка Рис. 4.2. Постоянные клиенты получают скидки, которые одновременно влияют на покупки Таким образом, прогностическая модель и количество вмешательств совпадают. Но это возможно, только если учитываются все возможные искажающие факторы, влияющие на результат. Этот вывод справедлив и для других задач предсказания с использованием искажающих факторов. Точно так же, как отсутствие переменной лояльности может привести к неверным прогнозам, отсутствие в модели других факторов, влияющих на результат, тоже приведет к неправильному результату. Спроси себя Можете ли вы привести другие примеры, где прогностические модели и вмешательства совпадают? 4.1.5. Ошибка прогнозирования – ложный друг Что происходит с прогностической способностью модели? Будет ли она направлять наши причинно-следственные выводы так же, как она помогает выбирать лучшую модель машинного обучения? К сожалению, прогностическая способность – ложный друг. Она может показаться полезной, но, как правило, она ненадежна для оценки причинно-следственных связей. Чтобы увидеть, как и почему это происходит, создадим две модели с почти одинаковой прогностической способностью, но очень разной точностью в ситуациях, когда мы делаем что-то не так, как делали это в прошлом. Представьте, что вы занимаетесь разработкой видеоигр и отвечае­ те за создание уровней для новой версии Pac-Man. По мере продвижения игроки должны переходить на более сложные уровни, но если сложность окажется слишком высокой, то игроки разочаруются и прекратят играть. Поэтому нужно поддерживать баланс в уровне сложности. Чтобы узнать, насколько сложен новый уровень, вы обычно прибегаете к услугам бета-тестера, который опробует его и даст вам отзыв. Однако этот процесс замедляет совершенствование. В идеале хотелось бы иметь инструмент, который сообщит, насколь-
135 Что дает обучение с учителем? ко сложен уровень, который вы создаете. Допустим, у вас есть доступ к исторической базе данных с существующими уровнями. У вас также есть общее время, которое каждый пользователь провел на каждом уровне, чтобы пройти его. Можно ли на основе этих данных создать прогностическую модель, которая будет сообщать вам сложность игры по мере ее разработки? Это сократит количество времени, затрачиваемого на бета-тестирование. При создании нового уровня дизайнеры обычно учитывают три элемента: количество призраков, количество бонусов и макет. Проверьте свои знания Как граф объяснит эту динамику? Для простоты будем рассматривать только количество призраков и бонусов. Обе величины напрямую влияют на сложность игры, которую мы будем измерять как общее время, проведенное на этом уровне. Выразим данные об уровне сложности в виде графа. Граф будет иметь как минимум три узла: „ „ „ количество призраков; количество бонусов; время в минутах, необходимое для завершения уровня. Количество призраков и бонусов повлияет на время, необходимое для завершения уровня. Есть ли связь между призраками и бонусами? Да, есть. Эти два фактора выбраны неслучайно. Дизайнер выбрал их с каким-то намерением. Например, возможно, когда дизайнер хотел увеличить сложность, он одновременно увеличил количество призраков и уменьшил количество бонусов. Каким бы ни был замысел дизайнера, он определяет, как спроектирован уровень, поэтому его необходимо включить в граф как ненаблюдаемую переменную. У нас нет доступа к этой переменной, потому что даже если бы мы могли спросить дизайнера, что он имел в виду, когда проектировал уровень, было бы сложно выразить это намерение так, чтобы его можно было включить в нашу модель. Граф на рис. 4.3 показывает, что намерение дизайнера является важным фактором, к которому у нас, к сожалению, нет доступа. Бонусы Рис. 4.3. Процесс разработки уровней для игры Pac-Man. Дизайнер определяет, сколько бонусов и призраков появится на каждом уровне. Это сложный процесс, и его непросто описать во всех подробностях Дизайнеры Сложность Призраки
136 Глава 4 Как машинное обучение и причинно-следственный анализ... А что, если мы решим создать прогностическую модель для уровня сложности, используя только количество бонусов? Есть ли разница между этой моделью и той, которая включает количество призраков? Вероятно, есть. Давайте для примера создадим и проанализируем синтетический набор данных, чтобы увидеть, насколько он может отличаться. Создавая данные, мы увидим, верны ли выводы в каждом случае. Чтобы создать набор данных, предположим, что когда дизайнер хотел увеличить уровень сложности, он увеличил количество призраков и одновременно уменьшил количество бонусов. Призраки и бонусы имеют отрицательную корреляцию. Мы также используем простую линейную модель для описания времени (в минутах), проведенного на уровне время = 20 + 1,5 × призраки – 2 × бонусы + ошибка, где ошибка, представляющая присущую вариацию времени для прохождения уровня, следует нормальному распределению с центром в точке 0 и стандартным отклонением 0,1. Следующие листинги кода на R и Python генерируют эти данные. Количество призраков устанавливается случайно в диапазоне от двух до шести, а количество бонусов уменьшается по отношению к количеству призраков. Так мы обеспечиваем отрицательную корреляцию. Листинг 4.1. (R) Создание синтетического набора данных, представляющего новые уровни set.seed(2023) n <- 100 ghosts <- sample(2:6, n, replace = TRUE) bonuses <- 8 - ghosts + 0.2 * sample(c(-1, 0, 1), n, replace = TRUE) error <- rnorm(n, sd=0.1) time <- 20 + 1.5 * ghosts -2 * bonuses + error Листинг 4.2. (Python) Создание синтетического набора данных, представляющего новые уровни from numpy.random import choice, normal import pandas as pd n = 100 ghosts = choice(range(2, 7), n) bonuses = 8 - ghosts + 0.2 * choice([-1, 0, 1], n) error = normal(n, scale=0.1) time = 20 + 1.5 * ghosts -2 * bonuses + error df = pd.DataFrame({ 'time': time, 'bonuses': bonuses, 'ghosts': ghosts }) На рис. 4.4 показано, как в этом наборе данных уменьшается количество бонусов по отношению к количеству призраков.
137 бонусы Что дает обучение с учителем? призраки Рис. 4.4. Зависимость количества бонусов от количества призраков. Между ними сущест­ вует сильная корреляция, поскольку у них есть общая переменная: творческий замысел дизайнера. Точки были слегка искажены, чтобы избежать перекрытия Теперь посмотрим на разницу между использованием для прогнозирования времени, проведенного на уровне, только бонусов и бонусов с призраками. Сначала создадим линейную регрессионную модель, определяющую время по количеству бонусов. Листинг 4.3. (R) Линейная модель, определяющая время по количеству бонусов summary(lm(time~bonuses)) Листинг 4.4. (Python) Линейная модель, определяющая время по количеству бонусов import statsmodels.formula.api as smf mod = smf.ols(formula='time ~ bonuses', data=df) mod.fit().summary() Полученные коэффициенты показаны в табл. 4.1. R-квадрат (коэффициент детерминации) получается равным 0,9969 и кажется высоким. В принципе, нам следовало бы использовать перекрестную проверку, чтобы получить надежную оценку качества подгонки. Однако этот пример настолько прост (линейная регрессия с одним ре-
138 Глава 4 Как машинное обучение и причинно-следственный анализ... грессором), что переобучения здесь не возникает, поэтому высокий R-квадрат означает, что ошибка прогнозирования при перекрестной проверке будет довольно низкой. Для простоты мы не проводили перекрестную проверку. Таблица 4.1. Коэффициенты, полученные при определении регрессионной модели, предсказывающей время по количеству бонусов Коэффициенты Оценка (свободный член) 31,90 бонусы –3,49 Повторим пример, но на этот раз включим в регрессию количество призраков. Листинг 4.5. (R) Линейная модель, определяющая время по количеству бонусов и призраков summary(lm(time~ghosts + bonuses)) Листинг 4.6. (Python) Линейная модель, определяющая время по количеству бонусов и призраков import statsmodels.formula.api as smf mod = smf.ols(formula='time ~ ghosts + bonuses', data=df) mod.fit().summary() Полученные коэффициенты показаны в табл. 4.2, а модель имеет R-квадрат (коэффициент детерминации), равный 0,9996. Даже боль- ше, чем раньше, что неудивительно, поскольку теперь в расчеты включена вся информация. Однако разница значений R-квадрат двух моделей довольно мала. Поскольку R-квадрат выражает, насколько хорошо модель будет осуществлять прогнозирование (в данном случае переобучения не возникает, потому что модель очень проста), мы можем ожидать, что обе модели будут иметь схожую прогностическую способность. Таблица 4.2. Коэффициенты, полученные при определении регрессионной модели, предсказывающей время по количеству бонусов и призраков Коэффициенты Оценка (свободный член) 19,44 призраки 1,56 бонусы –1,92 Теперь встает вопрос: одинаково ли полезны эти две модели для нашей задачи? Конечно, нет. Если бы это было так, то мы бы не тратили целый раздел на их рассмотрение. Проблема возникает, когда дизайнер
139 Что дает обучение с учителем? нарушает динамику исторических данных и решает что-то переделать поновому. Например, он может пожелать сохранить соотношение между призраками и бонусами: всякий раз, увеличивая количество призраков, он также увеличивает количество бонусов. В этой ситуации две модели будут иметь разную прогностическую способность. Допустим, нам понадобилось узнать, что получится, если одновременно добавить шесть призраков и шесть бонусов. Модель только с бонусами, использующая оценочные коэффициенты из табл. 4.1, предскажет оценочное время 31,90 – 3,48 × 6 = 11,02 мин, тогда как другая, использующая коэффициенты из табл. 4.2, предскажет 19,44 – 1,92 × 6 + 1,56 × 6 = 17,28 мин. Конечно, правильный – последний результат. Проблема в том, что исторически бонусы и призраки были сильно коррелированы. Поэтому когда модель только с бонусами должна выдать предсказание для шести бонусов, она предполагает, что количест­ во призраков будет маленьким, как это всегда было до сих пор! Но дизайнер изменил подход, и теперь модель сталкивается с ситуацией, которая редко случалась (в этом наборе данных она не случалась никогда): большое количество бонусов и большое количество призраков. Именно это заставляет первую модель ошибиться в своих предсказаниях. В табл. 4.3 показаны обобщенные результаты сравнения двух моделей. Хотя R-квадрат говорит нам, что разница между двумя моделями составляет всего 0,3 %, из-за изменения стратегии ошибка в прогнозировании времени прохождения уровня с шестью призраками и шестью бонусами составляет приблизительно 36 %, что очень много по сравнению с разницей между коэффициентами в R-квадрат. Это еще раз говорит нам, что перекрестная проверка полезна, пока не происходит ничего нового, но для предсказания в новой ситуации она – не лучший индикатор того, что произойдет. Таблица 4.3. Обобщенные результаты сравнения двух моделей R-квадрат Прогноз для случая с 6 призраками и 6 бонусами Модель с бонусами Модель с бонусами и призраками Разница в процентах 0,9969 0,9996 0,3 % 11,52 17,03 36 % Давайте обрисуем концепцию, которую мы рассмотрели. У нас есть переменная результата Y (время), на которую влияют две другие переменные, X1 (бонусы) и X2 (призраки), поэтому мы можем выразить модель как Y = f(X1, X2). Одновременно переменная бонусов зависит от призраков, поэтому X1 = g(X2). Для простоты давайте отложим случайный член. В машинном обучении цель состоит в том, чтобы аппроксимировать функцию f. Поскольку f(X1, X2) = f(g(X2), X2), аппроксимация работает идеально, используя только X2 в качестве входных данных (и полностью игнорируя X1). Однако когда мы вмешиваемся, аппроксимация f, использующая только X2, не может делать точных прогнозов.
140 Глава 4 Как машинное обучение и причинно-следственный анализ... Что нам делать с другими искажающими переменными, такими как дизайн макета игры? Можно привести похожий аргумент, сказав, что дизайнер может выбрать геометрию, усложняющую игру, и этот аспект может коррелировать с другими релевантными переменными. Отказавшись от включения в модель геометрии макета, мы упускаем из виду некоторые искажающие факторы, и выводы снова могут оказаться неверными. Чтобы правильно оценить сложность, мы должны описать макет игры через некоторые переменные и включить их в модель (например, как это делается при распознавании изображений). В общем случае выбор переменных для включения в модель зависит от графа, описывающего задачу. Мы рассмотрели несколько простых случаев, а в главе 7 познакомимся с новыми инструментами для работы с графами любого типа. Почему не стоит выбирать модели причинно-следственной связи на основе их ошибки перекрестной проверки? Модели обучения с учителем проверяются с помощью перекрестной проверки, которая оценивает ошибку, допускаемую моделью при вычислении прогноза на основе данных, которые она прежде не видела. Однако, оценивая качество причинно-следственной модели, мы не можем полагаться на перекрестную проверку. Мы видели пример двух прогностических моделей с почти одинаковой ошибкой перекрестной проверки (в данном случае R-квадрат), которые дают очень разные предсказания в ситуациях, не похожих на исторические данные. Пропуск важного фактора может существенно изменить результаты. Вот почему нужно быть очень осторожными и стремиться включить в модель все искажающие факторы. А для этого необходимо детально изучить задачу, запросив у экспертов в предметной области все ее детали. 4.1.6. Проверка вмешательств Пример в предыдущем разделе приводит к интересному вопросу. Если прогностическая способность недостаточно хороша для измерения достоверности причинно-следственной модели, то что достаточно хорошо для этого? Как уже объяснялось, перекрестная проверка дает нам хорошую оценку точности модели в будущем, если система продолжит вести себя так же, как в прошлом. Однако причинно-следственные вопросы направлены на выяснение того, что произойдет, если система начнет вести себя иначе. Мы, аналитики, пытаемся ответить на этот вопрос, создавая причинно-следственную модель реальности, а затем, используя причинно-следственные инструменты в качестве формулы корректировки, делаем выводы. В отличие от машинного обучения, где можно прямо наблюдать работу системы в данный момент, при решении причинно-следственных задач мы хотим знать, что произойдет, если система начнет вес­ти себя иначе. Да, мы используем модель для ответа на этот вопрос, но это всего лишь модель. Мы могли сделать неверные предположения или ошибки в процессе ее создания. Поэтому наши выводы могут быть невер-
141 Как обучение с учителем участвует в причинно-следственном анализе? ными. Единственный способ проверить, работает ли наша модель, – это опробовать ее в реальной жизни, т. е. провести A/B-тестирование. К сожалению, причинно-следственный анализ часто оказывается нужным именно тогда, когда нет возможности провести A/B-тестирование! Вот почему в причинно-следственном анализе так важно следовать лучшим практикам, которые мы обсуждали в главах 1–4: „ досконально изучить суть задачи; „ делать предположения только в случае полной уверенности в них; „ проверять свою модель с помощью экспертов в данной области; „ подтверждать качество модели не одним, а несколькими исследованиями, и чем они будут независимее, тем лучше. Заключение Единственный способ проверить качество причинно-следственной модели – провести A/B-тестирование. В ситуациях, когда такое тестирование невозможно, нужно убедиться, что модель представляет реальность настолько хорошо, насколько это возможно, с наименьшим количеством предположений и наилучшей возможной аргументацией, поскольку у нас нет возможности проверить ее качественность напрямую. 4.2. Как обучение с учителем участвует в причинно-следственном анализе? До сих пор мы говорили о различиях между обучением с учителем и причинно-следственным анализом. Теперь мы посмотрим, как обуче­ ние с учителем может помочь вычислить формулу корректировки, используемую в причинно-следственном анализе. Стратегия проста. Напомню, что формула корректировки содержит члены с условными вероятностями P(Y = y|X = x, Z = z). Мы видели, что задача обучения с учителем заключается в точной оценке этих величин. Поэтому обучим модель предсказывать Y, используя ковариаты X и Z, а затем подставим предсказанные результаты в следующую формулу корректировки. Этот метод называется оценкой подстановки (plug-in estimate): . Идея проста, но есть проблемы, о которых мы должны знать. Во второй части этой главы мы подробно рассмотрим, как обучать и использовать модели машинного обучения для оценки формулы корректировки. На практике можно ожидать, что на результат будут влиять не один, а сразу несколько разных факторов, как показано на рис. 4.5. Как было показано в главе 2, для переменной X, результата Y и p искажающих факторов Z1, ..., Zp формула корректировки выглядит следующим образом: .
142 Глава 4 Как машинное обучение и причинно-следственный анализ... ... Z1 X Zp Y Рис. 4.5. На практике наличие множества искажающих факторов – нормальное явление. В таких случаях следует применять методы машинного обучения Например, X может представлять метод лечения, Y – вероятность выздоровления, а Z1, ..., Zp – такие переменные, как возраст, пол, место жительства, сопутствующие заболевания и т. д. В примере с почечнокаменной болезнью, приведенном в главе 2, у нас был только один искажающий фактор – размер камней, – и мы могли легко рассчитать величины P (Y = y | X = x, Z = z). В случаях, когда были заданы метод лечения и размер камней, мы просто подсчитываем долю выздоровевших пациентов. Проблема в том, что при большом наборе искажающих факторов Z1, ..., Zp может возникнуть комбинация значений z1, ..., zp, которая никогда или почти никогда не появляется в нашем наборе данных. Это возможные комбинации, но размер нашей выборки недостаточно велик, чтобы их увидеть. Например, мы можем иметь в выборке некоторое количество наблюдений, соответствующих критерию возраст = молодой. Но если дополнить условие до возраст = молодой и пол = женский, то число наблюдений уменьшится. Каждый раз, добавляя в условие дополнительную переменную, мы уменьшаем количество наблюдений и нередко оказываемся в ситуации, когда желаемые наблюдения просто отсутствуют. Если попытаться использовать ту же методику подсчета, нам будет сложно вычислить P (Y | X, Z1, ..., Zp), потому что наблюдений будет слишком мало. А чем меньше размер выборки, тем больше дисперсия. Таким образом, оценка величины P(Y|X, Z1, ..., Zp) будет иметь большую дисперсию. Эту проблему нельзя решить путем уменьшения количества ковариат. Напомню, что они являются искажающими факторами, и отсутствие релевантных искажающих факторов в модели может привести к неправильным выводам. Мы говорили о случае, когда Y может принимать разные реальные значения y1, ..., yk. При наличии только одного искажающего фактора Z ожидаемая величина вмешательства (intervened value) E[Y | do(X = x)] равна . Когда на результат влияет не один, а много факторов, то формула становится такой: . Эта формула похожа на наши бинарные результаты для переменной Y. Нам нужно изменить только одно: вместо P(Y |X, Z1, ..., Zp)
Как обучение с учителем участвует в причинно-следственном анализе? 143 использовать E(Y |X, Z1, ..., Zp). К счастью, когда Y принимает много возможных значений, величина E(Y |X, Z1, ..., Zp) – это именно то, что оценивает модель машинного обучения! Более того, поскольку для бинарных переменных условные вероятности и ожидание совпадают, P(Y |X, Z) = E[Y |X, Z], формула корректировки, как она здесь написана, действительна для обеих ситуаций: . Формула корректировки остается одной и той же во всех случаях: и когда Y принимает два значения, и когда Y принимает много значений. Методы обучения с учителем нацелены на условное ожидание E[Y |X, Z], поэтому мы можем использовать их для оценки формулы корректировки. Идея состоит в том, чтобы обучить машинную модель на данных и подставить ее предсказания в соответствующее место в формуле. ПРИМЕЧАНИЕ. Модели обучения с учителем, применяемые для оценки формулы корректировки, известны как метаобучающиеся. Скоро мы рассмотрим также модели S-learner и T-learner. Эти алгоритмы используются для оценки формулы корректировки при наличии большого количества искажающих факторов. Однако обычно лучше использовать методы двойного машинного обучения, как подробно описано в главе 8. Мы обсуждаем метаобучающиеся, просто потому что с ними еще можно встретиться на практике, и их понимание поможет вам лучше понять методы, описываемые в главе 8. 4.2.1. Эмпирические распределения и распределения сгенерированных данных в формуле корректировки До сих пор, обсуждая формулу корректировки, мы говорили о распределении вероятностей P. Но, за исключением нескольких случаев, мы не уточняли, о каком распределении вероятностей идет речь. В нашей задаче есть два главных распределения. Как мы говорили в главе 1, процесс, сгенерировавший данные, к которым у нас нет доступа, имеет распределение сгенерированных данных. С другой стороны, данные, с которыми мы будем работать, служат образцом этого распределения, который можно рассматривать как другое распределение вероятностей, называемое эмпирическим распределением. В этом разделе мы поговорим о том, как они связаны, что поможет нам правильно применять формулу корректировки. На практике, когда имеется набор данных с переменными x, y и z, наши данные будут выглядеть, как показано в табл. 4.4. Если у нас есть выборка размером n, то эмпирическое распределение присваивает один и тот же вес каждому наблюдению: т. е. каждой строке присваивается вес 1/n.
144 Глава 4 Как машинное обучение и причинно-следственный анализ... Таблица 4.4. Эмпирическое распределение в случае с несколькими искажающими факторами Y X Z1 ... Zp y x z ... z p y x z 1 ... z p 1/n y3 x3 z31 ... z3p 1/n 1 2 1 2 1 1 2 Эмпирическая вероятность 1/n 1 2 Напомню, что формула корректировки говорит о распределении вероятностей. Вопрос в том, к какому из двух вариантов ее применить. В идеале желательно бы применить формулу корректировки к распределению сгенерированных данных, потому что именно оно определяет систему. Но есть небольшая проблема: чтобы получить к нему доступ, нужна бесконечная выборка... Сами понимаете, что это невозможно, поэтому мы выберем второй вариант и применим формулу, используя эмпирическое распределение. К счастью, мы можем спокойно спать по ночам, потому что знаем, что с увеличением размера выборки эмпирическое распределение сходится к распределению сгенерированных данных. Таким образом, наши расчеты будут ближе к реальному значению формулы корректировки. Мы еще вернемся к этому обсуждению в главе 8. Вот к чему это приводит: если мы применим формулу корректировки к нашим данным – эмпирическому распределению PE, – то всегда будем иметь PE(Z1 = z1, ..., Zp = zp) = 1/n. То есть формула корректировки с данными {(x, y, zi1, ..., zip )} для i = 1, ..., n, как показано в табл. 4.4, превращается в , потому что для эмпирического распределения мы имеем PE(zi1, ..., zip) = 1/n. На практике мы немного злоупотребляем обозначениями: даже притом, что мы применяем формулу к эмпирическому распределению PE, мы отбрасываем нижний индекс и просто пишем P. Те же рассуждения применимы, когда переменная Y может принимать множество различных значений y1, ..., yk. В этом случае формула будет иметь вид . 4.2.2. Гибкость формулы корректировки Обратите внимание, что мы не делаем никаких предположений относительно конкретной формы, которую может принять P(Y | X, Z1, ..., Zp).
Как обучение с учителем участвует в причинно-следственном анализе? 145 Мы не предполагаем биномиального распределения или линейной функции в непрерывном случае. Это нормально, потому что формула очень общая и работает во многих ситуациях. В частности, она дает нам большую гибкость, позволяя использовать любую подходящую модель машинного обучения для оценки величины P(Y | X, Z1, ..., Zp). 4.2.3. Формула корректировки для непрерывных распределений До сих пор мы избегали обсуждения непрерывных переменных. Это объясняется отсутствием в них чего-то особенного, что требовало бы иного подхода при работе с ними. Мы просто должны заменить суммы интегралами. Некоторым интегралы кажутся неудобными, потому что они давно ими не пользовались. И для таких у меня есть хорошая новость: интегралы нам не нужны. Мы применим формулу корректировки к эмпирическому распределению, и поскольку у нас есть выборка размером n, это распределение будет иметь не более n различных значений для Y. Соответственно, с ним можно работать, как и в предыдущем случае, когда Y имеет k различных значений y1, ..., yk. Если вам интересно, как будет выглядеть величина вмешательства в случае непрерывных Y, X и Z, то замечу, что рассуждения при выводе E[Y|do(X = x)] остаются в силе, как и тогда, когда Y принимает дискретный набор реальных значений: нужно только заменить суммирование по значениям Z интегралом, где f – функция плотности для переменных Z, и в результате получится . 4.2.4. Алгоритмы расчета формулы корректировки Далее мы рассмотрим два подхода к использованию машинного обучения в формуле корректировки. Мы также рассчитаем средний эффект воздействия (average treatment effect, ATE) для бинарного случая X: E[Y |do(X = 1)] – E[Y |do(X = 0)]. Алгоритм S-learner: простой подход к оценке формулы корректировки Алгоритм S-learner (S – сокращение от single [единственный]) – это упрощенный подход, заключающийся в обучении единственной машинной модели и вставке ее прогнозов в формулу корректировки. В целом это неплохой подход, но в некоторых случаях, в зависимости от особенностей ваших данных, вы можете получить нереалистичные результаты. Алгоритм T-learner (T – сокращение от two [два]) решает эту проблему, разделяя модель на две части. Последний подход, называемый перекрестной подгонкой, или перекрестным обучением (cross-fitting), разделяет данные, чем напоминает перекрестную проверку, и дополняет алгоритм T-learner, чтобы избежать переобучения моделей. S-learner – это простейший способ получения формулы корректировки с помощью алгоритма машинного обучения. Нам нужно оценить ве-
146 Глава 4 Как машинное обучение и причинно-следственный анализ... личины P(Y |X, Z1, ..., Zp) или E(Y |X, Z1, ..., Zp) с помощью машинного обучения и применить формулу из предыдущего раздела. Алгоритм действует, как описано далее. Чтобы оценить величину вмешательства при определенном значении X = x для категориальной Y, P(Y = y |do(X = x)), или непрерывной Y, E[Y |do(X = x)], выполняются следующие шаги: 1 С использованием исторических данных {(x, y, zi1, ..., zip)}, где i = 1, ..., n (верхний индекс i выражает номер наблюдения), обучить машинную модель f с ковариатами x и всеми искажающими факторами Z1, ..., Zp. Если Y – категориальная переменная, то запустить классификатор (чтобы оценить вероятность Y = 1, обусловленную ковариа­ тами), а если Y – непрерывная переменная, то запустить регрессор. 2 Для каждого наблюдения i = 1, ..., n (или соответствующей строки в табл. 4.4) выполняется прогноз, который мы назовем f(x, zi1, ..., zip) для данных i, но вместо исторического значения xi выбирается значение текущего ковариата x, которое нас интересует для расчета ATE: сначала 1, а потом 0. Затем оценивается ATE (напомню, что эта формула верна и для случая, когда Y является бинарной переменной): . Вот так просто! Отмечу несколько важных моментов, о которых следует помнить. Во-первых, говоря об обучении машинной модели, мы неявно предполагаем полноценный процесс: опробование разных моделей (например, расширяемые деревья [boosted trees], линейные модели и даже глубокое обучение), настройку гиперпараметров и выбор лучшей модели с помощью перекрестной проверки. Второй момент касается выбора переменных для включения в модель. В отличие от машинного обучения, где можно экспериментировать, включая и исключая переменные, обычно руководствуясь результатами перекрестной проверки, в причинно-следственном анализе дело обстоит иначе. Переменные Z выбираются, потому что они являются искажающими факторами. Исключение из модели любой из них может привести к ситуации, напоминающей парадокс Симпсона, когда включение/исключение переменной кардинально изменяет результаты. И как мы видели в главе 3, перекрестная проверка не обнаружит эту проблему. Выбор переменных Z основывается на моделировании процесса генерации данных и создании графа и проводится до обучения любой машинной модели. В некоторых случаях нет необходимости включать все искажающие факторы (мы поговорим об этом в главе 7), но это решение должно приниматься на основе анализа графа, а не результатов перекрестной проверки. Алгоритм T-learner: разделение данных для улучшения оценки ATE Алгоритм S-learner неплох, но страдает досадной проблемой, мешающей его использованию на практике. Процесс обучения машинной
Как обучение с учителем участвует в причинно-следственном анализе? 147 модели предсказывать Y по переменным X и Z неявно использует корреляции между переменными. Часть поведения X может быть хорошо предсказана через переменные Z. Но в таких моделях, как деревья решений, которые могут выбирать, какие переменные использовать, модель может не учитывать значение X! Это означает, что модель f становится нечувствительной к значению X. Таким образом, оценивая f(x, zi1, ..., zip), мы не увидим никаких различий, если изменим значение X. И это проблема, потому что мы получим ATE, равный 0: не потому, что нет эффекта от воздействия, а из-за особенностей численных методов, используемых в этом процессе. Один из способов решения этой проблемы – взять подвыборку случаев, где X принимает значение x, и обучить на ней модель машинного обучения. Конечно, здесь следует оговориться: поскольку в этом случае набор данных существенно сокращается, то мы получим более высокие оценки дисперсии. Но обычно это вполне оправданно, потому что алгоритм S-learner может давать очень плохие оценки. Алгоритм T-learner можно обобщить следующим образом: 1 Разделить исторические данные {(yi, zi1, ..., zip )}, где i = 1, ..., n, на два подмножества D0 и D1, первое из которых соответствует наблюдениям с x = 0, а второе аналогично с x = 1. Затем обучить две модели f0 и f1 на каждом наборе данных. Если Y – категориальная переменная, то запустить классификатор, а если Y – непрерывная переменная, то запустить регрессор. В обоих случаях все ковариаты должны быть искажающими факторами Z1, ..., Zp. 2 Для каждого наблюдения i = 1, ..., n (во всем наборе данных) выполняются два прогноза с использованием моделей f0(zi1, ..., zip) и f1(zi1, ..., zip). 3 Рассчитать ATE (напомню, что эта формула также верна для случая, когда Y является бинарной): . Обратите внимание, что значение x исчезло из формул. Как объяснялось выше, каждому значению x соответствует своя функция: f0 была обучена на наборе данных с X = 0, а f1 – на наборе данных с X = 1. Упражнение Выше говорилось, что при обучении модели для применения S-learner модель может выбирать другие переменные вместо переменной, определяющей воздействие X, что становится проблемой, поскольку мы получим средний эффект воздействия ATE, равный 0 (когда в действительности он может отличаться от 0). Давайте на примере посмот­ рим, как это может произойти и как T-learner решает эту проблему. Для этого создадим свой набор данных. Модель данных выглядит следующим образом:
148 Глава 4 Как машинное обучение и причинно-следственный анализ... ; , где и ; , где . Возьмем выборку размером n = 20, сгенерированную с предыдущим описанием переменных и параметрами β ZX = βZY = 5 и β XY = 2. Рассчитаем разницу в y между группами x = 0 и x = 1. Близка ли она к значению β YZ (влияния x на y)? 2 Применим алгоритм S-learner: обучим дерево решений (используя библиотеку rpart в R или sklearn в Python) с максимальной глубиной 5 и вычислим ATE. Обратите внимание, что ATE равен 0 (если это не так, то возьмите другую выборку; есть небольшая вероятность, что он не будет равен 0, но обычно это так). Все предсказанные различия для каждого наблюдения также равны 0, что является основной проб­ лемой S-learner. 3 К тем же данным применим алгоритм T-learner и убедимся, что ATE не равен 0. Обратите внимание, что в этих данных Z является искажающим фактором, потому что влияет не только на переменную решения X, но и на переменную результата Y. Если вы запутались в математических формулах генерации данных, то, возможно, вам помогут следующие рассуждения. „ Переменная решения X следует модели логистической регрессии: вероятность того, что X будет равна 1, зависит от фактора Z. Это означает, что для каждого значения z необходимо вычислить p = p(z) с помощью предыдущей логистической функции, и эта вероятность p подскажет вероятность того, что x = 1. После того как p будет вычислено, x будет образцом распределения Бернулли с ожиданием p. Результат y имеет три члена. Первый – линейная зависимость от z. „ Второй – линейная зависимость от x (эффект влияния x на y). И третий член – случайный шум. Теперь вычислим ATE на основе формул процесса генерации данных. Когда мы устанавливаем x = 0, результат y будет вести себя как 1 y = β zy + ε. Но когда x = 1, то y будет выражаться как y = β yzz + β xy + ε. Если вычислить разницу между случаями x = 0 и x = 1 и измерить разницу в эффекте влияния на результат, то мы получим β zyz + β xy + ε – β zyz + ε = β zy z + β xy. Итак, в этой модели ATE (разница между случаями x = 1 (do(X = 1)) и x = 0 (do(X = 0)) и измерение разницы в результатах) будет точно β yx. Проблема в том, что при использовании S-learner иногда, в зависимости от данных, предполагаемый ATE равен точно 0!
Как обучение с учителем участвует в причинно-следственном анализе? 149 ПРИМЕЧАНИЕ. Пошаговое решение можно найти на веб- сайте книги www.manning.com/books/causal-inference-for-data-science или в репозитории GitHub по адресу https://mng.bz/4pnQ. 4.2.5. Перекрестное обучение: предотвращение переобучения Используя машинное обучение для получения формулы корректировки, важно помнить о риске переобучения. Если обучить машинную модель на наборе данных D, а затем использовать ее для прогнозов на том же наборе данных, то возникает склонность к переобучению. Это означает, что не стоит использовать один и тот же набор данных для обучения и прогнозирования. Переобучение в машинном обучении отличается от того, с чем можно столкнуться в причинно-следственном анализе. В обучении с учителем цель обычно состоит в том, чтобы выбрать модель, которая лучше других будет работать с новыми данными. Однако алгоритмы S-learner и T-learner делают прогнозы на том же наборе данных, на котором были обучены. Вот почему даже при тщательном выполнении перекрестной проверки для выбора лучшей модели использование модели для создания прогнозов на обучающем наборе все равно может привести к переобучению. Интуитивное понимание переобучения Если мы хотим предсказать Y по X, то целью обучения с учителем является оценка E[Y|X] – величина, которую мы не наблюдаем. На самом деле мы наблюдаем Y|X для некоторого X, т. е. набор данных D = {(xi, yi)}. Мы создаем прогностическую модель из этих значений, стараясь максимально подогнать прогнозы f(xi) к yi. Поэтому модель, обученная с помощью D, будет пытаться имитировать значения xi в наборе данных D и смещаться в сторону предсказания чего-то близкого к наблюдаемому значению yi, а не к значению, которое мы хотим получить, т. е. E[Y|xi]. Чтобы предотвратить слишком близкое копирование моделью фактических значений, используется перекрестная проверка. Она ограничивает сложность модели (и, соответственно, ее гибкость) и заставляет модель больше фокусироваться на E[Y|xi], а не на yi. Вот почему обучение на наборе данных D и прогнозирование на том же наборе может давать смещенные результаты (переобуче­ние), особенно в случае сложных моделей. Вот альтернативный взгляд. Имея две переменные Y и X, мы всегда можем описать связь между ними в терминах условного ожидания как Y = E[Y|X] + ε, где ε – это ошибка, не зависящая от X. Это просто, потому что Y = E[Y|X] + Y – E[Y|X]. Таким образом, член ε = Y – E[Y|X] имеет нулевое среднее, обусловленное X: E[ε|X] = E[Y|X] – E[Y|X] = 0. В этом выражении мы не можем получить никакой дополнительной информации от X. То есть ε, обусловленное X, – это чистый шум. Каждый раз, наблюдая значение x, мы также наблюдаем определен-
150 Глава 4 Как машинное обучение и причинно-следственный анализ... ное значение y, которое обычно отличается от E[Y|X] = f(x). В этом случае если создаваемая нами прогностическая модель ближе к y = E[Y|X] + ε, чем к E[Y|X], то мы фактически пытаемся выполнить подгонку модели под ε, т. е. под шум. Рассмотрим пример на рисунке ниже, где пунктирная линия представляет базовый процесс генерации данных (к которому у нас нет доступа), а точки соответствуют образцам, полученным из этого процесса с некоторой ошибкой. В обучении с учителем мы стремимся оценить базовый процесс, опираясь на точки данных. Сплошные линии представляют две разные модели. Как видите, та, что ближе к каждой точке, также является переобученной (ее поведение вдали от точек не подходит для прогнозирования). Вторая кривая, которая не проходит ни через одну точку, лучше подходит для прогнозирования, поскольку она ближе к базовому процессу генерации данных. Хорошая модель нацелена на условное ожидание (ожидаемое значение базового процесса), а не на сами точки. Сравнение моделей разной степени сложности. Модель слева точнее соответствует выборочным данным (она проходит через все точки), но модель справа лучше отражает основные тенденции Обычно для решения таких проблем используется перекрестное обуче­ние или перекрестная подгонка (cross-fitting) с разделением набора данных. Начнем с самого простого случая, разделения «50 на 50». В этом случае набор данных делится на две части: D1 и D2. Сначала модель обучается на наборе D1, а затем D2 используется для прогнозирования. После этого наборы данных меняются ролями: D2 используется для обучения, а D1 – для прогнозирования. Этот процесс показан в табл. 4.5. Как будет показано в следующих главах, этот подход можно применять во многих ситуациях, не только для S-learner и T-learner. Более того, по аналогии с k-кратной перекрестной проверкой (k-fold crossvalidation) существует подход k-кратного перекрестного обучения (k-fold cross-fitting), когда исходный набор данных делится на k блоков D1, ..., Dk, затем на каждом блоке данных Dj обучается своя модель, которая используется для прогнозирования на других блоках, в конце все полученные прогнозы усредняются.
151 Как обучение с учителем участвует в причинно-следственном анализе? Таблица 4.5. Разница между обучением и прогнозированием на одном и том же наборе данных с точки зрения применения перекрестного обучения Обучение + прогнозирование Перекрестное обучение Набор данных Набор данных деление Обучение Модель Прогнозы Обучение и прогнозирование на одном и том же наборе данных может привести к переобучению, даже при использовании перекрестной проверки D1 D2 обучение Модель1 обучение Модель2 Прогнозы2 Прогнозы1 Прогнозы В двукратном перекрестном обучении подгонка производится на одном наборе данных, а прогнозирование на другом. Перекрестное обучение помогает избежать переобучения на одном и том же наборе данных Давайте посмотрим, как будет выглядеть двукратное перекрестное обучение для алгоритмов S-learner и T-learner. Для простоты рассмот­ рим вариант с непрерывным результатом Y: 1 Исторические данные D = {(xi, yi, zi1, ..., zip)} делятся на два равных набора D1, D2. Чтобы сохранить сбалансированность наборов данных, важно убедиться, что в обоих случаях доли с X = 0 и X = 1 одинаковы. 2 Набор D1 используется для обучения модели f, которая прогнозирует Y по ковариатам X и Z1, ..., Zp. 3 Для каждого наблюдения в D2 с индексом i вычисляются два прог­ ноза со значениями x = 1 и x = 0 соответственно. 4 Вычисляется ATE для данных в D2 с применением модели f, обученной на наборе D1: . 5 6 Повторно выполняются шаги 2–4, поменяв ролями D1 и D2, чтобы получить новое значение ate1. Вычисляется ATE = (ate1 + ate2)/2:
152 Глава 4 Как машинное обучение и причинно-следственный анализ... . Шаги 1–4 показаны на рис. 4.6. Шаг 5 следует выполнять, поменяв D1 и D2 ролями. Набор данных D2 D1 Модель1 D2(do(X=0)) Прогнозы2(do(X=0)) D2(do(X=1)) Прогнозы2(do(X=1)) ATE2 Рис. 4.6. Применение двукратного перекрестного обучения к S-learner. Набор данных делится на две части, одна из которых используется для обучения, а другая – для прогнозирования результатов вмешательства (do(X = 0) и do(X = 1)), после чего вычисляется ATE. Затем наборы данных меняются ролями Как мы уже видели, алгоритм S-learner может быть неэффективным, поэтому предпочтительнее с перекрестным обучением объединять алгоритм T-learner. Единственное отличие перекрестного обучения для T-learner заключается в шаге 2, где используется подмножество данных с X = x для обучения модели: 1 Исторические данные D = {(xi, yi, zi1, ..., zip)} делятся на два равных набора D1, D2. Чтобы сохранить сбалансированность наборов данных, важно убедиться, что в обоих случаях доли с X = x одинаковы. 2 Набор D1 используется для обучения двух моделей f0(zi1, ..., zip) и f1(zi1, ..., zip) с ковариатами и Z1, ..., Zp. 3 Для каждого наблюдения в D2 с индексом i вычисляются два прог­ ноза со значениями x = 1 и x = 0 соответственно. 4 Вычисляется ATE для данных в D2 с применением моделей f0 и f1, обученных на наборе D1: . Повторно выполняются шаги 2–4, поменяв ролями D1 и D2, чтобы получить новое значение ate1. 6 Вычисляется ATE = (ate1 + ate2)/2. Шаги 1–4 показаны на рис. 4.7. Шаг 5 следует выполнять, поменяв D1 и D2 ролями. 5
153 Другие применения причинно-следственного анализа в машинном обучении Набор данных D1 Рис. 4.7. Применение двукратного перекрестного обучения к T-learner. Набор данных делится на две части, одна из которых используется для обучения двух моделей с X = 0 и X = 1 соответственно, а другая – для прогнозирования результатов вмешательства (do(X = 0) и do(X = 1)) с применением обеих моделей, после чего вычисляется ATE. Затем наборы данных меняются ролями D1(X=1) Модель1(X=1) D1(X=0) Модель1(X=0) Прогнозы2(do(X=1)) D2 Прогнозы2(do(X=0)) ATE2 Заключение Чтобы получить хорошие оценки формулы корректировки, следует использовать алгоритм T-learner и перекрестное обучение для предотвращения переобучения моделей. 4.3. Другие применения причинно-следственного анализа в машинном обучении До сих пор мы в основном говорили о том, как причинно-следственный анализ связан с машинным обучением с учителем. Но влияние причинно-следственного анализа распространяется и на другие области машинного обучения. В этом разделе я коротко опишу эти связи. Для желающих погрузиться глубже в тему я представлю несколько ссылок на другие источники информации. Имейте в виду, что они охватывают далеко не все аспекты, но являются хорошей отправной точкой для дальнейшего изучения. 4.3.1. Обучение с подкреплением Обучение с подкреплением изучает ситуации, в которых один или несколько агентов взаимодействуют с окружением. Их действия влекут вознаграждение или штраф, и мы хотим узнать оптимальные решения, которые эти агенты могут принять, чтобы максимизировать вознаграждение и минимизировать штраф. Агентам не обязательно знать, как работает окружение, поэтому частью их работы является попытка учесть неизвестные данные. Обычно оптимальное решение должно сочетать исследование окружающей среды (для поиска наи-
154 Глава 4 Как машинное обучение и причинно-следственный анализ... лучшего действия) с эксплуатацией (повторением уже известного действия для получения вознаграждения). Популярным примером является обучение компьютеров игре в игры. Вы можете заставить два компьютера играть друг с другом в множество игр, чтобы в конечном итоге они выяснили оптимальные стратегии. Цели причинно-следственного анализа и обучения с подкреплением схожи: принятие оптимальных решений. Однако существуют большие различия в том, когда можно использовать каждый из них. В причинно-следственном анализе мы учимся на прошлых данных. Но в обучении с подкреплением обычно есть возможность моделировать окружающую среду. Вспомните пример с двумя компьютерами, играющими друг против друга. Они могут играть в игру столько раз, сколько необходимо, каждый раз создавая новые данные. Более того, они могут решать, какое действие выполнить в каждый момент. В результате обучение с подкреплением имеет прямую информацию о вмешательствах, тогда как причинно-следственный анализ ее не имеет (и должен выводить ее из данных). Причинно-следственный анализ может применяться в задачах обучения с подкреплением, где есть смесь переменных, в которые можно и в которые нельзя вмешаться. «Многорукие бандиты» – это особая форма обучения с подкреплением, тесно связанная с A/B-тестированием. Представьте, что мы проводим A/B-тестирование для измерения эффективности нового веб-сайта. Мы решаем, что для получения достаточно представительной выборки и эксперимент должен длиться четыре недели. Однако уже через две недели появляются веские доказательства, что альтернатива A работает лучше, чем B. Проведение эксперимента обходится дорого, поскольку требует определенной настройки веб-сайта. Но что еще важнее; когда мы назначаем участников на худший вариант (в данном случае B), мы теряем средства, которые могли бы потенциально заработать, если бы этим пользователям был назначен лучший вариант (в данном случае A). Однако стоит ли останавливать эксперимент и принять решение, что A лучше, учитывая доказательства, что A – более эффективная альтернатива? Нет, не стоит! В течение четырех недель будут иметь место колебания, обусловленные случайным характером эксперимента. Мы можем ожидать, что A лучше в некоторые периоды, чем B, а в другие периоды будет наоборот. Если остановить эксперимент до достижения установленного срока, потому что альтернатива A выглядит более эффективной, то тем самым мы изменим результаты, внеся смещение в пользу A. Но что, если вместо остановки эксперимента, когда альтернатива A начала показывать лучшие результаты, мы просто сократим количество участников, которым назначена альтернатива B? Именно это и делают «многорукие бандиты»: они работают как A/B-тесты, которые динамически изменяют пропорцию, назначенную каждой руке (альтернативе), распределяя участников в сторону лучшего варианта, не теряя при этом шансов найти лучший вариант. Во время эксперимента они оптимизируют метрику потерь (regret), которая является
Другие применения причинно-следственного анализа в машинном обучении 155 альтернативной стоимостью выбора лучшего варианта. Как и в обуче­ нии с подкреплением, в некоторых ситуациях у нас может иметься смешанная информация с наблюдаемыми данными, когда причинноследственный анализ способен оказать помощь. Ссылки на дополнительную литературу по этой теме вы найдете в разделе 4.4. 4.3.2. Справедливость Представьте, что в некотором банке создана модель кредитного рейтинга, которая использует соответствующие характеристики каждого клиента (возраст, размер зарплаты и т. д.) для прогнозирования вероятности погашения им кредита в оговоренный период времени. Эти прогнозы можно использовать для приоритетного предоставления кредита клиентам, которые с большей вероятностью вернут деньги. Теоретически ничто не мешает использовать в модели расовую принадлежность клиента. Как показывает практика, некоторые расы могут иметь более высокие шансы вернуть деньги, чем другие, поэтому добавление в модель признака принадлежности к расе повысит ее точность. Однако решение о предоставлении кредита на основе расы считается дискриминацией. Благоприятствование или отказ в доступе к финансированию определенным группам может привести к серьезным социальным проблемам, поэтому создание модели кредитного рейтинга – это проблема не столько техническая, сколько социальная. На первый взгляд, удаление признака «раса» из модели решит проб­ лему. Но в действительности это не так. Мы можем не учитывать расовую принадлежность клиента, но использовать его адрес, который, в свою очередь, может сильно коррелировать с расовой принадлежностью. Таким образом, для удаления влияния расовой принадлежности из модели необходимо понимать взаимосвязи между различными переменными, включенными в модель. Честность (fairness) – это область машинного обучения, посвященная пониманию и исправлению подобных проблем. Здесь причинноследственный анализ может здорово помочь, потому что понимание причинно-следственных связей между переменными является его специализацией. Ссылки на дополнительную литературу по этой теме вы найдете в разделе 4.4. 4.3.3. Ложные корреляции Благодаря обучению с учителем машинное обучение достигло больших успехов в прогнозировании. Однако иногда прогнозы строятся на основе корреляций между переменными, и это может стать проблемой. Представьте классификатор, который должен различать изображения собак и рыб. Предположим, что в определенном историческом наборе данных, используемом для обучения классификатора, собаки обычно сфотографированы лежащими на траве, а рыбы показаны в море. Вместо того чтобы изучать сложные формы и цвета обоих животных, классификатор может «запомнить», что на зеленом фоне обычно изображена собака, а на синем фоне – рыба.
156 Глава 4 Как машинное обучение и причинно-следственный анализ... Как уже отмечалось, модели машинного обучения хорошо работают, пока будущее ведет себя так же, как прошлое. Это означает, что модель будет без ошибок распознавать новые изображения, если они будут похожи на изображения из обучающей выборки. Однако изображение собаки в прыжке на фоне неба вызовет проблему: модель обнаружит синий фон и предскажет, что животное на изображении – это рыба. Модель использует ложную корреляцию. Причинно-следственный анализ может помочь нам понять и разработать методы для уменьшения ложных корреляций, способных навредить нашим моделям. Ссылки на дополнительную литературу по этой теме вы найдете в разделе 4.4. 4.3.4. Обработка естественного языка Совместное применение обработки естественного языка (natural language processing, NLP) и причинно-следственного анализа началось совсем недавно и пока находится на ранней стадии. Кажется очевидным, что причинно-следственный анализ может немало поспособствовать в сфере, где люди придают определенный смысл прочитанному. Ссылки на дополнительную литературу по этой теме вы найдете в разделе 4.4. 4.3.5. Объяснимость Объяснимость ИИ, говоря простыми словами, – это возможность понять, что предсказывают модели и почему они предсказывают именно так, а не иначе. Глубокое обучение особенно тесно связано с созданием точных прогнозов, и когда прогнозы не оправдываются, важно понять, почему так получилось. Есть также несколько примеров применения причинно-следственного анализа для интерпретации; см. ссылки в разделе 4.4. 4.4. Для дальнейшего чтения Объяснение алгоритмов S-learner и T-learner можно найти в статье «Metalearners for Estimating Heterogeneous Treatment Effects Using Machine Learning» Кюнцеля (Künzel) и его коллег. Родственные методы объясняются в статье «Targeted Learning: Causal Inference for Observational and Experimental Data» Марка Дж. ван дер Лаана (Mark J. van der Laan) и Шерри Роуз (Sherri Rose). Перекрестная подгонка (или перекрестное обучение) представлена в статье «Double/Debiased Machine Learning for Treatment and Structural Parameters» Черножукова (Chernozhukov) и его коллег, но имейте в виду, что это сугубо техническая статья. Ниже перечислены некоторые дополнительные ссылки к предыдущим разделам. „ Обучение с подкреплением: – Учебное пособие по причинно-следственному обучению с подкреплением от Элиаса Барейнбойма (Elias Bareinboim), представленное на Международной конференции по машинному обучению (ICML) 2020 (https://crl .causalai.net).
Для дальнейшего чтения „ „ „ „ 157 Справедливость: – «Causal Fairness Analysis: A Causal Toolkit for Fair Machine Learning», Драго Плечко (Drago Plečko) и Элиас Барейнбойм (Elias Bareinboim) («Foundations and Trends in Machine Learning», т. 17, № 3, с. 1–238, 2024): https://causalai.net/r90.pdf; – «Counterfactual Fairness», Мэтт Дж. Каснер (Matt J. Kusner), Джошуа Р. Лофтус (Joshua R. Loftus), Крис Рассел (Chris Russell) и Рикардо Сильва (Ricardo Silva): https://arxiv.org/ abs/1703.06856; – «Fairness and Machine Learning, Limitations and Opportunities», Солон Барокас (Solon Barocas), Мориц Хардт (Moritz Hardt) и Арвинд Нараянан (Arvind Narayanan) (2023): https://fairmlbook.org. Ложные корреляции: – «On Calibration and Out-of-Domain Generalization», Йоав Вальд (Yoav Wald), Амир Федер (Amir Feder), Дэниел Гринфельд (Daniel Greenfeld) и Ури Шалит (Uri Shalit): https:// arxiv.org/pdf/2102.10395.pdf; – «Invariant Risk Minimization», Мартин Арджовски (Martin Arjovsky), Леон Ботту (Léon Bottou), Ишан Гульраджани (Ishaan Gulrajani) и Дэвид Лопеса-Паса (David Lopez-Paz): https://arxiv.org/pdf/1907.02893.pdf; – «Why Should I Trust You?: Explaining the Predictions of Any Classifier», Марко Тулио Рибейро (Marco Tulio Ribeiro), Самир Сингх (Sameer Singh) и Карлос Гестрин (Carlos Guestrin): https://arxiv.org/pdf/1602.04938.pdf; – Causal Inference Using Invariant Prediction: Identification and Confidence Intervals», Йонас Петерс (Jonas Peters), Питер Бульман (Peter Bühlmann) и Николай Майнсхаузен (Nicolai Meinshausen): https://arxiv.org/pdf/1501.01332.pdf. Обработка естественного языка: – «Causal Inference in Natural Language Processing: Estimation, Prediction, Interpretation and Beyond», Амир Федер (Amir Feder), Кэтрин А. Кейт (Katherine A. Keith), Эмаад Манзур (Emaad Manzoor), Рейд Призант (Reid Pryzant), Дханья Шридхар (Dhanya Sridhar), Зак Вуд-Доути (Zach WoodDoughty), Джейкоб Эйзенштейн (Jacob Eisenstein), Джастин Гриммер (Justin Grimmer), Рой Рейхарт (Roi Reichart), Маргарет Э. Робертс (Margaret E. Roberts), Брэндон М. Стюарт (Brandon M. Stewart), Виктор Вейч (Victor Veitch) и Дийя Янг (Diyi Yang): https://arxiv.org/pdf/2109.00725.pdf. Объяснимость: – «Explaining the Behavior of Black-Box Prediction Algorithms with Causal Learning», Нумаир Сани (Numair Sani), Дэниел Малинский (Daniel Malinsky) и Илья Шпицер (Ilya Shpitser): https://arxiv.org/pdf/2006.02482.pdf;
158 Глава 4 Как машинное обучение и причинно-следственный анализ... – «Toward Unifying Feature Attribution and Counterfactual Explanations: Different Means to the Same End», Рамаравинд Коммия Мотилал (Ramaravind Kommiya Mothilal), Дивьят Махаджан (Divyat Mahajan), Ченхао Тан (Chenhao Tan) и Амит Шарма (Amit Sharma): https://arxiv.org/pdf/2011.04917.pdf. 4.5. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Какой предиктор лучший в задаче регрессии? Ответ во врезке «Выше и дальше: почему среднее значение является лучшим предиктором для набора значений?» в разделе 4.1.2. 2 На каких основных предположенихя базируется обучение с учителем? Ответ в разделе 4.1.3. 3 Представьте, что вам понадобилось оценить влияние стоимости товара на вероятность его покупки. Назовите сценарий, в котором обучения с учителем достаточно для получения причинно-следственной связи. Ответ в разделе 4.1.4. 4 Перекрестная проверка – не самый надежный способ выбора правильной причинно-следственной модели. Почему? Ответ во врезке «Почему не стоит выбирать модели причинноследственной связи на основе их ошибки перекрестной проверки?» в разделе 4.1.5. 5 Перекрестной проверки недостаточно, чтобы избежать переобуче­ ния в оценках причинно-следственных связей. Почему? Ответ в разделе 4.2.5. Итоги „ „ „ Обучение с учителем фокусируется на создании прогнозов на основе исторических данных и показывает хорошие результаты, пока будущее ведет себя так же, как прошлое. Поэтому если вы собираетесь принимать решения, влияющие на вашу среду на основе моделей машинного обучения, то сначала подумайте, подходят ли они для этой цели. Модели машинного обучения позволяют получить причинноследственные оценки при включении всех сопутствующих переменных. Не следует выбирать причинно-следственную модель, основываясь только на результатах перекрестной проверки.
Для дальнейшего чтения „ 159 При наличии большого количества факторов, влияющих на результаты, можно применить формулу корректировки с использованием моделей машинного обучения: – условную вероятность, фигурирующую в формуле, на практике можно заменить моделью машинного обучения; – даже при использовании перекрестной проверки для выбора модели машинного обучения все равно необходимо применять перекрестную подгонку, чтобы избежать переобучения.

Часть II Формула корректировки на практике П ри попытке применить формулу корректировки в реальных ситуациях можно столкнуться с трудностями. Одно из важнейших требований для эффективного использования этой формулы – соблюдение предположения о положительности. Это предположение требует, чтобы каждый вид воздействия применялся ко всем подгруппам. В главе 5 вы познакомитесь с методами, помогающими определить ошибочность предположения о положительности, и стратегиями решения этой проблемы. До этого момента наше основное внимание мы уделяли ситуациям, когда переменная воздействия или принятия решения была бинарной. В главе 6 мы рассмотрим линейные модели, учитывающие влияние непрерывных переменных. Мы также узнаем, что линейные модели дают представление о том, как корреляция и причинно-следственная связь распространяются в графах. Это понимание очень пригодится нам в следующей главе. Еще одна проблема заключается в определении переменных, которые следует включить в формулу корректировки, особенно в случаях, когда граф очень сложный. В главе 7 рассматривается решение этой проблемы с применением критерия обходного пути – графового критерия выбора правильных переменных для корректировки.
162 Формула корректировки на практике В главе 4 мы научились использовать машинное обучение для реализации формулы корректировки, а в главе 8 познакомимся с техникой двойного машинного обучения. Этот более эффективный и гибкий метод хорошо подходит для оценки причинно-следственных связей. Здесь мы увидим, как рассчитать доверительные интервалы, помогающие оценить степень уверенности в результатах, а также научимся использовать библиотеку DoubleML для оценки причинно-следственных связей и их уровней достоверности.
5 Поиск сопоставимых случаев с использованием меры склонности В этой главе: „ „ использование мер склонности для оценки предположения о положительности; расчет ATE с использованием методов оценки склонности. Вернемся к главному аспекту причинно-следственного анализа: как сделать выбор между двумя вариантами, когда нет возможности использовать рандомизированное контролируемое испытание или A/Bтестирование. Вспомните пример с почечнокаменной болезнью из главы 2. Там для решения этой задачи мы использовали формулу корректировки. Теперь у нас есть модифицированная версия этой формулы. Она нам нужна, потому что специально создана для определения верности предположения о положительности. Как отмечалось в главе 2, формула корректировки работает, только если предположение о положительности верно. Давайте поговорим о том, что означает это предположение. Пусть у нас есть два метода лечения, A и B. Метод A назначается как молодым, так и пожилым лю-
164 Глава 5 Поиск сопоставимых случаев с использованием меры склонности дям, а метод B – только молодым. Мы не сможем выяснить влияние метода B и на молодых, и на пожилых, пока этот метод не будет назначен хотя бы небольшому количеству пожилых пациентов. Чтобы определить, какой метод лечения лучше, мы должны применить оба метода, А и В, к обеим возрастным группам: молодым и пожилым. Мы здесь 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (глава 7). Проверьте предположение о положительности (эта глава). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Переменная воздействия имеет непрерывный тип или бинарный? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (глава 6) Точная Двойное машинное обучение (глава 8) Бинарный Количество переменных для корректировки Мало Прямое применение формулы корректировки (глава 2) Много Алгоритм T-learner (глава 4) Применение формулы корректировки Но это еще не все. Вероятно, нам также нужно учесть другие важные факторы, такие как пол и регулярные занятия физкультурой. Например, если пожилые женщины, регулярно занимающиеся физкультурой, получают лечение методом A, то некоторые из них должны также получать лечение методом B. Без этого мы не получим четкой картины, как метод лечения B воздействует на всю популяцию. В этом суть предположения о положительности: чтобы правильно оценить влияние, оба метода, A и B, должны быть протестированы на всех подгруппах пациентов. Предположение о положительности можно объяснить и немного по-другому. Если лечение методом A назначается определенной группе, например пожилым женщинам, регулярно занимающимся физкультурой, то той же группе мы должны также назначить лечение методом B. Аналогично если какая-либо группа получает лечение методом B, то некоторым людям из этой группы должно назначаться лечение методом A. На индивидуальном уровне эта идея означает, что
Для дальнейшего чтения 165 для каждого пациента, получающего лечение одним методом, должен иметься пациент с похожими характеристиками, получающий лечение другим методом. Соответствие легко установить, когда рассматриваются одна-две категории. Однако при наличии большего количества искажающих факторов, как будет показано в разделе 5.1.3, процесс выявления соответствия может стать гораздо более сложным. Предположение о положительности эквивалентно утверждению, что для каждого пациента можем найти другого пациента с похожими характеристиками, который получил лечение противоположным методом. В этой главе мы узнаем, как определить эти соответствия с помощью меры склонности. Формально мера склонности некоторого пациента отражает вероятность, что любой пациент с такими же характеристиками получит лечение определенным методом, например методом A. Величина этой меры изменяется в диа- пазоне от 0 до 1. Если мера склонности пациента равна 1, то это означает, что этот пациент и все другие, подобные ему, получили лечение методом A и никто не получил лечение методом B. А так как в группе B нет соответствующего пациента, мы не можем сказать, как лечение B повлияет на пациента с такими характеристиками. И наоборот, мера склонности 0 указывает, что пациент и все другие, подобные ему, получили только лечение методом B, и в группе A нет соответствующих пациентов. Группы A и B сопоставимы только тогда, когда меры склонности их пациентов находятся строго в диапазоне от 0 до 1 и не равны 0 или 1. Этот диапазон гарантирует, что для каждого пациента с мерой от 0 до 1 найдется пациент, получающий противоположное лечение, тем самым подтверждая предположение о положительности. Меры склонности предназначены не только для проверки предположения о положительности; они также могут использоваться при расчете формулы корректировки. В этой главе мы посмотрим, как можно использовать меры соответствия и склонности для уточнения этой формулы. Меры склонности особенно широко используются в медицине, где являются популярным инструментом сопоставления и оценки корректировочных расчетов. Эта глава особенно важна для тех, кто интересуется анализом медицинских данных. Если вы знакомы с литературой по медицине, то заметите, что в ней часто упоминаются меры склонности. Но они используются не только в медицине, но и в других областях, например в рекомендательных системах. Даже если медицина не является вашей областью, понимание особенностей функционирования меры склонности все равно вам пригодится. Кроме того, эта глава поможет вам лучше понять предыдущий материал. Мы вернемся к формуле корректировки – концепции, которую мы уже рассмотрели, – но рассмотрим ее под новым углом: с точки зрения сравнения эффектов лечения похожих пациентов. Эта точка зрения поможет вам расширить понимание методов причинно-следственного анализа.
166 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Когда следует использовать меры склонности Меры склонности помогают выяснить, верно ли предположение о положительности, и, соответственно, узнать, можно ли применить формулу корректировки. Они также полезны для расчета среднего эффекта воздействия (average treatment effect, ATE). 5.1. Знакомство с мерой склонности Для демонстрации практического применения меры склонности рассмотрим простой пример. Это поможет заложить основу, преж­ де чем мы углубимся в более сложные теории, необходимые для расширения нашего понимания. Сначала вернемся к вычислению ATE и рассмотрим этот процесс с более простой и, пожалуй, более понятной точки зрения. Рассмотрим сценарий, показанный на рис. 5.1. В этом сценарии врачи, действуя осторожно, решили не назначать новое и недостаточно апробированное лечение пожилым людям – группе с более высоким риском осложнений. Предположим, что возраст является единственным фактором, который учитывается при выборе метода лечения (что делает его единственным искажающим фактором). В нашем сценарии группа, получающая лечение, включает лишь 20 % (1/5) пожилых людей, а контрольная группа (не получающая лечения) включает 75 % (3/4) пожилых людей. Учитывая, что, по всей видимости, возраст влияет на вероятность выздоровления и уж точно влияет на распределение между группой, получающей лечение, и контрольной группой, возраст следует считать сущест­ венным искажающим фактором. Группа, получающая лечение Вероятность выздоровления Контрольная группа Вероятность выздоровления Рис. 5.1. Группы имеют разную возрастную структуру, поэтому мы не можем оценить ATE с разницей в средних значениях между двумя группами Имейте в виду Несмотря на простоту наших первых примеров, включающих одиндва искажающих фактора, они помогут нам научиться справляться с ситуациями, когда количество искажающих факторов намного больше.
167 Знакомство с мерой склонности 5.1.1. Поиск соответствий для оценки причинно-следственных связей Если бы я сказал вам, что в группе, получавшей лечение, выздоровели 80 % пациентов, а в контрольной группе – только 50 %, то, учитывая все, что узнали в предыдущих главах, вероятно, подумали бы (и были бы правы), что это несправедливое сравнение. В группе, получавшей лечение, выше доля молодых людей, которые выздоравливают легче, а в контрольной группе выше доля пожилых людей, которых обычно сложнее вылечить. Соотношение пожилых и молодых людей в обеих группах различно. Сначала подумай, потом читай А что, если сравнение проводится в каждой возрастной страте, как на следующем рисунке? Например, если в группе, получающей лечение, число выздоровевших молодых людей на 15 % больше, а число выздоровевших пожилых людей на 5 % больше по сравнению с контрольной группой, то являются ли эти оценки беспристрастными? Можно ли сравнить эффективность лечения для каждой группы отдельно? Получим ли мы непредвзятые оценки по каждой группе? Группа, получающая лечение Контрольная группа Вероятность выздоровления Вероятность выздоровления В этом случае оценка будет справедливой (несмещенной). Причина этого описывается далее. На вероятность выздоровления пациента влияет множество факторов, таких как место жительства, возраст и т. д. Количество факторов может быть огромным. Все эти факторы, за исключением возраста, имеют одинаковое распределение в обеих группах (если в группе, получающей лечение, 50 % женщин, то в контрольной группе их тоже будет 50 %). Это означает, что группы очень похожи по всем этим характеристикам (за исключением возраста). Единственное отличие заключается в том, проходили ли они лечение. Переменная возраста стоит особняком, поскольку она использовалась при принятии решения о том, какое лечение назначить, поэтому, например, доля молодых в обеих группах различается. Однако когда мы выбираем только молодых людей, то их доля одинакова в обеих группах (на самом деле она составляет 100 %, потому что мы выбрали только молодых людей!). Теперь все переменные, влияющие на результат, включая возраст, имеют одинаковую долю в обеих группах. Все характеристики равны в обеих группах, един-
168 Глава 5 Поиск сопоставимых случаев с использованием меры склонности ственное отличие заключается в том, что одна группа проходила лечение, а другая нет. То есть обе группы сопоставимы, и мы можем оценить причинно-следственный эффект лечения, прос­то измерив разницу в результатах между группами. К тому же выводу можно прийти, следуя логике, описанной в разделе «Обусловленность – часть решения» в главе 2. Как показано на рис. 5.2, у нас есть только один искажающий фактор. Когда мы выбираем определенную страту, например молодых людей, искажающий фактор фиксируется (перестает изменяться), поэтому вся корреляция между лечением и результатом оказывается обусловленной их причинно-следственной связью. Возраст = молодой T O Рис. 5.2. Контролируя возраст, мы фиксируем его как константу. Поэтому в группе, где Возраст = молодой, возраст больше не влияет на результаты и больше не является искажающим фактором. T (Treatment) обозначает лечение, а O (Outcome) – исход Сравнить вероятность выздоровления пациентов, получивших и не получивших лечение, можно, только если они оба имеют одинаковые характеристики (в данном случае возраст). Чтобы рассчитать ATE, можно пойти по пути, который называется сопоставлением, когда для каждого типа пациента, получившего лечение, мы отыскиваем похожего пациента, не получившего лечение, и сравниваем их. Какие переменные следует сопоставлять? Если кратко, то все искажающие факторы. Искажающие факторы по определению могут влиять на решение о выборе метода лечения, поэтому можно ожидать, что распределение каждого искажающего фактора будет различным в каждой группе. А так как эти переменные влия­ ют на результат, то имеющиеся различия в распределении не позволят сравнивать группы напрямую (потому что такое сравнение будет несправедливым). 5.1.2. Но есть ли соответствие? Настоящая проблема возникает, когда имеется подгруппа с характеристиками, присущими только одной из двух групп, как показано на рис. 5.3, где в группе, получавшей лечение, нет молодых людей. В этом случае мы не можем использовать сопоставление, потому что у молодых пациентов, получающих лечение, нет аналогов в контрольной группе. Характеристики определенной подгруппы могут различаться в контрольной группе и в группе лечащихся пациентов (75 % пожилых в контрольной группе и 20 % – в группе пациентов, получающих лечение), но когда определенная подгруппа появляется только в одной из двух групп, возникает проблема. И это именно то, о чем беспокоится предположение о положительности! На рис. 5.3 доля молодых
169 Знакомство с мерой склонности людей в контрольной группе составляет 0 %. Эквивалентно мы можем сказать, что вероятность оказаться в контрольной группе для молодых людей составляет 0 %. Математически это можно выразить как P(T = 0|молодые) = 0 %. Но это не что иное, как утверждение, что мера склонности для молодых людей (вероятность их лечения) составляет P(T = 1|молодые) = 100 %. То есть проверка предположения о положительности эквивалентна проверке, у каких пациентов величина меры склонности равна 0 или 1. Рис. 5.3. Мы не можем сравнивать эффективность лечения в разных возрастных группах, потому что в контрольной группе нет молодых пациентов Группа, получающая лечение Контрольная группа Исход Исход 5.1.3. Почему сопоставление может быть трудным В нашем примере с разновозрастными пациентами найти соответствие для каждой группы довольно просто. Но в реальной жизни сделать это часто гораздо сложнее. Давайте рассмотрим некоторые причины. Непрерывные переменные Предположение о положительности не может быть доказано. Оно лишь может быть подкреплено статистическими аргументами. Этот факт легче понять при работе с непрерывными переменными. Представьте, что предоперационное артериальное давление (непрерывная переменная) является единственным искажающим фактором, и нам нужно проверить, выполняется ли предположение о положительности. В отличие от предыдущего примера, где можно создать группы с абсолютно одинаковыми характеристиками (молодые/пожилые), артериальное давление у разных пациентов может быть очень похожим, но не совпадать в точности. Например, зная, что систолическое артериальное давление обычно колеблется от 90 до более чем 120 мм рт. ст., представьте, что у пациента в группе, получающей лечение, величина артериального давления составляет 100 мм рт. ст., а у ближайшего пациента в контрольной группе – 101 мм рт. ст. Сравнимы ли эти два показателя? Можно ли сопоставить их, чтобы рассчитать эффект лечения? Формально мы должны сказать, что предположение о положительности не выполняется, потому что для пациентов с давлением 100 мм рт. ст. в контрольной группе нет соответствия. С дру-
170 Глава 5 Поиск сопоставимых случаев с использованием меры склонности гой стороны, повышение давления со 100 до 101 мм рт. ст. не оказывает существенного влияния на вероятность выздоровления пациентов. А отсюда вытекает, что этих двух пациентов можно сопоставить и считать, что у них одинаковое артериальное давление. Одним из практических решений при работе с непрерывными переменными является группировка в интервалы, например артериального давления в интервалы [менее 80], [80, 85) и т. д. Фактически точно так же мы поступали с возрастом. При группировке требуется определить количество создаваемых интервалов: если интервалы слишком велики, то есть риск, что в один интервал попадут очень разные случаи, а если они слишком малы, то каждая группа будет содержать слишком мало наблюдений и, соответственно, иметь низкое статистическое качество. Несколько искажающих факторов Серьезная проблема возникает, когда имеется не один, а множество искажающих факторов (что почти всегда так). Представьте, что теперь у нас есть два искажающих фактора: возраст (как непрерывная переменная) и предоперационное артериальное давление. Мы все еще можем разбить их на интервалы: скажем, пять интервалов для возраста (A1, ..., A5) и пять для артериального давления (BP1, ..., BP5). Каждый пациент будет характеризоваться комбинацией этих двух показателей, так что в общей сложности у нас будет 5 × 5 = 25 ячеек (Ai, BPj), где i, j = 1, ..., 5. Когда учитывалось только артериальное давление, то при использовании пяти ячеек мы должны распределить всех пациентов по этим пяти ячейкам. Теперь, когда у нас есть две переменные, то же самое количество пациентов должно быть распределено по 25 ячейкам. Каждый раз, когда добавляется новая переменная, разбитая на пять категорий, количество ячеек умножается на пять и увеличивается экспоненциально. Итак, с увеличением числа искажающих переменных число пациентов в каждом интервале уменьшается, что потенциально приводит к слишком малому размеру выборки в каждом интервале и плохому статистическому качеству. Если вы решите уменьшить количество переменных, участвующих в анализе, чтобы избежать этой проблемы, то это очень плохая идея! В анализ должны включаться все искажающие переменные, и мы знаем по опыту, что отказ от учета релевантного искажающего фактора может сделать анализ некорректным (вспомните парадокс Симпсона). Кроме того, есть еще одна проблема. Искажающие факторы могут по-разному влиять на исход. Например, в данном сценарии разница в 10 мм рт. ст. в артериальном давлении (в диапазоне от 90 до 100 мм рт. ст.) может иметь меньшее влияние на результаты, чем разница в возрасте в пять лет (от 80 до 85 лет). Речь идет не только о разных масштабах этих переменных (мм рт. ст. и годы), но и о том, какой вклад они вносят в исход. Поэтому если возраст влияет на результаты больше, чем артериальное давление, то возрастные интервалы должны быть пропорционально короче интервалов артериального давления: помните, что в пределах каждого интервала не должно быть раз-
171 Знакомство с мерой склонности личий в результатах из-за возраста, различия должны зависеть только от лечения. Это делает две группы пациентов сопоставимыми в одном и том же интервале. К счастью, есть метод, который решает все эти проблемы и использует (как вы могли догадаться) меры склонности. 5.1.4. Как меры склонности можно использовать для расчета ATE Напомню: мера склонности – это вероятность, что пациент определенного типа получит лечение. Например, в примере на рис. 5.4 лечение получают четверо из пяти молодых людей, поэтому мера склонности для молодых людей составляет PS(молодой) = 4/5 = 80 %. Аналогично показатель склонности для пожилых людей составляет PS(пожилой) = 1/4 = 25 %. Группа, получающая лечение Контрольная группа PS = 4/5 PS = 1/4 Исход Исход Рис. 5.4. Пример расчета меры склонности. В группе молодых пациентов четверо из пяти получили лечение. Следовательно, вероятность получить лечение среди молодых или мера склонности для этой группы составляет 4/5. Тот же метод применяется для расчета меры склонности для пожилых пациентов Мера склонности предлагает решение проблем, обсуждавшихся выше. Проще говоря, вместо поиска пациентов с одинаковыми характеристиками достаточно сравнить пациентов с похожими мерами склонности. Это сравнение помогает проверить предположение о положительности, найти совпадения или рассчитать формулу корректировки. Сначала это может показаться странным, но взгляните на рис. 5.5, чтобы получить более ясное представление. Рассмотрим новую группу пациентов: детей. Некоторые из них попадают в группу получающих лечение, но врачи с осторожностью относятся к назначению нового метода лечения детям. Как вы наверняка помните, изначальной проблемой, не позволявшей нам сравнивать группы пациентов, получающих и не получающих лечение, было разное соотношение молодых и пожилых в каждой группе. Однако соотношение детей и пожилых (2 к 1) одинаково в обеих группах, поэтому они вполне сопоставимы! И в этом заключается идея мер склонности: мы можем группировать пациентов с разными характеристиками, но с одинаковой мерой склонности, и обращаться с ними как с одной группой.
172 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Группа, получающая лечение Контрольная группа Исход Исход Рис. 5.5. Для расчета ATE можно объединить две группы пациентов, если они имеют одинаковую меру склонности. Например, пожилые пациенты и дети имеют одинаковую вероят­ность выздороветь: другими словами, у них одинаковые меры склонности Например, мы можем сначала измерить ATE в группе молодых людей, рассчитав разницу в исходах между двумя группами: ATEмолодые = P(O = 1|молодые) – P(O = 0|молодые). Это несмещенная оценка ATE, потому что в этом примере присутствует только один искажающий фактор, и подгруппа молодых людей в группе, получавшей лечение, сопоставима с подгруппой молодых людей в контрольной группе. Мы можем повторить этот процесс, но не разделять детей и пожилых, а рассматривать их в одной подгруппе (потому что они сопоставимы) и вычислить следующее (дети+пожилые означает объединение двух групп): ATEдети+пожилые = P(O = 1|дети+пожилые) – P(O = 0|дети+пожилые). Мы можем объединить детей и пожилых, потому что соотношение между двумя категориями искажающего фактора (пожилые и дети для фактора возраста) одинаково как в группе получающих лечение, так и в контрольной группе: эти категории имеют одинаковую меру склонности, поэтому они сопоставимы. Другими словами, характеристики пациентов, имеющих определенную меру склонности, присутствуют в одинаковой пропорции и в группе получающих лечение, и в контрольной группе. Прочитайте это предложение дважды, потому что с этим правилом мы еще много раз столкнемся в этой главе. 5.2. Основные понятия мер склонности В предыдущем разделе мы познакомились с новым инструментом – мерой склонности. Обычно на практике меры склонности используются так, как показано на рис. 5.6. Первый шаг на рис. 5.6 – это изучение данных и описание основных характеристик выборки. Этот простой шаг помогает выявить подгруппы, которые могут быть отнесены только к одной из двух групп (получающих лечение или контрольной), чтобы их можно было отбросить. Затем с помощью методов машинного обучения вычисляются меры склонности. Далее на шаге 3 мы визуально оцениваем, выполняется ли предположение о положительности (можно ли для каждого
173 Знакомство с мерой склонности пациента найти соответствие в другой группе), что обычно приводит к одному из трех возможных результатов: „ мы можем продолжить анализ, потому что обе группы сопоставимы; „ мы не можем продолжить анализ, потому что группы сильно различаются; „ группы несопоставимы, но есть возможность применить анализ для определенной подгруппы в выборке. 1. Подготовка данных. 2. Вычисление меры склонности. 3. Оценка предположения о положительности. Рис. 5.6. Четыре шага типичного процесса использования мер склонности 4. Вычисление ATE, полученного из мер склонности. Если мы приходим к выводу, что можем продолжить анализ, то опираемся на уже рассчитанные меры склонности для вычисления ATE. Прежде чем перейти к использованию мер склонности, нам нужно очертить некоторые основы, указать ситуации, с которыми мы работаем, и перечислить некоторые проблемы, с которыми мы можем столкнуться. 5.2.1. С какими случаями мы работаем? Начнем с введения обозначений, используемых в остальной части главы, и описания случаев, когда можно использовать меры склонности. В частности, мы рассмотрим ситуации, часто возникающие на практике, когда имеется много искажающих факторов. Характеристики выборки, описываемые этими факторами, разнообразны, что может стать проблемой при оценке предположения о положительности. На протяжении всей главы мы будем предполагать, что данные, предназначенные для анализа, следуют ориентированному ациклическому графу (directed acyclic graph, DAG), как на рис. 5.7, и включают следующие переменные: „ переменная лечения (T) имеет два возможных значения: лечился / не лечился – или два разных метода лечения. В этой главе мы будем считать, что она может иметь одно из значений «лечился»/«не лечился», закодированных как 1 и 0 соответственно; „ переменная исхода (O) – это исход, который мы хотим проанализировать, например выздоровление. Если не указано иное, то мы будем считать, что O тоже является бинарной. Однако методы меры склонности можно использовать и с непрерывными переменными (об этом будет рассказано в подходящее время); „ вектор искажающих факторов (C) включает все искажающие факторы (обычно возраст, пол, место жительства и т. д.).
174 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Из главы 2 мы знаем, что всякий раз, когда задача описывается графом, таким как на рис. 5.7, ATE можно рассчитать с помощью формулы корректировки. Например, рассмотрим хирургическое отделеT O ние в больнице, где начали использовать Рис. 5.7. Основная диаграмновый многообещающий хирургический ма для этого раздела. C обоприем. Хирурги заметили, что операции, значает вектор искажающих выполненные с использованием этого факторов (Confounders), нового приема, чаще приводят к благопоT обозначает лечение (Treatлучному исходу. Чтобы точно оценить, наment), а O – исход (Outcome) сколько значим этот эффект, наилучшим подходом было бы проведение рандомизированного контролируемого исследования (randomized controlled trial, RCT). В этом исследовании пациентам должны случайным образом назначаться операции с применением и без применения нового приема. Также предположим, что хирурги интересуются не только эффективностью нового приема, но и эффективностью других приемов, которые они использовали. В этом случае им нужно будет провести серию RCT, по одному для каждого приема, чтобы систематически оценить эффективность каждого из них. Рандомизированные контролируемые испытания могут оказаться дорогостоящими с точки зрения прямых затрат (потому что новые методы лечения могут быть более дорогими) или потребовать много времени, а также альтернативных издержек. Если новый прием окажется неэффективным, то пациентам, которые получили его во время испытания, возможно, было бы лучше оказать стандартную помощь. Поэтому хирургам необходимо тщательно все взвесить и расставить приоритеты в проведении экспериментов, сосредоточившись на пациентах с более высокой вероятностью успеха. Чтобы принимать эти решения более стратегически, хирурги могут использовать методы причинно-следственного анализа для оценки причинного эффекта каждого метода лечения на основе исторических данных. Вычисляя ATE для каждого приема, они могут определить, какие из них наиболее перспективны. Потом они могут приступить к исследованию метода с более высоким расчетным ATE, тем самым оптимизировав свои ресурсы и увеличив вероятность благоприятного исхода. Чтобы рассчитать ATE для определенной методики лечения с использованием наблюдаемых данных, крайне важно учитывать искажающие факторы – переменные, влияющие как на решение о выборе метода лечения, так и на результат. Поскольку данные получены не в ходе контролируемого эксперимента, существует риск смещения из-за этих искажающих факторов. Первый шаг – выявить потенциальные искажающие факторы. Мы можем начать с собеседования с врачами, принимавшими решения о выборе метода лечения, и спросить каждого, какие факторы C
Знакомство с мерой склонности 175 они учитывали, выбирая конкретную методику для пациента. В совокупности факторы, упомянутые всеми врачами, образуют предварительный набор потенциальных искажающих факторов. Далее мы должны оценить этот список и определить, какие факторы действительно являются искажающими факторами. Чтобы переменная считалась искажающим фактором, она должна влиять не только на решение о назначении лечения, но и на результат лечения. Если нет уверенности, что конкретная переменная влияет на результат, ее можно смело исключить из списка. Но если есть какие-либо сомнения относительно влияния переменной на результат, то обычно безопаснее включить ее, чтобы избежать смещения. Обычными примерами искажающих факторов в этом контексте являются возраст, пол, больница, где проводилось лечение, радиологические данные и история предыдущих заболеваний или операций у пациента. Тщательно выбирая и корректируя эти искажающие факторы, можно точнее оценить ATE и, соответственно, истинную эффективность каждой методики лечения. Сначала подумай, потом читай Представьте себе, что врачи хотят узнать эффект от хирургического вмешательства по сравнению с его отсутствием. Какие искажающие факторы могут присутствовать в этом случае? Подсказка: подумайте, кто участвует в принятии решения о проведении операции пациенту и какие факторы они учитывают. Расчет эффекта операции может показаться похожим на расчет эффекта конкретного лечения, однако с точки зрения потенциальных факторов, влияющих на результат, между ними огромная разница. Мы можем иметь хорошее представление об искажающих факторах, влияющих на выбор метода лечения, получив его от врачей, принимающих решение. Хирургическое вмешательство – совсем другое дело, потому что решение обычно согласовывается между врачом и пациентом! В этом случае, чтобы перечислить все возможные факторы, влияющие на результат, в дополнение к опросу врачей мы должны спросить каждого пациента, что заставило его решиться на операцию. Пациенты могут привести рациональные причины, но мы должны допустить, что существуют также иррациональные причины, которые трудно объяснить или измерить (или поместить в таблицу в виде числа). В нашем первом примере, где врачи – единственные, кто решает, использовать ли новую методику, мы все еще можем упустить некоторые искажающие факторы: возможно, у врача есть подсознательные предубеждения или он принял решение на основе интуиции, которую нельзя явно представить в базе данных. Но набор потенциально упущенных искажающих факторов все еще намного меньше, чем набор, используемый для решения о проведении операции и включающий все искажающие факторы со стороны пациента.
176 Глава 5 Поиск сопоставимых случаев с использованием меры склонности В оставшейся части главы мы сосредоточимся на расчете ATE конкретной методики лечения. Предположим, что у нас есть все потенциальные искажающие факторы и мы имеем дело с процессом генерации данных, показанным на рис. 5.7. 5.2.2. Что такое мера склонности? Мера склонности конкретного пациента, вычисленная с учетом его характеристик, является вероятностью его выздоровления. Математически говоря, если c = (c1, ..., cp) является вектором со всеми значениями каждого искажающего фактора, то мера склонности (S) определяется как S(c) = P(T = 1|C = c). Условная вероятность P(T =1|C = c) является функцией c: для каждого значения c мы вычисляем вероятность выздоровления для всех пациентов с признаками c, поэтому результирующее значение P(T =1|C = c) различно для каждого c. Почему можно сравнивать группы только на основе их мер склонности? Основная идея, которая позволяет рассчитывать ATE с использованием мер склонности, заключается, как мы видели в предыдущем разделе, в следующем: соотношение двух различных категорий искажающего фактора (пожилые люди или дети в предыдущем примере) одинаково как в группе, получающей лечение, так и в контрольной группе, поскольку эти категории имеют одинаковую оценку склонности, что делает эти две категории сопоставимыми. Иначе говоря, если две разные категории имеют одинаковую меру склонности, то при оценке ATE их можно рассматривать как одну группу. Пример из предыдущего раздела должен помочь понять идею меры склонности. Желающие могут найти математическое доказательство в приложении C. Эта идея была формализована в 1983 году Полом Р. Розенбаумом (Paul R. Rosenbaum) и Дональдом Б. Рубином (Donald B. Rubin) (см. раздел 5.5) в статье «The Central Role of the Propensity Score in Observational Studies for Causal Effects», и с тех пор меры склонности пользуются популярностью. 5.2.3. Предположение о положительности – это... предположение Предположение о положительности не проверяет ничего в самих данных. Иначе, обнаружив большое количество пациентов, не имеющих точных соответствий в противоположной группе (см. пример в разделе 5.1.3), мы не должны были бы рассчитывать ATE. Однако мы понимаем, что даже в отсутствие точных совпадений мы можем считать пациентов соответствующими, если они имеют близкие характеристики. Формально если
Оценки меры склонности на практике 177 предположение о положительности в конечном счете выполняется, то, получив выборку очень большого размера, мы будем уверены, что для каждого пациента найдется соответствие в противоположной группе. Распределение вероятностей в конечном счете – это процесс генерации данных, как описано в главе 2. Предположение о положительности формально заявлено для этого распределения утверждением, что для всех c 0 < P0(T = t |C = c) < 1. Поскольку у нас есть доступ только к данным, но не к ограничивающему распределению, то предположение о положительности – это всего лишь предположение, а не что-то, что можно формально проверить с помощью данных. Но, как мы видели выше в этой главе, данные могут подтвердить такое предположение. 5.3. Оценки меры склонности на практике В этом разделе мы обсудим каждый из шагов, которые видели выше и которые для удобства повторены на рис. 5.8. 1. Подготовка данных. 2. Вычисление меры склонности. 3. Оценка предположения о положительности. 4. Вычисление ATE, полученного из мер склонности. Рис. 5.8. Четыре шага типичного процесса использования мер склонности 5.3.1. Подготовка данных Обычно мы проводим предварительный анализ данных, чтобы исключить очевидные различия между группами: например, если контрольная группа содержит только пожилых пациентов, а группа пациентов, получающих лечение, содержит как молодых, так и пожилых, подобно тому, как было показано на рис. 5.3. В этой ситуации мы, что очевидно, не можем продолжить анализ. Однако есть неплохое решение: проанализировать только пожилых пациентов. Какие бы результаты мы ни получили из этого анализа, они будут применимы только к пожилым, и их нельзя будет экстраполировать на молодых людей. Этот выбор может изменить цель анализа, поэтому, решив продолжить анализ с подгруппой пациентов, не забудьте сообщить об этом всем, кого следует держать в курсе.
178 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Рекомендуется визуально (или статистическими средствами) проверить каждый искажающий фактор, чтобы найти четкие доказательства существования подгрупп, не имеющих соответствия в противоположной группе. Мы должны выделить подгруппы для каждой переменной и для дальнейшего изучения оставить только те подгруппы, которые имеют пересечение с подгруппами в другой группе по всем искажающим факторам. 5.3.2. Вычисление меры склонности В реальных сценариях мы обычно имеем дело с несколькими искажающими факторами. Как объясняется в разделе «Несколько искажающих факторов», вычисление меры склонности может быть сопряжено с трудностями. К счастью, как показано в главе 4, для оценки условных вероятностей, в частности оценки склонности P(O = 1|C = c), можно использовать модели машинного обучения. Поскольку исход является бинарной величиной (выздоровеет ли пациент: T = 1), можно использовать любой классификатор. Для вычисления меры склонности данные должны быть организованы, как показано в табл. 5.1: каждая строка содержит информацию об отдельном пациенте, и мы можем узнать, получал ли он лечение (значение 0 или 1 в столбце T), а также значение каждого искажающего фактора (остальные p столбцов C1, ..., Cp). Используйте уравнения 5x – 8x для букв C в этой таблице, которые имеют верхние и нижние индексы. Таблица 5.1. Список пациентов с признаком назначения лечения (переменная T) и значениями искажающих факторов (C1, ..., Cp) T C1 ... Cp t c ... cp1 1 1 1 ... ... ... ... t c ... cpn n n 1 Из доступных моделей для прогнозирования переменной воздействия (метода лечения) с учетом искажающих факторов часто (особенно в медицине) используется модель логистической регрессии. Утверждать, что логистическая регрессия – это модель машинного обучения, может быть не совсем правильно, поскольку статистики использовали ее еще до изобретения машинного обучения, и все же логистическую регрессию можно рассматривать как одну из моделей в наборе инструментов машинного обучения. Чтобы добиться высокой точности прогнозирования, мы обычно пробуем много альтернативных моделей машинного обучения, пытаясь найти ту, которая лучше всего подходит для конкретного набора данных. Помимо логистической регрессии, также часто используются случайные леса и бустинг (и глубокое обучение), поэтому их тоже можно попробовать. Вы можете использовать любую прогностическую модель, которую посчитаете подходящей; вопрос лишь в том,
Оценки меры склонности на практике 179 как выбрать лучшую из них. Для этого можно использовать обычную перекрестную проверку и выбрать ту модель, которая имеет более высокую прогностическую способность на контрольной выборке. Классификаторы машинного обучения могут выдавать результаты двух типов: прогноз самой метки (в данном случае 0 или 1) или прогноз вероятности метки. В случае с мерами склонности нас интересует вероятность, что оценка будет равна 1 (по определению). В этом случае желательно оценивать модели, используя площадь под кривой (area under the curve, AUC) вместо точности. Если эта концепция для вас нова, то я рекомендую прочитать статью «An introduction to ROC analysis» Тома Фосетта (Tom Fawcett), доступную по адресу https://mng.bz/754m. Как объясняется в разделе 7 этой статьи, AUC классификатора эквивалентна вероятности, что классификатор оценит случайно выбранный положительный экземпляр выше, чем случайно выбранный отрицательный экземпляр. Помимо того что меру склонности можно вычислить с помощью стандартных методов машинного обучения, есть еще некоторые тонкости, которые нужно учесть. Давайте рассмотрим их. Чем больше AUC, тем лучше? Как правило, в машинном обучении чем выше точность или AUC модели, тем она полезнее, потому что чем выше точность, тем лучше модель предсказывает будущие события. Сначала подумай, потом читай Но когда вычисляется мера склонности, то чем меньше AUC, тем лучше. Почему? Представьте на мгновение, что у нас есть невероятная модель с точностью 1. Это означает, что на основе характеристик пациентов, способных повлиять на исход, мы сможем предсказать, какие из них получат лечение, а какие нет. Если это так, то предположение о положительности не выполняется, поскольку для всех c P(T = 1|C = c) либо 1, либо 0. Представим противоположную ситуацию, когда модель имеет AUC = 0,5 (минимальная AUC, которую модель может иметь с точки зрения качества). Это означает, что модель не сможет найти никакой связи между искажающими факторами и назначением лечения: то есть переменные T и C независимы. Таким образом, по определению независимости Р(Т = 1|С = с) = Р(Т = 1). Мы можем с уверенностью предположить, что на данном этапе наше исследование включает пациентов, получивших и не получивших лечение (в противном случае бессмысленно говорить о причинно-следственной связи), что математически записывается как P(T = 1) > 0.
180 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Таким образом, предположение о положительности выполняется автоматически. Утверждение, что искажающие факторы C и метод лечения T независимы, соответствует ситуации проведения RCT, что весьма желательно с точки зрения причинно-следственного анализа. Означает ли это, что при обучении машинной модели мы не должны стремиться к максимальному значению AUC? Конечно, нет. Мы должны попытаться получить максимально возможную точность, но чем ниже точность, тем ближе мы будем к RCT и тем больше нам повезет. Не включайте переменные в модель только потому, что они делают модель точнее В машинном обучении принято выбирать переменные, повышающие точность модели. Но в причинно-следственном анализе выбор переменных должен основываться на знании предметной области, а не только на точности модели. Это сложная тема, и мы поговорим о ней подробнее в главе 7, когда познакомимся с критерием обходного пути для объяснения выбора переменных, которые следует корректировать. А пока просто имейте в виду, что неправильный выбор переменных может серьезно сместить вашу оценку ATE или увеличить дисперсию результатов, и вы можете даже не осознавать этого. Будьте осторожны: эффект переобучения может возникнуть даже при использовании перекрестной проверки! Мы уже говорили об этом: даже при разделении выборки на обучающие и контрольные данные (как это обычно делается в машинном обучении) все равно может возникнуть эффект переобучения. Если это кажется вам странным, то, скорее всего, это связано с тем, что вы привыкли обучать модели на одном историческом наборе данных (используя правильное разделение на обучающую и контрольную выборки), а потом использовать эти модели (например, в промышленной среде) с новыми данными, которые модель еще не видела. Например, представьте, что вы создаете модель для автоматического чтения номерных знаков автомобилей на въезде и выезде с парковки. Вы обучите модель на наборе данных, содержащем изображения регист­ рационных номеров автомобилей, но после установки в автоматику на парковке ваша модель будет работать с изображениями номеров, отличных от тех, что были в историческом наборе данных. В этом смысле меры склонности отличаются, потому что у нас есть историческая база данных с информацией о пациентах и нам нужно вычислить меры склонности этих конкретных пациентов. Как только у нас будет создана модель машинного обучения, она будет использоваться для составления прогнозов (оценок мер склонности) для этой исторической базы данных. Мы говорили об этом явлении в главе 4, и одним из его решений для его устранения является перекрестная подгонка (или перекрестное обучение). Для этого нужно:
Оценки меры склонности на практике 181 Разделить данные на два (для простоты объяснения) набора данных D1, D2. 2 Обучить машинную модель на каждом наборе данных (также выполняя перекрестную проверку на каждом из них) и получить две прогностические модели f1, f2. 3 Рассчитать меры склонности для каждого набора данных, используя противоположную прогностическую функцию: т. е. для пациентов с данными в D1 использовать прогностическую модель f2, а для пациентов с данными в D2 – прогностическую модель, обученную на наборе данных D1. Таким образом, мы не будем делать прогнозы на тех же данных, которые использовались для обучения модели. 1 5.3.3. Оценка предположения о положительности Одно из главных преимуществ мер склонности – они дают возможность быстро проверить, выполняется ли предположение о положительности. Предположим, что у каждого пациента есть описание c = (c1, ..., cp) в терминах набора искажающих факторов (например, если единственным искажающим фактором является возраст, у пациента может быть описание c = (пожилой)). Предположение о положительности говорит, что пациенты этого конкретного типа присутствуют, так и в контрольной группе, что можно математически записать как выбор (обусловливание) всех этих пожилых пациентов, т. е. мы сможем найти их в обеих группах: 0 < P(T = 1|пожилой) = 1/4 < 1. Предположение о положительности, записанное в общей математической нотации, гласит, что для каждого c 0 < P(T = 1|c) < 1. Благодаря мерам склонности, как уже говорилось выше, нет необходимости проверять каждую из возможных комбинаций значений c. Мы можем сгруппировать пациентов с одинаковой мерой склонности, как делали это, когда объединяли детей и пожилых (потому что у них была одинаковая оценка склонности 1/4). Группировка пациентов по одинаковой мере склонности, а не по простому описанию пациента более удобна, поскольку каждая мера склонности группирует больше образцов. Почему можно группировать по мерам склонности: математическое рассуждение Мы предложили несколько интуитивных объяснений, почему можно группировать пациентов по мере склонности. Однако хотелось бы получить математические выкладки, подкрепляющие это утверждение. Прежде чем углубляться в детали математических рассуждений, попробуйте ответить на следующий вопрос.
182 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Сначала подумай, потом читай Каково соотношение между P(T = 1|c) и P(T = 1|s), учитывая, что пациент имеет характеристики c и меру склонности s = S(c)? Трудность этого вопроса связана с математической записью, потому что у нас уже есть ответ. Они одинаковы! P(T = 1|c) = P(T = 1|s). Причина в следующем. Выберите всех пациентов с характеристиками c. Затем вычислите их меру склонности s = S(c). С другой стороны, выберите всех пациентов с такими же оценками склонности, как у выбранного пациента с C = c. Это та же операция, что и обусловливание s. Чтобы ответить на вопрос во врезке «Сначала подумай, потом читай», нужно знать, чему равно P(T = 1|s), что немного похоже на ответ на популярную испанскую фразу: «Какого цвета белая лошадь Сантьяго?» Белая, конечно! Если вы можете ответить на эту загадку, то вы готовы ответить на следующую: какие шансы выздороветь имеет пациент, который имеет шансы s выздороветь? Это предложение является точным определением математического выражения P(T =1|s), и ответ, конечно же, s! Итак, у нас есть s = Р(Т = 1|с) = Р(Т = 1|s). Эта формула подтверждает тот факт, что мы можем поместить всех пациентов с одинаковой мерой склонности в одну подгруппу, потому что проверка 0 < Р(Т = 1|с) < 1 для всех векторных характеристик c совпадает с проверкой 0 < P(T = 1|s) < 1 для всех значений s. Визуальная оценка Существует масса литературы, где описываются инструменты для оценки предположения о положительности. Но один из наиболее простых способов – это визуальный осмотр распределения мер склонности обеих групп. Сказать, что для оценки склонности s у нас есть 0 < P(T =1|s) < 1, – все равно что сказать, что для этого конкретного значения s есть подгруппы в обеих группах. Идея состоит в том, чтобы построить график зависимости значений s от количества пациентов, соответствующих этим значениям. И для этого используются графики плотности. Рассмотрим некоторые типичные ситуации. Графики, что приводятся далее, были созданы на основе синтетических данных, чтобы показать главные моменты анализа. Взгляните на рис. 5.9. На оси x каждая вертикальная линия представляет значение меры склонности пациента. Пациенты в группе, получающей лечение, обозначены пунктирной линией, а пациенты в контроль-
183 Оценки меры склонности на практике Плотность ной группе – сплошной. На графике можно видеть распределение плотности обеих групп – группы строго разделены. В контрольной группе нет пациентов с мерой склонности выше примерно 0,55, тогда как в группе, получающей лечение, нет пациентов с мерой склонности ниже 0,5. Опорный диапазон (support) – по определению, диапазон значений распределения – для группы, получающей лечение, составляет [0,55, 1], а опорный диапазон для контрольной группы составляет [0, 0,5]: перекрытие отсутствует. В этом случае ничего не нужно делать. Назначение лечения является детерминированным (мы можем со 100%-ной точностью сказать, кто находится в каждой группе), что противоречит тому, что нам нужно, – полностью случайное назначение, как в RCT. Это наихудший сценарий, и мы должны признать, что не можем продолжать вычислять ATE, потому что предположение о положительности не выполняется ни при каком значении меры склонности. В идеале хотелось бы найти сценарий, показанный на рис. 5.10, где опорный диапазон обоих распределений составляет приблизительно весь интервал [0, 1]. В этом случае имеет место полное перекрытие и для каждой меры склонности s можно найти пациентов в обеих группах с очень похожими мерами склонности. В этом случае можно безопасно продолжать вычислять ATE. Группа Контрольная Получающая лечение Мера склонности Рис. 5.9. Распределение меры склонности в двух группах не имеет перекрытия, что указывает на отсутствие совпадений между группами. Следовательно, в этом случае нельзя рассчитать ATE
Глава 5 Поиск сопоставимых случаев с использованием меры склонности Плотность 184 Группа Контрольная Получающая лечение Мера склонности Рис. 5.10. Полное перекрытие опорных диапазонов распределений. Это идеальный сценарий для расчета ATE На практике мы можем оказаться в промежуточной ситуации, когда перекрытие наблюдается для подмножества пациентов, как на рис. 5.11. В этом случае перекрытие наблюдается в интервале примерно [0,25, 0,75] (для большей надежности мы можем сократить этот интервал). Для пациентов с мерой склонности в этом интервале можно найти совпадение в противоположной группе. Врач (или тот, кто выбирал метод лечения) определенно сомневался, к какой группе отнести каждого из этих пациентов. А вот в отношении пациентов за пределами области перекрытия таких сомнений не было, и он уверенно относил их к той или иной группе (у них нет совпадения в противоположной группе). В этом случае у нас есть два варианта: остановить анализ, заявив, что мы не уверены в том, что предположение о положительности выполняется, или продолжить анализ только с подмножеством пациентов, у которых есть совпадение: то есть с теми, чья мера склонности лежит в интервале [0,25, 0,75].
185 Плотность Оценки меры склонности на практике Группа Контрольная Получающая лечение Мера склонности Рис. 5.11. Частичное совпадение опорных диапазонов распределений. Мы можем рассчитать ATE только для пациентов в пределах общего опорного диапазона Второе решение удобно тем, что позволяет двигаться дальше, но за счет анализа только определенной подгруппы. Мы должны спросить себя, соответствует ли использование только этой подгруппы целям анализа, зная, что результаты нельзя экстраполировать на остальных пациентов, исключенных из исследования. На этот вопрос нет общего ответа, и его следует изучать в каждом конкретном случае. Чтобы принять это решение, полезно поближе изучить эту подгруппу: кто они? Есть ли какая-либо характеристика, которая хорошо их определяет? Можно попытаться объединить базовые описательные статистики и узнать у врачей, как принимались решения. К сожалению, не стоит надеяться получить четкую картину, характеризующую пациентов. Если вы решите продолжить анализ с участием пересекающейся подгруппы, не забудьте проинформировать об этом заинтересованные стороны. Последний пример на рис. 5.12 является частным случаем предыдущего. Полного перекрытия нет, но перекрывающаяся подгруппа четко определена: это группа, получающая лечение. Опорный диапазон распределения группы, получающей лечение, укладывается
186 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Плотность в интервал [0,6, 1], а опорный диапазон распределения контрольной группы – в интервал [0,3, 1]. Для каждого пациента в группе, получающей лечение, есть соответствие, поэтому мы можем рассчитать ATE для группы, получающей лечение. Это приводит нас к понятию среднего лечебного эффекта для получивших лечение (average treatment effect on the treated, ATT), что означает вычисление ATE только для подгруппы пациентов, получивших лечение. Как вариант можно определить средний лечебный эффект для контрольной группы (average treatment effect on the control, ATC). Группа Контрольная Получающая лечение Мера склонности Рис. 5.12. Перекрывающийся диапазон целиком включает группу получивших лечение. В этом случае мы можем рассчитать ATT АТТ и АТС ATT и ATC определяются независимо от мер склонности и соответствия. Они представлены здесь, потому что естественным образом возникают в этом контексте, но они являются вариациями ATE и часто рассчитываются в медицине. Конечно, в этом примере мы можем рассчитать только ATT, но не ATC, поскольку не для каждого пациента в контрольной группе есть соответствие.
187 Оценки меры склонности на практике 5.3.4. Вычисление ATE на основе мер склонности Теперь, когда мы вычислили меры склонности всех пациентов и подтвердили предположение о положительности, посмотрим, как повторно использовать уже вычисленную меру склонности для вычисления ATE. Мы знаем, что при работе с графом, как на рис. 5.7, ATE можно рассчитать с помощью формулы корректировки, представленной в главе 2. Итак, начнем с того, что посмотрим, как использовать меры склонности в формуле корректировки, затем обсудим две численные реализации и под конец познакомимся с еще одной связью между формулой корректировки и мерой склонности, называемой взвешиванием обратной вероятности. Меры склонности в формуле корректировки Мы много раз говорили, что можем вычислить формулу корректировки на основе ранее вычисленных мер склонности. Оказывается, как докажем это через секунду, формулу корректировки можно переписать с использованием мер склонности: . Левая часть выражения – это формула корректировки, описанная в главе 2, а правая часть – это та же формула, но в ней вектор c искажающих факторов заменен значениями меры склонности, как если бы эти меры действовали подобно единственному искажающему фактору. И она тоже является несмещенной оценкой причинно-следственного влияния переменной лечения, если не было упущено никаких соответствующих искажающих факторов, как предполагается на рис. 5.7. Математическое обоснование роли мер склонности в формуле корректировки Это математическое доказательство не требуется для понимания остальной части книги. Однако если вам любопытно, я рекомендую попробовать осмыслить его. Доказательство короткое и достаточно доступное, чтобы его можно было включить в эту книгу. Прежде чем углубляться в детали обоснования, необходимо принять два факта. „ Для каждого описания пациента c и его меры склонности s = s(c) выполняется равенство P(c|t,s) = P(c|s). Мы уже говорили об этой связи в разделе 5.1.4, а доказательство вы можете найти в приложении C «Техническая лемма о мерах склонности». Оно гласит, что если сгруппировать пациентов по одной и той же мере склонности, то распределение каждого искажающего фактора (характеристики) будет одинаковым в экспериментальной и контрольной группах. Для каждого метода лечения t, а также для каждого описания „ пациента c и его меры склонности s выполняется равенство
188 Глава 5 Поиск сопоставимых случаев с использованием меры склонности P(O = 1|t, c, s) = P(O = 1|t, c). Эта формула говорит, что можно удалить s из части обусловливания. Причина в том, что обусловливание по c более ограничительно, чем обусловливание по s. То есть выбор пациентов с характеристиками c и соответствующими им мерами склонности s = s(c) является избыточным. Достаточно сказать, что мы обусловливаем пациентов по характеристикам c. Теперь можно переходить к математическому обоснованию. Начнем с формулы корректировки и применим определение условной вероятности, исследуя различные значения s: . Применим уже обсуждавшееся P(O = 1|t, c, s), получив соотношение P(O = 1|t,c) = . Изменим порядок суммирования и применим тот факт, что P(c|t,s) = P(c|s): . Суммируя по c, мы можем убрать c из формулы и получить . В итоге , как изначально утверждалось. Всякий раз, когда выходная переменная O принимает много значений, мы можем последовать рассуждениям, изложенным в главе 2, и получить соотношение
189 Оценки меры склонности на практике . Ковариационная корректировка Формула равенства говорит нам, что мы можем применить формулу корректировки, но должны использовать меры склонности вместо искажающих факторов. На практике, вычислив меры склонности, мы можем добавить новый столбец в нашу базу данных, как показано в табл. 5.2. Таблица 5.2. Доступные данные с вычисленными мерами склонности O T C1 ... Cp O1 t 1 1 1 c ... c1p ... ... ... ... ... On t c ... cpn n n 1 На самом деле нам нужны только столбцы O, T и S, как в табл. 5.3, чтобы применить численные методы, описанные в главе 4, такие как T-learner, где единственным искажающим фактором является переменная S. Напомним, что при использовании моделей машинного обучения есть риск появления эффекта переобучения (как объяснялось в разделе 5.3.4), поэтому также следует использовать перекрестную подгонку. Таблица 5.3. Необходимые данные с мерами склонности, вычисленными для применения формулы корректировки O T S O1 1 t s1 ... ... ... On t sn n Сопоставление Теперь посмотрим, как сопоставление, представленное в начале этой главы, можно реализовать численно. Существует много вариантов реализации сопоставления. Здесь мы рассмотрим только самый простой, потому что описание всех вариантов выходит за рамки этой книги. Мы начнем с простых случаев и в итоге увидим, что сопоставление – это не что иное, как частный случай формулы корректировки.
190 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Представьте, что у нас одинаковое количество пациентов, получивших (nt) и не получивших (nc) лечение. Тогда для каждого пациента, получившего лечение, можно найти соответствие в контрольной группе. Вспомним, что для поиска соответствия достаточно ограничиться сравнением мер склонности пациентов и не сравнивать их полные описания. Мы можем начать с одного пациента в экспериментальной группе, рассчитать его меру склонности и найти пациента в контрольной группе с наиболее близкой мерой склонности. Мы можем повторить процесс, пропуская уже сопоставленных пациентов, пока не закончатся все пациенты. То есть если для пациента i из экспериментальной группы выбрать соответствующего пациента m(i) из контрольной группы, то мы можем предположить, что случилось бы с этим пациентом (или любым другим с похожими характеристиками), если бы он находился в экспериментальной группе, вычислив лечебный эффект как разницу в их результатах: di = Oi – Om(i). Затем мы можем рассчитать ATE, усредняя различия между всеми пациентами: . Вы можете сказать, что на практике у нас редко бывает одинаковое количество пациентов в экспериментальной и контрольной группах, и будете правы. Нам нужен способ вычисления ATE для случая, когда группы имеют разные размеры. На самом деле тот же алгоритм можно применить и в случае с группами разного размера. Если пациентов в экспериментальной группе меньше, чем в контрольной, nt < nc, то для каждого пациента в экспериментальной группе всегда можно найти соответствующего пациента в контрольной группе, не выбирая повторно уже выбранных пациентов из контрольной группы. С другой стороны, если пациентов в экспериментальной группе больше, чем в контрольной, nt > nc, мы должны повторно выбирать пациентов из контрольной группы при сопоставлении, иначе некоторые пациенты из экспериментальной группы не будут иметь соответствий. Обратите внимание, что с помощью этой процедуры вычисляется не ATE, а ATT. Чтобы увидеть это, представьте ситуацию, когда пациентов в экспериментальной группе меньше, чем в контрольной, nt < nc, потому что этот вариант проще понять. Мы только оцениваем разницу между пациентами, получившими и не получившими лечение, для пациентов из экспериментальной группы. А это как раз и есть определение ATT! Обратите внимание, что в контрольной группе есть пациенты, для которых лечебный эффект не вычисляется.
Оценки меры склонности на практике 191 Напоминание об определении ATT Возможно, вам будет полезно еще раз взглянуть на рис. 5.12 и прочитать пояснения, чтобы увидеть, как они вписываются в общую картину с только что описанным алгоритмом сопоставления. Алгоритм сопоставления, представленный в этом разделе, имеет еще одну проблему. Он предполагает поиск уникального соответствия для каждого пациента. Но из-за удачи или из-за большой дисперсии результатов некоторые соответствия могут получаться экстремальными. Другими словами, при наличии пациента, получившего лечение, оценка лечебного эффекта на основе выборки с единственным пациентом (пока что мы выбираем только одного пациента из контрольной группы) выглядит не вызывающей доверия со статистической точки зрения. Если у вас есть некоторые знания о машинном обучении, то поиск соответствий на основе ковариатов может показаться вам знакомым. Это не что иное, как алгоритм k-ближайших соседей (kNN)! Мы объясним, как объединить kNN и формулу корректировки для вычисления ATE. Давайте разделим набор данных в табл. 5.3 на экспериментальный и контрольный наборы – Dt (табл. 5.4) и Dc (табл. 5.5) соответственно. Таблица 5.4. Экспериментальные данные (данные о пациентах, получивших лечение), которые следует использовать с kNN, Dt–n_t – количество пациентов в экспериментальной группе O S O1 s1 ... ... On_t sn_t Таблица 5.5. Контрольные данные (данные о пациентах, не получивших лечение) для использования с kNN, Dc–n_c – количество пациентов в контрольной группе O S O1 s1 ... ... On_c sn_c Используя kNN, для наборов данных можно создать прогностические модели исхода O – pt и pc соответственно. Обратите внимание, что единственной характеристикой является мера склонности каждого пациента, а исходом – переменная O. Количество пациентов для сопоставления в алгоритме kNN в точности равно k. С точки зрения обучения с учителем k – это гиперпараметр, который следует выбирать с по-
192 Глава 5 Поиск сопоставимых случаев с использованием меры склонности мощью перекрестной проверки. Таким способом можно решить проб­ лему выбора правильного количества пациентов для сопоставления! Рассмотрим пациента i, получившего лечение, с мерой склонности si. Эффект лечения можно рассчитать с помощью модели kNN, обучен­ной на контрольной группе предсказывать ожидаемый результат для пациента с показателем склонности si: di = Oi – pc(si). То же можно сделать и с контрольной группой. Для каждого пациента j из контрольной группы мы можем рассчитать эффект лечения с помощью модели kNN, обученной на экспериментальной группе: di = pt(sj) – Oj. Теперь можно усреднить n лечебных эффектов и получить , где i относится к пациентам из экспериментальной группы, а j – из контрольной. Формула соответствия – это лишь аппроксимация формулы корректировки Формула, которую мы только что видели: , – является лишь аппроксимацией формулы корректировки с учетом мер склонности: . Давайте кратко посмотрим, почему это так. Обратите внимание, что в первой формуле суммирование выполняется по пациентам, тогда как во второй – по разным значениям мер склонности. Предположим, что l пациентов имеют одинаковое значение s = si. Некоторые из них, lt, находятся в экспериментальной группе лечения, а другие, lc, – в контрольной (где lt + lc = l). Нам нужно увидеть, что для этого конкретного значения s .
193 Оценки меры склонности на практике Если у нас есть l пациентов с мерой склонности s, то P(s) = l/n. Подставляя эту информацию в предыдущее уравнение и учитывая, что для этих пациентов si = sj = s, мы можем сократить одинаковые члены и получить . Давайте теперь сосредоточимся на члене P(O = 1|T = 1,s), поскольку член P(O = 1|T =1,s) обрабатывается точно так же. Если мы видим, что , тогда доказательство можно считать законченным. С одной стороны, pi(s) ≈ P(O = 1|T = 1,s), поскольку pt(s) является прогностической моделью исхода O. Но для тех пациентов i в экспериментальной группе по определению, потому что P(O = 1|T = 1,s) – это просто среднее значение (математическое ожидание) исхода O для пациентов из экспериментальной группы с мерой склонности s. Соответственно, . Взвешивание обратной вероятности Альтернативная формула связывает формулу корректировки и меру склонности. Начиная с формулы корректировки и умножая и деля на одну и ту же величину P(T = t|c): . Заметив, что P(O = 1|t,c)P(t|c)P(c) = P(O = 1, t, c) – это просто совместное распределение, мы получаем то, что называется формулой взвешивания обратной вероятности: .
194 Глава 5 Поиск сопоставимых случаев с использованием меры склонности В случае когда есть два варианта лечения t = 0,1, эмпирическая версия (с использованием данных) этой формулы имеет вид , где I(ti = t) равно 1 для пациентов i, которым назначен метод лечения ti, равный t, и p(t|ci) должна вычисляться из данных. Фактически ATE = P(O =1|do(T = 1)) – P(O = 1|do(T = 0)) можно вычислить, используя предыдущую формулу и подставив t = 1 и t = 0: , где мы используем тот факт, что p(t = 0|c) = 1 – p(t = 1|c) = 1 – s(c), где s(c) – мера склонности, которую можно вычислить на основе данных. Знать о взвешивании обратной вероятности нужно, потому что эта формула может встретиться в литературе, но вообще применять ее не рекомендуется, если на то нет веской причины. Меры склонности присутствуют в формуле раздельно. Для некоторых пациентов мера склонности может быть очень маленькой, близкой к нулю. С точки зрения численных методов делить на величины, близкие к нулю, не рекомендуется, потому что небольшие ошибки в оценке могут привести к большим ошибкам в результате, из-за чего дисперсия оценки ATE может значительно возрасти. 5.4. Вычисление корректировки меры склонности: упражнение Теперь перейдем к практическому упражнению с реальными данными. Я объясню цель и необходимые шаги. В репозитории книги (www. manning.com/books/causal-inference-for-data-science или на GitHub https://mng.bz/o0AN) вы найдете начальный код как на R, так и на Python, с названием Exercise starter, поэтому вам не придется начинать с нуля. Там же вы найдете готовое решение. Обратите внимание, что это упражнение предназначено только для учебных целей, его не следует использовать для каких-либо медицинских заключений. Упражнение преследует несколько целей, и главная из них – вычислить ATE для конкретной проблемы с использованием мер склонности. В этом упражнении вы узнаете: „ как вычислить меры склонности с использованием моделей машинного обучения; „ важность перекрестной подгонки (перекрестного обучения) для предотвращения эффекта переобучения; „ как вычислить ATE с использованием ковариационной корректировки (см. раздел 5.3.4) и T-learner (см. главу 4).
Вычисление корректировки меры склонности: упражнение 195 Мы будем использовать набор данных Right Heart Catheterization (RHC) (https://hbiostat.org/data/repo/rhc), который можно использовать для изучения влияния RHC – инвазивного теста, позволяющего получить множество измерений, таких как артериальное давление и сердечный выброс (систолический объем крови), – на шансы выживания пациентов в критическом состоянии. Больше информации (и исследовательский анализ) можно найти по адресу https://github. com/opencasestudies/ocs-right-heart-catheterization. Переменная лечения – swang1 – принимает значение RHC при выполнении теста. Переменная исхода – death – указывает, выжил ли пациент. Файл rhc.csv с данными с сайта https://hbiostat.org/data/ (предоставлены кафедрой биостатистики Университета Вандербильта) и список доступных переменных можно найти по адресу https://hbiostat.org/data/repo/crhc. Перед началом упражнения необходимо составить список искажающих факторов. Репозиторий книги включает файл confounders.yml со списком переменных, которые следует считать искажающими факторами. На практике этот список переменных необходимо всесторонне обсудить с врачами-экспертами. В нашем случае переменные в файле confounders.yml были выбраны только ради учебных целей. 5.4.1. Шаги упражнения 1 2 3 4 5 Первая попытка оценить меру склонности. Обучите модель для оценки меры склонности (PS) с переменной лечения swang1. Переобучение. Используйте обученную модель для прогнозирования (вероятностей) на том же наборе данных и рассчитайте ее AUC. Убедитесь, что AUC относительно предсказанных вероятностей больше, чем AUC, полученная в результате перекрестной проверки. Оценка меры склонности с перекрестной подгонкой. Рассчитайте PS с помощью двухкратной перекрестной подгонки: разделите выборку на два набора данных одинакового размера D1 и D2. Обучите модель для PS с использованием D1 и выполните прогнозирование на наборе D2, и наоборот. Рассчитайте AUC с новой оценкой меры склонности. Визуальный осмотр. Постройте график плотности PS по группам лечения. Сравнимы ли две группы? ATE с T-learner и перекрестной подгонкой. Рассчитайте ATE с помощью T-learner и перекрестной подгонки, чтобы оценить влияние swang1 на смертность: „ разделите выборку на два набора данных одинакового размера D1 и D2; „ обучите две модели на наборе D : 1 – с swang1 = RHC, называется f1,R; 6 7 8 – с swang1 ≠ RHC, называется f1,N. Повторите процесс с набором D2 и обучите две модели. Рассчитайте на D2 предполагаемый вектор лечебного эффекта f1,R (x) – f1,N (x), где x варьируется для всех наблюдений в D2. Поменяйте ролями D1 и D2 и рассчитайте ATE.
196 Глава 5 Поиск сопоставимых случаев с использованием меры склонности Обучение модели предполагает использование перекрестной проверки (разделение на обучающую и контрольную выборки) по подмножеству гиперпараметров и выбор модели с наибольшей AUC. Самый простой метод – поиск по сетке. В примерах кода вы найдете функции на R и Python, которые реализуют поиск по сетке (запускают перекрестную проверку по набору гиперпараметров) и используют пакеты caret и tune на R и scikit-learn на Python. Из доступных моделей машинного обучения мы предлагаем использовать бустинг – довольно популярную и эффективную модель. Для выполнения этого упражнения не требуется знать, как работает бустинг. Это просто еще один метод машинного обучения, доступный в вышеупомянутых пакетах. Файлы с начальным кодом упражнения в репозитории книги вычисляют меры склонности с использованием логистической регрессии. Ее можно использовать в качестве базовой для сравнения с моделью бустинга, предложенной в упражнении. Решение Реализацию решения вы найдете в репозитории книги. 5.5. Для дальнейшего чтения Меры склонности были предложены Полом Р. Розенбаумом (Paul R. Rosenbaum) и Дональдом Б. Рубином (Donald B. Rubin) в статье «The Central Role of the Propensity Score in Observational Studies for Causal Effects» (1983). Существует довольно много литературы о мерах склонности, особенно в медицине. Здесь мы только дали введение в тему. Желающим больше узнать о мерах склонности мы рекомендуем прочитать специа­ лизированные статьи по теме. От себя могу посоветовать вводную статью «An Introduction to Propensity Score Methods for Reducing the Effects of Confounding in Observational Studies» Питера К. Остина (Peter C. Austin), где также приводится много интересных ссылок, и книгу «Propensity Score Analysis» Шэньяна Го (Shenyang Guo) и Марка В. Фрейзера (Mark W. Fraser) (SAGE Publications, 2009). 5.6. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Почему на практике сопоставление пациентов из разных групп на основе их ковариатов сложнее, чем кажется? Ответ в разделе 5.1.3.
Итоги 2 3 4 5 6 7 197 Какие переменные следует учитывать при вычислении мер склонности? Ответ во врезке «Какие переменные следует сопоставлять?». Почему для оценки мер склонности может потребоваться использовать модели машинного обучения? Ответ в разделе 5.3.2. При обучении машинной модели, предназначенной для оценки мер склонности, мы стремимся к наивысшей точности. Однако при этом надеемся на наихудшую точность. Почему? Ответ в разделе «Чем больше AUC, тем лучше?». Представьте, что мы собрали всех пациентов со схожими мерами склонности в группу, независимо от их индивидуальных черт. Можно ли оценить ATE для этой группы, сравнив средний исход для тех, кто лечился, для тех, кто не лечился? Ответ в разделе 5.1.4. Ответ на предыдущий вопрос – «да». Почему? Ответ в разделе 5.1.4. Каков средний лечебный эффект у прошедших лечение? Ответ в разделе «Визуальная оценка». Итоги „ „ „ Меры склонности – это гибкий инструмент, позволяющий оценить, выполняется ли предположение о положительности. Когда это предположение не выполняется, можно попытаться найти подмножество пациентов, для которых оно выполняется. После вычисления мер склонности можно повторно использовать их для вычисления ATE. Имея большое количество результатов, можно один раз вычислить меры склонности и оценить предположение о положительности, а затем повторно использовать их для вычисления ATE.
6 Расчет прямых и косвенных эффектов с помощью линейных моделей В этой главе: „ „ „ расчет причинно-следственных эффектов с использованием линейной регрессии, когда переменная воздействия является непрерывной; разложение эффекта переменной на прямой и косвенный эффекты; распространение корреляций по графу. До настоящего момента мы рассматривали переменные воздействия (лечения), принимающие только два значения, обычно 0 или 1. Однако во многих реальных сценариях переменные воздействия непрерывны. Например, представьте компанию, пытающуюся определить влияние стоимости перелетов на спрос, чтобы найти оптимальную цену, которая максимизирует прибыль. Для рейсов из Барселоны на Майорку цена может устанавливаться в дискретных интервалах (например, 80, 85 или 90 евро) или непрерывно меняться в диапазоне (от 80 до 90 евро).
Расчет прямых и косвенных эффектов с помощью линейных моделей 199 При работе с непрерывными переменными линейные модели оказываются одним из самых простых и легко интерпретируемых методов и используются для описания взаимосвязи между переменными. На практике построение линейной модели на основе данных осуществляется методом линейной регрессии. Этот метод вычисляет коэффициенты линейной модели, которая лучше всего соответствует нашим данным. Мы здесь 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (глава 7). Проверьте предположение о положительности (глава 5). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Переменная воздействия имеет непрерывный тип или бинарный? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (эта глава) Точная Двойное машинное обучение (глава 8) Бинарный Количество переменных для корректировки Мало Прямое применение формулы корректировки (глава 2) Много Алгоритм T-learner (глава 4) Применение формулы корректировки Несмотря на давнюю известность, линейные модели по-прежнему широко используются во многих областях, включая статистику, эконометрику и машинное обучение, что демонстрирует их неизменную актуальность и полезность как в исследовательских, так и в практических задачах. Давайте используем пример с ценами и спросом на авиабилеты, чтобы исследовать связь между причинно-следственными эффектами и коэффициентами линейной регрессии. Например, в компании решили исследовать связь между ценой и спросом на основе своих исторических данных. Такую связь можно смоделировать с помощью линейной модели, в которой спрос, измеряемый как количество забронированных мест на каждый рейс, выражается через цену рейса и происходит ли рейс в праздничный день. Вот формула выражения этой связи: забронировано мест = β + β1 цена + β2 праздник + ε,
200 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей ε – это случайный член, представляющий все остальные факторы, связанные с количеством забронированных мест, но не связанные с переменными цена и праздник. Коэффициент β1 измеряет увеличение количества забронированных мест при увеличении цены за одно место, а остальные переменные – в данном случае праздник – остаются неизменными. Сначала может показаться, что β1 измеряет влияние цены на место. Но будьте внимательны! Теперь, когда мы немного знаем о причинноследственной связи, мы можем видеть, что все может оказаться не так просто. Представьте, что авиакомпания снижает цены на рейсы во время экономических кризисов и повышает во времена экономического подъема. Если это так, то можно обнаружить, что всякий раз, когда цена низкая, то и спрос низкий, а когда цена высокая, то спрос высокий. Таким образом, вычисляя коэффициент β1 на основе данных с помощью линейной регрессии, мы получим положительный коэффициент, потому что, с исторической точки зрения, более высокая цена коррелирует с более высоким спросом. Но положительный коэффициент β1 противоречит базовой экономической теории, потому что рост цены должен отрицательно влиять на спрос, уменьшая его. Проблема, возникающая в этом примере, заключается в том, что коэффициенты, полученные из набора данных с помощью линейной регрессии, отражают не причинно-следственную связь, а корреляции. Однако нам нужно знать причинно-следственную связь между ценой и спросом, чтобы предсказать, что произойдет, если установить определенную цену. Поиска корреляций недостаточно, потому что они отражают только то, что произошло в прошлом в определенном контексте. Поэтому мы не можем доверять результату линейной регрессии, пока не узнаем больше подробностей о возможном влиянии других факторов. И это именно то, чем мы займемся в данной главе: мы по- стараемся узнать, когда можно интерпретировать коэффициенты регрессии как причинно-следственные эффекты, а когда нет. Эта глава разделена на два раздела. В обоих мы рассмотрим одну и ту же тему, но с двух разных точек зрения: сначала с точки зрения программирования, а затем с математической точки зрения. Мы будем работать с причинно-следственными моделями, включающими три переменные: воздействие, исход (результат) и третью переменную, роль которой меняется в разных примерах. Мы посмотрим, как на коэффициенты линейной регрессии влияет используемая нами причинно-следственная модель и переменные, которые выбираются для включения в регрессию. В разделе 6.1 мы исследуем пример, похожий на ситуацию с авиакомпанией, и подробно обсудим порядок оценки причинно-следственных связей с помощью линейных моделей. Основной вывод этого раздела заключается в том, что линейные модели очень полезны для задач, в которых переменная воздействия является непрерывной, но в зависимости от переменных, включаемых в регрессию, исход может кардинально меняться. Поэтому нам нужна методология, которая поможет определить, какие регрессии применять в каждом сценарии. Мы также увидим, что переменная может влиять на результат разны-
Оценка причинно-следственных связей с помощью линейных моделей 201 ми путями: рейс, приходящийся на праздничный день, увеличивает спрос, потому что у людей больше свободного времени (прямой эффект: праздник → продажи билетов), но в то же время если компания решит поднять цены на билеты в праздники, то это снизит продажи (косвенный эффект: праздник → цена → продажи билетов). До сих пор мы работали с упрощенными примерами графов. Однако в своей повседневной работе вы неизбежно столкнетесь с ситуация­ ми, порождающими широкое разнообразие причинно-следственных графов. В главе 7 мы посмотрим, как работать с графами любых типов. Но прежде чем перейти к знакомству с инструментами, описанными в следующей главе, нам нужно попрактиковаться с линейными моделями, поскольку они гораздо проще для понимания. Поэтому в разделе 6.2 мы рассмотрим математическую теорию, лежащую в основе применения линейных моделей для представления причинно-следственных связей. Попутно мы посмотрим, как причинность и корреляции распространяются через граф и почему их распространение происходит по-разному. Когда следует использовать линейные модели для оценки причинно-следственной связи? Линейные модели желательно применять на ранних этапах анализа. Они просты в понимании и использовании и помогают получить начальное представление о возможных результатах. Также линейные модели можно использовать для оценки причинно-следственных эффектов, когда переменная решения или воздействия является непрерывной. 6.1. Оценка причинно-следственных связей с помощью линейных моделей В этом разделе основное внимание уделяется использованию линейных моделей с причинно-следственными моделями для получения непредвзятых оценок. Для начала познакомимся с примером, представляющим некоторые проблемы, с которыми можно столкнуться при применении линейных моделей в причинно-следственном анализе. Этот пример даст базовое понимание, которое более формально и подробно будет описано в разделе 6.1.2. 6.1.1. Моделирование задачи ценообразования: знакомство Давайте разомнемся на практическом примере. Представьте вымышленную компанию, которую мы назовем Land2Hotel, владеющую участками земли во многих городах и решившую построить на них отели. Какие-то участки находятся в центре города, какие-то в пригородах или в сельской местности. После постройки отеля компания устанавливает цену, соответствующую местоположению отеля. В нашем примере люди стремятся устроиться поближе к городу, поэтому номера в отелях в центре, как правило, стоят дороже, чем в пригородах, а номера в пригородных отелях – в свою очередь, дороже, чем в сельских отелях.
202 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей За два года эта стратегия доказала свою правильность, и отели стали пользоваться большой популярностью. Оценив результаты, в Land2Hotel решили повторить опыт. В отличие от первого раза, теперь у компании много данных, которые можно проанализировать. В частности, компанию интересует, как цена влияет на количество клиентов и какое местоположение является оптимальным для отеля. Представьте, что мы аналитики, которым было предложено ответить на эти вопросы. Как объяснялось в главе 1, я предлагаю начать изучать новую технику, практикуясь на искусственно сгенерированных, а не на реальных данных. В таком случае, когда мы придем к выводу, мы сможем легко проверить его верность. Эта идея применима к нашему анализу выбора места для строительства отеля: мы начнем с изучения задачи, для которой уже знаем ответ, и используем его для выбора правильного метода регрессии. Затем мы сможем использовать новые знания для применения линейной регрессии к новым ситуациям, в которых не знаем ответа. Сначала сгенерируем искусственные данные, основываясь на реальной модели, описывающей задачу. Затем проанализируем данные с помощью линейных моделей и сравним результаты с правильными значениями реальной модели. Но прежде я опишу основные шаги для тех, кто решит попробовать сделать все самостоятельно, а потом мы пройдемся по всему процессу, применяя его к нашему примеру. Вот эти шаги: 1 Нарисуйте граф. Сначала поразмыслите о релевантных переменных, присутствующих в описании задачи. Это узлы. Если какая-то переменная влияет на другую переменную, то нарисуйте стрелку между ними. 2 Сгенерируйте данные. Имея переменные Price (P, цена), Distance (D, расстояние) и Customers (C, клиенты), сгенерируйте выборку с размером n = 1000, следуя соотношениям: – D принимает три возможных значения: 0 (центр города), 0,5 (пригород) и 1 (сельская местность) – равномерно и случайно; – P := 10 – 3D + εP, где εP ~ N(0, 0,5); – C := 30 – 2P – 10D + εC, где εC ~ N(0, 2). Оцените влияние цены. Нам нужно узнать, как цена влияет на количество клиентов. Как бы вы сделали это, используя линейную регрессию и смоделированные данные? 4 Оцените влияние расстояния. Нам нужно узнать, как расстояние влияет на количество клиентов. Как бы вы сделали это, используя линейную регрессию и смоделированные данные? Не бойтесь потратить время на решение задачи, используя только информацию, представленную в этих четырех общих шагах. А теперь перейдем к подробному описанию шагов, чтобы вы могли сверить мои действия со своими. 3 Создание графа Описать задачу можно с помощью графа на рис. 6.1. Поскольку цена на номера в каждом отеле устанавливается на основе расстояния от
203 Оценка причинно-следственных связей с помощью линейных моделей города, то это означает, что расстояние влияет на цену. Чтобы стрелка была направлена в противоположную сторону (Цена → Расстояние), ситуация должна быть другой: когда компания сначала принимает решение о цене, а затем ищет недвижимость, которая, по ее мнению, могла бы соответствовать этой цене. Рис. 6.1. Граф, иллюстрирующий процесс генерации искусственных данных, как определено описанием задачи. Стрелки на графе отмечены соответствующими линейными коэффициентами, причем отрицательными, потому что это соответствует контексту моделируемых данных Расстояние –3 Цена –10 –2 Клиенты Обратите внимание, что все коэффициенты модели (–3, –2, –10) отрицательны, и в этом есть определенный смысл: „ „ „ чем дальше отель от города, тем ниже цена номеров в нем; чем дальше отель от города, тем меньше клиентов готово остановиться в нем; чем выше цена, тем меньше клиентов. Генерирование данных Следующие два листинга (с кодом на R и Python соответственно) генерируют данные, которые будут проанализированы с помощью линейных моделей. Листинг 6.1. (R) Создание искусственных данных для Land2Hotel set.seed(1234) n = 1000 D <- sample(c(0,0.5, 1), n, replace = TRUE) P <- 10 - 3*D + rnorm(n, sd = 0.5) C <- 30 - 2*P - 10*D + rnorm(n, sd = 2) Листинг 6.2. (Python) Создание искусственных данных для Land2Hotel from numpy.random import choice, normal import random import pandas as pd random.seed(1234) n = 1000 distance = choice([0, 0.5, 1], n) price = 10 - 3*distance + normal(loc=0, scale=.5, size=n) customers = 30 - 2*price - 10*distance + \ normal(loc=0, scale=2, size=n) df = pd.DataFrame({ 'price': price, 'distance': distance, 'customers': customers })
Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей Оценка влияния цены Первое, что приходит на ум на этом шаге, – проанализировать влияние цены, выполнив регрессию C по P. Давайте посмотрим, как это работает, проанализировав данные с помощью линейной регрессии, как показано в следующих двух листингах. Листинг 6.3. (R) Определение зависимости количества клиентов от цены lm(customers ~ price) Листинг 6.4. (Python) Определение зависимости количества клиентов от цены import statsmodels.formula.api as smf mod = smf.ols(formula='customers ~ price', data=df) mod.fit().summary() Результаты в табл. 6.1 показывают, что лучше всего соответствует данным модель C = 0,7902 + 0,8535P. Но она не имеет смысла! Модель говорит, что чем выше цена, тем больше количество клиентов! Но мы точно знаем, что влияние цены на количество клиентов равно –2, потому что мы генерировали данные именно с таким коэффициентом. Таблица 6.1. Результаты регрессии (на R) клиенты ~ цена Коэффициент Оценка Стандартная ошибка Свободный член 0,7902 0,5164 Цена 0,8535 0,0606 Может быть, проблема заключается в линейной регрессии? Может быть, она делает что-то не так, что все усложняет? На рис. 6.2 показан график, отражающий возрастающую тенденцию: когда цена растет, количество клиентов тоже увеличивается. Связь между ценой и количеством клиентов Клиенты 204 Цена Рис. 6.2. График, показывающий связь между ценой и количест­ вом клиентов. Прямая линия представляет линейную регрессию, которая подчеркивает тенденцию к росту в данных
205 Оценка причинно-следственных связей с помощью линейных моделей Сначала подумай, потом читай Почему регрессия не дала ожидаемого результата? Проблема в переменной D (Distance – расстояние) – она является искажающим фактором, который все портит. На рис. 6.3 показано, что, несмот­ ря на общий положительный тренд в цене, в каждой группе расстояний тренд отрицательный. Мы снова столкнулись с парадоксом Симпсона. Связь между ценой и количеством клиентов с учетом расстояния Расстояние Клиенты Рис. 6.3. График, показывающий связь между ценой и количест­ вом клиентов с разбивкой по группам расстояний. Несмотря на общий положительный тренд в цене, в каждой группе расстоя­ ний тренд отрицательный. Это явление известно как парадокс Симпсона Цена В задачах с бинарной переменной воздействия, где имелись искажающие факторы, мы применяли формулу корректировки. В задаче с линейной регрессией мы пойдем другим путем (хотя – открою небольшой секрет – мы снова придем к формуле корректировки). В формулу регрессии C по P мы добавим D. Листинг 6.5. (R) Определение зависимости количества клиентов от цены и расстояния lm(customers ~ price + distance) Листинг 6.6. (Python) Определение зависимости количества клиентов от цены и расстояния mod = smf.ols(formula='customers ~ price + distance', data=df) mod.fit().summary() Таблица 6.2. Результаты регрессии (на R) клиенты ~ цена + расстояние Коэффициент Оценка Стандартная ошибка Свободный член 29,9413 1,3491 Цена –1,9915 0,1345 Расстояние –9,9004 0,4355 Итак, наш вывод заключается в том, что для правильной оценки влия­ ния цены на количество клиентов необходимо включить в регрессию расстояние. Мы пока не знаем, почему расстояние должно быть включено или какое отношение оно имеет к формуле корректировки, но
206 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей очевидно, что оно является искажающим фактором и его включение в регрессию дает ожидаемый коэффициент при переменной цены (–2). Оценка влияния расстояния Теперь оценим влияние расстояния на количество клиентов. Можно было бы подумать, что регрессия в предыдущем разделе (в листингах 6.5 или 6.6) уже решает эту задачу. Она показывает нам (в R), что коэффициент при переменной расстояния равен –9,900, что очень близко к реальным –10. Однако это только часть истории. В прошлом местоположение отеля также влияло на решение о том, какую цену установить. Чем дальше отель находится от города, тем меньше людей готовы остановиться в нем. Это отрицательное влияние. В то же время низкие цены привлекают клиентов, а это уже положительное влияние. Первое – это прямой эффект, а второе – косвенный. Теперь спросим себя, будет ли использоваться та же ценовая политика, что и в прошлом. Если да, то эффект влияния расстояния на количество клиентов составляет не только –10, но и сумму прямых и косвенных эффектов: общий эффект. Теперь перед нами встают следующие вопросы: каков общий эффект в нашей модели? Как вычислить его из данных? Уравнения помогут нам ответить на первый вопрос. Поскольку P :=10 – 3D + εP, мы можем подставить P во второе уравнение: C := 30 – 2P – 10D + εC = 30 – 2(10 – 3D + εP) – 10D + εC = 10 + (6 – 10)D – 2εP + εC = 10 – 4D – 2εP + εC. Когда мы меняем D, прямо или косвенно, C изменяется с коэффициентом –4. Общий эффект равен –4, прямой эффект равен –10, а косвенный эффект равен –2 × (–3) = 6. Но где эта 6 появляется в регрессии, которую мы получили ранее? Она нигде не появляется, поэтому нам, вероятно, нужно получить другую регрессию. Главное здесь – какие искажающие факторы находятся между расстоянием и количеством клиентов. Их нет! В главе 2 мы видели, что в отсутствие искажающих факторов мы не должны применять формулу корректировки: мы можем измерить влияние одной переменной на другую с помощью прямых вычислений (разностей средних значений), не принимая во внимание никакие другие переменные. Итак, давайте попробуем выполнить простую регрессию D по C. Листинг 6.7. (R) Линейная модель зависимости количества клиентов от расстояния lm(customers ~ distance) Листинг 6.8. (Python) Линейная модель зависимости количества клиентов от расстояния mod = smf.ols(formula='customers ~ distance', data=df) mod.fit().summary()
Оценка причинно-следственных связей с помощью линейных моделей 207 Мы получили коэффициент –3,898 (табл. 6.3), близкий к –4, т. е. к правильному коэффициенту. Таблица 6.3. Результаты регрессии (на R) клиенты ~ расстояние Коэффициент Оценка Стандартная ошибка Свободный член 10,02 0,12 Цена –3,90 0,18 Если, с другой стороны, мы решим использовать ценовую политику, отличную от прошлой, то мы должны выяснить, какой эффект расстоя­ние будет иметь в будущем с новой стратегией. Например, если мы собираемся снизить цену на 2,5 (вместо 3, как в прошлом), то ожидаемый общий эффект (с оценочными данными) будет следующим (эти выкладки основываются на более ранних уравнениях): P := 10 – 2,5D + εPC := 29,941 – 1,992P – 9,900D + εC = –1,992(–2,5D) – 10D + другие факторы = –5,02D + другие факторы. Общий эффект составляет –5,02. Обратите внимание, что выбор новой ценовой политики – это наше решение, а влияние расстояния и цены на клиентов – это решение реальности. Мы пришли к выводу, что для оценки влияния расстояния на количество клиентов необходимо рассмотреть прямые и косвенные эффекты. И в этом случае мы можем рассчитать их сумму, называемую общим эффектом, используя линейную регрессию, не включая цену в качестве регрессора. В причинно-следственном анализе не всегда правильно выбирать модель на основе ее ошибки подгонки Этот пример подчеркивает важное различие между причинно-следственным анализом и обучением с учителем: в причинно-следственном анализе не всегда правильно выбирать модель с наименьшей ошибкой. Например, при определении общего влияния расстояния на количество клиентов регрессионная модель типа C ~ D + P может показать наименьшую ошибку подгонки. Однако правильнее было бы использовать модель C ~ D, несмотря на то что она имеет большую ошибку подгонки. 6.1.2. Прямые и косвенные эффекты В предыдущем разделе мы неформально познакомились с разными эффектами влияния одной переменной на другую: прямыми и косвенными. Теперь дадим им формальные определения, а также определение общего эффекта.
208 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей Декомпозиция эффектов влияния переменной X на переменную Y „ „ „ Общий эффект – как изменится значение переменной Y при изменении значения X? Прямой эффект – как изменится значение переменной Y при изменении значения X, если зафиксировать значения остальных переменных в системе? Соответствует прямой стрелке от X к Y. Косвенный эффект – как изменится значение переменной Y при изменении значения X в результате всех остальных влияний, кроме прямого? Прямые и косвенные эффекты тоже можно определять с помощью нелинейных моделей. Однако формулы, выражающие их, сложнее, и их подробное обсуждение выходит за рамки этой книги. В линейных моделях мы всегда имеем общий эффект = прямой эффект + косвенный эффект. Но имейте в виду, что это не относится к нелинейным моделям. Изменение обозначений В оставшейся части этой главы и в главе 7 мы будем обозначать переменные как X, Y, Z вместо T (Treatment – воздействие, лечение), C (Confounder – искажающий фактор), O (Outcome – исход, результат). Основная причина – привыкнуть видеть тот же граф с разных точек зрения. Например, в зависимости от Популярность Сезонность того, что мы собираемся анализировать, переменная может играть роль воздействия, медиаПлатформа тора или искажающего фактора. Мы начали использовать этот подход еще в главе 3, когда рассматривали пример с темами страниц и количеством их просмотров, как показано на Количество Тема рисунке. Например, при аналипросмотров зе влияния темы на просмотры страниц платформа играет роль Граф, иллюстрирующий влияние темы на количество просмотров медиатора. И наоборот, старастраниц. Этот граф может помочь поясь определить, какая платфорнять, как тема влияет на количество ма работает лучше, платформа просмотров. Кроме того, мы можем рассматривается как перемен- проанализировать, как платформа ная воздействия. влияет на просмотры страниц В любом ориентированном ациклическом графе (DAG) причинные эффекты влияния (общие, прямые или косвенные) переменной X на
209 Оценка причинно-следственных связей с помощью линейных моделей переменную Y распространяются только вдоль ориентированных путей: путей, начинающихся в X и заканчивающихся в Y, X → Z1 → ... → Zk → Y, где Zi – узлы в графе. Например, путь X ← Z → Y, имеющий мес­ то при наличии искажающих факторов, не является причинным путем. Напомню, что направление стрелок в DAG, например X → Y, означает, что изменение значения X приведет к изменению Y, но изменение Y не повлияет на X. Таким образом, путь X ← Z → Y не является причинным путем, поскольку изменение X не повлияет на Z и, следовательно, на Y (через этот путь). На рис. 6.4 причинный путь — это X → Y. Z X Y Рис. 6.4 Причинный путь X → Y с искажающим фактором. В причинно-следственных диаграммах причинность передается через эти пути. Например, изменение X приводит к изменению в Y из-за влияния, которое X оказывает на Y через путь между ними Прямые и косвенные эффекты в практике использования регрессии Всякий раз, когда имеется трехузловой DAG с переменными X, Y, Z и требуется вычислить причинно-следственный эффект влияния X на Y, как показано в табл. 6.4, переменная Z может играть одну из следующих ролей: „ искажающий фактор – изменение Z является частой причиной изменения как X, так и Y; „ медиатор – X является причиной изменения Z, а Z – причиной изменения Y; „ коллайдер (накопитель) – X и Y являются причинами изменения Z. Таблица 6.4. В трехузловом графе, где X влияет на Y без каких-либо предположений о независимости, для узла Z возможны только три роли Z X Z Y Z – искажающий фактор; пример: размер камней в задаче о почечнокаменной болезни X Z Y Z – медиатор; пример: размер камней после лечения в задаче о почечнокаменной болезни X Y Z – коллайдер; пример: побочный эффект в клиническом исследовании Пример коллайдера Только что, впервые в этой книге, мы увидели коллайдеры (накопители). Чтобы лучше понять их суть, рассмотрим небольшой пример. Представьте, что мы проводим рандомизированное контролируемое испытание (RCT), цель которого – протестировать новый подход к ле-
210 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей чению некоторой болезни. Этот новый метод далек от совершенства, тем не менее он, кажется, излечивает больше людей, чем предыдущий метод лечения, но может давать побочные эффекты. Чтобы описать эту ситуацию с помощью графа, в дополнение к узлам «Лечение» и «Выздоровление» нам понадобится узел «Побочные эффекты». Этот узел зависит от метода лечения, назначаемого каждому пациенту. Мы также можем предположить, что возникновение побочных эффектов зависит от того, выздоровел ли пациент. Проще говоря, на графе есть стрелка от «Выздоровления» к «Побочным эффектам». Здесь «Побочные эффекты» играют роль коллайдера между «Лечением» и «Выздоровлением». Побочные эффекты Лечение Выздоровление «Побочные эффекты» играют роль коллайдера между «Лечением» и «Выздоровлением» Цель этого раздела – научиться определять, какой эффект представляет для вас наибольший интерес (общий, прямой или косвенный) и какие переменные нужно включить в линейную регрессию, чтобы получить ожидаемые эффекты. Теперь давайте определим, как найти прямые и косвенные эффекты в линейных моделях в трех различных ситуациях: с искажающими факторами, с медиаторами и с коллайдерами. Проверьте свои знания Прежде чем углубляться в детали каждого случая в табл. 6.4, попробуйте ответить на следующие вопросы. „ „ „ В чем выражаются причинно-следственные связи между X и Y? В чем выражается прямое влияние X на Y? Следует ли включать переменную Z в линейную регрессию, чтобы получить такое влияние? В чем выражается общий эффект влияния X на Y? Следует ли включать переменную Z в линейную регрессию, чтобы получить такое влияние? Возможно, вам придется поэкспериментировать с уравнениями, чтобы найти ответы. ПРИМЕЧАНИЕ. В оставшейся части главы я не буду показывать свободные члены в линейных уравнениях, поскольку они не влияют на получаемые выводы, а их удаление упрощает запись. Эффект влияния искажающего фактора Давайте ответим на вопросы, заданные в предыдущей врезке «Проверьте свои знания», но сначала рассмотрим случай, когда Z является искажающим фактором (см. табл. 6.5):
211 Оценка причинно-следственных связей с помощью линейных моделей 1 2 Прямой эффект влияния X на Y: a (прямая стрелка). Общий эффект влияния X на Y: тоже a, поскольку при изменении значения X единственный способ повлиять на Y – это прямой путь. Таблица 6.5. Искажающий фактор: причинно-следственная связь В уравнениях Z := εZ, X := bZ + εX, Y := aX + cZ + εY, где εZ, εX и εY не зависят друг от друга Z c b X a Y Z – искажающий фактор. Причинное влияние X на Y показано двойной стрелкой Из глав 2 и 5 мы знаем, что искажающие факторы могут привести к неверным оценкам и при их наличии необходима корректировка. В примере с ценообразованием искажающие факторы тоже могут привести к ложным выводам, если не проявлять должной осторожности, даже при работе с линейными моделями. Такое положение вещей не должно удивлять, потому что при выводе формулы корректировки мы не делали никаких предположений о функциональной форме (конкретных уравнениях, которые связывают переменные). Поэтому та же формула корректировки должна работать и с линейными моделями. Это действительно так, и мы убедимся в этом в разделе 6.2.4. В примере с ценообразованием мы увидели, что включение искажающей переменной в регрессию (такой как расстояние при поиске причинно-следственной связи цены с количеством клиентов) дало нам правильный ответ. Теперь посмотрим, почему так произошло. Для простоты представим, что переменная Z является бинарной и принимает только значение 0 или 1. Мы уже утверждали в главах 2 и 5, что при выборе определенной подгруппы с конкретным значением искажающего фактора, скажем подгруппы с Z = 1, эффект искажения исчезает. Как показано на рис. 6.5, когда устанавливается условие Z = 1, переменная Z фиксируется, поэтому она больше не меняется и не влияет на X или Y. Z c b Рис. 6.5. Когда устанавливается условие Z = 1, искажение исчезает X a Y Это означает, что, аппроксимируя Y по X (Y ~ X), используя только часть данных, для которых Z = 1, мы получим коэффициент регрессии X, назовем его a1, который хорошо (без смещения) оценивает ре-
212 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей альный коэффициент X в модели: a. Это хорошее решение, но не оптимальное, поскольку мы использовали только часть данных (с Z = 1). Далее мы можем найти регрессию Y ~ X с использованием оставшейся части данных, где Z = 0, и получить еще одну несмещенную оценку a0. Наконец, имея две несмещенные оценки, можно вычислить среднее значение обеих и получить несмещенную оценку коэффициента a. Но как быть, если Z – не бинарная переменная? Мы не можем выполнить регрессию для каждого значения Z, потому что если Z – непрерывная переменная, то в большинстве случаев каждое значение Z = z появится в наборе данных только один раз (например, если Z – это возраст клиента, измеренный в минутах, вы вряд ли увидите двух клиентов с одинаковым возрастом)! К счастью, нет необходимости вычислять много регрессий, по одной для каждого значения Z. Лучше выполнить регрессию напрямую с X и Z, Y ~ X + Z, как мы делали в примере с ценообразованием, включив расстояние: такая регрессия способна учитывать непрерывные значения Z и правильно оценивать коэффициент X. Эффект влияния медиатора Теперь ответим на вопрос во врезке «Проверьте свои знания», соответствующий случаю, когда Z является медиатором (см. табл. 6.6). 1 Прямой эффект влияния X на Y: а. 2 Общий эффект влияния X на Y: используя ту же логику, что и в предыдущем примере c ценообразованием, мы можем вычислить влияние расстояния на количество клиентов, заменив Z в формуле Y зависимостью от X: Y := aX + cZ + εY = εX + c(bX + εZ) + εY = (a + cb)X + cεZ + εY. То есть общий эффект равен a + cb. Таблица 6.6. Медиатор: причинно-следственная связь Z b X c a Y В уравнениях Z := bX + εZ, X := εX, Y := aX + cZ + εY, где εZ, εX и εY не зависят друг от друга Z – медиатор: причинно-следственные связи, показанные двойными стрелками, включают прямой путь от X к Y и путь, проходящий через Z Чтобы вычислить прямой эффект, нужно включить медиатор в регрессию Y ~ X + Z. Прямой эффект – это коэффициент X в этой регрессии. Чтобы понять, почему, здесь работает тот же аргумент, который мы использовали в случае с искажающим фактором: если мы
213 Оценка причинно-следственных связей с помощью линейных моделей обусловливаем Z, то значение Z фиксируется, влияние, оказываемое этой переменной, устраняется, и единственный оставшийся причинный эффект исходит от прямого влияния X → Y. С другой стороны, чтобы уловить все влияние, которое X оказывает на Y, следует вычислить регрессию Y ~ X, потому что между X и Y нет никаких искажающих факторов, соответственно, разница в средних значениях без поправки будет достаточно хорошей оценкой. Эффект влияния коллайдера Третий и последний вариант, возможный в случае с тремя переменными, показан в табл. 6.7, где имеются стрелки, начинающиеся в X и Y и указывающие на Z. В таких ситуациях мы говорим, что Z является коллайдером: 1 Прямой эффект влияния X на Y: а. 2 Общий эффект влияния X на Y: a. В этом случае между X и Y нет никаких искажающих факторов, поэтому корректировка не требуется. Более того, Y зависит только от X и не зависит от Z. Поэтому регрессия Y ~ X оценивает как прямой, так и общий эффект. Таблица 6.7. Коллайдер: только прямой путь является причинно-следственным Z c b X a Y В уравнениях Z := bX + cY + εZ, X := εX, Y := aX + εY, где εZ и εY не зависят друг от друга Коллайдер: причинно-следственная связь от X к Y показана двойной стрелкой В заключение о типах эффектов и выборе линейной регрессии в каждом случае В табл. 6.8 приводится обобщенная информация о трех сценариях, чтобы вы могли яснее увидеть различия между ними. В каждом случае оценку дает коэффициент регрессии при переменной X. Таблица 6.8. Эффекты влияния между X и Y и как их оценить Случай Прямой эффект Оценка прямого эффекта Общий эффект Оценка общего эффекта Искажающий фактор a Y~X+Z a Y~X+Z Медиатор a Y~X+Z a + bc Y~X Коллайдер a Y~X a Y~X
214 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей До сих пор мы говорили о случае с тремя переменными X, Y и Z. А что, если имеется несколько искажающих факторов: когда Z – вектор? В этом случае все три объяснения выше (искажающий фактор, медиатор и коллайдер) остаются справедливыми и табл. 6.8 сохраняет свою полезность. Заключение Обратите внимание, что все три случая различны. Поэтому для каждой причинно-следственной задачи, с которой вы сталкиваетесь, прежде чем приступать к анализу, задайте себе перечисленные ниже вопросы. „ „ „ С каким случаем вы работаете? Исследуйте модель, которую вы создали для своей задачи, и посмотрите, какой случай лучше ей соответствует. Какой эффект вас интересует? Он должен соответствовать цели анализа. Какую регрессию следует применить? Ознакомьтесь с табл. 6.8. 6.2. Изучение причинно-следственной динамики с помощью линейных моделей До сих пор в этой книге мы работали с упрощенным набором графов. В основном мы рассматривали искажающие факторы, коллайдеры и медиаторы, которые могут быть переменными или векторами переменных. Но в своей повседневной работе вы столкнетесь с большим разнообразием графов, не вписывающихся в представленные выше примеры: искажающие переменные, для которых нет данных; переменные, которые могут быть искажающими факторами в одних путях и коллайдерами в других; различные уровни искажения и т. д. И в каждом случае нужно знать, можно ли оценить причинно-следственные эффекты и как это сделать. Глава 7 объясняет, как работать со сложными графами. Это очень важная глава, но и очень сложная. Поэтому прежде чем углубляться в теорию причинных графов, в следующем разделе я представлю дополнительную информацию, которая облегчит переход. В разделе 6.2.1 показана визуальная метафора, которая поможет вам при чтении следующей главы. Этот раздел может показаться слишком теоретическим. Но если вы усвоите идеи, которые в нем описываются, то считайте, что половина работы, которая ждет нас в главе 7, уже сделана. Однако если теоретические выкладки покажутся вам слишком сложными или вы начнете терять интерес, то не заставляйте себя продолжать читать раздел – вы можете просто пропустить его и вернуться к нему позже, если это понадобится. Но я призываю вас хотя бы попробовать прочитать!
Изучение причинно-следственной динамики с помощью линейных моделей 215 6.2.1. Аналогия с газом, текущим по трубам Для понимания причинно-следственной связи в графах можно использовать одну полезную аналогию. Представьте корреляцию в виде газа, текущего по трубопроводной сети, которую изображает наш граф. Вот некоторые ключевые моменты этой аналогии: „ каждая труба имеет направление, но газ (корреляция) может течь в любом направлении; „ предпочтительные (или причинные) пути начинаются в узле X, заканчиваются в узле Y и следуют в направлении, указываемом стрелкой →; „ наша цель – измерить, сколько газа течет через эти причинные пути: если подать газ в трубопровод в точке X, то какой его объем достигнет Y только через причинные пути? Измеряя только корреляции, мы открываем и закрываем непричинные пути и измеряем результирующий поток газа; „ мы управляем путями, обусловливая (фиксируя) переменные в этих путях. Например, на рис. 6.6 причинный путь – это X → Y. Корреляция может распространяться не только по пути X → Y, но и по пути X → Z → Y (вспомните безумные примеры с сайта Spurious Correlations, где приводятся примеры переменных, не связанных причинно-следственными связями, сильная корреляция между которыми объясняется возZ действием общего искажающего фактора). Обусловливая Z, мы закрываем путь X → Z → Y, вследствие чего получаем оставшую­ся корреляцию, распространяX Y ющуюся по причинному пути. Проблема в том, что играть в эту игру с открытием Рис. 6.6. Причинно-следи закрытием путей довольно сложно, ког- ственная связь в случае с исда имеется сложный граф (об этом будет кажающим фактором рассказываться в следующей главе). 6.2.2. Как корреляция распространяется в графе Задача этого раздела – показать математический расчет корреляции для трех случаев, представленных выше (искажающие факторы, медиаторы и коллайдеры), и как обусловленность влияет на корреляцию. Это приведет нас к тому, что известно как анализ путей (path analysis), который был открыт Сьюаллом Райтом (Sewall Wright) в 1921 году и объясняет, как вычислять корреляции из эффектов каждого пути. В случаях с искажающим фактором, медиатором и коллайдером мы должны ответить на следующие вопросы: 1 Какова величина корреляции между X и Y? Вычислить коэффициент при X в регрессии Y ~ X. 2 Вычислить коэффициент при X в регрессии Y ~ X + Z. 3 Как предыдущие величины связаны с прямыми и общими эффектами?
216 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей Вы можете рассматривать этот раздел как пошаговое упражнение, которое попробуете выполнить самостоятельно, а позже вы сможете сверить свои результаты с теми, что показаны здесь. Также, если хотите, можете считать его подробным примером. Если вам покажется, что раздел слишком сложен для вас, то не заставляйте себя читать его через силу – вы всегда сможете вернуться к нему позже. Далее мы поработаем с некоторыми корреляциями, а вы просто проверьте, имеют ли они для вас смысл. Суть та же, что и в предыдущих разделах. Нам понадобятся некоторые основные статистические уравнения. Они показаны далее. Обязательно изучите их, потому что они вам пренепременно понадобятся! Основные уравнения дисперсии, ковариации и корреляции Если X, Y и Z – случайные величины, а a и b – константы, то: связь между дисперсией и ковариацией: var(X) = cov(X, X); „ „ поведение констант в формуле дисперсии: var(aX) = a2 var(X); „ ковариация линейной комбинации: cov(aX + bY, Z) = a cov(X, Z) + b cov(Y, Z); дисперсия суммы двух независимых переменных X, Y: var(X + Y) = „ var(X) + var(Y). Определение корреляции: . Основные формулы коэффициентов линейной регрессии В линейной регрессии Y по X предполагается, что ожидание Y при заданном X имеет линейную форму E[Y|X]= a + bX. Формула вычисления коэффициента b линейной регрессии, которую мы записываем как Y ~ X, выглядит следующим образом: . В линейной регрессии Y по X и Z предполагается, что ожидание Y при заданном X имеет линейную форму E[Y|X]= a + bX + cZ. Формула вычисления коэффициента b линейной регрессии, которую мы записываем как Y ~ X + Z, выглядит немного сложнее: . В этом упражнении мы будем предполагать, что переменные X, Y и Z – стандартизированные (иногда их называют нормализованными), потому что в этом случае работать с уравнениями становится намного
217 Изучение причинно-следственной динамики с помощью линейных моделей проще: Е[X] = Е[Y] = Е[Z] = 0; var(X) = var(Y) = var(Z) = 1. Переменную X всегда можно стандартизировать, если преобразо- „ „ вать ее с использованием формулы . Обратите внимание, что поскольку переменные стандартизированы, корреляция между любыми двумя из них является ковариацией. Например, , потому что var(X) = var(Y) = 1. В то же время ковариация совпадает с коэффициентом регрессии при X в регрессии Y ~ X, потому что . То есть в этом упражнении корреляция и ковариация – это одна и та же величина. Корреляция с искажающим фактором Проанализируем граф с искажающим фактором, показанный в табл. 6.9. Таблица 6.9. Случай с искажающим фактором Z c b X 1 a Y В уравнениях Z := εZ, X := bZ + εX, Y := aX + cZ + εY, где εZ, εX и εY не зависят друг от друга Вычислим коэффициент при X в регрессии Y ~ X. Для этого сначала вычислим cov(X, Z) = cov(bZ + εX, Z) = b cov(Z, Z) = b var(Z) = b. 2 Вычислим коэффициент при X в регрессии Y ~ X + Z. Для этого сначала вычислим cov(Z, Y) = cov(Z, aX + cZ + εY) = cov(Z, aX) + cov(Z, cZ) = ba + c. Нам нужно вычислить длинную формулу: . 3 Как видите, корреляция имеет вид a + cb и охватывает все пути от X до Y. Вот почему я использовал аналогию с газом, текущим по всем путям, как на рис. 6.7. С другой стороны, когда мы обусловли-
218 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей ваем Z, то результирующий коэффициент становится равным a – прямому эффекту. Z b c a X Рис. 6.7. Случай с искажающим фактором. Корреляция распространяется через каждое ребро Y Корреляция с медиатором Проанализируем граф с медиатором, показанный в табл. 6.10. Таблица 6.10. Случай с медиатором Z c b a X 1 Y В уравнениях Z := bX + εZ, X := εX, Y := aX + cZ + εY, где εZ, εX и εY не зависят друг от друга Вычислим коэффициент при X в регрессии Y ~ X. Для этого сначала вычислим Y := aX + cZ + εY = aX + c(bX + εZ) + εY = (a + cb)X + cεZ + εY и получим cov(X, Y) = cov(X, (a + cb)X + cεZ + εY) = a + cb. 2 Вычислим коэффициент при X в регрессии Y ~ X + Z. Для этого вычислим cov(Z, X) = b cov(X, X) = b; cov(Z, Y) = cov(Z, aX + cZ + εY) = cov(Z, aX) + cov(Z, cZ) = ba + c. Затем применим длинную формулу: . 3 В этом случае корреляция и общий эффект совпадают (рис. 6.8). Но когда мы обусловливаем переменную Z, то отсекаем корреляцию, которая распространяется по косвенному пути, и получаем только корреляцию, которая распространяется по прямому пути.
219 Изучение причинно-следственной динамики с помощью линейных моделей Z c b Рис. 6.8. Случай с медиатором. Как и в случае с искажающим фактором, корреляция распространяется через каждое ребро a X Y Корреляция с коллайдером Проанализируем граф с медиатором, показанный в табл. 6.11. Таблица 6.11. Случай с коллайдером Z b X 1 c a Y В уравнениях Z := bX + cY + εZ, X := εX, Y := aX + εY, где εZ, εX и εY не зависят друг от друга Вычислим коэффициент при X в регрессии Y ~ X. В результате получаем cov(X, Y) = cov(X, aX + εY) = a. 2 Вычислим коэффициент при X в регрессии Y ~ X + Z, используя формулу . 3 Чтобы получить коэффициент при X в регрессии Y по X и Z, нужно сначала вычислить cov(Z, X) = b cov(bXcYεZ, X) = b + c cov(Y, X) = b + ca, cov(Z, Y) = cov(bX + cY + εZ) = b cov(X, Y) + c cov(Y, Y) = ba + c, а затем применить длинную формулу: , 4 что дает выражение, которое нельзя упростить, как в других случаях. Как видите (см. рис. 6.9), корреляция не распространяется через коллайдер. Более того, если при оценке прямых или общих эффектов включить в регрессию переменную Z, то она даст смещение и мы получим неверный результат.
Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей 220 Z b c a X Y Рис. 6.9. Случай с коллайдером. Корреляция распространяется только через причинный путь Сравнение корреляции и причинно-следственной связи Объединяя все три случая, табл. 6.12 иллюстрирует различия между причинно-следственными путями (двойные стрелки) и путями распространения корреляции (пунктирные стрелки). Это источники конфликтов при оценке причинно-следственной связи по корреляции! Таблица 6.12. Различия между причинными путями (двойные стрелки) и путями распространения корреляции (пунктирные стрелки) Случай Причинные пути Пути распространения корреляции Искажающий фактор Z Z X Медиатор Y X Z Z X Коллайдер Y X Z X Y Y Z Y X Y 6.2.3. Расчет причинно-следственной связи и корреляции по коэффициентам при стрелках Теперь, получив опыт вычисления общих эффектов и корреляций, можно поискать закономерность, которая позволит вычислять их без выполнения алгебраических манипуляций. В конце концов, мы рассчитали эти величины на основе коэффициентов при стрелках на графе. Корреляции Попробуем обобщить порядок вычисления корреляций, используя случаи в разделах «Корреляция с искажающим фактором», «Корреляция
221 Изучение причинно-следственной динамики с помощью линейных моделей с медиатором» и «Корреляция с коллайдером», где все переменные нормализованы. Мы видели, что корреляция распространяется через причинные пути, а также через пути, содержащие искажающий фактор. Единственные пути, по которым корреляция не распространяется, – это пути с коллайдерами. Корреляция, которая распространяется во всех путях, представляет собой произведение коэффициентов (имеются в виду косвенные пути в разделах «Корреляция с искажающим фактором» и «Корреляция с медиатором»). Таким образом, чтобы вычислить корреляцию, нужно перемножить коэффициенты, соответствующие каждому пути, через который распространяется корреляция, а затем сложить их. В 1921 году Райт продемонстрировал, что наш первоначальный подход является вполне допустимым. Он показал, что для определения корреляции между двумя переменными на основе линейных коэффициентов при стрелках графа достаточно выполнить следующие шаги, когда все переменные нормализованы (ненормализованный случай немного сложнее): 1 Рассмотрим все пути от X до Y, за исключением тех, которые в какой-то точке содержат коллайдер. Пути должны содержать последовательности стрелок типа →→ или ←←, но никакая часть пути не должна быть такой: →←. 2 Для каждого из выбранных путей перемножьте все коэффициенты в пути. Например, в пути от X к Y на рис. 6.10 распространяемая корреляция определяется как произведение abc. X a Z b W c Y Рис. 6.10. Путь между X и Y с искажающим фактором. Корреляцию между X и Y можно вычислить как произведение коэффициентов (если переменные нормализованы): abc 3 Соответственно, общая корреляция является суммой всех полученных произведений по всем выбранным путям. Например, на рис. 6.11 есть только два (из трех) пути, по которым распространяется корреляция: X ← Z ← W → Y и X → E → Y. Соответственно, общая корреляция между X и Y (при условии что все переменные нормализованы) равна cor(X, Y) = abc + de. Рис. 6.11. Граф с тремя путями от X к Y: путь с медиатором, путь с искажающим фактором и еще один путь с коллайдером. В этом случае корреляция распространяется только через пути с искажающим фактором и медиатором и равна abc + de (если переменные нормализованы) F X a Z b d c W e E Y
222 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей Причинно-следственные эффекты Есть ли похожая процедура для вычисления не корреляции, а общих эффектов? Да, есть. Более того, она работает всегда, когда переменные стандартизированы. Пример в табл. 6.13 поможет получить представление о том, как это делается. Таблица 6.13. Ориентированный ациклический граф и линейные модели в сценарии с медиатором Z X Y В уравнениях Z := bX + εZ, X := εX, Y := aX + cZ + εY, где εZ, εX и εY не зависят друг от друга Медиатор: причинно-следственные пути от X к Y показаны двойной стрелкой Напомню, что для расчета общего эффекта мы подставили определение Z в Y: Y := aX + cZ + εY = aX + c(bX + εZ) + εY = (a + cb)X + cεZ + εY, что привело к перемножению коэффициентов косвенного пути, соответствующего стрелкам X → Z и Z → Y. Общий эффект в этом случае можно получить путем сложения результата для прямого и косвенного путей. Этот процесс верен независимо от того, есть ли у нас пути с 2 стрелками, как в этом примере, или пути с 1000 стрелок. Процесс тот же. Итак, чтобы вычислить общий эффект на основе значений стрелок, мы должны сделать следующее: 1 Отыскать все причинные пути от X к Y, которые включают пути X → ... → Y, где все стрелки имеют тип →→. 2 Для каждого из причинных путей перемножить все коэффициенты. 3 Сложить все произведения, полученные на предыдущем шаге для каждого причинного пути. 6.2.4. Линейные модели и оператор «do» Теперь мы знаем, как оценивать причинно-следственные эффекты в линейных моделях. Но как они соотносятся с методами, представленными в других главах? Методы регрессии, используемые в этой главе, представляют собой особую разновидность формулы корректировки и оператора «do». Контроль ковариатов Пользуясь языком линейной регрессии, мы не говорим, что корректируем некоторую переменную Z, но говорим, что контролируем переменную Z. Это означает, что мы включаем Z как ковариату в линейную
Изучение причинно-следственной динамики с помощью линейных моделей 223 регрессию между переменными X и Y, так что результирующий коэффициент при X можно интерпретировать как причинно-следственный. Рассмотрим эту связь между линейной регрессией и оператором «do». Пусть есть ориентированный ациклический граф, показанный в табл. 6.14, соответствующий комбинации искажающего фактора, прямого эффекта, медиатора и коллайдера. Таблица 6.14. Граф и линейные модели, объединяющие медиатор, коллайдер и искажающий фактор Z b a e X Y c В уравнениях Z := εZ, X := aZ + εX, M := cX + εM, Y := bZ + eX + dM + εY, где εZ, εX и εM не зависят друг от друга d M f g L Комбинация искажающего фактора (Z), прямого эффекта, медиатора (M) и коллайдера (L) Напомню, что когда есть переменная воздействия с двумя вариантами A и B, эффект воздействия на переменную результата Y – средний эффект воздействия (average treatment effect, ATE) – равен ATE = E[Y|do(X = A)] – E[Y|do(X = B)]. ATE – наша первая цель в причинно-следственном анализе. Как применить это понятие к нашему текущему графу с линейными моделями? Первое отличие в том, что теперь X – переменная, которая описывает воздействие, – является непрерывной и может принимать не только одно из двух значений, но и любое действительное число. Поэтому попарное сравнение потребовало бы массу работы! Это совершенно непрактично, поэтому воспользуемся другим подходом. Учитывая конкретное значение переменной X = x0, мы вычислим эффект увеличения X на одну единицу. То есть ATE(x0) = E[Y|do(X = x0)] – E[Y|do(X = x0 + 1)].
224 Глава 6 Расчет прямых и косвенных эффектов с помощью линейных моделей Как вы уже наверняка поняли, этот ATE меняется для каждого x0. К счастью, как мы увидим через минуту, ATE для линейных моделей постоянен (не зависит от x0). Это дает нам глобальный ATE, что гораздо удобнее. В табл. 6.15 показан эффект оператора «do»: он удаляет все стрелки, входящие в X (здесь только одна такая стрелка). Выше в этой главе мы узнали, что прямой эффект равен e, а общий эффект равен e + cd. Таблица 6.15. Граф и линейные модели после вмешательства в узел x0 Z b e x0 Y c В уравнениях Z := εZ, X := x0, M := cX + εM, Y := bZ + eX + dM + εY, где εZ, εX, εM и εY не зависят друг от друга d M f g L Эффект вмешательства do(X = x0) в DAG в табл. 6.14. Как видите, стрелка от Z к x0 была удалена, а X получила значение x0 Теперь, используя уравнения, описывающие граф DAG в табл. 6.15, и линейность ожидания E, мы можем вычислить (принимая во внимание, что члены ошибки ε имеют нулевое ожидание) E[Y|do(X = x0)] = E[bZ + eX + dM|do(X = x0)] = E[bZ + eX + do(cx0 = x0)|do(X = x0)] = bE[Z|do(X = x0)] + ex0 + dcx0 = bE[Z|do(X = x0)] + (e +dc)x0. Повторяя процесс с x0 + 1 (что практически то же самое), мы можем вычислить разность ATE = E[Y|do(X = x0)] – E[Y|do(X = x0 + 1)] = e + dc. Так, так, так! Оказывается, что ATE – это как раз тот самый общий эффект, о котором идет речь в этой главе! Как видите, он не зависит от выбранного нами значения x0.
Изучение причинно-следственной динамики с помощью линейных моделей 225 Но что, если вместо оценки причинно-следственных эффектов с помощью методов, разработанных в этой главе, мы захотим использовать формулу корректировки из главы 2? Если говорить крат­ ко, то мы придем к тому же результату. А более подробно причины описывает следующая цепочка рассуждений. Напомню, что формула корректировки для случая, когда результат принимает много значений, имеет вид . Она вычисляется в два этапа: 1 2 Оцениваются члены E[Y|X = x, Z = zi]. В главе 4 мы делали это с помощью методов машинного обучения, таких как S-learner и T-learner, но при работе с линейными моделями E[Y|X = x, Z = zi] оцениваются E[Y |X = x, Z = zi] методом линейной регрессии на основе имеющихся данных. Усредняются различные значения zi. Если на первом этапе выполнить регрессию с имеющимися данными, то результатом будет пара коэффициентов и , описывающих отношение: . Если сравнить это выражение с реальными отношениями между переменными Y := bZ + eX + dM + εY = bZ + eX + d(cX + εM) + εY = (e + cd)X + bZ + dεM + εY и сопоставить коэффициенты при переменных X и Z, то можно увидеть, что коэффициент соответствует значению e + cd, а коэффициент соответствует значению b. Теперь переходим ко второй части. Нам необходимо с помощью регрессии, полученной на предыдущем шаге, рассчитать следующее: . В результате приходим к тому же расчетному значению общего эффекта, который можно получить с помощью линейной регрессии Y ~ X + Z.
6.3. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Что такое общий, прямой и косвенный эффект? Ответ в разделе 6.1.2. 2 Что такое общий эффект? Является ли он суммой прямого и косвенного эффектов? Ответ в разделе 6.1.2 3 Пусть есть граф с тремя узлами: X, Y и Z, где Z – искажающий фактор. Что нужно контролировать, чтобы рассчитать прямой эффект? Ответ в разделе «В заключение о типах эффектов и выборе линейной регрессии в каждом случае». 4 Пусть есть граф с тремя узлами: X, Y и Z, где Z – медиатор. Что нужно контролировать, чтобы рассчитать прямой эффект? Ответ в разделе «В заключение о типах эффектов и выборе линейной регрессии в каждом случае» 5 Пусть есть граф с тремя узлами: X, Y и Z, где Z – коллайдер. Что нужно контролировать, чтобы рассчитать прямой эффект? Ответ в разделе «В заключение о типах эффектов и выборе линейной регрессии в каждом случае». 6 Как оператор «do» связан с контролем переменных в линейной модели? Ответ в разделе 6.2.4. 7 Что такое метод Райта? Ответ в разделе 6.2.2. Итоги „ „ Линейные модели являются наиболее простым и понятным инструментом в причинно-следственном анализе. Используйте их для предварительного анализа. Линейные модели не всегда можно интерпретировать как причинно-следственные. Для этого нужно ответить на следующие вопросы: – С каким случаем вы имеете дело? Есть ли искажающие факторы, медиаторы, коллайдеры и т. д.? – Какой эффект вас интересует: прямой, косвенный или общий? Они должны соответствовать цели анализа. – Какую регрессию следует применять (см. табл. 6.4)? Другими словами: какие переменные следует контролировать?
Итоги „ „ 227 Причинно-следственные пути от X к Y – это пути, начинающиеся в X и приходящие в Y, и всегда имеющие одно и то же направление X → ... → Y. Они представляют различные способы, которыми X может причинно влиять на Y. Чтобы решить, какие переменные требуют корректировки, можно использовать метафору газа, текущего по трубам, которая поможет представить, как распространяются корреляции и какие пути необходимо закрыть.
7 Работа со сложными графами В этой главе: „ „ „ математическое определение причинно-следственной модели; вывод условных зависимостей между переменными с помощью d-разделения; использование критерия обходного пути для определения переменных, которые следует включить в формулу корректировки. К настоящему моменту мы познакомились с одним из способов устранения влияния искажающих факторов – использованием формулы корректировки. В реальной жизни мы часто работаем со сложными графами, и практически всегда возникают сомнения относительно выбора переменных для корректировки. Поэтому в этой главе мы попробуем найти ответ на следующий вопрос: имея конкретный граф (простой или сложный), переменные воздействия и результата, какие переменные следует корректировать, чтобы оценить средний эффект воздействия (average treatment effect, ATE)?
229 Работа со сложными графами Мы здесь 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (эта глава). Проверьте предположение о положительности (глава 5). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Переменная воздействия имеет непрерывный тип или бинарный? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (глава 6) Бинарный Количество переменных для корректировки Точная Двойное машинное обучение (глава 8) Мало Много Прямое применение формулы корректировки (глава 2) Алгоритм T-learner (глава 4) Применение формулы корректировки Возможно, вам интересно, почему у нас не возникло проблем с выбором правильных искажающих факторов в предыдущих главах. Дело в том, что фактически мы работали только с одним типом графа: с ориентированным ациклическим графом (DAG), изображенным на рис. 7.1, где все искажающие факторы известны, наблюдаются и не имеют причинно-следственных связей между собою. Поэтому, чтобы оценить причинно-следственный эффект между X и Y, нам оставалось только скорректировать искажающие факторы Z1, ..., Zk. Однако на практике вы часто будете сталкиваться с ненаблюдаемыми факторами с запутанными взаимовлияниями. Z1 Рис. 7.1. Нам нужно оценить причинно-следственную связь между X и Y. В этом графе все факторы известны, поэтому проблем с ненаблюдаемыми факторами не возникает X ... Zk Y Давайте для примера представим, что мы работаем в обувной компании, в которой решили определить оптимальную цену на пару обу­ви.
Глава 7 Работа со сложными графами 230 Нам передано несколько вариантов цены, а мы должны сообщить ожидаемый объем продаж для каждой из них. В результате появится возможность определить цену, при которой достигается максимальная прибыль. Итак, нам нужно оценить причинно-следственное влия­ние цены на продажи. Исторически компания пробовала разные цены, но A/B-тестирование не проводились. Это та же задача, которую мы решали ранее в книге, когда оценивали причинно-следственный эффект лечения болезни на результат – процент выздоровевших пациентов. Здесь цена заменяет метод лечения, а количество продаж является эквивалентом результата. Как вы наверняка помните, первым шагом в оценке причинноследственного влияния фактора на результат является выявление искажающих факторов. С этой целью мы идем в отдел ценообразования и спрашиваем, как они устанавливают цены, какой политике или рекомендациям они следуют и какую конкретную информацию они учитывают при установлении цены. Они говорят нам, что выбирают цену пары обуви на основе имеющегося на данный момент запаса: если осталось всего несколько пар, то они повышают цену, а если обуви на складе очень много, то они снижают цену. Они также отметили, что у них никогда не заканчивались запасы какой-либо модели обуви. Несмотря на то что количество обуви на складе влияет на цену, переменная Stock (складские запасы) не является искажающим фактором. Напомню, что искажающий фактор должен влиять как на X, так и на Y. В этом случае он влияет на X, цену обуви, но не влияет на Y, количество проданной обуви. Однако это не означает, что нет никаких искажающих факторов. Например, на объем продаж и, соответственно, на объем складских запасов влияет экономическая ситуация в стране. Кроме того, складские запасы – единственное, что влияет на текущую цену. А экономическая ситуация в стране определяет будущие продажи. Таким образом, искажающим фактором является экономическая ситуация в стране. Аналогично искажающими факторами являются конкуренция и новые законы. Все эти концепции можно объединить в социально-экономический контекст. Поскольку некоторые из этих факторов не наблюдаются, социально-экономический контекст представлен на рис. 7.2 как ненаблюдаемый фактор. Социально-экономический контекст Складские запасы Цена Объем продаж Рис. 7.2. Социально-экономический контекст – единственный искажающий фактор, но он не наблюдается. Складские запасы – наблюдаемый фактор, и его можно использовать для корректировки
231 Работа со сложными графами Итак, мы знаем, что нам нужно сделать поправку на искажающие факторы, но у нас нет информации о них. И что? Мы в безвыходном положении? Или все-таки у нас есть возможность узнать, как цена влияет на продажи? Кроме всего прочего, в этой главе мы узнаем, как определить, можно ли преодолеть недостаток информации об искажающих факторах. Мы также научимся определять графы, в которых причинно-следственные эффекты можно оценить на основе данных, и отличать их от графов, в которых оценка причинно-следственных эффектов на основе данных невозможна. На рис. 7.3 показан еще один пример сложного графа, заимствованного из статьи Шрайера (Shrier) и Платта (Platt) (см. раздел 7.7). Представьте, что мы хотим узнать, действительно ли разминочные упражнения могут предотвратить травмы. Шрайер и Платт описали весь процесс и все переменные, которые они посчитали релевантными для этой задачи. Разминочные упражнения (переменная воздействия) и травма (результат), как показано на рис. 7.3, имеют множество связывающих их путей. В результате граф получился гораздо сложнее, чем графы, которые мы видели в предыдущих главах. Тренер Уровень физической подготовки Мотивация команды Контактный вид спорта Генетика Нервно-мышечная усталость Предыгровая проприоцепция Предыдущие травмы Разминочные упражнения Болезни связок Слабость тканей Внутриигровая проприоцепция Травма Рис. 7.3. Граф, описывающий сложную связь между разминочными упражнениями и травмами в спорте. Как видите, графы могут быть очень сложными. (Термин проприоцепция обозначает чувство собственного движения, силы и положения тела) На рис. 7.4 показан план этой главы. Наша цель состоит в том, чтобы определить, какие переменные следует корректировать. Что нужно для этого? Давайте приоткроем занавес и посмотрим, что нам понадобится на каждом этапе. Самым популярным инструментом выбора переменных для корректировки является критерий обходного пути (backdoor criterion; под номером 3 на рис. 7.4). С помощью этого критерия
232 Глава 7 Работа со сложными графами можно анализировать графы и удалять ложные корреляции, обусловливая определенные узлы. Критерий обходного пути основывается на применении понятия d-разделения (под номером 2 на рис. 7.4), графового критерия, помогающего сделать две переменные независимыми путем обусловливания третьей. Знакомство с d-разделением мы начнем с простых примеров трехузловых графов (под номером 2a на рис. 7.4). Затем посмотрим, как распространить d-разделение на графы любой сложности (под номером 2b на рис. 7.4). Но прежде чем приступить к знакомству с d-разделением, мы рассмотрим формальное (математическое, под номером 1 на рис. 7.4) определение причинно-следственной модели (вы правильно прочитали: мы еще не рассматривали формального определения!). Остальные разделы помогут усвоить суть и понять применение критерия обходного пути. Цель: поиск переменных для корректировки 3. Обходной критерий (раздел 7.2) 2. Определение d-разделения (раздел 7.1.6) 2a. В малых графах (раздел 7.1.4) 2b. В больших графах (раздел 7.1.5) 1. Формальное определение причинно-следственной модели (раздел 7.1.3) Рис. 7.4. План главы. Начнем с пункта 1 Когда использовать критерий обходного пути Критерий обходного пути помогает определить, какие переменные следует выбрать для корректировки. 7.1. Изменение корреляции между двумя переменными с учетом третьей В разделе 6.2.1 я привел аналогию, сравнивающую корреляцию с газом, текущим по сети труб. Нас часто интересует, какой объем газа может пройти через определенный набор труб, называемый причинноследственным путем. Для этого мы можем открывать или закрывать пути, обусловливая определенные переменные, чтобы газ тек только по причинно-следственным путям.
Изменение корреляции между двумя переменными с учетом третьей 233 Еще раз о независимости вероятностей Понятия обусловленности и независимости часто встречаются в этой главе. Если вы не до конца понимаете, что такое обусловленность, то я рекомендую еще раз прочитать раздел 1.6.2. А эта врезка напомнит вам о независимости вероятностей. Представьте, что мы дважды подбрасываем идеально сбалансированную монету. Вероятность выпадения двух орлов подряд составляет 25 %. В первом броске вероятность выпадения орла составляет 50 %. Вероятность выпадения орла во втором броске тоже составляет 50 %. Соответственно, вероятность выпадения двух орлов кряду составляет 50 % × 50 % = 25 %. Первый результат не влияет на второй, поскольку события независимы. Теперь представьте другую игру. Если в первом броске выпадает орел, то считается, что во втором броске обязательно выпадает орел. Если в первом броске выпадает решка, то мы подбрасываем монету еще раз. Какова вероятность выпадения двух орлов подряд? Вероятность выпадения орла в первом броске составляет 50 %. А так как в этом случае автоматически считается, что во втором броске выпадет орел, вероятность выпадения двух орлов подряд составляет 50 % и отличается от результата в предыдущем примере. Выражаясь математическим языком, два события считаются независимыми друг от друга, если вероятность, что они произойдут вместе, вычисляется путем умножения вероятности возникновения каждого из них по отдельности. То есть если D1 и D2 – первый и второй броски соответственно, то P(D1 = орел, D2 = орел) = 50 % × 50 % = P(D1 = орел) × P(D2 = орел). В общем случае если даны два события A и B, то мы говорим, что они независимы, если P(A, B) = P(A) × P(B). Независимость можно объединить с обусловленностью. Например, мы говорим, что два события A и B независимы при обусловливании C, если после обусловливания C (т. е. фокусируясь на случаях, когда C происходит) A и B становятся независимыми, что математически записывается как A ⊥ B|C. Идея возможности устранения корреляции между двумя переменными путем обусловливания третьей называется условной независимостью. Рассмотрим несколько примеров. 7.1.1. Пример условной независимости времени прихода на работу Джейн и Джо работают в одной компании. Они часто опаздывают на работу, и обычно когда опаздывает один, то опаздывает и другой. Удивительно, но они незнакомы друг с другом и не имеют общих коллег, друзей или родственников. Единственное, что у них общего, – они живут за городом и ездят на работу на поезде. Время их прихода на работу корре-
234 Глава 7 Работа со сложными графами лирует, потому что поезда часто задерживаются и попадают в одни и те же железнодорожные инциденты. Если X и Y – переменные, определяющие событие опоздания Джейн и Джо соответственно, то X и Y сильно коррелируют. Однако если в определенный день железнодорожное сообщение, обозначенное переменной Z, работает хорошо (Z = 1), то опоздание Джейн не означает, что Джо тоже опоздает. Таким образом, при Z = 1 переменные X и Y независимы. Обратите внимание, что ситуация была бы иной, если бы, скажем, Джейн и Джо встречались на полпути на работу и приезжали вместе. Учитывая, что сообщение поездов работало хорошо, то когда Джейн опаздывала бы, Джо тоже опаздывал бы. То есть X и Y не были бы независимыми при обусловливании Z = 1. 7.1.2. Математический пример условной независимости Теперь рассмотрим другой пример условной независимости с более математическим оттенком. Выберем число Z от 1 до 10 наугад. Теперь выберем еще два числа, X1 и X2, которые являются результатом математических операций с Z: X1 = Z + δ1 и X2 = Z + δ2, где δ1 и δ2 – независимые и случайные величины, принимающие значения –1 и 1 с вероятностями 0,5 и 0,5 соответственно. Взгляните на рис. 7.5, где изображен этот процесс. X1 Z X2 Рис. 7.5. Пример условной независимости. Сначала выбирается случайное значение Z. Затем выбираются случайные значения X1 и X2, близкие к Z. Мы знаем, что X1 и X2 имеют близкие значения. Но, даже зная точное значение Z, знание точного значения X1 не дает никакой полезной информации Переменные X1 и X2 в этом примере будут иметь значения, близкие к Z, которая также находится между ними. Так что если я скажу, что X1 = 3, то это будет означать, что Z имеет значение либо 2, либо 4. Отсюда X2 может иметь только одно из трех значений: 1, 3 или 5. Переменные X1 и X2 не являются независимыми: зная значение одной, мы можем сделать обоснованные предположения о значении другой. Но история полностью меняется, если я скажу, что Z = 2. Знание значения X1 не поможет узнать больше о переменной X2, потому что единственная информация, которая нам нужна, – это то, что Z = 2. То есть X1 и X2 не являются независимыми, но при обусловливании по Z они становятся таковыми. Роль графов в условной независимости Условная независимость – это вероятностное, или статистическое, понятие. Оно определяется в терминах вероятностей, или частот.
Изменение корреляции между двумя переменными с учетом третьей 235 Но мы также работаем с графами, поэтому возникает вопрос: есть ли способ определить условную независимость переменных по структуре графа? Как мы увидим в этой главе, такой способ есть. Давайте вернемся к первому примеру, который представлен графом на рис. 7.6: здесь нет прямой причинно-следственной связи между Джейн и Джо. Тем не менее они связаны с плохой работой поездов. Единственный путь, соединяющий X и Y, проходит через Z. И мы определили, что X и Y независимы при обусловливании Z, не заглядывая в набор данных о процессе. Мы подозреваем, что некоторые условные независимости можно определить с помощью графа и без дополнительных данных. В этом разделе мы увидим, что когда переменная Z d-разделяет (понятие, которое будет определено позже) две переменные X и Y в графе (графовое понятие), переменные X и Y оказываются независимыми при обусловливании Z (статис­ тическое понятие). Рис. 7.6. От работы поездов зависит, придут ли Джейн и Джо на работу с опозданием. Их опоздания связаны. Но мы знаем, что когда поезда ходят без задержек, то опоздание одного не обязательно означает, что опоздает и другой Поезда ходят без задержек (Z) Джейн опаздывает (X) Джо опаздывает (Y) Впереди извилистая дорога С теоретической точки зрения, следующие разделы, вероятно, самые сложные в этой книге. Но они охватывают ключевые аспекты работы с графами. Если эта глава покажется вам слишком сложной, то пропустите ее. Вы сможете вернуться к ней, как только начнете работать с причинно-следственным анализом и вам понадобятся d-разделение и критерий обходного пути. И не забывайте, что вы можете задавать вопросы на форуме издательства Manning по этой книге (https://livebook.manning.com/forum?product=ruizdevilla&page=1). Начнем этот раздел с исследования условной независимости на простых графах, содержащих только три переменные. Затем, в разделе 7.1.6, мы формально определим d-разделение с любым числом переменных, его связь с условной независимостью и приведем несколько примеров. В разделе 7.2 мы увидим, как d-разделение помогает выбрать переменные для включения в формулу корректировки. 7.1.3. Разбиение причинно-следственной модели на независимые модули Мы знаем, что когда нужно проанализировать некоторое явление – скажем, влияние цены продукта на объем продаж, – в анализ должны
Глава 7 Работа со сложными графами 236 включаться только переменные, имеющие отношение к задаче, такие как сезонность, действия конкурентов и т. д. Это может показаться очевидным: нам не нужно учитывать все в этом мире, достаточно сосредоточиться только на релевантных переменных. Причинно-следственные системы можно разложить на более мелкие подсистемы и проанализировать их по отдельности. До сих пор мы рассматривали причинные модели с интуитивной точки зрения. Но в этом разделе мы познакомимся с формальным их определением. Затем мы увидим, как из этого определения естественным образом вытекает идея независимых систем, действующих вмес­ те. Наконец, мы закончим раздел анализом самых простых модулей в графе: цепей, искажающих факторов и коллайдеров. Начнем с определения причинно-следственной модели. Представьте, что мы Z работаем над задачей, представленной графом на рис. 7.7. В причинно-следственном анализе, когда мы рисуем граф, X Y подобный этому, мы неявно говорим, что у нас есть три переменные Z, X и Y, котоРис. 7.7. Типичный трехузрые связаны причинно-следственной свяловой граф с искажающим зью. Чтобы узнать значение X, нам нужно фактором. Z является исказнать значение Z, а чтобы узнать значежающим фактором для X и Y ние Y, нам нужно знать значения X и Z. Эти переменные являются главными персонажами, интересующими нас, и называются эндогенными. Мы также предполагаем, что эти переменные не изолированы и на них могут влиять другие факторы, которые нам неизвестны явно. Все эти неизвестные и ненаблюдаемые факторы мы группируем в переменные U: на Z влияют некоторые переменные UZ; „ на X влияют некоторые переменные U ; X „ на Y влияют некоторые переменные U . Y Эти ненаблюдаемые (нигде не хранящиеся, потому что недоступные или потому что мы решили, что они нам не нужны) переменные называются экзогенными и определяют границу между интересующими нас эндогенными переменными и остальным миром. Один из способов объединить всю эту информацию математически – сказать, что существуют три различные функции fX, fZ и fY, которые описывают взаимосвязь каждой из переменных с теми, от которых они зависят, называемых их родителями: „ Z := fZ(UZ); X := fX(Z, UX); Y := fY(X, Z, UY). В главе 6 мы предположили, что такие зависимости линейны: X = fX(Z, UX) = a + bZ + UX.
Изменение корреляции между двумя переменными с учетом третьей 237 В главе 4 мы смоделировали их, отделив экзогенную часть от эндогенной: X = fX(Z, UX) = fX(Z) + UX = E[Z|X] + UX – с использованием гибких моделей машинного обучения, которые не предполагают линейности. Тем не менее на практике мы никогда не узнаем точно, что это за функции, за редким исключением, поскольку они представляют законы природы, которые мы пытаемся обнаружить, но не имеем к ним прямого доступа. К счастью, их незнание не является препятствием для анализа, поскольку, как мы видели в предыдущих главах, мы можем вычислить ATE в любом случае. ПРИМЕЧАНИЕ. Утверждение, что X := fX(Z, UX), не говоря ничего больше о функции fX, – очень общее. В частности, точно так же можно записать случай, когда X не зависит от Z, взяв fX(Z, UX) = UX. Как отмечалось в разделе «Значение стрелки» в главе 3, рисуя стрелку, мы говорим, что здесь может иметь место причинно-следственная связь. Однако существование стрелки также включает случай, когда между переменными нет причинно-следственной связи. Фундаментальное предположение возникает, когда мы не рисуем стрелку между переменными. То же происходит с функциями: когда мы пишем X := fX(Z, UX), то тем самым говорим, что существует возможная причинно-следственная связь между Z (и UX) и X. Это не должно быть сюрпризом, потому что, как уже говорилось, рисование стрелки между переменными неявно говорит, что функция описывает их поведение. Также напомню, что символ := используется, чтобы подчеркнуть тот факт, что связь между переменными является отношением присваивания: значение Z (возможно) влияет на значение X, но значение X никогда не влияет на значение Z. Что DAG может рассказать о распределении вероятностей переменных? Выражаясь простым языком, DAG помогает вычислить вероятность наблюдения любой конкретной комбинации значений X = x, Z = z, Y = y из вероятностей других частей графа, как если бы это была игрушка Lego. Давайте посмотрим, как это сделать. Собрав данные для переменных X, Z и Y, как в табл. 7.1, мы получаем информацию о совместном распределении трех переменных P(X, Z, Y), т. е. информацию о частоте, с которой переменные принимают значения X = x, Z = z, Y = y одновременно. Применяя определение условной вероятности (итеративно, если необходимо), всегда можно разложить совместную вероятность на условные вероятности: P(X, Z, Y) = P(Y|Z, X)P(X, Z) = P(Y|Z, X)P(X|Z)P(Z).
Глава 7 Работа со сложными графами 238 Таблица 7.1. Данные о переменных Z, X, Y с размером выборки n X Z Y x1 z1 y1 ... ... ... xn zn yn Это разложение можно использовать с любыми тремя переменными (независимо от структуры DAG, которому они принадлежат). Когда в дополнение к данным используется причинно-следX Y ственная модель, такая как на рис. 7.8 Рис. 7.8. Простая структура (простая структура, в которой все влия­ с искажающим фактором. ние происходит только из искажаюZ является искажающим щего фактора), описывающая данные, фактором для X и Y то мы получаем больше информации о том, как рассчитать P(X, Z, Y). Уравнения, описывающие наш текущий случай: Z Z := fZ(UZ); X := fX(Z,UX); Y := fY(Z, UY). Главное отличие от рис. 7.7 в том, что, как показывает уравнение Y := fY(Z, UY), Y не зависит от X. Мы можем вычислить вероятность Y, зная X и Z, учитывая только значение Z: P(Y|X, Z)= P(Y|Z). Это происходит потому, что переменная Y|X = x, Z = z является результирующей переменной при выборе только тех случаев, когда X = x и Z = z. Таким образом, используя функциональную связь между Y и Z, можно выразить как Y|[X = x, Z = z] := fY(z, UY). Здесь мы просто заменили Z конкретным значением z в функции fY(Z, UY). Такое небольшое изменение может показаться незначительным. Но фактически здесь вместо переменной Z, которая может изменяться, используется ее фиксированное значение z. Что еще важнее, X = x не играет никакой роли в fY(z, UY)! Поэтому мы можем заключить, что Y|X, Z можно выразить как Y|Z = z, а это подразумевает, что P(Y|X, Z)= P(Y|Z). Таким образом, мы можем факторизовать совместное распределение вероятностей модели на рис.7.8 как P(X, Z, Y) = P(Y|Z, X)P(X|Z)P(Z) = P(Y|Z)P(X|Z)P(Z). В более общем смысле если обозначить родителей W (переменные, от которых напрямую зависит W) как pa(W), то P(X, Z, Y) =P(pa(Y))P(X|pa(X))P(Z|pa(Z)).
Изменение корреляции между двумя переменными с учетом третьей 239 Поскольку у Z нет родителей, pa(Z) – это пустое множество. Такое разложение не является специфическим для графа на рис. 7.8 и может применяться к любым общим графам. Если переменная Y напрямую зависит от переменных Z1, ..., Zl (Y имеет входящие стрелки от этих переменных), а не от других X1, ..., Xm (Y не имеет входящих стрелок от этих переменных), то Y := fY(Z1, ..., Zl, UY) и, более того, P(Y|Z1, ..., Zl, X1, ..., Xn) = P(Y|Z1, ..., Zl), и по определению P(Y|Z1, ..., Zl, X1, ..., Xn) = P(Y|pa(Y)). Это формальный способ выражения понятия модулей, введенного в начале раздела: мы можем вычислить совместную вероятность нашей системы, основываясь только на связях каждой переменной с ее родителями. Теперь мы можем рассмотреть абстрактное определение причинноследственной модели. Структурные причинно-следственные модели Структурная причинно-следственная модель (structural causal model, SCM) – это совокупность переменных U, V и набора функций F, где „ набор переменных U называется экзогенным и содержит переменные, которые в реальности влияют на нашу модель, но о них нет информации. Переменные U независимы друг от друга; набор V называется эндогенным и содержит интересующие нас „ переменные; „ набор функций F описывает отношения между переменными. Мы всегда можем сказать, как значение переменной зависит от ее родителей и связанной с ней экзогенной переменной x := fx(pa(x), Ux), где f – функция из набора F. Поскольку каждая переменная x зависит только от своих родителей pa(x), мы можем разложить совместную вероятность на множители P(V) = ΠxP(X|pa(X)). DAG – это (визуальное) представление причинно-следственной модели: всякий раз, рисуя DAG, мы предполагаем, что определяем причинно-следственную модель. Одних только данных недостаточно (еще раз) Мы видели, что каждый DAG описывает разложение совместного распределения вероятностей. Работает ли это наоборот? Увы, нет. Возможность разложить распределение вероятностей некоторых переменных не определяет направлений стрелок на графе. Рассмотрим случай двух переменных, X и Y. Мы всегда можем разложить P(X, Y) = P(Y|X) P(X) = P(X|Y) P(Y). Это означает, что нет никакого способа (если только не сделать дополнительных предположений), ос-
Глава 7 Работа со сложными графами 240 новываясь лишь на наборе данных с переменными X и Y, определить, какая из них влияет на другую: иначе говоря, X → Y или Y → X. В общем случае, с точки зрения причинности, X → Y отличается от Y → X. Первое означает, что можно изменить Y, изменив X, а второе – нет. Но с точки зрения распределения вероятностей нет никакого способа узнать, какой случай мы имеем; у нас есть только данные из совместного распределения P(X, Y). То есть мы снова видим, что нет возможности вывести причинно-следственную связь, основываясь только на данных. 7.1.4. Кирпичики DAG: факторизация распределений вероятностей Как уже отмечалось, нас интересует анализ распространения корреляции по различным путям в графе. Поэтому понимание того, как минимальные модули, составляющие граф, определяют разложение распределения вероятностей, будет очень полезно. Для любых трех узлов в пути может иметься только одна из следующих трех ситуаций: „ пути типа →→ или ←←, которые мы будем называть цепочками; „ пути типа ←→, которые мы будем называть развилками; „ пути типа →←, которые мы будем называть коллайдерами. Цепочки Представьте себе прогулку в дождливый день. По возвращении домой ваши мокрые ботинки могут испачкать пол. Используем следующие переменные: „ X обозначает, идет ли дождь; „ Y обозначает, мокрая ли земля; „ Z обозначает, пачкают ли ботинки пол. Этот процесс можно описать с помощью DAG и структурной причинно-следственной модели, представленных в табл. 7.2. Таблица 7.2. Цепочка в DAG X Y Z Уравнения: X := fX(UX), Y := fY(X, UY), Z := fZ(Y, UZ) В этом случае, чтобы узнать распределение Z, достаточно знать только значение Y, т. е. P(Z|Y, X) = P(Z|Y). Согласно этому уравнению, чтобы определить, испачкают ли ваши ботинки пол (Z), достаточно знать, мокрая ли земля (Y). При наличии этой информации подробности о погоде (X) становятся неактуальными. Таким образом, совместное распределение равно P(X,Y, Z) = P(Z|Y, X)P(Y, X) = P(Z|Y)P(Y|X)P(X).
241 Изменение корреляции между двумя переменными с учетом третьей Это означает, что Z условно независима от X при условии Y: Z ⊥ X|Y, (7.1) потому что . На языке причинно-следственного анализа мы говорим, что обусловливание Y фиксирует X и Z. Давайте проверим условие в уравнении (7.1) с помощью программного кода, создав и проанализировав синтетические данные. Процесс генерации в листингах 7.1 и 7.2 производится по следующим правилам: X := B(0,5), Y := X × B(0,3) + (1 – X) × B(0,7), Z :=Y × B(0,1) + (1 – Y) × B(0,9), где B(p) взято из распределения Бернулли с ожиданием p. Этот процесс является цепочкой, потому что Y определяется исключительно по X, а Z определяется исключительно по Y. Обратите внимание, что cor(X, Z) = 0,32 не равно нулю. Листинг 7.1. (R) Создание синтетического набора данных со структурой цепочки set.seed(1234) n <- 10000 x <- rbinom(n, 1, 0.5) y <- x * rbinom(n, 1, 0.3) + (1-x)*rbinom(n, 1, 0.7) z <- y * rbinom(n, 1, 0.1) + (1-y)*rbinom(n, 1, 0.9) cor(x, z) Листинг 7.2. (Python) Создание синтетического набора данных со структурой цепочки from numpy.random import seed, binomial from numpy import corrcoef seed(1234) n = 10000 x = binomial(1, 0.5, n) y = x * binomial(1, 0.3, n) + (1 - x) * binomial(1, 0.7, n) z = y * binomial(1, 0.1, n) + (1 - y) * binomial(1, 0.9, n) corrcoef(x, z)[0][1] Однако при условии y = 1 или y = 0 корреляция становится близкой к нулю: cor(X, Z | = Y = 1) = 0,007 и cor(X, Z | = Y = 0) = 0,015 (результаты получены в R), как показывает код в листингах 7.3 и 7.4, что подтверждает связь в уравнении 7.1.
Глава 7 Работа со сложными графами 242 Листинг 7.3. (R) Условная корреляция X и Z при заданном Y print(cor(x[y == 1], z[y == 1])) print(cor(x[y == 0], z[y == 0])) Листинг 7.4. (Python) Условная корреляция X и Z при заданном Y print(corrcoef(x[y == 1], z[y == 1])[0][1]) print(corrcoef(x[y == 0], z[y == 0])[0][1]) Развилки Рассмотрим процесс, показанный в табл. 7.3. В этом случае X и Y могут быть независимыми (вспомните все примеры ложных корреляций), но, учитывая значение Z, они таковы: при Z = z значение X не зависит от Y, поскольку X := fX(z, UX) (и аналогично для Y). Это подразумевает, что P(X|Z, Y) = P(X|Z). Таблица 7.3. Развилка в DAG Уравнения: X := fX(Z, UX), Y := fY(Z, UY), Z := fZ(UZ) Z X Y Таким образом, , откуда вытекает, что X и Y условно независимы при заданном значении Z: X ⊥ Y|Z. (7.2) На языке причинно-следственных связей мы говорим, что обусловливание Z фиксирует X и Y. Возможно, вам интересно, почему я назвал эту структуру развилкой, а не искажающим фактором. Причина в том, что, как будет показано ниже, не все развилки являются искажающими факторами. Например, на рис. 7.9 Z является развилкой между X и Y, но не искажающим фактором, потому что Z не является причиной ни одного из них. P Z M X Q N Y Рис. 7.9. Пример развилки, которая не является искажающим фактором. Z – это развилка, но она не влияет напрямую на M и N и поэтому не является искажающим фактором. Эта структура известна в литературе по причинно-следственному анализу как M-структура (потому что напоминает букву M)
Изменение корреляции между двумя переменными с учетом третьей 243 Давайте проверим условие в уравнении 7.2 с помощью кода, сгенерировав и проанализировав синтетические данные. Процесс генерации в листингах 7.5 и 7.6 производится по следующим правилам: Z := B(0,5); Y := Z × B(0,3) + (1 – Z) × B(0,7); X :=Z × B(0,3) + (1 – Z) × B(0,7). Этот процесс является развилкой, потому что Y и X определяются исключительно влиянием Z. Обратите внимание, что cor(X, Y) = 0,17 не равна нулю. Листинг 7.5. (R) Создание синтетического набора данных со структурой развилки z <- rbinom(n, 1, 0.5) y <- z * rbinom(n, 1, 0.3) + (1-z)*rbinom(n, 1, 0.7) x <- z * rbinom(n, 1, 0.3) + (1-z)*rbinom(n, 1, 0.7) cor(y, x) Листинг 7.6. (Python) Создание синтетического набора данных со структурой развилки z = binomial(1, 0.5, n) y = z * binomial(1, 0.3, n) + (1-z)*binomial(1, 0.7, n) x = z * binomial(1, 0.3, n) + (1-z)*binomial(1, 0.7, n) corrcoef(y, x)[0][1] Однако при условии z = 1 или z = 0 корреляция становится близкой к нулю: cor(X, Y | = Z = 1) = 0,013 и cor(X, Y | = Y = 0) = 0,015 (результаты получены в R), как показывает код в листингах 7.7 и 7.8, что подтверждает связь в уравнении 7.2. Листинг 7.7. (R) Условная корреляция X и Y при заданном Z print(cor(x[z == 1], y[z == 1])) print(cor(x[z == 0], y[z == 0])) Листинг 7.8. (Python) Условная корреляция X и Y при заданном Z print(corrcoef(x[z == 1], y[z == 1])[0][1]) print(corrcoef(x[z == 0], y[z == 0])[0][1]) Коллайдеры Случай коллайдера немного отличается от предыдущих (см. табл. 7.4). X и Y уже независимы, поэтому возникает вопрос: что происходит при фиксации Z? Давайте сначала поговорим о парадоксе Берксона.
Глава 7 Работа со сложными графами 244 Таблица 7.4. Коллайдер в DAG X Y Z Уравнения: X := fX(UX), Y := fY(UY), Z := fZ(X, Y, UZ) Представьте, что вы работаете в университете и хотите изучить связь между двумя баллами, полученными абитуриентами, поступающими в университет: балл на вступительных экзаменах (Site Acceptance Testing, SAT) и средний балл в аттестате (Grade-Point Average, GPA). Проще говоря, зачисляться будут абитуриенты со средним арифметическим этих двух баллов, превышающим определенный порог. Зачисленные абитуриенты находятся выше левой диагональной прямой на рис. 7.10. Однако абитуриенты с гораздо более высокими показателями – те, что находятся выше правой диагональной прямой, – почти наверняка предпочтут более популярные университеты. Таким образом, студенты, поступающие в ваш университет, находятся между этими двумя прямыми. Если бы вы как преподаватель, изучающий профили своих абитуриентов, имели доступ только к данным своего университета, то пришли бы к выводу, что GPA и SAT коррелируют отрицательно. Но если бы у вас была полная информация обо всех абитуриентах, то обнаружили бы, что они коррелируют положительно. Этот эффект называется парадоксом Берксона. Этот сценарий можно смоделировать с помощью DAG, как показано на рис. 7.11. Обусловливание определенного подмножества данных (в данном случае абитуриентов, зачисляемых в ваш университет) может изменить направление корреляции. Рис. 7.10. Пример парадокса Берксона: между баллами SAT и GPA существует положительная корреляция. Однако если рассматривать только абитуриентов, принятых в наш университет (представлены точками между диагональными прямыми), то эта корреляция станет отрицательной
245 Изменение корреляции между двумя переменными с учетом третьей Рис. 7.11. DAG зачисления абитуриентов в университет на основе среднего балла в аттестате (GPA) и результатов вступительных экзаменов (SAT). Квалификация — это коллайдер. Обусловливание коллайдером может изменить корреляцию между родителями этого коллайдера GPA SAT Квалификация Рассмотрим еще один очень похожий X Y пример. Предположим, вы бросаете два игральных кубика, X и Y, и вычисляете их сумму. Результаты броска двух Z=X+Y кубиков независимы: зная, что на кубике X выпала 2, вы не сможете сказать, какое число выпало на Y. Но если огра- Рис. 7.12. Сумма очков, выпавших на двух кубиках. Обничиться случаями, когда сумма очков условливание Z создает корна двух кубиках Z = 5, то, как показано реляцию между X и Y, которой в табл. 7.5, зная, что X = 2, вы сможете не было до обусловливания сказать, что Y = 3. Фактически X и Y становятся отрицательно коррелированными! Это объясняется тем, что Z является коллайдером, как показано на рис. 7.12. Таблица 7.5. Коллайдер X 4 3 2 1 Y 1 2 3 4 Z 5 5 5 5 Итак, если Z является коллайдером X и Y, то Z уже блокирует их. Это верно: отсутствие обусловленности Z оставляет их независимыми. Вот почему на языке причинно-следственного анализа мы говорим, что Z фиксирует их. Обусловливая Z, мы создаем новые пути для распространения корреляции и поэтому больше не можем гарантировать независимость X и Y. К каким распределениям относится условная независимость? В первом графе X и Y в общем случае не являются независимыми, и обусловленность Z делает X и Y зависимыми. Что это значит? Z X Y Когда мы говорим, что обусловленность Z не делает X и Y зависимыми, то Искажающий фактор имеем в виду, что для всех распределений вероятностей, совместимых с DAG, X и Y остаются независимыми. Но когда мы говорим, что X и Y не являются независимыми в общем случае, то это не означает, что X и Y всег-
246 Глава 7 Работа со сложными графами да остаются независимыми! Возможно, что есть некоторые распределения, совместимые с графом, в которых X и Y не являются независимыми. Но могут быть и другие, в которых они остаются независимыми! Например, второй DAG является частным случаем предыдущего. Напомню, что стрелки также моделируют случаи, в которых нет причинно-следственных связей. В этом случае обусловленность Z не делает X и Y зависимыми. Но оказывается, что X и Y были независимы с самого начала. Z X Y Реальная ситуация, о которой мы можем не знать: Z никак не влияет на X, поэтому в действительности Z не является искажающим фактором Аналогично обусловливание коллайдера не всегда открывает новый путь для распространения корреляции между переменными. В некоторых случаях это так, но в других – нет. Будучи осторожными, мы должны предположить, что обусловливание коллайдера откроет новый путь для распространения корреляции. Давайте посмотрим, как обусловливание коллайдера может сделать две переменные коррелированными, которые изначально таковыми не являются. Применим для примера такой процесс генерации данных: X := B(0,5); Y := B(0,5); Z := (1 – XY) × B(0,2) + XY × B(0,8). Этот процесс является коллайдером, потому что Y и X определяют Z. Процесс моделируется в листингах 7.9 и 7.10. Обратите внимание, что корреляция cor(X, Y) = 0,002 приблизительно равна нулю. Листинг 7.9. (R) Создание синтетического набора данных со структурой коллайдера x <- rbinom(n, 1, 0.5) y <- rbinom(n, 1, 0.5) z <- (1-x*y) * rbinom(n, 1, 0.2) + x*y*rbinom(n, 1, 0.8) cor(y, x) Листинг 7.10. (Python) Создание синтетического набора данных со структурой коллайдера x = binomial(1, 0.5, n) y = binomial(1, 0.5, n) z = (1 - x * y) * binomial(1, 0.2, n) + x * y * binomial(1, 0.8, n) corrcoef(y, x)[0][1]
Изменение корреляции между двумя переменными с учетом третьей 247 Однако при условии z = 1 или z = 0 корреляция не равна нулю: cor(X, Y | = Z = 1) = 0,33 и cor(X, Y | = Z = 0) = –0,30 (результаты получены в R), как показывает код в листингах 7.11 и 7.12. Листинг 7.11. (R) Условная корреляция X и Y при заданном Z print(cor(x[z == 1], y[z == 1])) print(cor(x[z == 0], y[z == 0])) Листинг 7.12. (Python) Условная корреляция X и Y при заданном Z print(corrcoef(x[z == 1], y[z == 1])[0][1]) print(corrcoef(x[z == 0], y[z == 0])[0][1]) 7.1.5. Что такое d-разделение? В разделе 6.2.1 мы говорили об аналогии, сравнивающей корреляцию с газом, который течет по трубопроводной сети, и об измерении объема газа, проходящего через определенный набор путей – причинных путей. С этой целью мы должны попытаться открывать и закрывать некоторые пути так, чтобы вся корреляция текла только через причинные пути. В нашей причинно-следственной модели мы можем закрывать и открывать пути, обусловливая определенные переменные. Например, мы видели в предыдущем разделе, что обусловливание промежуточных переменных в цепочках и развилках закрывает пути распространения корреляции. Однако обусловливание коллайдера может неожиданно открыть новые пути. Еще раз о причинных путях Напомню, что причинные пути между переменными X и Y – это те пути, которые представляют влияние X на Y. В графе такие пути начинаются в X и все стрелки имеют одинаковое направление X → ... → Y без развилок и коллайдеров. В этом разделе наша цель – устранить всякую корреляцию между двумя переменными, обусловливая промежуточные переменные. Чтобы добиться этого, нужно закрыть все пути, которые их связывают. Обусловливая переменную, мы можем закрыть один путь и одновременно открыть другой. Это значит, что мы должны быть внимательны к тому, какие переменные обусловливать. Давайте применим вновь обретенные знания и поработаем над упражнением, чтобы укрепить наше понимание. В этом упражнении мы снова используем граф из главы 6, показанный на рис. 7.13. Очевидно, что в общем случае X и Y не являются независимыми по многим причинам. Первая заключается в существовании причинного пути X → E → Y. Другая – присутствие искажающего фактора W в пути X ← Z ← W → Y. Какие переменные мы должны обусловить, чтобы сделать X и Y независимыми?
Глава 7 Работа со сложными графами 248 F X Z W Y Рис. 7.13. Граф с тремя путями от X к Y: причинный путь, путь с искажающим фактором и еще один – с коллайдером E Из X в Y есть три пути: „ X → E → Y; „ X ← Z ← W → Y; „ X → F ← Y. Первый путь – это цепочка, поэтому, чтобы закрыть его, достаточно обусловить E. Закрыть второй путь можно двумя способами: обусловить искажающий фактор W или «цепочечную» часть пути, т. е., обусловив Z, мы закроем часть пути X ← Z ← W и, следовательно, закроем весь путь. Третий путь уже закрыт, так как он содержит коллайдер. Обратите внимание: чтобы закрыть весь этот путь, достаточно обусловить одну конкретную переменную. По аналогии с газом, текущим по трубе, если перекрыть поток в любой части трубы, то газ перестанет течь по всей трубе. Проверьте свои знания Мы будем использовать граф (см. рисунок ниже), описывающий связь между разминочными упражнениями и травмами в спорте. Я настоятельно рекомендую освоить практику блокировки путей с помощью упражнений ниже. Помните, что одна и та же переменная может играть разные роли в разных путях: она может быть развилкой в одном пути и коллайдером в другом (подробности см. в упражнении 7.4). Тренер Уровень физической подготовки Мотивация команды Контактный вид спорта Генетика Нервно-мышечная усталость Предыгровая проприоцепция Предыдущие травмы Разминочные упражнения Болезни связок Слабость тканей Внутриигровая проприоцепция Травма Граф, описывающий связь между разминочными упражнениями и травмами в спорте
Изменение корреляции между двумя переменными с учетом третьей 249 Упражнение 7.1 Являются ли переменные «Генетика» и «Тренер» независимыми? 1 2 3 4 Если обусловить переменную «Уровень физической подготовки», то станут ли переменные «Генетика» и «Тренер» независимыми? Если обусловить переменную «Нервно-мышечная усталость», то станут ли переменные «Генетика» и «Тренер» независимыми? Если обусловить переменную «Предыдущие травмы», то станут ли переменные «Генетика» и «Тренер» независимыми? Если обусловить переменные «Внутриигровая проприоцепция» и «Предыдущие травмы», то станут ли переменные «Генетика» и «Тренер» независимыми? Ответы для упражнения 7.1 1 2 3 4 5 Да, потому что любой путь, соединяющий их, имеет коллайдер посередине. В общем случае нет. Переменная «Уровень физической подготовки» является коллайдером по отношению к «Генетике» и «Тренеру», поэтому ее обусловливание может создать корреляцию между ними. В общем случае нет. Если выбрать участников с определенным уровнем нервно-мышечной усталости, то у них будет определенный уровень физической подготовки. То есть обусловливание переменной «Нервно-мышечная усталость» изменяет распределение переменной «Уровень физической подготовки», которая, будучи коллайдером, может создать корреляцию между переменными «Генетика» и «Тренер». Да, они останутся независимыми. Несмотря на то что «Предыдущие травмы» является коллайдером, в пути «Тренер» → «Мотивация команды» → «Предыдущие травмы» ← «Контактный вид спорта» → «Внутриигровая проприоцепция» ← «Нервно-мышечная усталость» → «Генетика» есть еще один коллайдер. Поэтому даже если обусловливание переменной «Предыдущие травмы» создаст корреляцию между переменными «Мотивация команды» и «Контактный вид спорта», она будет отсекаться коллайдером «Внутри­ игровая проприоцепция». В общем случае – нет, потому что обусловливаются оба коллайдера, присутствующих в пути между переменными «Генетика» и «Тренер». Упражнение 7.2 1 2 Являются ли переменные «Разминочные упражнения» и «Тренер» независимыми? Какие переменные следует обусловить, чтобы сделать их независимыми? Для этого сначала определите все пути, которые их связывают, а затем определите переменные, обусловливание которых отсечет всю корреляцию между ними.
Глава 7 Работа со сложными графами 250 Ответы для упражнения 7.2 1 2 В общем случае нет. «Тренер» может влиять на «Разминочные упражнения» через «Мотивацию команды». Есть только два открытых пути, не содержащих коллайдеров: «Тренер» → «Мотивация команды» → «Разминочные упражнения» и «Тренер» → «Уровень физической подготовки» → «Предыгровая проприоцепция» → «Разминочные упражнения». Поэтому в достижении поставленной цели поможет одновременное обусловливание переменных «Мотивация команды» и «Уровень физической подготовки» или «Мотивация команды» и «Предыгровая проприоцепция». Упражнение 7.3 1 2 3 Почему переменные «Предыдущие травмы» и «Внутриигровая проприоцепция», как правило, не являются независимыми? Если вы решили обусловить переменную «Мотивация команды», то какие еще переменные нужно обусловить, чтобы сделать независимыми переменные «Предыдущие травмы» и «Внутриигровая проприоцепция»? Существуют ли другие комбинации переменных, обусловливание которых сделает независимыми переменные «Предыдущие травмы» и «Внутриигровая проприоцепция»? Ответы для упражнения 7.3 1 2 3 Потому что имеются искажающие факторы, такие как «Мотивация команды» и «Контактные виды спорта». «Мотивация команды» закрывает один путь, но есть еще один путь, который нужно закрыть: «Предыдущие травмы» ← «Контактный вид спорта» → «Внутриигровая проприоцепция», поэтому нужно также обусловить «Контактный вид спорта». Да. Чтобы закрыть один путь, всегда нужно обусловливать «Контактный вид спорта», но другой путь можно закрыть несколькими способами. Если не обусловить «Мотивацию команды», то нужно обусловить «Разминочные упражнения». В противном случае путь «Предыдущие травмы» ← «Мотивация команды» → «Разминочные упражнения» → «Внутриигровая проприоцепция» останется открытым. Но если обусловить «Разминочные упражнения», то откроется путь «Предыдущие травмы» ← «Мотивация команды» → «Разминочные упражнения» ← «Предыгровая проприоцепция» ← «Уровень физической подготовки» → «Нервно-мышечная усталость» → «Внутриигровая проприоцепция». Таким образом, если дополнительно обу­ словить «Нервно-мышечную усталость», то будет закрыт этот путь и в то же время закроется другой путь, остававшийся открытым: «Предыдущие травмы» ← «Мотивация команды» ← «Тренер» → «Уровень физической подготовки» → «Нервно-мышечная усталость» → «Внутриигровая проприоцепция».
251 Изменение корреляции между двумя переменными с учетом третьей Упражнение 7.4 Какую одну переменную на следующем рисунке следует обусловить, чтобы X и Y стали независимыми? M Граф для упражнения 4. Это М-структура, описанная выше, но с дополнительными стрелками, начинающимися в Z. Z является одновременно и коллайдером, и искажающим фактором, в зависимости от пути перехода между X и Y N Z X Y Ответ для упражнения 7.4 В этом случае невозможно сделать независимыми X и Y, обусловив только одну переменную. Поскольку здесь имеется искажающий фактор, X ← Z → Y, нужно обусловить Z. Но затем, поскольку Z является коллайдером в пути M → Z ← N, обусловливание Z открывает этот путь. 7.1.6. Определение d-разделения Представьте сложный граф со множеством узлов и путей. Выберем два узла, которые назовем X и Y. В графе есть множество путей, связывающих эти узлы. Некоторые пути начинаются с входящих стрелок в X, например X ← ..., а другие с исходящих, например X → .... Нас интересуют только те пути, которые в конечном итоге заканчиваются в Y (... → Y), потому что именно они участвуют во влиянии X на Y. Поэтому мы можем забыть о путях, таких как X ← ... ← Y. Любой путь, заканчивающийся в Y, попадет в одну из трех следующих категорий. „ Путь начинается в X и сохраняет одно и то же направление, пока не достигнет Y: X → ... → ... → Y. Это причинные пути между X и Y, через которые изменение значения X повлияет на Y. При желании мы можем закрыть путь, обусловив любой промежуточный узел. „ Путь начинается в X, но где-то на полпути появляется обратная стрелка, входящая в переменную Z. Такая переменная становится коллайдером: X → ... → Z ← .... По такому пути корреляция не распространяется. Обусловив этот коллайдер, можно открыть путь. „ Путь начинается в X: X ← .... Если путь заканчивается в Y, то, значит, где-то он имеет развилку в Z: X ← ... ← Z → ... → Y. По этому пути может распространяться ложная корреляция, поэтому при оценке причинно-следственной связи желательно его заблокировать. Предыдущая классификация подготавливает почву для определения d-разделения. Идея заключается в том, что набор переменных Z d-разделяет X и Y, если при обусловливании этих переменных Z отсекается вся корреляция между X и Y.
Глава 7 Работа со сложными графами 252 Потомки Потомком узла X считается любой узел, к которому существует причинный путь, начинающийся в X и заканчивающийся в Z, X → ... → Z. Потомки не могут быть искажающими факторами. Например, в графе X → M → Z1 ← C → Z2 ← Y узлы M и Z1 являются потомками, а Z2 – нет. Определение d-разделения При наличии двух узлов X и Y и пути p, соединяющего их, набор узлов M = {Z1, ..., Zp} d-разделяет X и Y, если выполняется одно из следующих условий: в середине цепочки есть узел Z: ... → Z → ...; „ некоторые узлы Z являются развилкой: ... ← Z → ...; „ ни один из узлов Z не является коллайдером или потомком коллай„ дера. Набор переменных M блокирует влияние X на Y, если блокирует все пути из X в Y. M N Z1 Z2 Рис. 7.14. Обусловливание потомка (Z2) коллайдера (Z1) может открыть новый путь для распространения корреляции (между M и N) Примечание 1 к определению Обратите внимание, что определение исключает потомков коллайдеров из узлов, которые могут заблокировать путь. Почему? Потомки коллайдера Z1 – это узлы, назовем их Z2, для которых причинный путь начинается в Z1 и заканчивается в Z2. Например, представьте случай, изображенный на рис. 7.14, где Z1 и Z2 сильно коррелируют. Более того, представьте крайний случай, когда Z2 является точной копией Z1. Обусловливание Z2 происходит так же, как и обусловливание Z1, потенциально открывая путь между M и N. Если Z1 и Z2 не одинаковы, но сильно коррелируют, то обусловливание Z2 даст нам информацию о значениях, которые принимает Z1, и в то же время потенциально откроет путь между M и N. Примечание 2 к определению Союз «или» в определении говорит нам, что если одно из условий не выполнено, то путь все равно можно заблокировать, если другое условие выполняется. Например, на рис. 7.15 можно заблокировать путь от X к Y множеством способов. Можно обусловить: „ M или N, или {M, N} одновременно, потому что они являются искажающими факторами;
253 Критерий обходного пути Т, потому что она находится в цепочке; „ комбинацию переменных из предыдущих пунктов: {T, M}, {T, N}, {T, M, N}. Но ничего не получится, если обусловить только Z, потому что тогда открывается новый путь. Однако можно обусловить Z, если вместе с ней обусловить другую переменную, закрывающую путь. Например, можно обусловить: „ „ „ „ {Z, М}, {Z, N}, {Z, M, N}; {Z, T}; {Z, T, M}, {Z, T, N}, {Z, T, M, N}. M T X N Z Y Рис. 7.15. Существует множество допустимых способов заблокировать корреляцию между X и Y Любое подмножество {T, M, Z, N} решит поставленную задачу, только если оно не состоит из единственной переменной Z. Пока обусловливается хотя бы одна из переменных {T, M, N}, путь от X к Y блокируется. d-разделение (d означает directional – направленное) является важным понятием, связывающим структуру графа с распределением вероятностей переменных. Как гласит следующая теорема, когда переменные d-разделены, они также условно независимы. Теорема Если граф G описывает процесс (распределение вероятностей) и есть набор переменных Z, которые d-разделяют переменные X и Y в G, то переменные X и Y оказываются независимыми при обусловливании Z. 7.2. Критерий обходного пути В предыдущем разделе мы увидели, как отключить всю корреляцию между двумя переменными X и Y, заблокировав все связывающие их пути. Но на самом деле это не то, что нам нужно для расчета причинно-следственного влияния. Если отсечь всю корреляцию между переменными воздействия и результата и они станут независимыми, то вычислять будет нечего! Нам же нужно рассчитать корреляцию между двумя переменными, но только ту, которая проходит через причинные пути. Нам не интересна корреляция, протекающая через искажающие факторы, потому что эта корреляция отражает не влияние X на Y, а другие общие причины, влияющие на X и Y одновременно.
Глава 7 Работа со сложными графами 254 Стратегия В общем случае для оценки причинно-следственной корреляции в любом графе должна использоваться следующая стратегия: „ исключить блокировку всех причинно-следственных связей; заблокировать все пути, содержащие искажающие факторы; „ „ постараться избежать открытия новых путей путем обусловливания коллайдеров. Ниже показаны три типа путей (с одним узлом в каждом). искажающий фактор медиатор X Y коллайдер Упрощенные представления типов путей между X и Y. Любой путь между X и Y является либо прямым, либо содержащим один из трех элементов: искажающий фактор, медиатор или коллайдер. В сложных графах могут иметься пути, включающие несколько элементов Вернемся к примеру о ценах на обувь (рис. 7.16), что приводился в начале главы. Какие переменные следует обусловить, чтобы заблокировать корреляцию, исходящую из коллайдеров, но при этом сохранить причинно-следственные связи? Социально-экономический контекст Складские запасы Цена Объем продаж Рис. 7.16. Социально-экономический контекст – единственный искажающий фактор, но он не наблюдается. Нам нужно найти альтернативу для корректировки. В противном случае мы не сможем оценить причинно-следственную связь между ценами на обувь и объемом продаж Мы не можем обусловить «Социально-экономический контекст», потому что у нас нет этих переменных! Но если обусловить «Складские запасы», то заблокируются все факторы, представленные «Социально-экономическим контекстом», и в то же время останется незаблокированной причинно-следственная связь «Цена» → «Объем продаж». Рассмотрим другой пример – упрощенную версию (составленную ради упражнения) спортивного графа из начала главы, изображенного на рис. 7.17.
255 Критерий обходного пути Тренер Уровень физической подготовки Мотивация команды Генетика Нервно-мышечная усталость Болезни связок Предыгровая проприоцепция Разминочные упражнения Внутриигровая проприоцепция Травма Рис. 7.17. Граф, описывающий связь между разминочными упражнениями и травмами в спорте Проверьте свои знания Упражнение 7.5 Какие переменные следует обусловить, чтобы заблокировать все пути с искажающими факторами и оставить открытыми причинные пути между «Разминочными упражнениями» и «Травмой»? 1 Перечислите все возможные пути (ориентированные и неориентированные), начинающиеся в узле «Разминочные упражнения» и заканчивающиеся в узле «Травма» (без циклов). 2 Из числа этих путей выберите все причинные пути. 3 Определите комбинации переменных (их больше одной!), обусловливание которых блокирует все пути с искажающими факторами и оставляет причинные пути открытыми. Ответы для упражнения 7.5 Решим упражнение шаг за шагом: 1 В графе есть следующие пути (имена переменных сокращены для удобства): «Разминка» → «Травма»; „ «Разминка» → «Внутриигровая» → «Травма»; «Разминка» ← «Мотивация» ← «Тренер» → «Физподготовка» ← „ «Генетика» → «Связки» → «Травма»; „ «Разминка» ← «Мотивация» ← «Тренер» → «Физподготовка» ← «Генетика» → «Усталость» → «Травма»; «Разминка» ← «Предыгровая» ← «Физподготовка» ← «Генетика» „ → «Связки» → «Травма»; „ «Разминка» ← «Предыгровая» ← «Физподготовка» ← «Генетика» → «Усталость» → «Травма». Единственные причинные пути: «Разминка» → «Травма» и «Размин„ 2
Глава 7 Работа со сложными графами 256 3 ка» → «Внутриигровая» → «Травма». Поэтому мы должны избегать обусловливания переменной «Внутриигровая проприоцепция», так как это закроет данный причинный путь. Нам нужно закрыть оставшиеся непричинныее пути: „ „ „ «Разминка» ← «Мотивация» ← «Тренер» → «Физподготовка» ← «Генетика» → «Связки» → «Травма»; «Разминка» ← «Мотивация» ← «Тренер» → «Физподготовка» ← «Генетика» → «Усталость» → «Травма»; «Разминка» ← «Предыгровая» ← «Физподготовка» ← «Генетика» → «Связки» → «Травма»; «Разминка» ← «Предыгровая» ← «Физподготовка» ← «Генетика» → «Усталость» → «Травма». Обратите внимание, что любой непричинный путь должен сначала пройти через узел «Тренер» или «Предыгровая проприоцепция». То есть мы можем заблокировать все непричинные пути, просто обусловив переменные «Тренер» и «Предыгровая проприоцепция». Аналогично любой непричинный путь проходит через узел «Нервно-мышечная усталость» или «Болезни связок», поэтому все непричинные пути также можно заблокировать, обусловив «Нервно-мышечную усталость» и «Болезни связок». Однако есть и другие варианты. Например, пути, проходящие через узел «Тренер», похожи на пути, идущие через узел «Мотивация команды». Следовательно, альтернативой будет обусловливание узлов «Мотивация команды» и «Предыгровая проприоцепция». Все то же самое можно сказать в отношении узла «Уровень физической подготовки». Обусловив его, мы заблокируем путь, который проходит через «Предыгровую проприоцепцию». Но «Уровень физической подготовки» – это коллайдер, и он открывает путь «Тренер» → «Физподготовка» ← «Генетика». Поэтому, заблокировав их, мы достигнем поставленной цели. Для этого просто нужно обусловить узел «Тренер» или «Мотивация команды». Подводя итог, можно сказать, что две другие альтернативы – это «Мотивация команды» вместе с «Уровнем физической подготовки» и «Тренер» вместе с «Уровнем физической подготовки». „ Существуют и другие комбинации узлов, блокирующие все непричинные пути. Мы нашли лишь самые короткие. Любые другие комбинации получаются путем добавления большего количества узлов к решениям, которые мы уже видели. Например, обусловливание сразу трех переменных – «Мотивация команды», «Предыгровая проприоцепция» и «Уровень физической подготовки» – тоже блокирует все непричинные пути. До сих пор мы фокусировались на наборах переменных для корректировки. Мы видели, что можно рассмотреть множество допустимых наборов. Но есть ли такие наборы, которые могут быть лучше других? Применив формулу корректировки к любому из них, мы получим несмещенные оценки причинно-следственной связи. То есть с точки зрения смещенности оценок все они одинаково хороши. Однако не-
Критерий обходного пути 257 которые статистически более эффективны (имеют меньшую дисперсию), чем другие. Несмотря на то что поиск статистически эффективных наборов для корректировки – весьма сложная тема, мы все же рассмот­рим ее, но позже. Анализируя результаты предыдущего упражнения, можно заметить, что путь, содержащий искажающий фактор Z для переменной воздействия X и результата Y, принимает одну из двух форм: „ „ X ← ... ← Z → ... → Y (в пути нет коллайдеров); X → ... → C ← ... ← Z → ... → Y или X ← ... ← Z → ... → C ← ... → Y, где C – коллайдер (т. е. в пути есть какой-то коллайдер). Нам не нужно беспокоиться о втором случае, потому что, несмотря на наличие искажающего фактора, в пути есть также коллайдер и такой путь закрыт для распространения корреляции. Путь с входящей стрелкой в X, X ← ... называется обходным путем (back-door path). Если обходной путь связывает X и Y, то он должен иметь развилку в какой-то точке. Соответственно, обходные пути могут создавать ложные корреляции между переменными X и Y, поэтому они требуют особого внимания с нашей стороны. Теперь мы можем, наконец, сформулировать критерий обходного пути. Критерий обходного пути Если для переменной воздействия X и переменной результата Y набор переменных Z удовлетворяет следующим условиям: „ блокирует все обходные пути; „ не содержит ни одного потомка X, – то мы говорим, что Z удовлетворяет критерию обходного пути. Обратите внимание, что критерий явно говорит об исключении потомков X, потому что их обусловливание приведет к блокировке причинных путей, таких как «Внутриигровая проприоцепция» в предыдущем примере. Неформально критерий обходного пути между X и Y сообщает, какие переменные нужно обусловить, чтобы отсечь все ложные корреляции и при этом не заблокировать любые причинные пути, через которые X влияет на Y. Другой способ выразить критерий обходного пути, близкий к предложенному выше объяснению, заключается в следующем. Пусть есть ориентированный ациклический граф (DAG) G, рассмотрим граф GX→ – тот же граф G, из которого удалены стрелки, выходящие из X (пример показан в табл. 7.6). Нетрудно заметить, что все оставшиеся пути, связывающие X и Y, – это обходные пути. То есть если множество переменных Z d-разделяет X и Y в графе без потомков X, то GX→ и Z не включают ни одного потомка X и Z удовлетворяет критерию обходного пути.
Глава 7 Работа со сложными графами 258 Таблица 7.6. Пример первоначального графа G и графа GX→ с удаленными стрелками Граф G Измененный граф GX→ искажающий фактор искажающий фактор медиатор медиатор X Y X коллайдер Y коллайдер 7.2.1. Важность критерия обходного пути Критерий обходного пути показывает, можно ли использовать набор переменных в формуле корректировки (которую мы узнали в главе 2) для расчета ATE. Теорема Предположим, что набор переменных Z удовлетворяет критерию обходного пути для переменной воздействия X и результата Y. В этом случае эффект вмешательства X = x можно рассчитать, применив формулу корректировки с переменными Z: . СОВЕТ. В предыдущих главах мы видели много вариаций формулы корректировки: модели машинного обучения в главе 4, оценки склонности в главе 5 и линейные модели в главе 6. Независимо от выбранного алгоритма, вам все равно придется выбирать переменные для корректировки. Критерий обходного пути поможет сделать это. Но помните, что выбор статистического метода не заменяет работу по определению переменных, требующих корректировки. Например, во втором примере в этой главе (рис. 7.3) для расчета причинно-следственного влияния X (разминка) на Y (травма) можно применить формулу корректировки с любым из следующих наборов переменных: „ «Тренер», «Уровень физической подготовки»; „ «Тренер», «Предыгровая проприоцепция»; „ «Болезни связок», «Нервно-мышечная усталость»; „ «Уровень физической подготовки», «Генетика»; „ «Уровень физической подготовки», «Мотивация команды»; „ «Нервно-мышечная усталость», «Слабость тканей»; „ «Предыгровая проприоцепция», «Мотивация команды».
Критерий обходного пути 259 Вы можете спросить, как выявить (определить) эти наборы? Один из способов – следовать процедуре в упражнении 7.5 (составление спис­ка всех путей, закрытие всех обходных путей и т. д.). К счастью, существует программное обеспечение, которое может сообщить, какие наборы переменных удовлетворяют критерию обходного пути. Один из примеров – веб-сайт Dagitty (www.dagitty.net/dags.html#): вы рисуете граф, а он вычисляет все наборы узлов, удовлетворяющие критерию обходного пути. В частности, в Dagitty можно найти пример влияния разминочных упражнений на вероятность травм. Теперь вы можете подумать: «Подождите: если компьютер может вычислить наборы переменных для использования, то зачем мы тратим столько времени и сил на знакомство с критерием обходного пути?» Не спешите с выводами! Попробую доказать, что понимание критерия обходного пути выгодно для вас. Возможно, вы обратили внимание, что в этой главе мы не анализировали никакие наборы данных. Обсуждение касалось только графов. И, основываясь только на графах (еще до того, как увидим какие-либо данные), мы в состоянии понять, можно ли оценить причинно-следственный эффект (с помощью формулы корректировки). Мы можем не только проверить возможность применения формулы корректировки, но и выбрать переменные, необходимые для оценки причинноследственных эффектов. Это огромное преимущество данного метода! Я хочу сказать, что критерий обходного пути может помочь выявить необходимые для анализа переменные еще до сбора каких-либо данных. Например, представьте ситуацию, когда нужно оценить некоторые причинно-следственные связи, но данные еще не собраны. Вы можете сесть с коллегами, нарисовать граф процесса, который вы будете анализировать, и заранее сказать, какие переменные нужно собрать. Представьте теперь, что после анализа графа вы пришли к выводу, что нет никаких корректирующих наборов, поэтому вы не можете применить формулу корректировки. Но если вы понимаете суть критерия обходного пути, то сможете рассмотреть альтернативные корректирующие наборы, которые не рассматривались ранее. Компьютер не сможет решить эту задачу (по крайней мере сейчас), потому что компьютер не способен понять контекст проблемы или вывести потенциальные причинно-следственные связи. Рассмотрим вымышленный пример поиска переменных, которые закрывают обходные пути. Представьте, что перед нами стоит задача выяснить влияние цены на объем продаж обуви. Как мы видели выше, цена может зависеть от многих факторов, таких как цены у конкурентов, маркетинговые кампании, экономическая ситуация в стране и т. д. У нас может не быть исторических значений этой информации, поэтому мы рассматриваем все это как ненаблюдаемые переменные, которые называем «Социально-экономическим контекстом». В этой ситуации (представлена слева в табл. 7.7) мы не можем оценить причинно-следственное влияние, поскольку существуют факторы, которые не можем учесть.
Глава 7 Работа со сложными графами 260 Чтобы получить более полное понимание, мы спрашиваем у сотрудников отдела ценообразования, как устанавливаются цены. Они говорят нам, что цены определяются в середине недели в зависимости от объема нераспроданной обуви. Они повышают цену, если считают, что все будет распродано к концу недели. Таким образом, переменная «Складские запасы» – это единственная информация, на основе которой устанавливается цена на обувь. Это хорошие новости! Теперь мы оказываемся в ситуации, которая показана в центре в табл. 7.7: переменная «Складские запасы» закрывает все обходные пути, поэтому, скорректировав ее, мы можем вычислить искомый причинно-следственный эффект. К сожалению, мы оказались слишком оптимистичными. В разговорах с сотрудниками IT-отдела мы выяснили, что они не хранят переменную «Складские запасы» ни в одной базе данных. У нас снова проблемы, потому что мы так и не закрыли обходной путь. Подумав еще немного, мы приходим к выводу, что переменная «Складские запасы» зависит только от еженедельных заказов на поставку новой обуви и объема продаж на прошлой неделе. Обе эти величины могут зависеть от социально-экономического контекста. Имея эти две переменные, как показано справа в табл. 7.7, нам даже не нужно рассчитывать «Складские запасы». Мы можем скорректировать их и тем самым закрыть обходной путь. Но если имеется только одна из переменных или не имеется ни одной, то мы не сможем оценить причинно-следственный эффект. Таблица 7.7. Различные этапы поиска переменных для закрытия обходного пути Социально-экономический контекст Цена Объем продаж Зависимость объема продаж от цены Мы не можем оценить причинно-следственный эффект Социально-экономический контекст Складские запасы Цена Социально-экономический контекст Заказы на поставку Объем продаж Складские запасы – ключ к решению Мы можем оценить причинно-следственный эффект, скорректировав переменную «Складские запасы» Объем продаж на прошлой неделе Складские запасы Цена Объем продаж Преодоление недостатка информации о складских запасах Мы можем оценить причинно-следственный эффект, если у нас будут переменные «Заказы на поставку» и «Объем продаж на прошлой неделе»
261 Хорошие и плохие наборы корректируемых переменных 7.3. Хорошие и плохие наборы корректируемых переменных Критерий обходного пути помогает узнать, какие переменные следует корректировать в различных ситуациях. Давайте теперь рассмотрим несколько примеров из статьи «A Crash Course in Good and Bad Controls» (2022) Карлоса Чинелли (Carlos Cinelli), Эндрю Форни (Andrew Forney) и Джуды Перла (Judea Pearl). Если вам интересно что-то еще, то ознакомьтесь с этой статьей! Примеры моделирования и анализа хороших и плохих наборов корректируемых переменных Моделирование хороших и плохих наборов корректируемых переменных – отличное упражнение, чтобы убедиться в результатах, которые мы объясняем. Я собирался написать свой код для моделирования, но оказалось, что люди из группы Dive into Causal Machine Learning (https://d2cml-ai.github.io/d2cml.ai/) уже сделали это на R (https://mng. bz/V2mr) и Python (https://mng.bz/x6Aq). 7.3.1. Хорошие наборы корректируемых переменных В любом из примеров в табл. 7.8, обусловливая Z, мы блокируем единственный обходной путь, поэтому Z – это набор переменных для корректировки, отвечающий критерию обходного пути. Таблица 7.8. Хорошие наборы корректируемых переменных 1: корректировка по набору Z дает несмещенные оценки причинно-следственного влияния X на Y Z U X Y U Z Z X X Y Y То же относится к примерам в табл. 7.9, где мы добавили дополнительную переменную M. Таблица 7.9. Хорошие наборы корректируемых переменных 2: корректировка по набору Z дает несмещенные оценки причинно-следственного влияния X на Y Z X U M Y U Z X Z M Y X M Y
Глава 7 Работа со сложными графами 262 7.3.2. Нейтральные наборы корректируемых переменных Примеры в табл. 7.10 демонстрируют наборы корректируемых переменных, которые называются нейтральными, потому что мы получаем несмещенные оценки и без корректировки этих переменных. Причина в том, что формально Z – это набор корректируемых переменных, отвечающих критерию обходного пути: Z не является потомком, и при обусловливании Z блокируются все обходные пути. Соответственно, в случае слева закрывается единственный обходной путь. А в случае справа закрываются все обходные пути, потому что их просто нет. Поэтому мы можем использовать Z для формулы корректировки. Таблица 7.10. Нейтральные наборы корректируемых переменных: корректировка или отказ от корректировки по набору Z не влияет на несмещенность оценки Z Z X Y X Y В то же время, обусловливая Z, мы блокируем путь, проходящий через Z, который уже заблокирован по умолчанию, поскольку через него не передается влияние от X к Y (Z не является искажающим фактором). Поэтому мы можем не выполнять корректировку по Z, так как все равно получаем несмещенные оценки. 7.3.3. Плохие наборы корректируемых переменных Два графа в табл. 7.11 содержат наборы переменных, плохие для корректировки. Они не удовлетворяют критерию обходного пути, поскольку являются потомками X. Оба могут вызывать эффект, известный как ошибка отбора информации (selection bias). В первом случае (собственно, и во втором случае тоже), если обусловить Z, мы изменим распределение Y. Поэтому, анализируя влияние X на Y при обусловленном Z, мы можем получить смещенный результат. Например, пусть X определяет воздействие некоторого препарата на определенную болезнь, Y – количество дней, которое требуется для выздоровления, а Z – количество дней, которое требуется пациенту, чтобы вернуться к работе. Если обусловить пациентов, которые вскоре вернулись к работе, и проанализировать эффект влияния препарата на них, то мы придем к выводу, что препарат работает лучше, чем если бы мы рассматривали всю выборку пациентов.
263 Хорошие и плохие наборы корректируемых переменных Таблица 7.11. Плохие наборы корректируемых переменных 1: корректировка по набору Z, как правило, дает смещенные оценки причинно-следственного влияния X на Y X Y X Y Z Z Биостатистики и эконометристы уже давно знают, что для анализа влияния переменной X на другую переменную Y может потребоваться корректировка некоторых переменных. Они также давно знают, что не все переменные пригодны для корректировки. Как мы видели выше, переменные, зависящие от переменной воздействия X (называемые переменными поствоздействия), могут вызывать смещение оценок или преуменьшать причинно-следственное влияние X на Y и потому не подходят для корректировки. До того, как была разработана теория обходного пути, было много дискуссий о правилах выбора переменных для корректировки. Одна из гипотез заключалась в том, что переменные предварительного воздействия всегда могут корректироваться. Переменные предварительного воздействия либо влияют на X, либо нет, но те, которые влияют, не зависят от X, потому что их воздействие происходит раньше во времени. Но все ли переменные предварительного воздействия можно использовать в формулах корректировки? Ответ – нет. Причина объясняется в примерах, показанных в табл. 7.12. Таблица 7.12. Плохие наборы корректируемых переменных 2: корректировка по набору Z, как правило, дает смещенные оценки причинно-следственного влияния X на Y Z X M U Y N M Z N Z Усиление смещенности X Y M-структура 1 X Y M-структура 2 В первом графе в табл. 7.12 мы не можем внести поправку на истинные искажающие факторы, потому что они не наблюдаются. Поэтому вопрос в том, следует ли вносить поправку на Z. Было бы ошибкой считать Z искажающим фактором, потому что он влияет на переменную воздействия. Но корректировка на Z не решает настоящую проблему: корректировку на U. Оказывается, корректировка на Z вызывает
264 Глава 7 Работа со сложными графами смещение оценок, вычисляемых линейными моделями. Объяснение причин требует времени, и если вы хотите понять этот эффект более подробно, то смотрите ссылки в конце главы. Второй граф известен как M-структура. Переменные M и N не наблюдаются, а переменная предварительного воздействия Z является как коллайдером, так и искажающим фактором. Поскольку Z – единственный искажающий фактор, то по логике вещей мы должны обусловить Z, но в этом случае откроется путь X ← M → Z ← N → Y. В этом случае нет возможности оценить причинно-следственный эффект. В третьем графе в табл. 7.12 нет никаких искажающих факторов. Обходной путь закрыт, так как он содержит коллайдер Z. Соответственно, корректировка по Z может внести смещение. 7.4. Возвращаясь к предыдущим главам Теперь, узнав больше о переменных, которые необходимо использовать в формулах корректировки, мы можем под другим углом рассмот­ реть некоторые идеи, изложенные в предыдущих главах. 7.4.1. Эффективные наборы корректируемых переменных В этой главе мы много раз видели, что для расчета конкретного причинно-следственного влияния X на Y можно применить формулу корректировки с различными комбинациями переменных. Вопрос в том, какие из них лучшие. Если имеется несколько кандидатов на вычисление несмещенных оценок, то лучшим будет тот, у которого меньше дисперсия (поэтому для получения хорошей оценки требуется меньше данных). Априорное знание наилучшего набора переменных корректировки все еще является активной областью исследований. В этой книге мы не увидим окончательного решения данной проблемы, только некоторые намеки. Дополнительную информацию вы найдете по ссылкам, перечисленным в конце главы. Чтобы получить представление о типе рассуждений, используемых при выборе хороших наборов переменных корректировки, воспользуемся примерами нейтральных наборов из более ранних примеров линейных моделей. Эти простые примеры помогут вам получить представление. В обоих случаях в табл. 7.13 мы получаем несмещенные оценки независимо от корректировки переменной Z. Вопрос: что лучше – корректировать Z или нет? Начнем с линейной модели для случая слева в табл. 7.13. Модель можно записать как Y := a + bX + cZ + εY . Если выполнить регрессию Y ~ X + Z, то членом остаточной ошибки будет εY. С другой стороны, если выполнить регрессию Y ~ X, то остаточной ошибкой будет сумма членов cZ + εY, которая имеет дисперсию Var(cZ + εY) = c2Var(Z) + Var(εY) > Var(εY), т. е. строго больше
265 Возвращаясь к предыдущим главам Var(εY). Таким образом, оценка первой регрессии имеет более низкую дисперсию и потому предпочтительнее второй. Таблица 7.13. Случаи нейтральных наборов корректируемых переменных с точки зрения смещения результата, но не дисперсии. Корректировка на предиктор, влияющий на результат, обычно уменьшает дисперсию оценок, тогда как корректировка на предиктор, влияющий на воздействие, может ее увеличить X Z Z Y X Предиктор, влияющий на результат Y Предиктор, влияющий на воздействие Обратимся к интуиции. Переменная Y имеет некоторый фоновый шум (член остаточной ошибки). Нам нужно оценить причинноследственное влияние X, которое скрыто среди этого шума. Таким образом, уменьшение фонового шума упростит оценку причинноследственного влияния со стороны X. А один из способов уменьшить шум – добавить другие предикторы для Y, в данном случае Z. Другой способ визуализации этой идеи – график, показанный в главе 1, который для удобства приводится на рис. 7.18. Слева изображено выборочное распределение некоторой переменной y. Справа – те же данные, разделенные по двум разным значениям x (горизонтальная ось), что дает условные распределения для разных x. Дисперсия на графике слева больше, чем дисперсия каждой из групп справа. Рис. 7.18. Дисперсия и условная дисперсия. Черные точки – средние значения для каждой группы. Слева – безусловное ожидание, а справа – условное ожидание каждой группы Давайте создадим синтетический набор данных. Листинги 7.13 и 7.14 моделируют две регрессии: Y ~ X и Y ~ X + Z для случая с предиктором результата. Как можно видеть в табл. 7.14 и табл. 7.15, коэффициент при переменной X в двух регрессиях схож, но стандартное отклонение
Глава 7 Работа со сложными графами 266 оказывается в три раза выше (0,3167 против 0,09373), когда мы не включаем Z в качестве предиктора. Листинг 7.13. (R) Добавление предиктора для улучшения оценки коэффициента при x set.seed(1234) n <- 100 z <- rnorm(n, sd=.5) x <- rnorm(n, sd=.5) y <- 3*x + 3*z + rnorm(n, sd=.5) summary(lm(y ~ x)) summary(lm(y ~ x + z)) Листинг 7.14. (Python) Добавление предиктора для улучшения оценки коэффициента при x from numpy.random import normal, seed import statsmodels.formula.api as smf import pandas as pd seed(1234) n = 100 z = normal(loc=0, scale=.5, size=n) x = normal(loc=0, scale=.5, size=n) y = 3*x + 3*z + normal(loc=0, scale=.5, size=n) df = pd.DataFrame({'x': x, 'y': y, 'z': z}) smf.ols(formula='y ~ x', data=df).fit().summary() smf.ols(formula='y ~ x + z', data=df).fit().summary() Таблица 7.14. Результаты модели (R) регрессии Y ~ X Переменная Оценка Стандартное отклонение –0,1581 0,1628 X 3,0122 0,3167 Y – – Свободый член Таблица 7.15. Результаты модели (R) регрессии Y ~ X + Z Переменная Оценка Стандартное отклонение Свободный член 0,08179 0,04874 X 3,08832 0,09373 Y 3,08051 0,09633 Эффективность в A/B-тестировании Граф слева в табл. 7.13 описывает частую ситуацию в A/B-тестировании или рандомизированных контролируемых испытаниях (RCT). Даже если переменная воздействия выбирается случайным образом, у нас
Возвращаясь к предыдущим главам 267 все равно могут иметься переменные – предикторы результата. Например, в RCT, где мы назначаем лечение для излечения определенной болезни, выздоровление пациента будет зависеть от его возраста, пола, места проживания и т. д. Поэтому все эти переменные являются предикторами результата. Они не являются искажающими факторами, потому что не используются для принятия решения о выборе лечения. Теперь мы знаем, что корректировка этих переменных не вносит смещения в наши оценки, однако она может пойти на пользу нашим оценкам, уменьшив дисперсию. На практике решение о необходимости корректировки таких переменных зависит от размера выборки и количества имеющихся прогностических переменных. Например, предположим, что у нас всего 10 пациентов и 20 прогностических переменных. В этом случае переменных больше, чем наблюдений, и со статистической точки зрения нежелательно включать их в линейную регрессию. Но если объем данных достаточно велик, то включение этих переменных уменьшит дисперсию. Узнать больше о ковариационной корректировке в RCT можно в специализированной литературе по этой теме. Теперь мы видим, что в случае с предиктором, влияющим на переменную воздействия (табл. 7.13 справа), лучше не контролировать Z. Переменная Y напрямую зависит только от X, поэтому мы можем записать Y := a + bX + εY. Однако мы можем также считать, что она зависит и от Z, но с коэффициентом, равным нулю: Y := a + bX + 0 × Z + εY. Обсуждение разницы в оставшихся членах ошибки между регрессиями Y ~ X и Y ~ X + Z не помогает в этом случае, потому что они обе имеют один и тот же член ошибки εY. Суть заключается в другом. Ковариаты X и Z могут быть сильно коррелированы. Представьте экстремальный случай, когда X является простой копией Z, X := Z. Тогда мы получаем случай мультиколлинеарности: переменные X и Z сильно коррелируют, поэтому регрессии трудно понять, какой эффект исходит от X, а какой от Z. Говоря математическим языком, при включении переменных Z в регрессию этот эффект транслируется в более высокую стандартную ошибку (стандартное отклонение коэффициента). В экстремальном случае X := Z существует бесконечное множество решений задачи регрессии, поскольку обе переменные в точности равны. Вследствие этого модель не способна дать уникальный набор коэффициентов регрессии. Листинги 7.15 и 7.16 демонстрируют эксперимент для двух регрессий. Обратите внимание, что шумовой член в определении X имеет стандартное отклонение 0,1. Чем меньше стандартное отклонение, тем больше корреляция между Z и X. Результаты (полученные в R – в Python должны получиться похожие результаты) показаны в табл. 7.16 и табл. 7.17. Ситуация обратна случаю с предиктором результата. Когда в регрессии участвует только X, стандартное отклонение составля-
Глава 7 Работа со сложными графами 268 ет 0,08915, а когда добавляется Z, то стандартное отклонение увеличивается до 0,41669 (более чем в четыре раза). Листинг 7.15. (R) Добавление воздействия, ухудшающего оценку коэффициента при x z <- rnorm(n, sd=.5) x <- z + rnorm(n, sd=.1) y <- 3*x + rnorm(n, sd=.5) summary(lm(y ~ x)) summary(lm(y ~ x + z)) Листинг 7.16. (Python) Добавление воздействия, ухудшающего оценку коэффициента при x z = normal(loc=0, scale=.5, size=n) x = z + normal(loc=0, scale=.1, size=n) y = 3*x + normal(loc=0, scale=.5, size=n) df = pd.DataFrame({'x': x, 'y': y, 'z': z}) smf.ols(formula='y ~ x', data=df).fit().summary() smf.ols(formula='y ~ x + z', data=df).fit().summary() Таблица 7.16. Результаты моделирования (R) регрессии Y ~ X Переменная Оценка Стандартное отклонение –0,06823 0,04665 X 3,03378 0,08915 Z – – Свободный член Таблица 7.17. Результаты моделирования (R) регрессии Y ~ X + Z Переменная Оценка Стандартное отклонение –0,06981 0,04608 X 2,27345 0,41669 Z 0,77902 0,41730 Свободный член 7.4.2. Оценка склонности В главе 5 мы увидели, что в ситуации, подобной той, что изображена на рис. 7.19, вместо корректировки всех переменных Z1, ..., Zk можно выполнить корректировку только переменной, называемой показателем склонности, которая рассчитывается как ... Z1 Zk PS(Z1, ..., Zk) = E[X|Z1, .., Zk] (напомню, что PS – это функция, зависящая от переменных Z). Поскольку корректировка показателя склонности является вариацией форX Y мулы корректировки, мы можем применять ее до тех пор, пока набор Z1, ..., Zk удовРис. 7.19. Множество наблюлетворяет критерию обходного пути. даемых искажающих факторов
Возвращаясь к предыдущим главам 269 Теперь мы видим, что показатель склонности можно интерпретировать как переменную, закрывающую все обходные пути. Это объясняет, почему достаточно скорректировать показатель склонности. Чтобы включить показатель склонности в граф как новую переменную, нужно описать ее связь с любой другой переменной. Для этого проведем стрелки от всех Z к PS, поскольку показатель склонности зависит от Z1, ..., Zk. Затем нужно связать PS с переменной воздействия (лечения) X. Напомню, что определение показателей склонности для конкретного пациента – это вероятность его выздоровления. Соответственно, мы можем провести стрелку от PS к переменной X. Мы также знаем, что при заданном значении показателя склонности распределение каждого из ковариатов Z одинаково для групп, под... Z1 Zk вергшихся и не подвергшихся воздействию (получавших и не получавших лечение). То есть при заданном значении PS переменные X и Z1, ..., Zk являются PS независимыми. Это все равно, что PS d-разделяет X и Z1, ..., Zk. Таким образом, оценки склонности, подобные той, что изображена на X Y рис. 7.20, можно представить как суммирование всей необходимой инфор- Рис. 7.20. Влияние искажаюмации из переменных Z, а обусловли- щих факторов на лечение перевание этой переменной PS – как блоки- дается через переменную показателя склонности PS ровку всех обходных путей. 7.4.3. И  снова: не включайте переменные в модель только потому, что они делают ее более точной В главе 5 мы говорили, что при создании модели оценки склонности не следует выбирать переменные только ради увеличения точности. Теперь у нас есть объяснение, помогающее лучше понять эту идею. Оценка склонности преследует двойную цель: проверить предположение о положительности для корректируемых переменных и применить формулу корректировки. Поэтому переменные, используемые для расчета оценки склонности, должны выбираться на основе критерия обходного пути. Если выбрать неправильные переменные, то можно получить сильно смещенные оценки ATE. Но это еще не все. В разделе 7.4 мы видели, что переменные, хорошо предсказывающие воздействие (лечение), но не влияющие на результат, могут увеличить дисперсию оценок ATE. Поэтому если выбирать переменные для оценки склонности, стремясь к максимальной точности, есть риск задействовать переменную, которая сделает оценку склонности очень точной, но увеличит неопределенность ATE. 7.4.4. Следует ли делать поправку на доход? В главе 5 было предложено упражнение по вычислению корректировки показателя склонности. В этом упражнении мы пытались оценить, повлияло ли выполнение теста катетеризации правых отделов сердца
Глава 7 Работа со сложными графами 270 (RHC) на выживаемость пациентов. Чтобы узнать подробно, какие переменные следует корректировать, мы должны поговорить с экспертом в этом вопросе. Ради упражнения мы принимаем как должное, что все переменные, представленные в наборе данных, являются искажающими факторами (кроме переменных лечения и результата, конечно). Поскольку большинство из нас не кардиологи, мы сосредоточимся на более знакомой переменной. Должны ли мы корректировать переменную «Доход»? Мы не дадим точного ответа, поскольку это зависит от особенностей получения данных. Но мы получим представление о том, как анализировать различные потенциальные сценарии. Уровень дохода зависит от многих факторов, включая генетику (природные навыки для работы) и социально-экономический статус, которые наследуются от семьи пациента. Кроме того, доход может влиять на лечение, потому что некоторые страховые планы покрывают лечение, а другие – нет. Предположим, что рис. 7.21 является надежным представлением процесса. Тогда если закрыть единственный обходной путь, обусловив доход, то мы получим беспристрастную оценку влияния лечения на выздоровление. Наследование от семьи Социально-экономический статус Генетика Доход Лечение Выздоровление Рис. 7.21. Несмотря на то что наследование каких-то особенностей от семьи является искажающим фактором, мы можем устранить его влияние на доход Однако если бы социально-экономический статус влиял на лечение еще какими-то другими способами, то задача была бы сложнее. Например, унаследованный социально-экономический статус может определять, где живет пациент. Это также влияет на то, в какую больницу пациент обратится за лечением. Если процесс соответствует графу на рис. 7.22, то мы должны скорректировать доход и место проживания. Эти две переменные закрывают все обходные пути. Если пропустить одну из них, то это может вызвать смещение оценок. Как мы уже говорили, критерий обходного пути помогает выявить переменные, которые необходимо корректировать. Но как применить этот критерий в линейных моделях? Оказывается, все, что говорилось в этой главе, применимо и к линейным моделям: чтобы найти общий эффект, нужно скорректировать переменные, закрывающие все обходные пути. А чтобы найти прямой эффект, нужно скорректировать переменные, закрывающие все обходные пути и все пути, содержащие медиаторы. Рассмотрим небольшой пример.
271 Возвращаясь к предыдущим главам Наследование от семьи Социальноэкономический статус Генетика Доход Рис. 7.22. Доход играет роль коллайдера, поэтому обусловливание только этой переменной может открыть новые пути распространения корреляции. Нам также нужно обусловить мес­ то проживания Место проживания Лечение Выздоровление В графе в табл. 7.18 (его смысл объясняется в главе 6) мы видим искажающие факторы, медиаторы и коллайдеры. Мы знаем, что если выполнить регрессию Y ~ X, то коэффициент при X не будет причинноследственным эффектом влияния X на Y, потому что есть искажающий, который может добавить смещение в нашу оценку. Прямой эффект равен e (см. уравнения, описывающие систему), а общий эффект равен e + cd. Общий эффект связан с оператором «do» следующим образом: E[Y|do(X = x)] – E[Y|do(X = x + 1)] = e + cd. Таблица 7.18. Объединение искажающих факторов, прямого эффекта, медиаторов и коллайдеров В уравнениях Z b a e X Y c Z := εZ, X := aZ + εX, M := cX + εM, Y := bZ + eX + dM + εY, где εZ, εX и εM не зависят друг от друга d M f g L Как получить общий и прямой эффекты из данных? Какие линейные регрессии следует использовать? Какие переменные контролировать? Обратите внимание, что в линейных моделях мы «контро-
272 Глава 7 Работа со сложными графами лируем» переменные, когда включаем их в регрессию в качестве ковариатов, стремясь найти правильный коэффициент в модели. Это немного отличается от «корректировки» переменных, что означает включение их в формулу корректировки с целью оценить причинноследственный эффект вмешательства. Чтобы измерить общий эффект в графе в табл. 7.18, нужно контролировать переменную Z, потому что Z блокирует все обходные пути. Однако чтобы оценить прямой эффект, нужно контролировать Z и медиатор M. Это утверждение верно в общем случае, как определяют две следующие теоремы. Теорема: общий эффект Если набор переменных Z блокирует все обходные пути в графе G и не содержит ни одного потомка X, то полученный коэффициент при X в регрессии Y ~ X + Z является несмещенной оценкой общего эффекта влияния X на Y. Прямой эффект оценивается аналогично. В этом случае нам также нужно заблокировать медиаторы. Как это выразить? Мы не можем сказать, что Z должна блокировать всех потомков X, потому что коллайдеры тоже могут быть потомками X, а их мы не должны контролировать. Разница в том, что коллайдеры могут быть потомками Y, тогда как медиаторы – нет. Поэтому для вычисления прямого эффекта нужно контролировать все пути, начинающиеся в X и заканчивающиеся в Y, независимо от того, содержат ли они потомков X, за исключением прямого пути. Мы также должны избегать включения коллайдеров и, следовательно, потомков Y (потенциальных коллайдеров). Формально эту идею можно сформулировать следующим образом. Теорема: прямой эффект Для данного графа G рассмотрим граф GX→Y – тот же граф, но без стрелки X → Y (без связи, которую мы хотим оценить). Если набор переменных Z 1 d-разделяет X и Y в этом новом графе GX→Y, 2 не содержит потомков Y (чтобы исключить коллайдеры), то полученный коэффициент при X в регрессии Y ~ X + Z является несмещенной оценкой прямого влияния X на Y. 7.5. Дополнительный инструмент для выявления причинно-следственных связей: do-исчисление Формула корректировки – не единственный способ определения причинно-следственного эффекта влияния переменной X на переменную Y, но, возможно, самый популярный. Однако в некоторых ситуациях нет возможности использовать формулу корректировки, зато можно
Для дальнейшего чтения 273 использовать другие инструменты и формулы и с их помощью вычислять величину вмешательства E[Y|do(X = x)]. Один из таких инструментов называется do-исчисление (do-calculus). С его помощью можно узнать, есть ли в конкретной задаче с графом G другой способ оценить причинно-следственную связь и какую формулу для этого следует применить. Цель этого раздела – не углубляться в do-исчисление, а просто упомянуть его и показать, как оно выглядит, чтобы вы могли узнать его, встретив в литературе. Для получения более полного представления я рекомендую прочитать статью Эндрю Хейсса (Andrew Heiss) по адресу www.andrewheiss.com/ blog/2021/09/07/do-calculus-backdoors. Для начала введем некоторые обозначения. Для данного графа G, GX← – это граф DAG, в котором сохранены все стрелки, входящие в X, и удалены все стрелки, исходящие из X. Аналогично GX→ – это граф DAG, в котором сохранены все стрелки, исходящие из X, и удалены все стрелки, входящие в X. do-исчисление включает набор из трех правил. Оказывается (некоторые теоремы это гарантируют), что любую возможную формулу для поиска причинно-следственной связи в графе можно найти с помощью этих правил. Однако даже их чтение требует усилий, поэтому помните, что наша цель не в том, чтобы разобраться в них, а в том, чтобы просто узнать, как они выглядят: „ правило 1 (вставка/удаление наблюдений): если X, W d-разделяют Y, Z в графе GX→ P(y|do(X=x), z, w) = P(y|do(X=x), w); „ правило 2 (обмен действиями/наблюдениями): если X, W d-разделяют Y, Z в графе GXZ→← P(y|do(X=x, Z=z), w) = P(y|do(X=x), z, w); „ правило 3 (вставка/удаление действий): если X, W d-разделяют Y, Z в графе GX→, Z(W)→ P(y|do(X=x, Z=z), w) = P(y|do(X=x), w), где Z(W) – множество узлов в Z, которые не являются предками ни одного узла в W в графе GX→ (если вы дочитали до этого предложения, то вы очень настойчивый человек!). 7.6. Для дальнейшего чтения Ключевой ссылкой для этой главы является статья «A Crash Course in Good and Bad Controls» Карлоса Чинелли (Carlos Cinelli), Эндрю Фрони (Andrew Froney) и Джуда Перла (Judea Pearl) (https://mng.bz/ Aa7E, пересмот­рена в 2022 году). В ней приводятся примеры, когда следует и не следует контролировать ковариаты, а также даются дополнительные ссылки.
274 Глава 7 Работа со сложными графами Рисунок 7.3 заимствован из статьи 2008 года «Reducing Bias through Directed Acyclic Graphs» Шрайера (Shrier) и Платта (Platt) (https://mng.bz/ZVvj). Если вы хотите глубже изучить поиск эффективных наборов корректируемых переменных, о котором рассказывается в разделе 7.4, я предлагаю прочитать статью «Graphical Criteria for Efficient Total Effect Estimation via Adjustment in Causal Linear Models» (2019) Леонарда Хенкеля (Leonard Henckel), Эмилии Перкович (Emilija Perkovich) и Марлоеса Х. Маатуиса (Marloes H. Maathuis). Они описывают графовые подходы к выбору хороших наборов корректируемых переменных для случая использования линейных моделей. Кроме того, статья «Efficient Adjustment Sets for Population Average Treatment Effect Estimation in Nonparametric Causal Graphical Models» (2019) Андреа Ротницки (Andrea Rotnitzky) и Эзекиля Смуклера (Ezequiel Smucler) обобщает практики, описанные в предыдущей статье, на модели любого типа. 7.7. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Рассмотрим цепочку X → Y → Z. Если обусловить Y, станут ли X и Z независимыми? Ответ в разделе 7.1.4. 2 Рассмотрим развилку X ← Y → Z. Если обусловить Y, станут ли X и Z независимыми? Ответ в разделе 7.1.4. 3 Рассмотрим коллайдер X → Y ← Z. Если обусловить Y, станут ли X и Z независимыми? Ответ в разделе 7.1.4. 4 Вспомните определение d-разделения. Ответ в разделе 7.1.6. 5 Как связаны d-разделение и независимость? Ответ в разделе 7.1.6. 6 Что такое критерий обходного пути? Объясните его смысл неформальным языком. Ответ в разделе «Критерий обходного пути». 7 Какова цель применения критерия обходного пути? Ответ в разделе 7.2. 8 Увеличивает ли дисперсию оценок корректировка на предиктор, влияющий на переменную воздействия? Ответ в разделе 7.6. 9 Можно ли использовать критерий обходного пути для оценки об-
Итоги 275 щего эффекта влияния в линейных моделях? Ответ в разделе 7.4.5. Итоги „ „ „ „ „ Главный вывод заключается в том, что одних только данных, как правило, недостаточно для построения графа. Также нужны знания предметной области. Обусловливание переменных в графе DAG может открывать и закрывать пути распространения корреляции. d-разделение – это графовый критерий, помогающий узнать, какие переменные нужно обусловить, чтобы сделать две переменные независимыми. d-разделение является основным компонентом критерия обходного пути: чтобы оценить причинно-следственную связь между двумя переменными X и Y, нужно закрыть все пути, содержащие искажающие факторы, и с осторожностью открывать новые пути при обусловливании коллайдеров. Критерий обходного пути помогает понять, какие переменные следует корректировать при применении формулы корректировки. Этот выбор должен быть сделан независимо от того, какая разновидность формулы корректировки используется: линейная модель, оценки склонности, машинное обучение и т. д. Применение критерия обходного пути позволяет заранее выяснить, какие переменные нам понадобятся для проведения причинно-следственного анализа.
8 Расширенные инструменты в библиотеке DoubleML В этой главе: „ „ „ оценка эффекта непрерывной переменной решения с помощью двойного машинного обучения; расчет доверительных интервалов для ATE; объединение двух оценок для получения лучшей оценки с использованием методов с двойной надежностью. В предыдущих главах мы рассмотрели базовую теорию и практику устранения влияния искажающих факторов с помощью формулы корректировки. В этой главе мы сделаем еще один шаг вперед и рассмотрим три отдельных метода, улучшающих точность и надежность оценок причинно-следственной связи. Эти методы – двойное машинное обучение, доверительные интервалы и методы с двойной надежностью – используются, когда точность имеет первостепенное значение. Эти подходы могут применяться, например, в финансовой сфере или в здравоохранении. В целом изучение данных методов требует некоторого времени, но их применение с использованием библиотек с открытым исходным
Расширенные инструменты в библиотеке DoubleML 277 кодом не вызывает затруднений. К счастью, методы, обсуждаемые в этой главе, уже реализованы в библиотеке DoubleML (https://docs. doubleml.org), доступной как для R, так и для Python. После знакомства с теоретическими основами мы посмотрим, как эффективно использовать эти методы с помощью данной библиотеки. ПРИМЕЧАНИЕ. Эта глава не требуется для понимания осталь- ной части книги. Поэтому если перечисленные темы не являются приоритетными или кажутся вам слишком техническими, то можете пропустить эту главу и вернуться к ней позже, когда появится необходимость поближе познакомиться с представленными здесь инструментами. Сначала я дам краткое определение трех методов, а затем перейду к описанию их деталей. Первый метод – двойное машинное обучение (double machine learning, DML). Обычно рекомендуется начинать анализ с линейных моделей из-за простоты их реализации и интерпретации. Линейные модели – ценная отправная точка, поскольку они помогают выявить потенциальные проблемы с данными и дают ориентир для оценки качества более продвинутых моделей. Однако по мере углубления в свой анализ вы можете столкнуться с ситуациями, когда линейных моделей недостаточно для отражения сложных взаимосвязей в данных. Нелинейности, например, требуют более гибких методов моделирования. В таких случаях в игру вступают модели машинного обучения. В главе 4 мы рассмотрели подходы S-learner и T-learner, которые для обработки нелинейностей объединяют машинное обучение с формулой корректировки. Теперь я представлю новый подход, называемый двойным машинным обучением. Этот прием имеет следующие преимущества по сравнению с предыдущими методами, которые мы видели: „ DML работает с непрерывными и бинарными переменными воздействия; „ DML использует машинное обучение для моделирования причинно-следственных связей, повышая точность причинно-следственных оценок; „ DML менее требователен к объему данных, т. е. для достижения того же уровня точности ему требуется меньше данных, чем другим методам; „ DML может оценивать разнородные эффекты воздействия. Другими словами, его можно использовать для оценки причинноследственных эффектов в различных подгруппах, например для оценки влияния разницы в цене для постоянных и случайных клиентов. В этой главе мы рассмотрим основной алгоритм, используемый для реализации DML, и увидим, как его применить с помощью пакета DoubleML.
Глава 8 Расширенные инструменты в библиотеке DoubleML 278 Второй метод – использование доверительных интервалов. Оценка причинно-следственных эффектов помогает принимать более обоснованные решения. То есть если оценка ATE (как разница в эффекте между новым и старым методами лечения) положительна, то мы придем к выводу, что новый метод лечения эффективнее и в будущем следует использовать именно его. Однако основывать наши решения только на величине ATE – не лучшая идея. Рекомендуется всегда вместе с причинно-следственными оценками дополнительно рассматривать доверительные интервалы. Проще говоря, мы получаем оценку ATE на основе имеющихся данных, но с другим набором данных мы бы получили другую оценку ATE. Поэтому в дополнение к любому результату, который мы получаем, мы также должны сообщить, насколько этот результат может измениться при изменении данных. И это именно то, что дают доверительные интервалы. Я объясню два основных подхода к расчету доверительных интервалов: с использованием статистической формулы, когда она доступна, и с использованием метода повторной выборки, который опирается на компьютерное моделирование. Мы здесь 5a. Укажите, какие задачи может решать ваша модель с помощью формулы корректировки. Выберите переменные для корректировки. Критерий обходного пути (глава 7). Проверьте предположение о положительности (глава 5). 5b. Оцените причинно-следственные эффекты с помощью соответствующей формулы корректировки. Переменная воздействия имеет непрерывный тип или бинарный? Непрерывный Ориентировочная или точная оценка? Ориентировочная Линейные модели (глава 6) Точная Двойное машинное обучение (эта глава) Бинарный Количество переменных для корректировки? Мало Прямое применение формулы корректировки (глава 2) Много Алгоритм T-learner (глава 4) Применение формулы корректировки Третий метод – использование оценок с двойной надежностью. В повседневной работе после получения первой оценки причинно-
Двойное машинное обучение 279 следственной связи обычно не остается возможности для дальнейшего ее улучшения. Но в некоторых сферах, таких как здравоохранение, точность имеет решающее значение. В подобных случаях можно попробовать использовать методы двойной надежности (doubly robust, DR). Эти инструменты позволяют объединять две доступные оценки параметра причинно-следственной связи для получения новой, более точной оценки. Когда следует использовать методы двойного машинного обучения В общем случае лучше избегать алгоритмов S- и T-learner и использовать формулу корректировки с методами двойного машинного обучения, которые менее требовательны к объему выборки и более гибкие. 8.1. Двойное машинное обучение Представим, что мы работаем в туристическом агентстве и хотим понять, как рост цены на авиабилеты влияет на продажи. Поскольку цена билета – это непрерывная переменная, то для оценки причинноследственных связей мы можем использовать линейные модели, как объясняется в главе 6. Однако по опыту мы знаем: немалые искажения вносит фактор сезонности, влияющий и на цену, и на продажи. Мы также знаем, что сезонность может давать сложные нелинейные эффекты как на цену, так и на продажи. Для объединения оценок причинно-следственных эффектов в непрерывных переменных с применением инструментов машинного обучения можно использовать двойное машинное обучение (double machine learning, DML). Мы начнем этот раздел с упрощенного подхода, называемого частично линейной моделью (partially linear model, PLM), где связь между ценой и продажами по-прежнему линейна, но остальные связи могут быть нелинейными. В более реалистичном и сложном сценарии разумно предположить, что влияние цен на билеты на продажи меняется в зависимости от сезона, т. е. связь между ценой и продажами не только нелинейна, но и зависит от сезона. Нам придется немного подождать, чтобы решить эту ситуацию, как объясняется в разделе 8.1.4. Сначала подумай, потом читай Можно ли использовать линейные модели в примере ценообразования? Ответ – да. Иногда линейной модели более чем достаточно. Например, чтобы определить, какое из двух туристических направлений более чувствительно к изменению цены, не нужна точная оценка причинно-следственной связи. Достаточно просто рассчитать линейный тренд для каждого направления и сравнить их.
Глава 8 Расширенные инструменты в библиотеке DoubleML 280 Основные предположения В этой главе мы будем предполагать, что имеем дело с ситуацией, изображенной на рисунке. Переменная D – это переменная воздействия или решения (decision), O – исход (outcome), а C – набор искажающих фактоC ров (confounders), которые нужно скорректировать. Напомню, что в выборе нужных переменных может помочь критерий обходного пути, о котором D O рассказывалось в главе 7. Если вам не нравится это абстрактное представ- Граф, используемый в этой ление, используйте предметную задачу главе. C обозначает векс аналогичной структурой и мыслите тор искажающих фактов ее терминах на протяжении всей гла- ров, D – решение, а O – исвы, например задачу ценообразова- ход (результат) ния для авиакомпании: „ „ „ D – цена билета, которая обычно является непрерывной переменной; O – количество проданных билетов; C – контекстные переменные, такие как сезонность и годовой уровень инфляции. Если говорить неформально, то идея DML заключается в следующем. В ситуации на рисунке, показанном во врезке «Основные предположения», цель состоит в том, чтобы на основе искажающих факторов C попытаться как можно лучше предсказать возможное воздействие D. Для этого рассчитываются остатки – фактические значения D минус предсказанные значения, – представляющие информацию, которая зависит от факторов, отличных от C, и не может быть предсказана на основе C. Эти остатки будут использованы позже. Затем создается вторая модель, предсказывающая исход O на основе искажающих факторов C. Снова рассчитываются остатки. И после того, как из D и O будет удалено влияние C, на основе оставшихся остатков можно оценить причинно-следственную связь, например применив метод линейной регрессии к двум наборам остатков и получив коэффициент, представляющий искомую причинно-следственную связь. Точный алгоритм DML показан на рис. 8.1. Далее я объясню метод DML на упрощенном примере с линейными моделями. Разобравшись с основной идеей, мы разработаем более сложное решение с моделями машинного обучения. И наконец, обсудим использование DML для расчета эффектов гетерогенного воздействия.
281 Двойное машинное обучение Обучить модель fD предсказывать D на основе C. Обучить модель fO предсказывать O на основе C. Рассчитать остатки rD = fD – D. Рассчитать остатки rO = fO – O. Оценить влияние D на O как коэффициент регрессии остатков. Рис. 8.1. Алгоритм DML. Основная цель этого алгоритма – сначала избавиться от влияния искажающего фактора C. Это делается с помощью двух прогностических моделей. То, что остается после их предсказаний, называемое остатками, используется для оценки причинно-следственного влияния D на O 8.1.1. Теорема FWL: предшественница DML DML опирается на известную в линейном моделировании теорему, открытую Фришем (Frisch), Во (Waugh) и Ловеллом (Lovell), которую сокращенно называют теоремой FWL. Рассмотрим ситуацию, когда все отношения на рис. 8.2 линейны. Как рассказывалось в главе 6, для оценки влияния D на O нужно контролировать вектор C. Поэтому мы должны выполнить линейную регрессию O ~ D + C, и полученный коэффициент при D в линейной модели будет описывать влияние переменной D. Но, как оказывается, есть другой способ рассчитать тот же коэффициент. Если удалить эффект влияния искажающего фактора C на D и на O, то тем самым мы удалим общий эффект искажающего фактора на систему и, используя оставшиеся значения, сможем оценить влияние D на O. Точнее говоря, используя набор данных, подобный тому, что приводится в табл. 8.1, мы можем выполнить шаги, перечисленные на рис. 8.2: 1 2 3 Выполнить регрессию D ~ C, чтобы оценить влияние искажающих факторов на D. Использовать полученную модель для прогнозирования в каждой строке в наборе данных. Рассчитать остатки (фактическая величина воздействия минус прогноз) , исключив тем самым влияние искажающих факторов на переменную воздействия. Повторить то же самое, используя переменную исхода O вместо переменной воздействия D. Выполнить регрессию O ~ C и использовать полученную модель для прогнозирования в каждой строке в наборе данных. Рассчитать остатки . Для полученных остатков , выполнить регрессию RO ~ RD. Полученный коэффициент будет представлять влияние D в O.
Глава 8 Расширенные инструменты в библиотеке DoubleML 282 Таблица 8.1. Доступные данные с рассчитанными мерами склонности O D C1 ... Cp o1 d1 с11 ... с1p ... ... ... ... ... on dn s ... сnp 1 n Выполнить линейную регрессию D ~ C. Выполнить линейную регрессию O ~ C. Рассчитать остатки rD = fD – D. Рассчитать остатки rO = fO – O. Оценить влияние D на O как коэффициент регрессии остатков rO ~ rD. Рис. 8.2. Стратегия DML, применяемая к линейным регрессиям для расчета коэффициента влияния D на O Звучит интересно, но как такое вообще возможно? Для простоты предположим, что C – это всего лишь одна переменная (не вектор) и модели не имеют точек пересечения (этого можно добиться путем стандартизации переменных). Тогда уравнения, описывающие граф, примут вид: D = aC + εD, O = βD + cC + εO, где εD и εO не зависят друг от друга. Нас интересует коэффициент β, представляющий оценку влияния воздействия на исход. На первом шаге выполняется линейная регрессия D ~ C, затем с помощью полученной модели вычисляется прогноз D̂ . При достаточном количестве данных прогнозы будут близки к истинным значениям D. Поэтому остаток Rd = D – D̂ будет близок к члену фактической ошибки εD. На втором шаге выполняется линейная регрессия O ~ C и определяется модель влияния искажающих факторов на исход. Так же, как в предыдущих главах, чтобы понять, что оценивает эта регрессия, нужно полностью выразить связь O с C, подставив значение D в уравнение: О = βD + сС + εО = β(аС + εD) + сС + εО = (аβ + с) С + βεD + εО. При выполнении регрессии O ~ C ошибку будет представлять уже не член εO (как в регрессии D ~ C), а скорее шумовой член βεD + εO. Поэтому, выполняя регрессию O ~ C и используя эту модель для прог­ нозирования значения O относительно C, мы получим прогнозы Ô с остатками RO = O – Ô , близкими к ошибке βεD + ε~O.
Двойное машинное обучение 283 То есть выполнение регрессии остатков RO ~ RD подобно выполнению регрессии остатка исхода βεD + ε~O по отношению к остатку воздействия εD: коэффициент регрессии будет приблизительно равен β – правильному значению. Сначала подумай, потом читай Похоже, что влияние переменной воздействия на исход в графе, представленном во врезке «Основные предположения», можно рассчитать двумя способами: „ „ использовать линейную модель, которая контролирует искажающие факторы; создать две линейные модели для прогнозирования воздействия и исхода соответственно, а затем выполнить регрессию с остатками этих двух моделей. Как вы думаете, какой алгоритм лучше? Ответ, возможно, удивит вас: оба алгоритма дают абсолютно одинаковый результат (в числовом выражении). Этот результат известен как теорема Фриша–Во–Ловелла (Frisch–Waugh–Lovell). Рассмотрим пример с использованием программного кода. Листинг 8.1. (R) Создание синтетических данных set.seed(1234) n <- 100 treatment_effect <- 5 confounder <- runif(n) treatment <- -3*confounder + rnorm(n) outcome <- -2*confounder + treatment_effect*treatment + rnorm(n) df <- data.frame(confounder, treatment, outcome) Листинг 8.2. (Python) Создание синтетических данных from numpy.random import seed, normal, uniform import pandas as pd import statsmodels.api as sm seed(1234) n = 100 treatment_effect = 5 confounder = uniform(size=n) treatment = -3*confounder + normal(size=n) outcome = -2*confounder + treatment_effect*treatment + \ normal(size=n) df = pd.DataFrame({ 'confounder': confounder, 'treatment': treatment, 'outcome': outcome })
Глава 8 Расширенные инструменты в библиотеке DoubleML 284 Далее можно выполнить линейную регрессию O ~ D + C, как показано в листингах 8.3 и 8.4, и получить результаты, показанные (в данном случае для R) в табл. 8.2. Интересующий нас коэффициент влияния переменной воздействия на исход в данном случае равен 4,9473069, что очень близко к истинному значению 5. Листинг 8.3. (R) Линейная оценка, контролирующая искажающие факторы coefficients(lm(outcome ~ confounder + treatment )) Листинг 8.4. (Python) Линейная оценка, контролирующая искажающие факторы model = sm.OLS(outcome, df[['treatment', 'confounder']]).fit() model.params Таблица 8.2. Коэффициенты регрессии O ~ T + D (в R) Коэффициенты Свободный член confounder outcome Оценки 0,1147036 –2,0984803 4,9473069 Теперь применим стратегию FWL. Результаты показаны в табл. 8.3: мы получили то же число (4,947307), что и с регрессией O ~ D + C (у вас результаты могут немного отличаться, что связано с ошибками округления). Листинг 8.5. (R) Линейная оценка с применением стратегии FWL res_y <- outcome - predict(lm(outcome~confounder, df), df) res_d <- treatment - predict(lm(treatment~confounder, df), df) coefficients(lm(res_y ~ res_d)) Листинг 8.6. (Python) Линейная оценка с применением стратегии FWL model_treatment = sm.OLS(treatment, confounder).fit() residuals_treatment = treatment - model_treatment.predict(confounder) model_outcome = sm.OLS(outcome, confounder).fit() residuals_outcome = outcome - model_outcome.predict(confounder) sm.OLS(residuals_outcome, residuals_treatment).fit().params Таблица 8.2. Коэффициенты регрессии O ~ T + D (в R) Коэффициенты Свободный член treatment Оценки –2,486900e-15 4,947307
Двойное машинное обучение 285 8.1.2. Нелинейные модели в DML Выше мы увидели, что теорема FWL фактически является альтернативным способом оценки влияния переменной в линейной модели. Но применим ли тот же алгоритм в случае с нелинейными моделями, полученными с применением машинного обучения? Ответ – да. Давайте посмотрим, почему. Частично линейная модель DML – это общая методика, имеющая множество вариаций. Для прос­ тоты мы будем работать с частично линейными моделями (partially linear model, PLM). Предположим, что результат можно записать как О = βD + g(С) + U. Здесь мы говорим, что связь между D и O линейна, но в отличие от линейных моделей связь между набором искажающих факторов C, влияющих на исход O, может иметь любой вид, в том числе и нелинейный, выражающийся через функцию g. Эта комбинация линейной зависимости от D, но нелинейной от C называется частично линейной (partially linear). Обратите внимание, что линейная связь с пере- менной воздействия означает, что ее влияние постоянно для всех ее значений. Например, рассмотрим оценку влияния цены конкретного продукта (D) на его продажи (O). Если увеличить цену на 1 доллар, то влияние на продажи (β) останется прежним, независимо от того, равна ли начальная цена 10 или 20 долларам. Член U представляет экзогенные ненаблюдаемые переменные, влия­ ющие на O. Чисто технически предположим, что при определенном значении D и C ожидание члена U равно нулю, и E[U|D, C] = 0. Если это предположение покажется вам странным или неестественным, то я предлагаю обратиться к главе 4, где о нем рассказывается более подробно. Также предположим, что связь между искажающими факторами C и переменной решения D может быть нелинейной и выражаться через функцию m D = m(C) + V, где V – экзогенные ненаблюдаемые переменные, влияющие на D. Аналогично предыдущему случаю с U, предположим, что E[V|C] = 0. Функции g и m неизвестны, и мы должны оценить их с помощью моделей машинного обучения. Также нам неизвестен параметр β, который описывает влияние переменной решения D на исход O. Это цель нашего анализа. Почему стратегия FWL работает в этом случае? Давайте разберемся, почему алгоритм, описанный на рис. 8.3 (тот же, что и во введении, и повторяется здесь только для удобства), который следует линейной версии (рис. 8.2), можно использовать для оценки причинно-следственных эффектов. Но сначала давайте выясним, откуда взялись символы «ML» в аббревиатуре DML.
Глава 8 Расширенные инструменты в библиотеке DoubleML 286 1. Обучить модель fD предсказывать D на основе C. 2. Рассчитать остатки rD = fD – D. 3. Обучить модель fO предсказывать O на основе C. 4. Рассчитать остатки rO = fO – O. 5. Оценить влияние D на O как коэффициент регрессии остатков rO ~ rD. Рис. 8.3. Шаги алгоритма DML Функция m – это условное математическое ожидание E[D|C]: E[D|C] = E[m(C)|C] + E[V|C] = m(C). Так как E[V|C] = 0 и при заданном значении C величина m(C) не меняется, следовательно, его ожидание равно m(C). В главе 4 мы узнали, что условные ожидания можно аппроксимировать с помощью моделей машинного обучения. Это означает, что на шаге 1 на рис. 8.3 мы можем аппроксимировать функцию m(C) путем подгонки модели машинного обучения fD, которая предсказывает D на основе C. Аналогично мы могли бы подумать, что функция g – это ожидание O, обусловленное C. Но это не так! Исход O зависит не только от C, но также от D, которая также зависит от C. Соответственно, E[O|C] = β E[D|C] + E[g(C)|C] = β m(C) + g(C). Итак, на шаге 3 на рис. 8.3 мы аппроксимируем значение β m(C) + g(C). Если fD является хорошим предиктором D (и, соответственно, хорошо аппроксимирует fD ≈ m(C)), а fO – хорошим предиктором O (и, соответственно, хорошо аппроксимирует fO ≈ βm(C) + g(C)), то поскольку у нас есть соотношения D = m(C) + V ≈ m(C) + V и O = βD + g(C) + U ≈ β m(C) + g(C) + U, остатки будут хорошими аппроксимациями значений rD = fD(C) – D ≈ V, rO = fO(C) – O ≈ β(D – m(C)) + U = βV + U. Итак, выполняя линейную регрессию rO ~ rD, мы аппроксимируем линейную регрессию βV + U ~ V, и коэффициент β как раз является нашей целью.
Двойное машинное обучение 287 Метод DML применим и к бинарным, и к непрерывным переменным решения Когда я впервые прочитал о DML в оригинальной статье Черножукова и др. (см. раздел 8.4), мне показалось странным, что он также применим к бинарным переменными решения D. Я привык видеть член ошибки в формулах с участием непрерывных переменных. Но когда D – бинарная переменная, спецификация D = m(C) + V не работает, если член ошибки V – непрерывная величина. Причина в том, что D принимает только два значения (0 или 1). Для заданного C член m(C) = E[D|C] является константой, поэтому V = D – m(C) может принимать максимум два разных значения. Затем я понял, что это не проблема. Нигде в статье не предполагалось, что член V обязательно должен быть непрерывным. Следовательно, спецификация DML работает и в случае, когда D – бинарная переменная. Эффективность оценки DML Когда дело доходит до оценок, часто возникает проблема определения количества данных, достаточного для получения надежных выводов. Метод DML демонстрирует эффективность по объему данных, то есть он способен дать надежную оценку причинно-следственной связи при наличии меньшего набора данных, чем другие методы, такие как T-learner, упомянутый в главе 4. Но откуда вытекает такой вывод? В этом разделе как раз мы рассмотрим обоснование данной концепции. Теоретически мы можем попробовать оценить размер выборки, необходимой для DML, экспериментальным путем, выполнив следующие шаги: 1 Создать несколько наборов данных с различными характеристиками. 2 Применить DML к каждому набору данных, используя различные размеры выборки. 3 Измерить разницу между предполагаемым и фактическим причинно-следственным влиянием. Анализируя результаты этих экспериментов, можно определить размер выборки, необходимый для достижения определенного уровня точности оценок. Однако важно отметить, что эти результаты будут описывать только лишь, насколько быстро DML работает в конкретных наборах данных, протестированных нами. Они не гарантируют аналогичного качества с другими наборами данных, с которыми мы можем столкнуться в будущем. Чтобы гарантировать качество работы DML с любым набором данных, одних экспериментов может быть недостаточно, и следует положиться на передовые статистические и математические доказательства. К счастью, статья, в которой представлен метод DML, пред-
Глава 8 Расширенные инструменты в библиотеке DoubleML 288 лагает такое доказательство, демонстрируя, что при разумных условиях DML быстро сходится к ожидаемому причинно-следственному эффекту. Это доказательство позволяет положиться на DML там, где конкретные экспериментальные сценарии невозможны. Что означает «быстрая сходимость»? Утверждение «DML быстро сходится» можно выразить более формально, как оценку скорости сходимости, кратной корню из n. В оставшейся части этого подраздела мы рассмотрим различные скорости сходимости и выясним, что означает сходимость, кратная корню из n, и почему она быстрее других типов сходимости. Начнем со скоростей сходимости. Последовательность 1, 1/2, 1/3, ... можно выразить как 1/n, где n – натуральное число. По мере увеличения n член 1/n уменьшается, поэтому последовательность стремится к нулю. Другая последовательность, стремящаяся к нулю: 1, 1/√2, 1/√3, ..., которую можно записать как 1/√n. Как показано на рис. 8.4, последовательность 1/n приближается к нулю быстрее, чем 1/√n. 1.00 y 0.75 conv_rate a=1 a = 1/2 0.50 0.25 5 10 x 15 20 Рис. 8.4. Скорость сходимости для последовательностей 1/n и 1/√n. Мы видим, что 1/n сходится к 0 быстрее, чем 1/√n. Скорость сходимости алгоритма говорит нам, насколько быстро этот алгоритм сходится к своей цели. В статистике и машинном обучении чем быстрее сходится оценка, тем меньше данных нужно В общем случае любая последовательность 1/na, где a > 0, стремится к нулю, когда n стремится к бесконечности. И чем выше a, тем быст­ рее последовательность стремится к нулю. Оценка, кратная корню из n, приближается к ожидаемому значению со скоростью 1/√n. Другими словами, если Tn – это оценка, полученная из выборки размером n, то дисперсия Tn имеет порядок 1/√n. В оригинальной статье по DML Черножуков и др. доказывают, что оценка DML имеет сходимость, кратную корню из n, при некоторых разумных предположениях. Доказательство технически сложное и требует продвинутых математических знаний. Более формальное утверждение вы найдете во врезке «Формальная теорема о сходимости DML для частично линейной модели». Почему мы считаем сходимость, кратную корню из n, быстрой? Чтобы оценить ее скорость, нужна точка сравнения. Рассмотрим одну из простейших оценок: выборочное среднее. В статистике центральная предельная теорема (central limit theorem, CLT) утверждает, что выборочное среднее приближается к своему ожидаемому значению со скоростью 1/√n. Кроме того, выборочное среднее – самое эффек-
289 Двойное машинное обучение тивное, т. е. эту скорость не могут превзойти другие несмещенные оценки. Следовательно, поскольку выборочное среднее демонстрирует сходимость, кратную корню из n, и не может быть улучшено, достижение сходимости, кратной корню из n, для метода DML является весьма благоприятным результатом! Для сравнения, S-learner и T-learner сходятся гораздо медленнее. Понять причины нелегко, но желающим проверить детали я предлагаю прочитать раздел «4.1 Plug-in bias and how to remove it» в статье Хайнса и др. (см. раздел 8.4). Центральная предельная теорема Центральная предельная теорема (central limit theorem, CLT) утверждает, что сумма достаточно большого количества слабо зависимых случайных величин имеет распределение, близкое к нормальному. Предположим, что у нас есть выборка X1, ..., Xn, где все переменные имеют одинаковое распределение с ожиданием E[Xi] = µ и дисперсией V[Xi] = σ2, независимы друг от друга и n достаточно велико. Тогда среднее значение выборки для достаточно большого n равно . В частности, стандартное отклонение выборочного среднего равно σ/√n. То есть выборочное среднее сходится к µ со скоростью 1/√n. Наконец, приведем формальное доказательство, показывающее, что оценка DML (для простоты только в случае PLM) сходится со скоростью, кратной корню из n. Формальная теорема о сходимости DML для PLM Если данные сгенерированы с использованием частично линейной модели (PLM) D = m(C) + V, O = βD + g(C) + U и используется частично линейный алгоритм оценивания DML для получения оценки, тогда с увеличением размера выборки n результирующая оценка ведет себя как нормально распределенная величина , где σ2 = E[U2V2]/E[V]2. В частности, поскольку стандартное отклонение равно σ/√n, оценка DML для PLM является состоятельной и эффективной. Дополнительные ссылки, где можно найти доказательство этой теоремы, см. в разделе 8.4.
290 Глава 8 Расширенные инструменты в библиотеке DoubleML 8.1.3. DML на практике DML и некоторые его вариации реализованы в библиотеке DoubleML на R и Python (https://docs.doubleml.org) в соответствии с оригинальной статьей о DML. Пакет DoubleML работает с популярными пакетами scikit-learn (https://scikit-learn.org/stable/) для Python и mlr3 (https://mlr3.mlr-org.com/) для R. Мы не будем рассматривать детали использования библиотеки, потому что хорошие руководства и примеры, показывающие их, можно найти на сайте проекта. Начните со страницы Workflow (https://docs. doubleml.org/stable/workflow/workflow.html), где описывается типичная последовательность шагов, которые необходимо выполнить для расчета причинно-следственной связи между двумя переменными. Документация содержит описание множества алгоритмов; тот, что описывается в этой главе, в документации к библиотеке называется частично линейной регрессией (partially linear regression, PLR). Несмотря на то что в названии упоминается только регрессия, этот метод может применяться для решения задач регрессии и классификации. За оценку причинно-следственной связи отвечает класс DoubleMLPLR (как в R, так и в Python). Он имеет два аргумента: „ ml_m: машинная модель для прогнозирования воздействия с учетом искажающих факторов (шаг 1 в 8.3); „ ml_l: машинная модель для прогнозирования исхода с учетом искажающих факторов (шаг 3 в 8.3). Более реалистичные примеры вы найдете во вводном руководстве по 401(k). Планы 401(k) – это пенсионные счета, спонсируемые работодателями. В руководстве изучается причинно-следственная связь регистрации в плане 401(k) с чистыми финансовыми активами (net_tfa). Чистые финансовые активы – это мера, вычисляемая как сумма остатков на счетах IRA (individual retirement account – индивидуальный пенсионный счет), остатков на счетах 401(k), текущих счетах, в сберегательных облигациях, других счетах с процентным доходом, других активах с процентным доходом, в акциях и паевых инвестиционных фондах за вычетом неипотечных долгов. В руководстве для оценки причинно-следственной связи планов 401(k) используется модель PLR, реализованная на Python (https://docs.doubleml.org/stable/examples/py_double_ml_pension.html) и на R (https:// docs.doubleml.org/stable/examples/R_double_ml_pension.html), в сочетании с различными моделями машинного обучения. Чтение документации DoubleML В процессе чтения документации DoubleML можно заметить, что она вводит несколько концепций и терминов, которые могут отличаться от привычных (в зависимости, конечно, от вашего предыдущего опыта работы). В этом подразделе мы рассмотрим процесс, описанный в документации, но с использованием концепций, обсуждаемых в этой книге. Мы не будем углубляться в сложные технические детали, потому что
Двойное машинное обучение 291 главная наша цель – научиться ориентироваться в документации и не чувствовать себя подавленными техническими деталями. Этот навык позволит вам без усилий использовать данный превосходный пакет. До сих пор мы говорили только о PLM. Однако библиотека DoubleML имеет инструменты для оценки многих видов причинно-следственных эффектов в широком диапазоне графов. Помимо PLM, также можно найти интерактивную регрессионную модель (interactive regression model, IRM), инструментальные переменные (instrumental variables, IV) и метод сравнения разностей (differences in differences, DiD). IRM будет объяснена в разделе 8.3, а IV и DiD – в последующих главах. DML – это лишь частный случай более общего подхода, называемого ортогонализацией. Ортогонализация – это метод, который берет существующие алгоритмы оценки, дополняет их методами машинного обучения и преобразует в алгоритмы оценивания со сходимостью, кратной корню из n. Метод ортогонализации представляет причинно-следственный эффект как решение уравнения, сформулированного относительно функции оценки (score function). Если вы знакомы с машинным обучением, то можете считать эту функцию оценки аналогом функции потерь. Для каждой комбинации DAG и причинных параметров существует определенная функция оценки. В документации вы часто будете сталкиваться с этими функциями оценки. Но пусть они вас не пугают! Их необязательно хорошо понимать, чтобы эффективно применять DoubleML. В документации также часто встречается термин помеха (nuisance). Он относится к вторичным функциям, необходимым для оценки причинного параметра, представляющего интерес. Например, оценка меры склонности – это функция, необходимая для применения формулы корректировки, но сама она не представляет особого интереса. Наша мера склонности считается функцией помехи. Наконец, имейте в виду, что эта библиотека пытается одновременно обрабатывать три типа смещений: „ смещение, вносимое искажающими факторами, устраняется алгоритмом DML; „ смещение переобучения – устраняется перекрестной проверкой; „ смещение, вызванное прогнозированием на основе одного и того же набора данных, устраняется с помощью перекрестного обучения. Предотвращение переобучения с помощью перекрестного обучения Метод DML чувствителен к переобучению. Причину можно понять, взглянув на рис. 8.3. Применяя DML, мы используем набор данных для обучения машинной модели, а потом используем прогнозы, полученные на том же наборе данных. Как объяснялось в главе 4, эта процедура может привести к переобучению. Решение проблемы заключается в применении перекрестного обучения (описанного в статье Черножукова и др.; см. раздел 8.4), что также объясняется в главе 4 (вернитесь к ней, чтобы освежить память).
292 Глава 8 Расширенные инструменты в библиотеке DoubleML Алгоритм перекрестного обучения, используемый в DML Далее перечислены шаги алгоритма двойного перекрестного обучения, используемого в DML: 1 Разделить набор данных на два набора данных одинакового размера D1, D2. 2 Обучить две машинные модели на наборе D1. 3 Использовать эти модели для прогнозирования на наборе D2 и вычислить коэффициент линейной регрессии. 4 Поменять D1 и D2 ролями. Вычислить окончательный коэффициент как среднее арифметическое двух линейных регрессий. Набор данных 1 Подобрать гиперпараметры и обучить модель fO: O ~ C. Подобрать гиперпараметры и обучить модель fD: D ~ C. Набор данных 2 Сделать прогноз на наборе данных 2: pD. Сделать прогноз на наборе данных 2: pD. Рассчитать остатки rO = pO – O. Рассчитать остатки rD = pD – D. Оценить влияние D на O в наборе данных 2 как коэффициент регрессии остатков rO ~ rD. Алгоритм двойного перекрестного обучения, используемый в DML. После завершения процесса необходимо поменять ролями наборы данных 1 и 2. Этот процесс можно обобщить до k-кратного перекрестного обучения, разбив данные на k наборов вместо двух Пакет DML поощряет использование перекрестного обучения (см. документацию по адресу https://docs.doubleml.org/stable/guide/ resampling.html). К счастью, DML упрощает реализацию и k-кратного варианта перекрестного обучения: достаточно передать аргумент n_folds = k (например, n_folds = 5, чтобы выполнить пятикратное перекрестное обучение) конструктору класса DoubleMLPLR. Настройка гиперпараметров Перед тем как обучать машинную модель на данных, нужно определить набор параметров, называемых гиперпараметрами (например, k в kNN [k ближайших соседей], параметр регуляризации в линейной регрессии и т. д.). К сожалению, плохой выбор гиперпараметров может привести к созданию плохой модели. На практике поиск хорошего набора параметров выполняется с помощью алгоритма подбора гиперпараметров: 1 Создать несколько возможных наборов гиперпараметров. 2 Провести перекрестную проверку для каждого из них. 3 Выбрать набор с наименьшей ошибкой.
293 Двойное машинное обучение Как включить подбор гиперпараметров в алгоритм DML с перекрестным обучением (см. врезку «Алгоритм перекрестного обучения, используемый в DML»)? Для этого нужно заменить пункт «Обучить две машинные модели на наборе D1» на «Подобрать набор гиперпараметров, а затем обучить две машинные модели на наборе D1». Например, согласно стандартному алгоритму перекрестного обучения, мы делим данные на две группы – назовем их A и B. Группу A используем для обучения модели и делаем прогнозы на данных из группы B. А в этом алгоритме мы подбираем гиперпараметры на наборе A, обучаем модель на A с выбранным набором гиперпараметров и делаем прогнозы на наборе B, как показано на рис. 8.5. Набор данных 1 Обучить модель fO: O ~ C. Обучить модель fD: D ~ C. Набор данных 2 Сделать прогноз на наборе данных 2: pO. Сделать прогноз на наборе данных 2: pD. Рассчитать остатки rO = pO – O. Рассчитать остатки rD = pD – D. Оценить влияние D на O в наборе данных 2 как коэффициент регрессии остатков rO ~ rD. Рис. 8.5. Двойное перекрестное обучение с подбором гиперпараметров применительно к алгоритму DML. После завершения процесса необходимо поменять ролями наборы данных 1 и 2 Подбор гиперпараметров реализован в классе DoubleMLPLR из пакета DoubleML. Чтобы воспользоваться этой возможностью, нужно создать список с наборами кандидатов в гиперпараметры и передать его в функцию tune. Синтаксис для R и Python можно найти в документации по адресу https://docs.doubleml.org/stable/guide/learners.html. К сожалению, процесс, описанный на рис. 8.5, может оказаться слишком трудоемким. То есть если k1 – это количество наборов для перекрестного обучения, k2 – это количество проверок в перекрестной проверке, а NC – количество наборов гиперпараметров для опробования, то придется обучить k1 × k2 × NC моделей для каждой из прогнос­ тических моделей (O ~ C и D ~ C). На практике допускается некоторая степень смещенности для сокращения времени вычислений. Например, DoubleML предлагает следующую альтернативу: 1 Выполнить тонкую настройку гиперпараметров для всего набора данных. 2 Запустить алгоритм DML с перекрестным обучением еще раз на всем наборе данных, используя оптимальные гиперпараметры, полученные на предыдущем шаге.
294 Глава 8 Расширенные инструменты в библиотеке DoubleML Этот процесс представлен на рис. 8.6. В этом случае достаточно обучить только k1 + k2 × N~C моделей. Весь набор данных Подобрать гиперпараметры модели fO: O ~ C. Подобрать гмперпараметры модели fD: D ~ C. Набор данных 1 Обучить модель fO: O ~ C. Обучить модель fD: D ~ C. Набор данных 2 Сделать прогноз на наборе данных 2: pO. Сделать прогноз на наборе данных 2: pD. Рассчитать остатки rO = pO – O. Рассчитать остатки rD = pD – D. Оценить влияние D на O в наборе данных 2 как коэффициент регрессии остатков rO ~ rD. Рис. 8.6. Более быстрая, но потенциально смещенная стратегия тонкой настройки, согласно которой сначала выполняется настройка гиперпараметров, а затем применяется алгоритм DML. Как обычно, роли наборов данных 1 и 2 следует поменять после первого прогона этого алгоритма Выбор стратегии для пакета DoubleML производится с помощью аргумента tune_on_folds функции tune: „ tune_on_folds = True выбирает несмещенную, но более требовательную к вычислительным ресурсам стратегию, описанную на рис. 8.5; „ tune_on_folds = False (значение по умолчанию) выбирает вторую стратегию, описанную на рис. 8.6, сокращая время вычислений за счет возможности появления некоторой смещенности. Также в вызов функции tune можно передать аргумент n_folds_tune, чтобы указать количество блоков для перекрестной проверки (обычно 5 или 10). 8.1.4. Гетерогенные эффекты воздействия Вернемся к примеру с ценообразованием, обсуждавшемуся выше. Представим, что мы работаем в туристическом агентстве и хотим оценить влияние повышения цен на объем продаж авиабилетов. По опыту мы знаем, что сезонность тоже играет роль в определении цен. Кроме того, мы подозреваем, что повышение цен может по-разному сказаться в разные сезоны. Например, повышение стоимости билета на 5 долларов в праздничные дни, который в будни стоит 50 долларов, вероятно, окажет меньший эффект, чем такое же повышение в будни. В таких случаях, когда причинно-следственное влияние не является постоянным, мы говорим, что существуют гетерогенные (неоднородные) эффекты воздействия.
Двойное машинное обучение 295 Представленной ранее PLM недостаточно для решения этой проб­ лемы. Как вы наверняка помните, PLM предполагает, что связь между переменными имеет вид: объем продаж = β цена + g(сезон) + V. В частности, рост цен всегда влияет на β единиц в продажах. В данном случае нам интересно измерить ATE для разных сезонов. ATE, стратифицированный по переменной, отличной от переменной воздействия, называется условным средним эффектом воздействия (conditional average treatment effect, CATE). Если через D и O обозначить переменные воздействия и исхода, а через X – переменную, на основе которой производится стратификация, то CATE(x) = E[O|do(D = 1), X = x] – E[O|do(D = 0), X = x]. Гетерогенные эффекты в линейных моделях называются взаимодействиями Представьте, что мы моделируем взаимосвязь цены, сезона и объема продаж с помощью линейных моделей и гетерогенных эффектов воздействия. Пусть P, S, L обозначают переменные цены, сезона и объема продаж соответственно. Линейная модель L = a + bP + cS + U, где a, b и c – коэффициенты, а U – шум, не подходит для отражения неоднородных эффектов. Причина в том, что повышение цены всегда повлияет на a единиц продаж. Альтернативное решение – использовать модель с взаимодействиями, то есть переменными, которые перемножаются между собой: L = a + bP + cS + dP × S + U. Для простоты представьте, что переменная сезона принимает только два значения (осень, зима = 0 / весна, лето = 1). Тогда, оценивая модель в двух сценариях, мы можем увидеть, как реагирует модель. То есть когда S = 0, мы будем иметь L = a + bP + U. Из этого уравнения мы видим, что свободный член равен a, а угловой коэффициент равен β. Между тем, когда S = 1, L = a + bP + c + dP + U = a + c + (b + d)P + U. То есть свободный член изменяется с a на a + c, а угловой коэффициент – с β на b + d. Таким образом, мы имеем возможность моделировать различные угловые коэффициенты в разные времена года. Похожие сценарии могут возникать в отношении различных групп пользователей. Например, мы можем подозревать, что причинно-
296 Глава 8 Расширенные инструменты в библиотеке DoubleML следственное влияние цены различается для разных групп клиентов. Если у нас есть персональные данные о нашей клиентуре, то нам может быть интересно измерить ценовой эффект между пожилыми и молодыми людьми или между людьми, проживающими в разных местах. Однако важно отметить, что эта формулировка предполагает отличие переменной X от переменной воздействия. Предположим, что D, X, Z и O являются переменными воздействия, стратификации, искажающими факторами и результатом. В частности, X может быть частью искажающих факторов. Большинство современных библиотек, реализующих CATE, исходят из следующего предположения: O = g(X)D + h(W) + U. То есть влияние переменной воздействия D на O линейно. Однако решающим моментом является ее нелинейное влияние на каждую страту X, несмотря на эту линейность. Другими словами, влияние воздействия может значительно различаться в разных стратах или категориях X. За более подробной информацией обращайтесь к документации пакета DoubleML по адресу https://docs.doubleml.org/stable/examples/py_ double_ml_cate.html или к примерам по адресу https://docs.doubleml.org/ stable/guide/heterogeneity.html. Стоит отметить, что CATE-версия DoubleML делает дополнительное предположение. Метод хорошо работает, когда X имеет мало компонентов (1, 2, 3, ...), поскольку использует классическую технику, называемую сплайнами, широко используемую при небольшом количестве ковариатов. 8.2. Доверительные интервалы Представим, что по результатам анализа исходных данных мы получили положительную оценку ATE, а затем, при анализе новой выборки, получили отрицательную оценку. Такое положение вещей может озадачить и вызвать сомнения в надежности результатов. На практике мы часто имеем доступ только к одному набору данных и потому редко видим разные оценки ATE. Однако нужно признать, что если бы у нас было несколько наборов данных, то мы, скорее всего, получили бы разные результаты из-за изменчивости выборки. Эта ситуация показана на рис. 8.7: мы получаем разные результаты для каждого набора данных. Доверительные интервалы оценивают возможный диапазон значений, которые могли бы принимать наши результаты, если бы мы получили много выборок для одного и того же процесса. Вообще говоря, есть два способа получить доверительные интервалы: „ эмпирический, основанный на моделировании повторных выборок; „ аналитический, основанный на формуле, специально выведенной для каждой отдельной задачи, если такая формула доступна. В этом разделе мы познакомимся с обоими. (Мы не будем углубляться в детали доверительных интервалов, поскольку базовую информацию можно найти в любом вводном учебнике по статистике.) Мы также увидим, как их вычислять с помощью библиотеки DoubleML.
297 Двойное машинное обучение Набор данных 1 Результат 1 Набор данных 2 Результат 2 ... ... Набор данных n Результат n Диапазон результатов Рис. 8.7. Повторив процесс получения и анализа данных, мы получим другие результаты. Чтобы оценить, насколько результаты могут измениться, нам нужны доверительные интервалы 8.2.1. Моделирование новых наборов данных с помощью бутстрэппинга В практических ситуациях у нас обычно имеется только один набор данных. Мы можем преодолеть это ограничение, моделируя новые наборы данных с помощью компьютера. Один из самых простых способов создания похожих наборов данных – методы повторной выборки. Пусть есть набор данных, где столбцы представляют переменные, а строки – наблюдения. Обозначим размер выборки как n. Чтобы сгенерировать новый набор данных, можно случайным образом выбрать n строк из исходного набора данных. Важно допустить возможность повторения строк в этом процессе: иначе получится тот же исходный набор данных с переупорядоченными наблюдениями. Чтобы получить доверительный интервал уровня a (обычно a = 0,05), для каждого набора данных вычисляется причинно-следственный эффект. Для этого можно использовать любой метод по вашему выбору. Затем вычисляются процентили a/2 и 1 – a/2 (обычно 0,025 и 0,975) результатов. Этот процесс показан на рис. 8.8. Повторно выбранный набор данных 1 Результат 1 Повторно выбранный набор данных 2 Результат 2 ... ... Повторно выбранный набор данных n Результат n Процентили 2,5 % и 97,5 % результатов Рис. 8.8. 95%-ный доверительный интервал, полученный методом бутстрэппинга. Суть его заключается в том, чтобы создать новые наборы, перебирая исходные данные, а затем вычислить квантили результатов
298 Глава 8 Расширенные инструменты в библиотеке DoubleML Этот метод легко адаптируемый, и его можно использовать в паре с любым алгоритмом оценивания причинно-следственной связи. Однако он может быть требователен к вычислительным ресурсам. Другими словами, если получение оценки занимает t минут и метод бутстрэппинга применяется m раз, то общее время вычислений составит m × t. Время, необходимое для оценки причинно-следственной связи, может варьироваться в широком диапазоне в зависимости от сложности анализа. Например, линейная модель с небольшим количеством переменных может выполняться практически мгновенно. С другой стороны, более тяжелые методы с вычислительной точки зрения, такие как DML (где необходима перекрестная проверка для настройки гиперпараметров и перекрестное обучение), могут потребовать довольно много времени. Важно учитывать компромисс между временем вычислений и точностью оценок причинно-следственных связей. Некоторые методы требуют больше времени для выполнения, но способны дать более надежные и достоверные результаты. В конечном счете выбор подходящего метода зависит от конкретных требований анализа и доступных вычислительных ресурсов. Упражнение 8.1 Рассчитайте доверительные интервалы оценки ATE для данных о почечнокаменной болезни из главы 2. Выполните следующие шаги: 1 Повторить 2000 раз. 2 Получить выборку из исходного набора данных. 3 Оценить и сохранить ATE. 4 Рассчитать процентили 2,5 % и 97,5 % по сохраненным результатам. Решение можно найти на сайте книги (www.manning.com/books/causalinference-for-data-science) или в репозитории GitHub (https://mng.bz/1ang). Бутстрэппинг в DoubleML Пакет DoubleML позволяет без особых усилий получить доверительные интервалы для одиночных оценок. А для случаев, когда требуется оценить причинно-следственные эффекты, обусловленные сразу несколькими переменными воздействия, есть расширенная возможность. В частности, получить доверительные интервалы можно с помощью бутстрэппинга (см. документацию по адресу https://mng.bz/ PNMP). Этот метод использует вычислительно более эффективную версию бутстрэппинга, отличную от метода повторной выборки, описанного выше. Обсуждение данной расширенной возможности выходит за рамки книги, и я упомянул ее лишь для полноты картины. 8.2.2. Аналитические формулы вычисления доверительных интервалов Иногда доверительные интервалы можно вычислить с помощью статистической формулы, что быстрее, чем бутстрэппинг. Однако важно
299 Двойное машинное обучение отметить, что аналитические формулы расчета доверительных интервалов имеются не для всех задач. Чтобы использовать аналитическую формулу, нужно выяснить распределение оценок с увеличением размера выборки. Возьмем в качестве примера среднее выборочное значение. Из центральной предельной тео­ремы (повторно включена здесь для удобства) мы знаем, что когда размер выборки стремится к бесконечности, среднее выборочное значение имеет тенденцию вести себя как нормально распределенная величина, независимо от того, какое начальное распределение имеет выборка. Центральная предельная теорема Центральная предельная теорема (central limit theorem, CLT) утверждает, что сумма достаточно большого количества слабо зависимых случайных величин имеет распределение, близкое к нормальному. Предположим, что у нас есть выборка X1, ..., Xn, где все переменные имеют одинаковое распределение с ожиданием E[Xi] = µ и дисперсией V[Xi] = σ2, независимы друг от друга и n достаточно велико. Тогда среднее значение выборки для достаточно большого n равно . (8.1) В частности, стандартное отклонение выборочного среднего равно σ/√n. Предположим, что у нас есть выборка x1, ..., xn, где каждое наблюдение получено независимо от других. Если µ^ и σ^ – это выборочные среднее и стандартное отклонение, то доверительный интервал уровня a можно получить как , где za – значение, при котором стандартное нормальное распределение накапливает долю вероятности 1 – a/2. Доверительные интервалы в линейных моделях В главе 6 мы узнали, что линейные модели можно использовать для вычисления причинно-следственных эффектов. При работе с искажающими факторами нужно включить в регрессионный анализ только те переменные, которые соответствуют критерию обходного пути (см. главу 7). Для определения доверительных интервалов можно использовать традиционные статистические инструменты, применяемые в линейной регрессии. Например, популярные инструменты, такие как функции lm или glm в R и библиотека statmodels в Python, предлагают встроенную возможность вычисления доверительных интервалов. Эти функции генерируют выходные данные, включая желаемые доверительные интервалы и другую соответствующую статистическую информацию.
300 Глава 8 Расширенные инструменты в библиотеке DoubleML Доверительные интервалы в DoubleML В DoubleML доверительные интервалы для одиночных оценок можно получить аналитически. К слову, статья о DML приводит асимптотические аппроксимации распределения полученных оценок. Мы видели пример таких аппроксимаций в разделе 8.1.2, в подразделе «Эффективность оценки DML», повторяем здесь для удобства. Формальная теорема о сходимости DML для частично линейной модели Если данные сгенерированы с использованием частично линейной модели (PLM) D = m(C) + V, O = βD + g(C) + U и используется частично линейный алгоритм оценивания DML для получения оценки, тогда с увеличением размера выборки n результирующая оценка ведет себя как нормально распределенная величина , где σ2 = E[U2V2]/E[V]2. Величины β и σ2 можно аппроксимировать из данных и использовать для создания доверительных интервалов, как показано в уравнении 8.1 во врезке «Центральная предельная теорема» выше. Эти вычисления автоматически выполняются библиотекой DoubleML с использованием метода fit. Доступ к доверительным интервалам можно получить с помощью функции summary. Более подробную информацию см. в примере по адресу https://docs.doubleml.org/stable/guide/se_confint.html. 8.3. Оценки с двойной надежностью В определенных ситуациях крайне важно точно оценить причинноследственные эффекты. Поэтому желательно иметь инструменты, предлагающие улучшенные алгоритмы оценивания, даже если они требуют больше вычислительных ресурсов. В частности, эта книга представляет набор алгоритмов, которые можно дополнительно улучшить применением методов двойной надежности. Инструменты двойной надежности позволяют объединить два алгоритма оценки причинно-следственной связи и получить новый, гарантируя при этом несмещенность оценок, возвращаемых новым алгоритмом, если любой из двух исходных алгоритмов является несмещенным. Таким образом, алгоритм оценивания двойной надежности служит нам страховкой на тот случай, если мы реализуем модель неправильно. Методы двойной надежности могут быть весьма сложными. Поэтому здесь мы сосредоточимся исключительно на объяснении метода расши-
301 Оценки с двойной надежностью ренного взвешивания обратной вероятности (augmented inverse probability weighting, AIPW). (Этот метод и понятие алгоритмов оценивания двойной надежности были введены в 1994 году в статье «Estimation of regression coefficients when some regressors are not always observed» Джеймса М. Робинса (James M. Robins), Андреа Ротницки (Andrea Rotnitzky) и Лю Пин Чжао (Lue Ping Zhao). AIPW объединяет подходы, основанные на машинном обучении, обсуждаемые в главе 4, с методами, основанными на мерах склонности и описанными в главе 5, используя формулу взвешивания обратной вероятности, основанную на мерах склонности. Пусть T обозначает бинарную переменную воздействия, Y – переменную результата, а C – все искажающие факторы, влияющие на T и Y. Также предположим, что нет ненаблюдаемых искажающих факторов. Чтобы оценить причинно-следственную связь между T и Y, можно использовать формулу корректировки. В этом случае у нас будет в наличии набор данных, подобный тому, что представлен в табл. 8.4. Таблица 8.4. Доступные данные с вычисленными мерами склонности Y T C1 ... Cp y1 t 1 1 c ... c1p ... ... ... ... ... yn t c ... c pn 1 n n 1 Также предположим, что мы используем два разных варианта формулы корректировки для оценки ATE = P(Y = 1|do(T = 1)) – P(Y = 1|do(T = 0)): „ T-learner из главы 4, в результате чего получаем функции f0(c), f1(c), где c – значения искажающих факторов, которые аппроксимируют f0(c) ≈ E[Y|c, T = 0] и f1(c) ≈ E[Y|c, T = 1]. ATE с T-learner – это: ; „ взвешивания обратной вероятности (IPW), в результате чего получаем меры склонности s(c), где s – это аппроксимация вероятности излечения s(c) ≈ P(T = 1|c). ATE с IPW – это: . Алгоритм AIPW объединяет два предыдущих алгоритма оценивания и создает новый, используя формулу .
302 Глава 8 Расширенные инструменты в библиотеке DoubleML Я настоятельно рекомендую использовать AIPW всегда, когда это возможно. Этот алгоритм имеет несколько важных достоинств: „ двойная надежность (подробности см. в приложении D); „ сходится со скоростью, кратной корню из n, т. е. он позволяет достичь точных результатов с меньшим размером выборки, чем другие методы; „ эффективен, т. е. быстро сходится к ATE и минимизирует асимп­ тотическую дисперсию среди оценок ATE, когда размер выборки стремится к бесконечности. Для дальнейшего изучения см. руководство «Semiparametric doubly robust targeted double machine learning: a review» Эдварда Х. Кеннеди (Edward H. Kennedy). 8.3.1. AIPW на практике Метод AIPW реализован в пакете DoubleML, где он называется интер­ активная регрессионная модель (interactive regression model, IRM). IRM и ее связь с AIPW описаны в оригинальной статье DML. Описание модели и примеры кода на R и Python можно найти по адресу https://mng.bz/JNnv. Упражнение 8.2 Используя набор данных катетеризации правых отделов сердца (RHC) из упражнения в главе 5, рассчитайте ATE и его доверительный интервал переменной воздействия swang1 по переменной death с помощью библиотеки DoubleML. Используйте подбор гиперпараметров, как описано на https://mng.bz/w5mQ, с аргументом tune_on_folds=True. Решение можно найти на сайте книги (www.manning.com/books/causalinference-for-data-science) или в репозитории GitHub (https://mng.bz/1ang). 8.4. Для дальнейшего чтения Двойное машинное обучение (DML) было представлено в оригинальной статье «Double/debiased machine learning for treatment and causal parameters» Виктора Черножукова (Victor Chernozhukov) и др. (https:// arxiv.org/pdf/1608.00060.pdf). Поскольку эта статья сугубо техническая, я рекомендую начать с упрощенных версий: „ «DoubleML – an object-oriented implementation of double machine learning in R» Филиппа Баха (Philipp Bach), Виктора Черножукова (Victor Chernozhukov), Мальте С. Курца (Malte S. Kurz) и Мартина Шпиндлера (Martin Spindler) (https://arxiv.org/pdf/2103.09603.pdf). Простейшая версия формальной теоремы о сходимости DML для частично линейной модели показана в теореме 1 в этой статье. Версия этой теоремы в оригинальной статье DML гораздо сложнее; „ «Double/debiased/Neyman machine learning of treatment effects» Виктора Черножукова (Victor Chernozhukov) и др. (https://arxiv. org/pdf/1701.08687.pdf).
Итоги 303 Узнать больше о функциях влияния можно в статье «Demystifying statistical learning based on efficient influence functions» Оливера Хайнса (Oliver Hines), Оливера Дьюкса (Oliver Dukes), Карлы Диас-Ордас (Karla Diaz-Ordaz) и Стайна Ванстиландта (Stijn Vansteelandt) (https:// mng.bz/q0z2). 8.5. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Перечислите преимущества DML. Ответ во введении к главе 2. 2 Требует ли DML перекрестного обучения? Ответ в разделе 8.1.3, в подразделе «Предотвращение переобучения с помощью перекрестного обучения». 3 Справляется ли частично линейная модель с нелинейностями в переменной воздействия? Ответ в разделе 8.1.2, в подразделе «Частично линейная модель». 4 Что лучше с точки зрения статистики — выполнять настройку гиперпараметров до перекрестного обучения или после разделения данных на блоки для перекрестного обучения? Ответ в разделе 8.1.3, в подразделе «Настройка гиперпараметров». 5 Является ли DML для PLM статистически эффективным? Ответ во врезке «Формальная теорема о сходимости DML для час­ тично линейной модели» в разделе 8.2.2. 6 Какими преимуществами обладает AIPW по сравнению с исходной оценкой IPW? Ответ в разделе 8.3. Итоги „ „ „ Повысить надежность анализа и сократить требуемый размер набора данных можно с помощью любого из трех рассмотренных методов. Все они реализованы на R и Python в пакете DoubleML. Если переменная воздействия непрерывна, то рекомендуется использовать двойное машинное обучение (DML). Метод DML отличается эффективностью по данным и быстро сходится к ожидаемому причинно-следственному эффекту. Он также достигает минимально возможной асимптотической дисперсии. Точнее, он сходится быстрее, чем алгоритмы S-learner и T-learner из главы 4. Всегда включайте доверительные интервалы в ваши оценки. Они отражают меру неопределенности вокруг вашего предполагаемо-
Глава 8 Расширенные инструменты в библиотеке DoubleML 304 „ „ го причинно-следственного эффекта. Получить доверительные интервалы с помощью методов повторной выборки или аналитических формул, если они доступны. При работе с бинарной переменной воздействия рекомендуется использовать метод расширенного взвешивания обратной вероятности (AIPW). Этот метод отличают быстрая сходимость и асимптотически минимальная дисперсия. Чтобы методы, рассмотренные в этой главе, давали хорошие результаты, необходимо измерить все искажающие факторы и тщательно отобрать переменные для корректировки с использованием таких инструментов, как критерий обходного пути.
Часть III Другие стратегии помимо формулы корректировки Ч асти I и II этой книги посвящены знакомству с формулой корректировки. Но эта формула требует наличия максимально полной информации об искажающих факторах. Однако нередко вычисление всех искажающих факторов может быть сложной задачей. В таких случаях вам, возможно, придется использовать другие стратегии. Одна из таких стратегий – метод инструментальных переменных. Этот подход, как объясняется в главе 9, выводит причинно-следственные оценки, используя независимый источник вариации. Глава 10 знакомит со схемой оценки потенциальных исходов, еще одним способом представления причин и следствий. Этот подход важен тем, что на нем основаны многие методы, особенно те, которые обсуждаются в главе 11. В главе 11 вы познакомитесь с методами, которые применяются к временным рядам. Эти методы не требуют знания всех искажающих факторов, поскольку основаны на более мощных предположениях. В частности, здесь вы узнаете о синтетическом контроле, методе разрывной регрессии и методе сравнения разностей.

9 Инструментальные переменные В этой главе: „ „ „ различные способы оценки причинно-следственных связей с помощью инструментальных переменных; определение ситуаций для применения инструментальных переменных; применение инструментальных переменных с использованием различных пакетов Python и R. Инструментальные переменные (instrumental variables, IR) – это метод оценки причинно-следственных эффектов, отличающийся от формулы корректировки. Он применим только в определенных сценариях, особенно когда граф имеет структуру, как показано на рис. 9.1. Некоторые части этого графа уже знакомы нам. Например, типичная трехузловая структура с переменной решения или воздействия D, исходом Y и набором искажающих факторов C, которые, как предполагается, не наблюдаются. Кроме того, здесь имеется дополнительная переменная Z, называемая инструментом, – важнейшее требование для применения метода инструментальных переменных.
Глава 9 Инструментальные переменные 308 C Z D Y Рис. 9.1. Упрощенная диаграмма метода инструментальных переменных. Искажающие факторы (C) не наблюдаются. Переменная Z играет роль инструмента. Такая структура позволяет преодолеть недостаток информации об искажающих факторах при оценке влияния D на Y Мы здесь 1. Определите, какими данными вы располагаете – экспериментальными или наблюдаемыми. 2. Постарайтесь лучше понять задачу (контекст, переменные, ...). 3. Создайте модель, описывающую связи между переменными. 4. Покажите свою модель другим участникам анализа, расскажите им о целях и предположениях, чтобы получить их отклик. 5. Примените методы причинно-следственного анализа к данным и модели, чтобы ответить на вопросы о причинах: a. Укажите, какие задачи может решать ваша модель. b. Оцените причинно-следственные связи и доверительные интервалы, используя соответствующие формулы. Формула корректировки Инструментальные переменные (мы здесь) Временные ряды Выявление и оценка причинно-следственных эффектов с помощью инструментальных переменных Мы потратили почти две трети книги на обсуждение формулы корректировки. К сожалению, когда граф имеет форму как на рис. 9.1, мы не можем применить формулу корректировки для оценки причинно-следственной связи между X и Y, потому что набор искажающих факторов не наблюдается. Ахиллесова пята формулы корректировки заключается в том, что отсутствие знаний об искажающих факторах может привести нас к неверным выводам. В таких случаях в игру вступает метод инструментальных переменных (IV). Метод IV использует тот факт, что на инструмент не влияет никакая другая переменная. Метод IV находит применение в различных сценариях. Например, его можно использовать в клинических испытаниях, не соответствующих принципам рандомизированных контролируемых испытаний
Знакомство с IV на примере 309 (RCT), когда у пациентов есть возможность принимать или отказаться от приема назначенного препарата. Аналогичные ситуации возникают в A/B-тестировании при измерении вовлеченности клиентов с помощью дополнительной новой функции. Инструментальные переменные широко используются в эконометрике и становятся ценным инструментом в геномике, используя генетическую информацию для вывода причинно-следственных связей между фактором риска и результатом. В разделе 9.1 мы проясним и определим предположения, необходимые для применения метода IV. Затем в разделе 9.2 опишем алгоритм оценивания IV с различными предположениями. Наконец, мы увидим, как применять и интерпретировать результаты алгоритма оценивания IV с помощью библиотек R и Python. Когда использовать инструментальные переменные Инструментальные переменные (IV) можно использовать взамен формулы корректировки для расчета ATE. IV особенно полезны, когда понимание или данные об искажающих факторах ограничены и есть независимый источник случайности (инструмент). В следующей главе мы вновь вернемся к IV и рассмотрим применение этой техники совместно со схемой оценки потенциальных исходов. Возможно, логичнее было бы сначала рассмотреть потенциальные исходы, но я решил представить инструментальные переменные раньше, потому что объяснить этот прием можно на одних только графах. С точки зрения обучения эта глава лучше соответствует подходу на основе графов, принятому в книге. 9.1. Знакомство с IV на примере Рассмотрим пример, когда A/B-тестирование не способно помочь оценить причинно-следственную связь, которую мы ищем. Однако чтобы получить интересующую нас причинно-следственную связь, данные тестирования можно проанализировать по-другому, используя для этого IV. Такая ситуация может возникать время от времени. Вот почему метод IV важен, особенно в цифровых компаниях, которые регулярно проводят A/B-тестирование. Рассмотрим такой сценарий: мы работаем в компании электронной коммерции, и руководство решило интегрировать чат-бот в сайт. Однако прежде чем вкладываться в создание полноценного чат-бота, они решили запустить упрощенную пробную версию. Этот благоразумный шаг должен позволить оценить задумку. Чтобы оценить взаимодействие пользователей с чат-ботом, решено провести A/B-тестирование. Основная цель этого тестирования – ответить на фундаментальный вопрос: увеличивает ли использование чат-бота вовлеченность пользователей? Вовлечение будет измеряться по частоте действий пользователей, таких как совершение покупок или регистрация на услуги.
Глава 9 Инструментальные переменные 310 Сначала подумай, потом читай Как бы вы спроектировали проведение A/B-тестирования, чтобы ответить на вопрос «Влияет ли использование чат-бота на вовлеченность пользователей?»? Первое, что приходит в голову, – создать две группы: экспериментальную, взаимодействующую с чат-ботом, и контрольную, не подверженную влиянию чат-бота; затем провести эксперимент и, наконец, вычислить степень вовлеченности каждой группы. Проблема этого подхода в том, что он не сообщает, приводит ли использование чат-бота к увеличению вовлеченности. В действительности он сообщает, приводит ли наличие чат-бота на сайте к увеличению вовлеченности. Звучит похоже, но это не одно и то же. Давайте выясним, почему. Представьте экстремальную ситуацию, когда только 5 % клиентов из числа имеющих доступ к чат-боту в конечном итоге используют его, и те, кто так поступает, считают его чрезвычайно ценным. В таком сценарии результаты A/B-тестирования покажут нам, что особой разницы в вовлеченности между наличием и отсутствием чатбота нет. Это связано с тем, что 95 % клиентов в экспериментальной группе не используют его, что приводит к среднему уровню вовлеченности, примерно равному в контрольной группе. Но обратите внимание, что вовлеченность повысилась среди тех, кто использовал чатбот, потому что он им понравился. Теперь нам ясно, что имеют место два разных бизнес-вопроса: 1 2 Насколько эффективно предоставлять чат-бот клиентам? Как использование чат-бота влияет на вовлеченность? Чтобы определить, что важнее для бизнеса, нужно посмотреть, как ответы влияют на наши решения. На первый взгляд, нас больше всего интересует ответ на вопрос 1, потому что если клиенты не используют чат-бот, то это может означать нецелесообразность вложения ресурсов в его разработку и обслуживание. Но ответ на вопрос 2 тоже может быть полезен. Если выяснится, что чат-бот полезен для тех, кто его использует, то мы можем попробовать найти способы побудить остальных клиентов использовать его, например упростив доступ или создав обучающий видеоролик. Но что нам понадобится, чтобы ответить на каждый вопрос? На вопрос 1 можно ответить, проанализировав результаты A/Bтестирования, спроектированного ранее. К сожалению, как мы увидим через минуту, нельзя создать A/B-тест, который эффективно отвечает на вопрос 2, и в таких случаях нужно использовать IV. Прежде чем двинуться дальше, уделим немного времени изучению, как можно было бы попытаться спроектировать A/B-тест для ответа на вопрос 2 (и потерпеть неудачу).
Знакомство с IV на примере 311 Сначала подумай, потом читай В A/B-тесте, спроектированном для оценки влияния использования чат-бота на вовлеченность, какая переменная будет служить переменной воздействия? Тест A/B должен сработать. Переменная воздействия – использование чат-бота. Соответственно, мы должны сформировать две группы. Контрольная группа не будет иметь доступа к чат-боту, поэтому его использование ими равно нулю. Экспериментальная группа, напротив, будет активно использовать чат-бот. Важно, чтобы A/B-тестирование проводилось правильно и участники экспериментальной группы использовали чат-бот по назначению, в противном случае они будут вести себя так же, как контрольная группа, а это противоречит идее A/B-тестирования. Подчеркну особо: нам нужно, чтобы обе группы строго следовали нашим инструкциям, независимо от их личных предпочтений. В A/Bтестировании крайне важно, чтобы участники не могли выбирать свою группу, иначе воздействие не будет рандомизированным и есть риск ввести в действие такие факторы, как наклонности участников, которые могут исказить связь между воздействием и результатом. Итак, A/B-тест для оценки влияния использования чат-бота на вовлеченность имеет две проблемы. Во-первых, результат A/B-теста не будет репрезентативным с точки зрения естественного поведения людей пос­ ле предоставления доступа к чат-боту всем клиентам. Причина в том, что некоторые участники экспериментальной группы будут вынуждены заставлять себя использовать чат-бот, даже если они не будут использовать его вне эксперимента. Это структурная проблема эксперимента, из-за которой он не дает беспристрастного ответа на вопрос. Вторая проблема: чтобы участники следовали инструкциям, мы должны подобрать мотивированных добровольцев или предусмот­ реть какое-то вознаграждение за участие в эксперименте. В любом случае, позволяя клиентам выбирать между участием и неучастием, мы вносим в эксперимент смещение отбора; участники – это определенная подгруппа клиентов, часто мотивированная своей приверженностью к веб-сайту или перспективой подзаработать денег. Поэтому они не являются типичными представителями всего круга клиентов. В этой главе вы узнаете, как ответить на вопрос 2 в два этапа: 1 Провести A/B-тестирование, чтобы ответить на вопрос 1, случайно отобрав две группы – имеющих и не имеющих доступа к чат-боту. 2 Использовать данные A/B-теста, чтобы применить метод IV для получения ответа на вопрос 2. 9.1.1. Граф примера Давайте нарисуем граф и обсудим, почему на вопрос 2 нельзя ответить с помощью формулы корректировки. Процесс генерации данных показан на рис. 9.2. Каждый клиент будет иметь разные наклонности
Глава 9 Инструментальные переменные 312 и находиться в разной ситуации. Такой контекст будет описываться набором переменных, называемых Контекстом клиента. Переменная Рандомизация определяет две группы в эксперименте 1, в которых будет находиться каждый клиент: те, кто имеет доступ к чат-боту, и те, кто его не имеет. Решение клиента воспользоваться чат-ботом описывается переменной Использование чат-бота. И наконец, исходом является переменная Вовлеченность. Контекст клиента Рандомизация Использование чат-бота Вовлеченность Рис. 9.2. Диаграмма с инструментальными переменными. Переменная Рандомизация играет роль инструмента, а Контекст клиента представляет набор искажающих факторов, которые не наблюдаются Контекст клиента – это фактор, искажающий связь между использованием чат-бота и вовлеченностью. Поскольку условия у каждого клиента, определяющие использование им чат-бота и уровень его вовлеченности, строго индивидуальны, мы не можем ожидать, что у нас появятся подробные переменные, составляющие контекст клиента. Нам нужно понять все факторы, влияющие на решения клиентов использовать чат-бот и взаимодействовать с платформой, а это недостижимо. Таким образом, контекст клиента является ненаблюдаемым искажающим фактором. Наличие искажающих факторов не позволяет напрямую оценить причинно-следственный эффект использования чат-бота. В этой главе мы увидим, как использовать переменную Рандомизация с IV для оценки причинно-следственного эффекта Использования чат-бота на Вовлеченность. 9.1.2. Предположения IV Граф на рис. 9.2 из предыдущего примера можно изобразить с применением обобщенных переменных, как на рис. 9.3, где Z – это инструмент, D – переменная решения, Y – исход, а C — набор ненаблюдаемых искажающих факторов. Перед применением метода IV, который будет кратко объяснен далее, необходимо убедиться, что граф удовлетворяет следующим предположениям. Релевантность: Z должна оказывать влияние на D. Такое предположение представлено стрелкой Z → D. Как мы увидим позже, чем сильнее влияние Z на D, тем точнее будут наши оценки. Экзогенность: на Z не могут влиять никакие факторы C, что утверждается отсутствием стрелок между C и Z в графе. Исключительность: все влияние Z на исход Y должно осуществляться через D. Это подчеркивается отсутствием в графе прямой стрелки от Z к Y.
313 Знакомство с IV на примере C Z D Y Рис. 9.3. При создании этого графа предполагалось, что между переменными нет никаких других связей. Как особо отмечалось в предыдущих главах, ключевые предположения определяются отсутствующими стрелками в графе, а не показанными явно Плохо ли, если какие-то из этих предположений окажутся нарушенными? Да: все может сильно усложниться, и есть риск прийти к ошибочным выводам, как в парадоксе Симпсона. Например, в A/Bтестировании, сравнивающем два разных цвета фона веб-страницы, чтобы выявить, какой из них предпочтительнее для пользователей, мы не должны предполагать, что рандомизация как-то влияет на использование чат-бота. Другими словами, мы не можем полагать, что предположение о релевантности выполняется. Рассмотрим пример невыполнения предположения об экзогенности (инструмент не подвержен влиянию искажающих факторов): вместо проведения A/B-теста вы решаете информировать своих клиентов о появлении чат-бота по электронной почте. Маркетинговая платформа предоставляет информацию о том, открывают ли клиенты электронные письма, и вы планируете использовать эту переменную «письмо открыто (да/нет)» в качестве инструмента в своем анализе. Это не очень хорошая идея, потому что предположение об экзогенности не будет выполнено! Как показано на рис. 9.4, решение открывать или не открывать электронное письмо определяется личными наклонностями пользователя. В то же время наклонности пользователя являются искажающим фактором, влияющим на использование им чат-бота и его вовлеченность. Таким образом, между искажающим фактором и инструментом есть стрелка. Наклонности клиента Откроет письмо Использует чат-бота Вовлеченность Рис. 9.4. Предположение об экзогенности не выполняется, поскольку наклонности клиента влияют на то, откроет ли он электронное письмо. Это влияние представлено стрелкой от набора ненаблюдаемых искажающих факторов к гипотетическому инструменту Наконец, рассмотрим пример, когда не выполняется предположение об исключительности. Представьте компанию, проводящую A/B-тестирование для оценки влияния на вовлеченность пакета,
Глава 9 Инструментальные переменные 314 включающего различные элементы: доступ к новому чат-боту, ссылки на сообщения по интересующей теме, курируемый список видео YouTube и многое другое. Рассмотрим переменную рандомизации – получает ли участник тестирования полный пакет – как инструментальную переменную Z. Этот случай не соответствует ограничению исключительности. Вовлеченность может увеличиться не только из-за нового чат-бота. То есть Z влияет на исход Y разными путями. Как показано на рис. 9.5, в графе имеется стрелка от Z к Y, не идущая через D. Наклонности клиента Получает пакет Использует чат-бота Вовлеченность Рис. 9.5. Ограничение исключительности не выполняется, потому что инструмент «Получает пакет» влияет на исход двумя разными путями С ограничением исключительности нужно быть особенно осторожными, так как его часто упускают из виду. Некоторые инструменты выглядят подходящими на первый взгляд, но они могут влиять на результат разными способами, как объясняется в статье Джонатана Меллона (Jonathan Mellon) и др. (см. раздел 9.4). 9.1.3. Инструментальные переменные и RCT Иногда в клинических испытаниях в здравоохранении проводится вариант рандомизированных контролируемых исследований (RCT), в котором пациенты из экспериментальной группы могут выбирать, принимать ли им назначенное лечение. Такие RCT называются несоответствующими. Проблема несоответствующих RCT заключается в невозможности оценить эффективность лечения по разности в средних значениях E[Y|D = 1] – E[Y|D = 0]. Это связано с тем, что решение о приеме или отказе от лечения зависит от наклонностей пациента, что делает эти наклонности искажающими переменными. Несоответствующие RCT можно описать с помощью динамики IV, как на рис. 9.3. Инструментом здесь является рандомизация группы, а решающей переменной D является прием назначенного лечения. Как мы увидим далее, метод IV может дать несмещенные оценки эффективности лечения. В медицинской литературе, помимо использования IV, существует особая номенклатура для измеряемых эффектов в графе: „ анализ по всем рандомизированным пациентам (intention to treat, ITT) измеряет причинно-следственное влияние рандомизации на результат и определяется математически как E[Y|Z = 1] – E[Y|Z = 0];
Оценка причинно-следственной связи с помощью IV „ 315 анализ по выборке пациентов, выполнивших протокол (per protocol) – разность средних значений, математически выраженная как E[Y|D = 1] – E[Y|D = 0]. Из-за наличия факторов, влияющих на результаты, оценка причинно-следственной связи между проведением лечения и результатом по выборке пациентов, выполнивших протокол, является потенциально смещенной. 9.2. Оценка причинно-следственной связи с помощью IV Перейдем теперь к объяснению, как метод инструментальных переменных (IV) обеспечивает несмещенность оценки причинно-следственной связи между D и Y в общей диаграмме IV на рис. 9.3. Напомню, что мы не можем вносить поправки на факторы, влияющие на связь между D и Y, потому что они не наблюдаются. К счастью, метод IV предоставляет математическую формулу для оценки этой причинно-следственной связи. К сожалению, как объясняется в разделе 9.2.4, не существует универсальной формулы, пригодной для всех графов со структурой, изображенной на рис. 9.3. Чтобы применить метод IV, нам нужно сделать дополнительные предположения. 9.2.1. Применение IV с линейными моделями В причинно-следственном анализе при изучении нового метода полезно попробовать применить его, предположив, что все отношения в графе линейные. Линейные модели проще и дают прямое интуитивное представление о том, как работает метод. Итак, наше первое предположение заключается в том, что все отношения в графе линейные. Соответствующий граф с линейными коэффициентами показан на рис. 9.6. Таким образом, мы можем записать уравнения, связывающие переменные, как D := wD + aZ + cDC + εD, Y := wY + dD + cYC + εY, где члены εD и εY являются случайными величинами, независимыми друг от друга и с нулевым математическим ожиданием. Сначала подумай, потом читай Какая величина в этой модели отражает влияние D на Y? Давайте ответим на этот вопрос. Как объяснялось в главе 6, вопрос можно перефразировать так: если вмешаться в систему и произвольно увеличить значение D на одну единицу, то как изменится Y? Для простоты предположим, что мы хотим вычислить влияние изменения D на Y. Математически говоря, мы задаем вопрос: какова будет разность между E[Y|do(D = 1)] (вмешательство в систему и установка
Глава 9 Инструментальные переменные 316 значения D = 1) и E[Y|do(D = 0)] (вмешательство в систему и установка значения D = 0). Выполним вычисления: E[Y|do(D = 1)] = E[wY + bD + cYC + εY|do(D = 1)] = wY + b + E[cYC], E[Y|do(D = 0)] = E[wY + bD + cYC + εY|do(D = 0)] = wY + E[cYC]. Итак, влияние D на Y – это коэффициент E[Y|do(D = 1)] – E[Y|do(D = 0)] = b. Цель метода IV – предложить математическую формулу для получения несмещенной оценки коэффициента b. Этот метод должен полагаться исключительно на данные и предположение о линейности модели. Он не должен требовать дополнительной информации о коэффициентах. C cD Z a D cY b Y Рис. 9.6. Диаграмма для линейных моделей с инструментом Z. Каждая буква при стрелках представляет коэффициент в соответствующей линейной модели Мы знаем, что из-за искажающих факторов причинно-следственное влияние D на Y нельзя напрямую оценить по данным без применения формулы корректировки. В главе 6 мы узнали, что в линейных моделях применение формулы корректировки эквивалентно контролю искажающих факторов путем включения их в регрессионный анализ. Однако в этом случае мы предполагаем, что искажающие факторы не наблюдаются и присутствуют в наборе данных. Следовательно, мы должны изучить альтернативные методы оценки их влияния и включить их в наш анализ. К счастью, подход IV предлагает стратегию преодоления этой трудности. Стратегия работает следующим образом. Во-первых, важно отметить отсутствие искажающих переменных между инструментом Z, воздействием D и исходом Y. Это означает, что мы можем оценить влияние Z на D, выполнив линейную регрессию D ~ Z и получив коэффициент, связанный с Z. Аналогично можно оценить влияние Z на Y, выполнив регрессию Y ~ Z. Следовательно, мы можем оценить причинно-следственное влияние D на Y, вычислив соотношение между этими двумя оценками. Теперь углубимся в детали метода. Чтобы понять, как стратегия IV оценивает причинно-следственную связь между D и Z, нужно знать, как предыдущие регрессии соотносятся с коэффициентами в нашей модели. Напомню, что наша модель описывается следующими уравнениями: D := wD + aZ + cDC + εD, Y := wY + dD + cYC + εY.
317 Оценка причинно-следственной связи с помощью IV „ „ „ Чтобы оценить причинно-следственный эффект влияния D на Y, мы должны получить коэффициент b из данных, согласно которому при вмешательстве в систему и изменении значения D на одну единицу значение Y изменяется на b единиц. Мы знаем, что если выполним регрессию Y ~ D, то коэффициент, связанный с D, даст нам смещенную оценку b из-за влияния искажающих факторов. Поэтому данная регрессия не дает нужного нам решения. Влияние Z на D определяется соответствующим коэффициентом a из первого уравнения. Поскольку между Z и D нет искажающих факторов, регрессия D ~ Z дает несмещенную оценку a. Все влияние Z на Y оказывается исключительно через D. То есть когда мы вмешиваемся и изменяем значение Z, это приводит к изменению D, а изменение D вызывает изменение Y. Таким образом, чтобы оценить общее влияние Z на Y, нужно выразить Y через Z, подставив значение D, D := wD + aZ + cDC + εD, как показано ниже: Y := wY + bD + cYC + εY = wY + b(wD + aZ + cDC + εD) + cYC + εY = wY + bwD + abZ + bcDC + bεD + cYC + εY. Последнее выражение показывает, что в нашей модели, когда Z изменяется на единицу, Y изменяется на a × b единиц. Поскольку между Z и Y нет искажающих факторов, регрессия Y ~ Z дает несмещенную оценку a × b. Результаты обобщены в табл. 9.1. Таблица 9.1. Ожидаемые коэффициенты, полученные из данных с использованием линейной регрессии Регрессия Ожидаемые коэффициенты D~Z a Y~Z a×b А теперь главная хитрость: разделив коэффициенты, связанные с Z в регрессиях Y ~ Z и D ~ Z, получаем (a × b)/a = b, несмещенную оценку b. Математическая формула IV для оценки причинноследственных связей Теперь напишем простую формулу, выражающую только что рассмот­ ренную стратегию. Сначала напишем формулы, определяющие наклон прямых, а затем разделим одну на другую. Для любых двух случайных величин M и R соответствующий коэффициент линейной регрессии M ~ R определяется формулой cov(M, R) / var(R). Применим ее к нашему случаю: „ результирующий коэффициент регрессии D ~ Z равен cov(D, Z) / var(Z); „ результирующий коэффициент регрессии Y ~ Z равен cov(Y, Z) / var(Z);
Глава 9 Инструментальные переменные 318 „ оценка причинно-следственной связи D и Y получается путем деления предыдущих величин (обратите внимание, что член var (Z) сокращается): (9.1) . 9.2.2. Применение IV с частично линейными моделями К сожалению, линейное предположение не применимо в примере с чат-ботом. Переменная воздействия D является бинарной, поэтому ее нельзя выразить линейно как D := wD + aZ + cDC + εD! Нам нужно разработать специализированный алгоритм оценки IV. Теперь, имея формулу 9.1 оценки причинно-следственных эффектов IV, рассмотрим более свободную спецификацию модели IV, поддерживающую бинарные переменные. Рассмотрим следующие час­ тично линейные предположения IV. Переменная Y может быть выражена как Y := wY + bD + h(C) +εY, где функция h(C) может быть нелинейной, а член εY не зависит от Z и D. Чем это предположение отличается от линейных предположений из предыдущего раздела в примере с чат-ботом? В отличие от линейного случая, эти новые предположения допускают взаимосвязи между искажающими факторами C (Наклонности клиента) и Y (Вовлеченность) иметь сложные нелинейные взаимодействия. Как и в разделе 9.2.1, влияние переменной D на Y оценивается как b (чтобы найти этот коэффициент, можно выполнить те же шаги, что и в разделе 9.2.1). Обратите внимание, что в отношении Z и D, или линейности, между ними не делается никаких дополнительных предположений. Тем не менее мы обозначаем эту модель как частично линейную, потому что предполагаем, что можем разложить влияние переменных C и D на Y аддитивно как bD + h(C). Соответствующий граф показан на рис. 9.7. C h Z D b Y Рис. 9.7. Диаграмма инструментальных переменных с бинарной переменной воздействия и инструментом Z При этих предположениях оценка IV приводит нас к той же формуле, что и раньше: .
Оценка причинно-следственной связи с помощью IV 319 То есть, используя линейное свойство ковариации (см. главу 7), мы видим, что cov(Y, Z) = cov(wY + bD + h(C) + εY, Z) = b cov(D, Z), так как cov(wY, Z) = 0 (потому что wY – константа), cov(h(C), Z) = cov(εY, Z) = 0 (потому что Z не зависит от обоих членов). Отсюда следует: . В заключение отмечу, что в примере с чат-ботом можно применить ту же формулу IV, что и для линейных моделей. 9.2.3. Альтернативная формула для метода IV Вместо формулы IV, приведенной в этой главе, в других источниках можно найти следующую альтернативную формулу: (9.2) . Эти две формулы дают совершенно одинаковый результат, поэтому смело используйте ту, которая вам больше нравится. Объясняется это тем, что для любой переменной Q и бинарной переменной R ковариа­ ция и разность условных ожиданий связаны (подробности см. в приложении E) как cov(Q, R) = (E[Q|R = 1] – E[Q|R = 0])P(R = 1)P(R = 0). То есть . Уравнение 9.2 имеет хорошую интерпретацию. Поскольку Z напрямую влияет на D, мы можем оценить ATE как наблюдаемую разность между Z = 1 и Z = 0: ATE(Z → D) = E[D|Z = 1] – E[D|Z = 0]. Аналогично можно оценить причинно-следственное влияние Z на Y как ATE(Z → Y) = E[Y|Z = 1] – E[Y|Z = 0]. Соответственно, оценка причинно-следственной связи D → Y равна . Давайте интерпретируем эту формулу для нашего примера с чатботом. Переменная Z – это воздействие чат-бота, а D – использование
320 Глава 9 Инструментальные переменные чат-бота. Влияние Z на D можно интерпретировать как уровень привлекательности чат-бота для пользователей. Давайте посмотрим, как член ATE(Z → D) = E[D|Z =1] – E[D|Z = 0] влияет численно на предыдущую формулу. Если чат-бот недоступен, Z = 0, то он не используется D = 0, поэтому P(D = 1|Z = 0) = E[D|Z = 0] = 0. С другой стороны, среди тех, кто имеет доступ к чат-боту Z = 1, найдется доля P(D = 1|Z = 1) = E[D|Z = 1] клиентов, которые будут им пользоваться. Конечно, может случиться так, что никто не будет им пользоваться, E[D|Z = 1] = 0. В этих случаях предположение о релевантности не выполняется. Рассмотрим случаи, когда есть клиенты, использующие чат-бот, E[D|Z = 1] > 0. Тогда E[D|Z =1] – E[D|Z = 0] = E[D|Z = 1] >0. Более того, поскольку переменная D может иметь только одно из двух значений, 0 или 1, доля пользующихся чат-ботом представлена числом от 0 до 1, 0 < P(D = 1|Z = 1) = E[D|Z = 1] = E[D|Z = 1] – E[D|Z = 0] ⇐ 1. Наконец, интересующая нас величина ATE(D → Y) получается путем деления общего эффекта рандомизации – исхода ATE(Z → Y) – на число от 0 до 1. Деление на число от 0 до 1 фактически увеличивает числитель. Например, если половина людей, которым доступен чатбот, используют его, P(D = 1|Z = 1) = 0,5, то это означает ATE(D → Y) = ATE(Z → Y) / 0,5 = ATE(Z → Y) × 2. То есть влияние чат-бота на вовлеченность ATE(D → Y) можно интерпретировать как влияние доступности чат-бота ATE(Z → Y), пересчитанное на долю клиентов, использующих чат-бот P(D = 1|Z = 1). 9.2.4. Отсутствие общей формулы для обобщенного графа IV А как насчет других случаев применения IV без каких-либо предположений о взаимосвязях между переменными? Можно ли получить аналог формулы корректировки для задачи IV? Ответ – нет, потому что не существует общей формулы оценки причинно-следственного эффекта с использованием инструментальной переменной, как это показали Балке (Balke) и Перл (Pearl) в 1993 году (см. раздел 9.4). Поэтому в любых случаях, которые можно найти в литературе, приходится делать дополнительные предположения, накладываемые поверх причинно-следственного графа на рис. 9.4, чтобы получить возможность оценить причинно-следственный эффект. 9.3. Инструментальные переменные на практике Давайте посмотрим, как работает метод IV, применив его к синтетическому набору данных. Для генерации данных использовались следующие уравнения: „ Z := B(0,5): инструмент – двоичная переменная, следующая биномиальному распределению; „ C := B(0,3): имеется только один ненаблюдаемый искажающий фактор с биномиальным распределением;
Инструментальные переменные на практике 321 D := U(0,1) ≤ 0,7Z + 0,4C: переменная воздействия тоже бинарная; она принимает значение 1, когда образец, выбранный из равномерного распределения (0, 1), меньше комбинации 0,7Z + 0,4C, и значение 0 в противном случае; „ Y := 30 – 2 × D + 10 × C + ε , где ε следует центрированному норY Y мальному распределению со стандартным отклонением 2. Обратите внимание, что влияние переменной воздействия на исход, которое мы собираемся оценить, равно –2. Сначала загрузим пакеты и создадим синтетический набор данных. „ Листинг 9.1. (R) Генерация синтетических данных library(AER) library(ggplot2) library(DoubleML) library(mlr3learners) set.seed(1234) n <- 1000 instrument_effect <- 0.7 treatment_effect <- -2 confounder <- rbinom(n, 1, 0.3) instrument <- rbinom(n, 1, 0.5) treatment <- as.numeric(runif(n) <= instrument_effect * instrument + 0.4 * confounder) outcome <- 30 + treatment_effect*treatment + 10 * confounder + rnorm(n, sd=2) df <- data.frame(instrument, treatment, outcome) Листинг 9.2. (Python) Генерация синтетических данных from numpy.random import seed, normal, binomial, uniform from numpy import cov import statsmodels.formula.api as smf from pandas import DataFrame from seaborn import kdeplot import doubleml as dml from sklearn.linear_model import LinearRegression, LogisticRegression seed(1234) n = 1000 instrument_impact = 0.7 treatment_effect = -2 confounder = binomial(1, 0.3, n) instrument = binomial(1, 0.5, n) treatment = (uniform(0, 1, n) <= instrument_impact*instrument + \ 0.4*confounder).astype(int) outcome = 30 + treatment_effect*treatment + 10 * confounder + \ normal(0, 2, n) df = DataFrame({ 'instrument': instrument, 'treatment': treatment, 'outcome': outcome })
322 Глава 9 Инструментальные переменные В листингах 9.3 и 9.4 приводится код, вычисляющий упрощенные оценки причинно-следственной связи на основе исключительно переменных воздействия и исхода. Сначала применяется линейная регрессия, а затем применяется метод вычисления разности средних значений. По результатам вычислений (в R) линейная регрессия дала коэффициент 1,0005. Аналогичный результат дала разность средних значений – 1,0004. Это число далеко от ожидаемого, равного –2. Листинг 9.3. (R) Упрощенная оценка print(summary(lm(outcome~treatment, data=df))) outcome_1 <- mean(df[df$treatment==1, 'outcome']) outcome_0 <- mean(df[df$treatment==0, 'outcome']) print(outcome_1 - outcome_0) Листинг 9.4. (Python) Упрощенная оценка outcome_1 = df[df.treatment==1].outcome.mean() outcome_0 = df[df.treatment==0].outcome.mean() print(outcome_1 - outcome_0) smf.ols(formula='outcome ~ treatment', data=df).fit().summary() Теперь применим формулу IV с ковариациями (альтернативное уравнение (9.2) тоже даст верный результат). Результат равен –1,8898, что гораздо ближе к –2, чем предыдущая смещенная оценка. Листинг 9.5. (R) Оценка IV print(cov(outcome, instrument)/cov(treatment, instrument)) Листинг 9.6. (Python) Оценка IV print(cov(outcome, instrument)/cov(treatment, instrument)) В R также есть возможность использовать пакет AER, как показано в листинге 9.7. Обратите внимание, что пакет использует вертикальную черту |, чтобы указать, какая переменная является инструментом, и отличить ее от других ковариат. Этот код дает тот же результат –1,8898. Но, кроме того, пакет AER дает стандартное отклонение оценки, в данном случае 0,1492. Листинг 9.7. (R) Оценка IV с использованием пакета AER model <- ivreg(outcome~treatment|instrument, data=df) summary(model) Есть ли нечто подобное в Python? В Python есть пакеты, которые оценивают инструментальные переменные, но они используют альтернативный способ, который рассматривается в следующем разделе. 9.3.1. Двухэтапный алгоритм наименьших квадратов (2SLS) Существует альтернативный способ получить тот же результат при оценке IV, называемый двухэтапным алгоритмом наименьших квад­
Инструментальные переменные на практике 323 ратов (two-stage least squares, 2SLS). Кто-то может спросить: «Зачем нам его изучать?» Во-первых, он широко используется и не слишком сложен, поэтому стоит потратить немного времени на его изучение. Во-вторых, алгоритм 2SLS проще настроить для применения в более общих случаях, когда используется много инструментов. Однако сразу оговорюсь, что рассмотрение случаев с множеством инструментов выходит за рамки этой книги. Двухэтапный алгоритм использует подход, напоминающий двойное машинное обучение, и выполняет по сути те же шаги: сначала оценивается модель, а затем причинно-следственная связь с использованием остатков (разностей между реальной переменной и ее предсказаниями). В частности, двухэтапный алгоритм действует так. 1 Прогнозируется воздействие по инструменту: создается модель прогнозирования воздействия по инструменту, и вычисляются прогнозные значения. Прогнозируя воздействие, мы эффективно изолируем вариацию в воздействии, объясняемую инструментом. 2 Выполняется регрессия исходов по предсказанным воздействиям. На основе предсказанных оценок воздействия, полученных на этапе 1, вычисляется коэффициент регрессии переменной исхода по предсказанным значениям. Полученный коэффициент – это искомый эффект. Давайте применим двухэтапный алгоритм к уже сгенерированному синтетическому набору данных из предыдущего раздела. Первым шагом создадим прогностическую модель воздействия относительно инструмента. Листинг 9.8. (R) Создание прогностической модели для двухэтапного алгоритма model_1 <- lm(treatment~instrument, data=df) Листинг 9.9. (Python) Создание прогностической модели для двухэтапного алгоритма model = smf.ols(formula='treatment ~ instrument', data=df).fit() Поcле получения модели выполняем шаг 2, вычисляя коэффициент регрессии для переменной исхода по предсказанным значениям. Листинг 9.10. (R) Вычисление коэффициента регрессии по предсказанным значениям treatment_prediction <- predict(model_1, data=df) lm(outcome~treatment_prediction) Листинг 9.11. (Python) Вычисление коэффициента регрессии по предсказанным значениям df['treatment_prediction'] = model.predict(df) smf.\ ols(formula='outcome ~ treatment_prediction', data=df).\ fit().summary()
324 Глава 9 Инструментальные переменные Как вариант оценку с применением двухэтапного алгоритма в Python можно получить с помощью пакета linearmodels, как показано в листинге 9.12. Результат (в Python) равен –1,95 со стандартным отклонением 0,49. Листинг 9.12. (Python) Применение пакета linearmodels from linearmodels.iv.model import IV2SLS IV2SLS.\ from_formula('outcome ~ 1 + [treatment ~ instrument]',df).\ fit() Возможно, вы уже поняли (если нет, то ничего страшного), что в двухэтапном алгоритме мы обучили (линейную) модель на имеющихся данных и получили прогнозы для тех же данных. А что насчет перекрестного обучения? Мы же должны выполнить перекрестное обучение, верно? Да, но на практике линейные модели с единственным регрессором редко переобучаются, разве что на выборках очень маленького размера. Поэтому в данном случае нет необходимости применять перекрестное обучение. 9.3.2. Слабые инструменты Использование инструментальных переменных – удобный подход, но есть одна загвоздка, о которой вы должны знать. Надежность оценок во многом зависит от эффекта, который инструмент оказывает на переменную воздействия. Другими словами, инструмент должен быть релевантным и оказывать определенное влияние на переменную воздействия, чтобы гарантировать точность результатов. В нашем примере с чат-ботом представьте ситуацию, когда чат-бот размещается в малозаметном и труднодоступном виджете. Поэтому только несколько участников экспериментальной группы будут его использовать. В результате ковариация между инструментом Z (указывающим на привязку к группе) и переменной решения D (использует ли его участник) очень мала и приблизительно равна cov(Z, D) ≈ 0, потому что переменная D в основном состоит из нулей. Другое объяснение эффекта привязки к группе на использование чат-бота – отсутствие интереса клиентов к чат-боту из-за его труднодоступности. В этом случае компания может сделать чат-бот более удобным и доступным, чтобы повысить его привлекательность и стимулировать использование. Если эффект влияния инструмента низок, то даже при техническом выполнении предположения о релевантности можно столк­ нуться с числовыми и статистическими проблемами. Точнее говоря, низкая релевантность означает высокую дисперсию в нашей оценке. Инструмент, имеющий низкую релевантность, мы называем слабым инструментом. Для лучшего понимания этой идеи взглянем на нее через призму формулы IV и некоторых имитаций. Напомню, что формула IV имеет вид
Инструментальные переменные на практике 325 (9.3) Обратите внимание на знаменатель E[D|Z = 1] – E[D|Z = 0] (или cov(D, Z)) – причинно-следственный эффект влияния инструмента на воздействие. Если Z оказывает небольшое влияние на D, то E[D|Z = 1] – E[D|Z = 0] ≈ 0. И тут возникает проблема: деление на значение, близкое к нулю, дает очень большое значение, что может увеличить любые неточности, присутствующие в числителе. То есть если ковариация невелика, то даже небольшая ошибка в оценке числителя может привести к большой ошибке в общей оценке IV, увеличивая ее дисперсию. Давайте посмотрим, насколько плохим может быть влияние слабых инструментов на оценку IV, выполнив несколько имитаций. На основе синтетического набора данных, полученного выше, мы создадим два сценария. В первом случае влияние инструмента на воздействие равно 0,3, а во втором это влияние ниже, всего 0,1. В каждом случае мы повторим следующие шаги 1000 раз: 1 Создать набор данных. 2 Оценить причинно-следственную связь с помощью уравнения 9.3. Затем мы построим график распределения оценок в каждом сценарии. Ожидается, что оценки для случая 0,1 будут намного хуже, чем для случая 0,3. В листингах 9.13 и 9.14 представлены только что описанные функции генерации и оценки. Листинг 9.13. (R) Вспомогательные функции generate_data <- function(instrument_effect, n){ confounder <- rbinom(n, 1, 0.3) instrument <- rbinom(n, 1, 0.5) treatment <- as.numeric( runif(n) <= instrument_effect*instrument + 0.4*confounder ) outcome <- 30 + treatment_effect*treatment + 10 * confounder + rnorm(n, sd=2) data.frame(instrument, treatment, outcome) } estimate_impact <- function(df){ cov(df$outcome, df$instrument)/cov(df$treatment, df$instrument) } Листинг 9.14. (Python) Вспомогательные функции def generate_data(instrument_impact, n): confounder = binomial(1, 0.3, n) instrument = binomial(1, 0.5, n) treatment = (uniform(0, 1, n) <=
326 Глава 9 Инструментальные переменные instrument_impact*instrument + 0.4*confounder).astype(int) outcome = 30 + instrument_impact*treatment + 10 * confounder + normal(0, 2, n) return(DataFrame({ 'instrument': instrument, 'treatment': treatment, 'outcome': outcome })) def estimate_impact(df): num = cov(df.instrument, df.outcome)[0][1] denom = cov(df.instrument, df.treatment)[0][1] return num/denom Теперь зададим уровень 0,3 влияния инструмента на переменную воздействия и смоделируем шаги генерации и оценки 1000 раз, как показано в листингах 9.15 и 9.16. Листинг 9.15. (R) Имитация метода IV с неслабым инструментом sim_n <- 1000 instrument_effect_1 <- 0.3 estimates <- c() for(i in 1:sim_n){ df <- generate_data(instrument_effect_1, n) estimates <- c(estimates, estimate_impact(df)) } results <- data.frame( estimates=estimates, instrument_effect=instrument_effect_1 ) Листинг 9.16. (Python) Имитация метода IV с неслабым инструментом sim_n = 1000 instrument_impact_1 = 0.3 estimates_1 = [] for i in range(sim_n): df = generate_data(instrument_impact_1, n) estimates_1.append(estimate_impact(df)) Далее повторим то же самое, но с эффектом 0,1 влияния инструмента на переменную воздействия. Листинг 9.17. (R) Имитация метода IV со слабым инструментом instrument_effect_2 <- 0.1 estimates <- c() for(i in 1:sim_n){ df <- generate_data(instrument_effect_2, n) estimates <- c(estimates, estimate_impact(df)) }
Инструментальные переменные на практике 327 Листинг 9.18. (Python) Имитация метода IV со слабым инструментом instrument_impact_2 = 0.1 estimates_2 = [] for i in range(sim_n): df = generate_data(instrument_impact_2, n) estimates_2.append(estimate_impact(df)) Наконец, выведем результаты в виде графика (рис. 9.8). Как видите, деление на почти ноль – это не шутка. Напомню, что оцениваемый нами эффект равен –2. Как показано на графике, при более низком влиянии инструмента на переменную воздействия мы иногда получаем результаты ниже –15! Распределение оценок силы причинно-следственных связей с помощью IV Плотность 0.3 instrument_effect 0.2 0.1 0.3 0.1 0.0 −30 −20 −10 0 Оценки Рис. 9.8. Меньшее влияние инструмента на переменную воздействия приводит к большей дисперсии в оценке Кроме того, распределение оценок для эффекта инструмент–воздействие (0,3) гораздо уже. Из этой демонстрации следует простой вывод: избегайте использования слабых инструментов. Если они вам действительно нужны и нет альтернативы, то поищите в интернете специализированные ресурсы, посвященные приемам работы со слабыми инструментами. 9.3.3. IV и DoubleML Оценку IV можно также реализовать с помощью пакета DoubleML (https://mng.bz/5Onz), который поддерживает более общую спецификацию причинно-следственных связей и допускает, что: „ инструмент может зависеть от набора наблюдаемых искажающих переменных; „ связи с моделями машинного обучения могут быть нелинейными. Давайте углубимся в эти новые спецификации и рассмотрим сценарий, где переменные Z и D – бинарные и граф выглядит, как показано на рис. 9.9. В этом графе имеется два набора факторов: C (ненаблюдаемый) и X (наблюдаемый).
Глава 9 Инструментальные переменные 328 C V Z D X U Y Рис. 9.9. Подход с использованием инструментальных переменных, реализованный в пакете DoubleML. Он основан на том факте, что мы учитываем только наблюдаемые искажающие факторы X, которые влияют на инструмент Z. Это позволяет использовать метод условных инструментальных переменных, адаптированный для учета тех факторов, которые нам известны и которые мы можем измерить Вернемся к нашему примеру с чат-ботом. Предположим, что у нас есть информация о возрасте наших клиентов (собранная во время регистрации). Мы можем предположить, что возраст является фактором, искажающим результаты, поскольку он может повлиять на решение использовать чат-бот (молодые люди более склонны использовать новые технологии) и уровень вовлеченности. В общем случае метод IV не требует знания каких-либо искажающих факторов, но если имеется дополнительная информация, то ее можно включить в модель и, следовательно, уменьшить дисперсию оценок. К счастью, пакет DoubleML предлагает интерактивную модель IV (IIVM). Для ее применения необходимо дополнительное предположение: возможность аддитивного разделения вкладов наблюдаемых и ненаблюдаемых искажающих факторов. Другими словами, мы предположим, что отношения между переменными могут быть описаны следующими уравнениями: Y = l0(D, X) + U, D = r0(Z, X) + V, (9.4) Z = m0(X) + ε. Например, переменную Y можно разделить на две части: l0(D, X) – потенциально нелинейная функция, описывающая влияние D и наблюдаемого искажающего фактора X на Y, а член U определяет влияние ненаблюдаемого искажающего фактора C на Y. Уравнение D = r0(Z, X) + V следует той же логике. ПРИМЕЧАНИЕ. Граф на рис. 9.9 представляет конкретный сценарий, в котором мы применяем подход IIVM, но это не единственный возможный сценарий, есть и другие. В более сложных графах, чтобы применить подход IIVM, нужно найти набор переменных X, которые удовлетворяют критерию обходного пути (см. главу 7) относительно Z и других переменных D и Y.
Инструментальные переменные на практике 329 Предположения интерактивной модели IV в DoubleML В общем случае мы предполагаем, что „ „ „ переменные Z и D являются бинарными; переменные X удовлетворяют критерию обходного пути для Z относительно переменных D и Y; наблюдаемые и ненаблюдаемые искажающие факторы можно разделить аддитивно. Мы используем набор данных с той же структурой, что и в предыдущих разделах. В этом сценарии нет наблюдаемых искажающих факторов, что позволяет использовать ранее введенные формулы IV. Тем не менее использование прежнего набора данных поможет нам проверить эффективность метода. Для тех, кому нужен более сложный набор данных, документация с описанием реализации метода IV в DoubleML предлагает возможность изучить этот вопрос (https://mng.bz/6Yvy). В листингах 9.19 и 9.20 мы генерируем набор данных с помощью функции generate_data из предыдущих разделов. Обратите внимание, что здесь добавлена новая переменная x, которая принимает значение 1 и представляет наблюдаемый искажающий фактор. Поскольку пакет требует наличия наблюдаемого искажающего фактора, мы предоставляем искусственный фактор, который не оказывает никакого эффекта. Листинг 9.19. (R) Генерация данных df <- generate_data(instrument_effect = 0.5, n) df['x'] <- 1 obj_dml_data = DoubleMLData$new( df, y_col="outcome", d_col = "treatment", z_cols= "instrument" ) Листинг 9.20. (Python) Генерация данных df = generate_data(0.5, 1000) df['x'] = 1 obj_dml_data = dml.DoubleMLData( df, y_col='outcome', d_cols='treatment', z_cols='instrument' В листингах 9.21 и 9.22 мы сначала задаем типы моделей машинного обучения, которые собираемся передать классу DoubleMLIIVM. Затем вызываем метод fit для оценки причинно-следственной связи. И в заключение выводим результаты, полученные из уравнения 9.1. Обратите внимание, что в этом простом примере оба метода хорошо согласуются. Класс DoubleMLIIVM требует три модели машинного обучения: ml_m, ml_r и ml_g. Они соответствуют уравнениям
Глава 9 Инструментальные переменные 330 Y = g0(Z, X) + U, D = r0(Z, X) + V, Z = m0(X) + ε. Эти уравнения немного отличаются от уравнений 9.4, но все еще действительны для нашего графа на рис. 9.10. Вместо выражения зависимости Y от D и X через функцию l0 мы выражаем зависимость Y от X и Z через новую функцию g0, потому что D зависит от Z. Вот почему следующий код требует модель машинного обучения с именем g. Листинг 9.21. (R) Оценка методом IV с использованием DoubleML ml_g = lrn("regr.lm") ml_m = lrn("classif.log_reg") ml_r = ml_m$clone() iv_2 = DoubleMLIIVM$new(obj_dml_data, ml_g, ml_m, ml_r) iv_2$fit() print(iv_2) print( cov(df$outcome, df$instrument)/ cov(df$treatment, df$instrument) ) ПРИМЕЧАНИЕ. Если в коде на R дважды вызвать функцию lrn("classif.log_reg"), один раз для инициализации ml_l и другой – для инициализации ml_r, то получится неверный результат. Поэтому необходимо вызвать метод clone, как в листинге 9.21. Листинг 9.22. (Pyyhon) Оценка методом IV с использованием DoubleML ml_g = LinearRegression() ml_m = LogisticRegression(penalty=None) ml_r = LogisticRegression(penalty=None) dml_iivm_obj = dml.DoubleMLIIVM(obj_dml_data, ml_g, ml_m, ml_r) print(dml_iivm_obj.fit().summary) print(estimate_impact(df)) В результате получается оценка причинно-следственной связи, равная –1,8907, со стандартным отклонением 0,1955. 9.4. Ссылки „ „ Статья «Rain, rain, go away: 195 potential exclusion-restriction violations for studies using weather as an instrumental variable» Джонатана Меллона (Jonathan Mellon) (2023; https://mng.bz/o0MM). Статья «Nonparametric bounds on causal effects from partial compliance data» Александра Балке (Alexander Balke) и Джуды Перла (Judea Pearl). Лаборатория когнитивных систем Калифорнийского университета в Лос-Анджелесе, Технический отчет R-199 (https://mng.bz/n0yK).
Итоги 9.5. 331 Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Какая переменная играет роль инструмента в несоответствующем RCT? Ответ в разделе 9.1.5. 2 В несоответствующем RCT какой из двух эффектов может быть смещенным: анализ по всем рандомизированным пациентам (ITT) или по выборке пациентов, выполнивших протокол? Ответ в разделе 9.1.3. 3 Какие три предположения делаются в модели оценки IV? Ответ в разделе 9.1. 4 Можно ли получить несмещенную оценку причинно-следственной связи в IV-графе, если воздержаться от предположений о функциональных связях между переменными? Ответ в разделе 9.2.4. 5 Что такое слабый инструмент? Ответ в разделе 9.3.2. Итоги „ „ „ „ „ „ „ При наличии независимого источника вариации можно рассмот­ реть возможность применения IV вместо формулы корректировки. Преимущество IV заключается в возможности преодолеть нехватку знаний об искажающих факторах. Для применения IV необходимо сделать структурные и функциональные предположения: – к структурным предположениям относятся релевантность, экзогенность и ограничение исключительности; – функциональные предположения связаны с явной формулой, описывающей причинно-следственные связи между переменными. Мы рассмотрели линейные и частично линейные модели. Если переменная решения (воздействия) – бинарная, то вместо линейных предположений следует использовать частично линейные. В литературе используются две эквивалентные формулы IV. Двухэтапный алгоритм дает те же результаты, что и прямое применение формул IV. Остерегайтесь слабых инструментов: они могут увеличить дисперсию оценок.
10 Схема оценки потенциальных исходов В этой главе: „ „ „ суть потенциальных исходов и их предположения; взаимосвязь между потенциальными исходами и DAG; использование потенциальных исходов в формуле корректировки и инструментальных переменных. В причинно-следственном анализе есть две основные схемы оценки: одна основана на ориентированных ациклических графах (DAG), а другая называется потенциальными исходами (potential outcomes, PO) и также известна как причинная модель Рубина. Обе эти схемы являются обоснованными и последовательными, что позволяет выбрать ту, что лучше подходит для конкретной ситуации. Части I и II книги мы посвятили использованию DAG, а теперь мы попробуем PO. Вы можете задать резонный вопрос: зачем изучать новую схему? На это есть три причины. „ Довольно много литературы посвящено описанию схемы PO, особенно в эконометрике, биостатистике и эпидемиологии, поэтому понимание PO понадобится вам при чтении таких книг.
Что такое потенциальный исход? 333 Нотация PO работает на индивидуальном уровне, что делает ее более удобной для управления индивидуальными эффектами. Кроме того, она хорошо подходит для работы с контрфактуалами, поскольку их выражение в нотации «do» может быть громоздким. „ Исследование тех же идей и понятий с другой точки зрения поможет вам усвоить пройденный материал. Мы начнем главу с введения нотации PO и объясним, как определить средний эффект воздействия (average treatment effect, ATE) с помощью этой новой нотации. Мы также перечислим основные предположения, необходимые для правильного использования PO. Далее мы углубимся в связи между DAG и PO. Установим их эквивалентность с помощью первого закона причинно-следственной связи. Кроме того, я представлю краткое введение в контрфактуалы, рассматривая такие вопросы, как «Что бы произошло в определенном сценарии, если бы были предприняты другие действия?». Контрфактуалы полезны для поиска первопричины конкретных проблем, оценки эффектов дозировки в испытаниях лекарств и оценки справедливости моделей машинного обучения. Применение контрфактуалов – очень сложная тема, поэтому здесь будет предложено только краткое введение. Последний четвертый раздел будет посвящен PO-версиям формулы корректировки и инструментальных переменных. „ Зачем изучать схему потенциальных исходов? Знать схему PO важно, потому что этот подход упоминается во многих литературных источниках. Кроме того, некоторые предпочитают его подходу на основе DAG. Плюсы и минусы каждого метода являются предметом споров. Я предлагаю изучить оба, чтобы быть всесторонне развитым. 10.1. Что такое потенциальный исход? Начнем с изучения фундаментальной нотации PO. Рассмотрим сценарий, в котором требуется оценить эффективность нового метода лечения с помощью эксперимента. Этот эксперимент не обязательно должен быть рандомизированным контролируемым исследованием (RCT). У нас есть возможность случайным образом назначать лечение на основе определенных критериев по нашему выбору или даже делегировать назначение другим лицам, руководствующимся своими идеями. Мы опишем схему PO на этом примере, но вы, конечно, можете адаптировать эту схему к другим ситуациям, если укажете роли лечения, исход и пациентов (см. раздел 10.1.4, чтобы убедиться в возможности применения схемы). Мы будем использовать индекс i для идентификации пациентов, однако в других сценариях вместо пациентов мы используем термин единицы и соответствующий нижний индекс u.
334 Глава 10 Схема оценки потенциальных исходов 10.1.1. Индивидуальные исходы Рассмотрим каждый шаг процесса назначения лечения и измерения результатов. Чтобы все было более понятно, мы прибегнем к упрощению. Вот что может произойти с пациентом i: он либо получит лечение, либо нет. И по окончании эксперимента он либо выздоровеет, либо нет. Пока что ничего сложного. Важно помнить, что реакция пациента на лечение уже есть до принятия решения о лечении. Объясним это математически. В нотации PO если пациент i не лечится, t = 0, то мы представляем его реакцию (выздоровеет ли он) как Y0(i). Аналогично, если он лечится, t = 1, мы обозначим его реакцию как Y1(i). В общем случае значение Yt для данного лечения t является потенциальным исходом (PO), соответствующим этому лечению. Значения Y0(i) и Y1(i) называются потенциальными исходами, т. е. они представляют все возможные исходы для пациента i в зависимости от получаемого им лечения. Словами это можно выразить так: «Что может произойти, если он получит лечение?» и «Что может произойти, если он не получит лечения?». Мы отслеживаем обе возможности. Особо подчеркну значение PO. Реакция пациента может быть Y0(i) или Y1(i), но мы не можем увидеть или узнать ее напрямую. Она остается скрытой от нас. И вот тут начинается самое интересное: в какой-то момент мы должны решить, лечить ли пациента. Если мы лечим пациента, то можем наблюдать Y1(i). Однако сложность в том, что мы не узнаем альтернативный результат Y0(i)! Он останется для нас неизвестным. Итак, после назначения лечения мы будем знать только об одном из двух PO и оставаться в неведении другого. Наблюдаемая реакция пациента называется фактическим исходом, потому что мы видим ее в реальности. Но другой исход, который мы не можем наблюдать, называется контрфактуальным (гипотетическим), потому что это мнимый (предполагаемый) исход, который имел бы место в альтернативном сценарии, в котором пациента не лечили бы. Это как если бы мы заглядывали в параллельные вселенные, но видели только одну сторону истории. В дополнение к PO мы можем измерить еще две величины: T(i) – это окончательное лечение, полученное пациентом i, и Y(i) – это измеренная реакция пациента i. Возможно, вы заметили, что обозначения исхода Y(i) и потенциальных исходов Y0(i), Y1(i) похожи. Но пусть это сходство вас не обманывает – разница в значении колоссальна! Y(i) – это исход, наблюдаемый непосредственно, тогда как Y0(i) и Y1(i) наблюдаются частично, т. е. мы знаем только один из исходов для каждого пациента. В табл. 10.1 приводится гипотетический пример, демонстрирующий основные переменные в этом эксперименте. „ Пациент Драммер (i = 1). Потенциальные исходы Y (i) = Y (i) = 0, 1 0 что означает, что у него нет шансов на выздоровление независимо от полученного лечения. Он получил лечение, T(i) = 1, но врачи отметили, что пациент не вылечился, Y(i) = 0. „ Пациент Бартон (i = 2). Странный случай, потому что он выздоровел бы сам по себе, Y0(i) = 1. Но если бы ему было назначено лечение, то у него возникла бы отрицательная реакция, и он не вы-
335 Что такое потенциальный исход? „ „ здоровел бы, Y0(i) = 0. К сожалению, пациент получил лечение, T(i) = 1, и не выздоровел, Y(i) = 0. Пациент Холден (i = 3). Пациент с ожидаемой реакцией: он выздоровеет, если получит лечение, Y1(i) = 1, но не в противном случае, Y0(i) = 0. К счастью, он получил лечение, T(i) = 1, и выздоровел, Y(i) = 1. Пациент Авасарала (i = 4). Здоров и выздоровеет с лечением или без него, Y1(i) = Y0(i) = 1. Он не получил лечения, T(i) = 0, но это не имеет значения, потому что он в любом случае здоров, Y(i) = 1. Таблица 10.1. Гипотетический пример потенциальных исходов (PO) с назначением лечения (T(i)) и наблюдаемым выздоровлением (Y(i)) Имя i Y0(i) Y1(i) T(i) Y(i) Драммер 1 0 0 1 0 Бартон 2 1 0 1 0 Холден 3 0 1 1 1 Авасарала 4 1 1 0 1 Одна из главных трудностей в оценке PO – необходимость постоянно помнить, какие величины наблюдаются, а какие нет. Чтобы помочь идентифицировать каждую переменную, в табл. 10.2 дается четкая разбивка каждого шага эксперимента лечения пациентов. Вот что вы найдете в ней. „ Перед назначением лечения – на этом этапе есть два ненаблюдаемых PO, которые определяют, что произойдет, если пациент будет лечиться (Y1(i)) и не будет лечиться (Y0(i)). „ Назначение лечения – пациенту назначается или не назначается лечение, исходя из некоторых правил, случайных или неслучайных, которые определяют значение переменной T, где T(i) = 1 указывает, что пациент получил лечение. „ Фактический исход – наконец, мы наблюдаем фактический исход. Он представлен переменной Y(i), где Y(i) = Y1(i) обозначает реальный результат лечения пациента. Таблица 10.2. Этапы причинно-следственного процесса для пациента i (изменения на каждом этапе выделены более темной заливкой) Перед назначением лечения Назначение лечения Фактический исход T Y T Y T Y t=0 Y0(i) t=0 Y0(i) t=0 Y0(i) t=1 Y1(i) T(i) = 1 Y1(i) T(i) = 1 Y(i) = Y1(i)
336 Глава 10 Схема оценки потенциальных исходов Для большей ясности в табл. 10.3 приводится описание этих переменных. Таблица 10.3. PO (в принципе не наблюдаемые), у нас есть только данные об измеряемых переменных Потенциальные исходы (в принципе не наблюдаемые) Измеренные переменные (наблюдаемые) • Y0(i): исход для пациента i, если бы он не получил лечения • Y(i): наблюдаемый исход для пациента i • Y1(i): исход для пациента i, если бы он получил лечение • T(i): лечение, назначенное пациенту i Связь между наблюдаемыми и частично наблюдаемыми переменными выражается следующим уравнением, известным как уравнение согласованности: Y(i) = Y0(i)(1 – T(i)) + Y1(i)T(i). (10.1) Когда T(i) = 0, измеренный результат Y(i) = Y0(i), а когда пациент получает лечение, то T(i) = 1 и Y(i) = Y1(i). Уравнение согласованности будет использоваться ниже при выводе формул для оценки корректировки и инструментальных переменных (IV). 10.1.2. Коллективные исходы По аналогии с индивидуальными переменными, как те, что представлены в табл. 10.3, могут иметься переменные со значениями для всей популяции (группы, выборки): Y0, Y1, Y, T. Как их интерпретировать? Каждая из этих величин является образцом, случайно выбранным из всей совокупности. Другими словами, если у нас есть n пациентов, то значение T является случайно выбранным образцом из числа индивидуальных T(i) с вероятностью 1/n. То же относится и к другим переменным. Это означает, что мы можем определить ожидание для любой из переменных Y0, Y1, Y, T как среднее по индивидуальным значениям. Например: . Ожидание для лечения – это среднее значение по пациентам. То есть мы можем определить и другие статистики, такие как дисперсия. Важно всегда знать, какие из предыдущих величин случайны, а какие нет, чтобы понимать вероятностные утверждения. Например, потенциальные исходы Y1(i) и Y0(i) не случайны, потому что мы предполагаем, что эти функции детерминированы. То есть каждый потенциальный исход (для бинарных переменных) принимает значение 1 или 0. Технически говоря, это случайные величины, которые имеют нулевую дисперсию. То есть для конкретного пациента i и лече-
337 Что такое потенциальный исход? ния t вероятность исхода P(Yt(i) = 1) равна либо 100 %, либо 0 % в зависимости от фиксированного значения величины Yt(i). Но что означает P(Y1 = 1)? Это другая концепция. Переменная Y1 представляет собой случайную выборку PO пациентов. Поэтому P(Y1 = 1) означает процент пациентов, которые выздоровеют при лечении или, что эквивалентно, чей PO удовлетворяет условию Yt = 1. То есть вероятность относится к проценту пациентов, удовлетворяющих некоторым критериям (в данном случае Y1 = 1). Обратите внимание, что величина P(Y1 = 1) не является наблюдаемой напрямую, поскольку потенциальный исход (PO) в принципе не наблюдается! Точно так же P(T = 1) представляет собой процент пациентов, которые получили лечение, и эту величину легко рассчитать. Аналогично величина Y = 1 – это доля выздоровевших пациентов. И снова эту величину легко рассчитать. 10.1.3. Причинно-следственные эффекты При работе с PO в причинно-следственном анализе используются различные меры эффектов воздействия. Однако важно отметить, что поскольку PO Y1(i) (исход для индивидуума i, подвергшегося воздействию) и Y0(i) (исход для индивидуума i, не подвергшегося воздействию) не наблюдаются одновременно для одного и того же индивидуума, эти меры нельзя рассчитать напрямую – они являются теоретическими конструкциями, которые мы стремимся оценить с помощью специализированных методов. „ Индивидуальный эффект воздействия (individual treatment effect, ITE): Y1(i) – Y0(i) – это разница в исходах для пациента i, когда он получает и не получает лечение. Редко когда есть возможность измерить эту величину. Однако существуют некоторые исключения, такие как перекрестные испытания, когда пациенты изначально распределяются по одной группе, а затем переносятся в альтернативную группу. Это позволяет наблюдать оба PO для каждого пациента. Но перекрестные испытания имеют свои ограничения и подходят только для определенных ситуаций, например для пациентов с хроническими заболеваниями. „ Средний эффект воздействия (average treatment effect, ATE): ITE редко когда можно оценить, а вот возможность оценить ATE возникает чаще. Концепция ATE, с которой мы уже знакомы, определяется согласно ее названию как , где n – общее количество пациентов. „ Средний эффект воздействия на подвергшихся воздействию (average treatment effect on the treated, ATET): ATET был представлен в главе 5 при обсуждении соответствия мер склонности. Как следует из названия, ATET – это ATE, но рассчитанный только на тех, кто подвергся воздействию (лечился в нашем примере):
338 Глава 10 Схема оценки потенциальных исходов , где n1 – общее количество пациентов, получивших лечение. Возможно, вы заметили, что предыдущие формулы ATE и ATET отличаются только индексом i: в ATE он охватывает всех пациентов, тогда как в ATET – только получивших лечение (i, такое что T(i) = 1). При проведении RCT ATE = ATET. Поскольку назначение лечения рандомизируется, экспериментальная группа имеет те же характеристики, что и контрольная. Однако в общем случае ATET и ATE могут не быть равными. 10.1.4. Предположения о потенциальных исходах Для работы с потенциальными исходами (PO) нам нужно, чтобы они были четко определены. Поэтому далее мы определим набор неявных предположений. Если какое-либо из этих предположений не будет выполнено, то вам нужно будет поискать решение в специализированной литературе. „ Детерминированность PO: мы предполагаем, что для пациента i и лечения t потенциальный исход Yt(i) принимает только одно значение. Другими словами, если мы лечим пациента i, то он либо выздоровеет, либо нет: Y1(i) равно 1 или 0. „ Вмешательства четко определены: рассматривается только один тип лечения, и PO не зависит от того, как или почему проводится лечение. Это предположение не будет выполняться, если, например, разные врачи применяли разные типы методик или лечение включало прием лекарств разных типов. „ Предположение о стабильности воздействия на единицу (stable unit treatment value assumption, SUTVA): PO единицы не зависит от того, какое воздействие оказывается на другие единицы. Другими словами, между единицами (или пациентами в нашем примере) нет взаимовлияния. Это предположение может показаться простым, но на практике оно выполняется далеко не всегда. Рассмотрим пример, чтобы лучше понять суть. Представьте, что вы управляете интернет-магазином, продающим велосипеды, и хотите узнать лучшую цену на две модели велосипедов с похожими характеристиками, но разных марок; назовем их A и B. Для этого вы случайным образом устанавливаете цены на каждый велосипед и марку. Эти две модели конкурируют друг с другом. Если вы снизите цену на модель A, это может уменьшить вероятность, что покупатель выберет альтернативную модель B. Таким образом, отношение (цена) одного товара (A или B) в конечном итоге влияет на покупку другого бренда. В некотором смысле мы можем сказать, что воздействие на цену одного велосипеда влияет на PO покупки другого велосипеда. Эта ситуация нарушает предположение об отсутствии взаимовлияния между единицами или пациентами. В таких случаях вам нужно будет изучить специализированную литературу, посвященную этой проблеме.
Связь метода потенциальных исходов с методом графов 339 Как будет показано в следующем разделе, в DAG предположения работают иначе: они не требуют детерминированности PO, а предположения о четкой определенности вмешательств и SUTVA подразумеваются при построении графа. 10.2. Связь метода потенциальных исходов с методом графов Являются ли PO и DAG совершенно разными теориями? Придется ли нам изучать совершенно новую теорию причинно-следственного анализа? У меня для вас хорошая новость! Они не совсем разные, и вам не придется начинать с нуля. PO и DAG рассматривают одни и те же концепции, только называют их по-разному. 10.2.1. Первый закон причинно-следственного анализа Давайте посмотрим, как перевести PO в DAG, используя то, что Джуда Перл (Judea Pearl) называет первым законом причинно-следственного анализа. Вспомним значение Y1(i): реакция пациента i, если бы ему было назначено лечение. Теперь представим, что у нас есть граф G. Этот граф может принимать любую форму по нашему желанию. Переменная Y в графе представляет интересующий нас исход, а переменная T обозначает воздействие (лечение). У нас имеются данные для всех n пациентов: T(1), ..., T(n) и Y(1), ..., Y(n). Кроме того, мы предполагаем, что один и тот же граф G действителен для каждого из них. В нотации DAG назначение лечения пациенту i означает вмешательство в граф с помощью оператора «do». То есть PO – это то же самое, что вмешательство в граф Y1(i) = Y(i)|do(T(i) = 1), где Y(i)|do(T(i) = 1) обозначает исход для пациента i после вмешательства в граф. Первый закон причинно-следственного анализа PO пациента i есть не что иное, как результат вмешательства в граф G с помощью оператора «do». В общем случае для пациента i и значения лечения t = 0, 1 Yt(i) = Y(i)|do(T(i) = t). По сути, результат «do» и PO одинаков. Первый закон также говорит нам о наличии связи между причинными оценками. Поскольку ожидания являются средними по пациентам, то эффект вмешательства можно записать с использованием любого из двух эквивалентных выражений: E[Yt] = E[Y|do(T = t)]. Более того, ATE можно записать как ATE = E[Y1] – E[Y0] = E[Y|do(T = 1)] – E[Y|do(T = 0)].
Глава 10 Схема оценки потенциальных исходов 340 Связь между PO и DAG гораздо глубже. Теорема, доказанная Джудой Перлом (в его книге «Causality»), гласит, что если заключение справедливо в одной схеме, оно автоматически справедливо и в другой. Говоря неформально, эти две схемы (PO и DAG) эквивалентны. Дело в том, что, несмотря на эквивалентность, у каждого подхода есть свои сильные и слабые стороны. Поэтому предпочтительнее изучить оба и использовать тот, который лучше соответствует конкретной ситуации! 10.2.2. Выражение предположений PO с помощью DAG Мы установили эквивалентность подходов PO и DAG. Но как предположения из одной схемы отражаются в другую? Четкая определенность вмешательства и предположение SUTVA из раздела 10.1.4 встроены в построение графа. Рассмотрим это более подробно. Четкая определенность вмешательства Схема оценки PO требует уникального определения воздействия, тогда как DAG могут обрабатывать несколько версий воздействия, помогая прояснить его область действия. Рассмотрим пример. Допус­ тим, что нам нужно оценить эффект хирургического вмешательства, и каждый хирург использует свои приемы, которые могут по-разному влиять на выздоровление. Этот сценарий можно представить в виде графа, как показано на рис. 10.1. Хирург Операция Выздоровление Рис. 10.1. Если разные хирурги оказывают разное влияние на выздоровление и используют разные приемы, то мы не можем предполагать, что оперативное вмешательство окажет на всех одинаковый эффект, потому что он зависит от хирурга Если предположить, что все хирурги оказывают одинаковое влияние на результат операции, то интерес для нас будет представлять оценка влияния вмешательства в целом, P(Выздоровление = 1|do(Операция = 1)). Однако если требуется оценить эффект влияния каждого хирурга, то интерес для нас будет представлять оценка условного вмешательства, P(Выздоровление = 1|do(Операция = 1), Хирург). В схеме PO это означает, что мы определяем лечение либо как «проведение операции», либо учитываем релевантность хирурга, что приводит нас к определению нескольких видов лечения, по одному для каждого хирурга. SUTVA В графовых подходах к анализу причинно-следственных связей предположение о стабильности воздействия на единицу (SUTVA) не используется. Это связано с тем, что проблема взаимовлияния больше относится к интерпретации вмешательства с помощью оператора «do», чем является ограничением самого графа. Рассмотрим пример, иллюстрирующий это.
Связь метода потенциальных исходов с методом графов 341 Вернемся к примеру из раздела 10.1.4, в коЦена1 Модель1 тором мы случайно назначаем цены для двух моделей велосипедов, A и B, с похожими характеристиками. Предположим, что покупаЦена2 Модель2 тели изучают обе цены, а затем, основываясь на этой информации, совершают покупку, как Рис. 10.2. Влияние показано на рис. 10.2. Для простоты предполо- цены на продажи конкурирующих товаров. жим, что клиенты могут купить ноль, один или Между ценами сущест­ два велосипеда. Возможно, более реалистич- вует взаимовлияние, ным будет предположить, что каждый клиент поэтому мы не можем может купить только один велосипед, но это предположить стабильность воздействия на сделает модель более сложной. Проблема с использованием в этом сце- единицу (SUTVA) нарии инструментов, обсуждавшихся до сих пор, заключается в том, что они оценивают влияние Цены1 на продажи Модели1, предполагая, что цены на другие товары рандомизированы. Однако в реальной жизни вопрос может заключаться в оценке влияния в другой обстановке, где цены на другие товары не рандомизированы. На первый взгляд кажется, что здесь нет никаких искажающих факторов, а значит, оценить причинно-следственный эффект будет легко. Но что именно мы пытаемся оценить? Возможно, нас интересует вероятность P(Модель1 = Да|do(Цена1 = p)), т. е. какова вероятность, что клиент купит Модель1, если установить для нее цену p. Напомню, что интерпретация оператора «do» подразумевает фиксацию значения Цена1, позволяя остальной части системы функционировать как обычно. Однако в этом случае Цена2 рандомизируется. То есть мы по сути измеряем эффект влияния Цены1 на решение о покупке Модели1 при условии рандомизации Цены2. Скорее всего, это не тот вопрос, ответ на который мы хотим получить. Оценка причинно-следственного эффекта в этой ситуации требует более сложных методов, обсуждение которых выходит за рамки этой книги. Однако мы снова можем использовать графы, чтобы явно обозначить наши предположения, признать ограничения текущих инструментов и указать на необходимость использования более продвинутых методов. 10.2.3. Контрфактуалы Слово контрфактуал (counterfactual) часто встречается в причинноследственном анализе, но может иметь разные значения в схемах PO и DAG. В PO контрфактуалы присутствовали с самого начала. Они обозначают потенциальные исходы, которые на самом деле не наблюдались. Это все равно что спросить: «Что бы произошло, если бы мы назначили пациенту другое лечение?» Мы не можем напрямую наблюдать этот результат, но можем делать обоснованные предположения на основе имеющихся у нас данных.
Глава 10 Схема оценки потенциальных исходов 342 Контрфактуалы в DAG В DAG, напротив, контрфактуалы являются продвинутой концепцией. Я объясню их здесь, чтобы показать отличие от контрфактуалов в схеме PO. Контрфактуалы в DAG затрагивают более общий вопрос: что бы произошло в конкретной ситуации, если бы мы сделали другой выбор или предприняли другие действия? Например, ATET – это контрфак- туальная величина: что бы произошло с теми, кого лечили, если бы их не лечили? Мы спрашиваем про ситуацию, противоположную той, что имела место на самом деле. Пример контрфактуала (продвинутый) Вы можете задаться вопросом о разнице между контрфактуальным определением, которое мы только что обсудили, и определением PO, таким как Yi(1). Каким был бы исход для пациента i, если бы он получил лечение? Разница в формулировках малозаметна, но выразить ее математически довольно сложно. Я приведу пример контрфактуальности с использованием подхода Перла. Тема контрфактуалов может показаться сложной, поэтому если она покажется вам слишком запутанной, то не волнуйтесь – вы всегда сможете вернуться к ней позже. Рассмотрим следующий рисунок в контексте задачи почечнокаменной болезни, которую мы рассматривали в главе 2 при обсуждении z-специфических эффектов. Здесь метод лечения T влияет на размер камней S после лечения, и оба фактора вместе влияют на исход O. В этом случае S является медиатором. S T O Размер камней выступает в качестве медиатора. Чтобы выяснить, что случилось бы с пациентами с большими камнями после лечения, если бы их лечили по-другому, нужно использовать более продвинутый метод, известный как контр­ фактуалы. S означает размер (Size), T – лечение (Treatment), а O – исход (Outcome) Давайте поразмыслим над этим сценарием: предположим, мы решили исследовать пациентов, у которых размер камней увеличился после лечения. Нам интересно, что произойдет, если все эти пациенты будут лечиться методом А. На первый взгляд эта ситуация может показаться противоречивой. У некоторых из этих пациентов, если им назначить лечение А, могут не появиться крупные камни! Что следует рассмотреть в первую очередь: отбор пациентов или лечение, которое они получают? Именно поэтому мы используем концепцию контрфактуалов. Она включает в себя два шага: отобрать группу пациентов; математически это означает, что мы „ ставим условие S = Большие;
Формула корректировки с потенциальными исходами 343 применить определенное вмешательство к этой группе; в математических терминах мы используем оператор do(T = A). Однако она очень сложна в реализации, а ее обсуждение выходит за рамки этой книги. Важнейший аспект определения контрфактуальности Джуды Перла – фраза «для конкретной ситуации». Она относится к возможности предварительного обусловливания определенной группы или сценария перед осуществлением какого-либо вмешательства. То есть это понятие контрфактуальности является гораздо более общим, чем то, которое дается определением PO. „ В схеме с использованием DAG контрфактуальные утверждения являются третьей ступенью того, что Джуда Перл называет «Лестницей причинности». Ниже перечислено, на чем фокусируется каждая ступень. „ Первая ступень: ассоциация. На этом уровне мы фокусируемся на наблюдении и исследовании данных. В число задач, решаемых на этом этапе, входят: оценка неопределенности с применением статистических инструментов, разведочный анализ данных и построение прог­ ностических моделей. Все это помогает ответить на такие вопросы, как «Излечиваются ли головные боли у людей, принимающих аспирин?», даже если выздоровление никак не связано с аспирином. „ Вторая ступень: вмешательство. Этот уровень занимается вопросами, связанными с изменением динамики системы, и помогает оценить эффект решений. Например: «Сколько людей избавятся от головной боли, если им дать аспирин?» „ Третья ступень: контрфактуалы. Здесь рассматриваются вопросы о том, что бы произошло при других действиях или выборе. Например: «Исчезла бы головная боль без аспирина?» Контрфактуалы позволяют оценить фактическую причинность: то есть рет­ роспективно проанализировать причины события. Иногда на уровне ступени вмешательства оцениваются «следствия причин» (следствия решения), а на уровне ступени контрфактуалов исследуются «причины следствий» (почему что-то произошло?). Контрфактуалы в рамках DAG считаются продвинутой темой, которая выходит за рамки этой книги. Если вы решите изучить эту тему глубже, то я рекомендую прочитать специализированную литературу, например книгу Джуды Перла «Causality». 10.3. Формула корректировки с потенциальными исходами Формула корректировки одинакова в обеих схемах, PO и DAG. Но дело в том, что она приносит пользу, только когда есть возможность ее применить. В подходе на основе графов есть критерий обходного пути, который сообщает, когда нужно использовать формулу корректировки. Но этот критерий опирается на графы. Поскольку схема PO не ис-
344 Глава 10 Схема оценки потенциальных исходов пользует графы, нужен какой-то другой способ выяснить, когда следует или не следует применять формулу корректировки. Напоминание о критерии обходного пути Критерий обходного пути между X и Y говорит нам, что если набор переменных Z удовлетворяет условиям: блокирует все пути обхода X (пути, входящие в X); „ „ не разрывает причинно-следственные связи, исходящие из X; тогда можно скорректировать Z с помощью формулы корректировки, чтобы получить несмещенную оценку АТЕ. В этом разделе мы познакомимся с предположением об условной независимости (ignorability assumption) для схемы PO, которое помогает понять, когда можно применить формулу корректировки. Предположение об условной независимости гласит, что мы можем корректировать ковариаты X, пока потенциальные исходы независимы от воздействия, учитывая ковариаты X: Y1, Y0 ⊥ T|X. Терминология условной независимости Предположение об условной независимости по-разному называется и определяется в разных книгах и источниках. В некоторых из них можно столкнуться с такими терминами, как строгая условная независимость и перестановочность. Кроме того, в одних контекстах концепция условной независимости может включать предположение о положительности, а в других – нет. Если это выражение выглядит непонятным, то не волнуйтесь, мы рассмотрим его во всех деталях далее. Начнем с простого случая: представьте, что мы проводим RCT. Распределение выполняется случайным образом, поэтому при большом размере выборки мы ожидаем, что обе группы будут иметь одинаковые доли членов групп с теми или иными характеристиками. Например, в обеих группах должна быть примерно одинаковая доля пациентов определенного возраста, с определенным социально-экономическим уровнем, определенного пола и т. д. Выбрав любой возраст, назовем его a, мы обнаружим, что вероятность наличия этого возраста в группе пациентов, получающих лечение (T = 1), такая же, как в группе пациентов, не получающих лечение (T = 0). Математически это выражается как P(Возраст = a|T = 1) = P(Возраст = a|T = 0). Проще говоря, это математическое выражение говорит, что доля пациентов определенного возраста не зависит от назначения лечения. То есть переменные Возраст и T не зависят друг от друга, согласно определению вероятностной независимости. Важно понимать, что потенциальный исход Y1(i), как и любая другая характеристика человека, такая как возраст или пол, определяется
345 Формула корректировки с потенциальными исходами еще до принятия решения о назначении лечения. Поэтому в RCT ожидается, что в обеих группах будет одинаковая доля пациентов с Y1(i) = 1: P(Y1(i) = 1|T = 1) = P(Y1(i) = 1|T = 0), т. е. что Y1(i) и T независимы. Итак, в RCT мы будем иметь Y1, Y0 ⊥ T. Обратите внимание на сходство этого утверждения с предположением о независимости Y и T, но это обманчивое (обычно!) сходство. На самом деле мы ожидаем, что воздействие (лечение) T влияет на результат Y, поэтому они не могут быть независимыми друг от друга. Хотя обозначения кажутся похожими, их смысл существенно отличается. Что происходит, когда мы не проводим RCT и есть искажающие факторы X? Представьте, что мы назначили лечение, основываясь на возрасте пациента. Молодые пациенты более склонны к выздоровлению. С одной стороны, мы можем предположить, что возраст коррелирует с возможностью выздоровления пациентов при лечении. Другими словами, возраст коррелирует с каждым из потенциальных исходов Y1, Y0. С другой стороны, в этом эксперименте возраст коррелирует с лечением. Поэтому лечение больше не является независимым от потенциального исхода. Однако если мы выбираем определенную возрастную группу (тем самым ставим условие на основе возраста), то возраст (фиксированная переменная) не зависит от лечения, и для этой конкретной группы лечение и потенциальный исход независимы. Это рассуждение приводит нас к предположению об условной независимости – при наличии искажающих факторов X воздействие и потенциальный исход независимы: Y1, Y0 ⊥ T|X. По сути, предположение об условной независимости гарантирует, что не существует значимых факторов, влияние которых не передается через X. Дело в том, что если предположение об условной независимости верно, то ATE можно рассчитать с помощью формулы корректировки ATE = EX[E[Y|T = 1, X]] – EX[E[Y|T = 0, X]], где EX обозначает ожидание относительно переменных X. На первый взгляд эта формула может показаться новой, поскольку она написана с использованием ожиданий. Но она такая же, как и формула корректировки в главе 2. Проверьте: для бинарного результата Y и категориальных ковариатов X мы имеем .
346 Глава 10 Схема оценки потенциальных исходов Вывод формулы корректировки из предположения об условной независимости Объяснение в этой врезке адресовано лишь тем читателям, которым интересно узнать математические детали формулы корректировки при использовании предположения об условной независимости. При сделанном предположении об условной независимости, поскольку потенциальные исходы (PO) не зависят от воздействия (лечения), мы имеем Е[Y1|X] = Е[Y1|T = 1, X]. Согласно уравнению 10.1, наблюдаемый результат для пациента, получившего лечение, – это именно PO, поэтому E[Y1|T = 1, X] = E[Y|T = 1, X]. Это означает, что можно преобразовать выражение, зависящее от ненаблюдаемой величины, в наблюдаемую величину: для бинарной переменной воздействия t = 0, 1 E [Yt|X] = E[Y|T = t, X]. Теперь можно применить закон полного ожидания, чтобы найти ATE = EX[Y1 – Y0] = EX[E[Y1 – Y0|X]] = EX[E[Y1|X]] – EX[[Y0|X]]. Наконец, предыдущие уравнения можно объединить в формулу корректировки: ATE = EX[E[Y|T = 1, X]] – EX[E[Y|T = 0, X]]. Теперь, узнав о возможности корректировки набора переменных X при выполнении предположения об условной независимости, возникает следующий вопрос: как определить, что независимость имеет место? Некоторые эксперты-аналитики могут распознать выполнение этого предположения во многих случаях, но для большинства людей это довольно сложно, что становится существенным ограничением схемы PO: оценка предположения о неведении – непростая задача для обычного человека. Связь между критерием обходного пути и предположением об условной независимости К счастью, для определения независимости достаточно критерия обходного пути. Если обнаружится набор переменных X, который удовле­ творяет критерию обходного пути относительно двух переменных T и Y, то это автоматически подтверждает предположение об условной независимости. Другими словами, PO не зависят от лечения при заданных ковариатах X.
347 Инструментальные переменные с потенциальными исходами 10.4. Инструментальные переменные с потенциальными исходами Поскольку схемы PO и DAG эквивалентны, процесс оценки с применением инструментальных переменных (IV), который мы исследовали в предыдущей главе, остается действительным. Чтобы попрактиковаться в использовании нотации PO, рассмотрим другой вариант IV. В главе 9 мы узнали, что не существует общей формулы для оценки причинно-следственного эффекта влияния D на Y, как показано на рис. 10.3. Чтобы оценить такой причинно-следственный эффект, нужно сделать дополнительные предположения. В частности, мы рассмот­рели два варианта. Во-первых, предположили, что все связи в графе линейны. Во-вторых, предположили, что воздействие имеет бинарный характер и его влияние на результат частично линейное. C Рис. 10.3. Обобщенный граф с IV Z D Y Мы сосредоточимся на варианте, который идеально подходит для примера с чат-ботом. Согласно сценарию, мы провели A/Bтестирование, в котором клиенты случайным образом распределялись в экспериментальную группу, где они взаимодействовали с чатботом, или в контрольную группу, где у них не было доступа к чат-боту. Ниже перечислены роли переменных, изображенных на рис. 10.3: „ D – переменная воздействия или решения, которая показывает, использовал ли клиент чат-бот; „ Z – группа, в которую включен клиент (значение 0 или 1); „ Y – вовлеченность клиента в платформу. В этом примере отдельная характеристика позволяет оценить причинно-следственное влияние на Y: клиенты в контрольной группе не имеют доступа к чат-боту. Математически это означает, что вероятность использования чат-бота среди членов контрольной группы равна нулю: P(D = 1|Z = 0) = 0. В результате мы можем отказаться от предположения о частичной линейности, которое требовалось в предыдущей главе, как объясняется ниже. Неидеальное соответствие IV Переменные Z и D – бинарные и P(D = 1|Z = 0) = 0. В этом случае оценить ATE для объекта, на который оказывается воздействие, можно с помощью следующей несмещенной формулы: .
348 Глава 10 Схема оценки потенциальных исходов Желающие ознакомиться с математическим доказательством найдут его в приложении F. Я настоятельно рекомендую просмотреть его, чтобы получить дополнительную практику PO. Возможно, вы заметили, что эта формула идентична той, которую мы видели в главе 9, и тоже включает тот факт, что E[D = 1|Z = 0] = 0. Но зачем вся эта суета вокруг разных вариаций IV, если результат получатся один и тот же? Резонный вопрос, и ответ заключается в интерпретации результатов. В зависимости от сделанного предположения один и тот же результат может представлять разное количество или значение. В этом конкретном случае мы говорим, что можем оценить причинно-следственный эффект только для тех, на кого было оказано воздействие (кто использовал чат-бот). Поэтому мы не знаем, как отреагируют клиенты, не использовавшие чат-бот, когда попробуют его. Это кажется логичным. Если у нас нет информации о тех, кто не использовал его, то мы не можем предполагать, как они будут взаимодействовать с чат-ботом. Но почему эта проблема не поднималась в главе 9? Потому что там предполагались однородность эффектов воздействия. Например, когда мы предполагаем частично линейную зависимость Y := wY + bD + h(C ) + εY (раздел 9.2.2), мы по сути говорим, что эффект от применения чат-бота равен величине b, независимо от того, кто его использует. В этой главе мы предполагаем неоднородность: эффект от использования чат-бота может быть разным для разных клиентов. Если предполагается однородность, то эффект воздействия на всю популяцию будет одинаковым, а ATE и ATET согласуются (ATE = ATET). 10.5. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Перечислите три предположения схемы потенциальных результатов. Ответ в разделе 10.1.4. 2 Эквивалентны ли схемы PO и DAG? Ответ в разделе 10.2.1. 3 Какова связь между предположением об условной независимости и критерием обходного пути? Ответ во врезке «Связь между критерием обходного пути и предположением об условной независимости» в разделе 10.3.
Итоги 349 Итоги „ „ „ „ „ Потенциальные исходы (PO) и ориентированный ациклический граф (DAG) – это две эквивалентные схемы. Схема PO чаще используется в эконометрике и биостатистике и особенно удобна для обработки контрфактуалов и оценки индивидуальных эффектов. Схема DAG, в свою очередь, предлагает графовые критерии, такие как критерий обходного пути, и позволяет более четко определять предположения модели. Основные предположения модели PO: потенциальные исходы являются детерминированными, вмешательства должны быть четко определены и должно выполняться предположение о стабильности воздействия на единицу (SUTVA). В литературе по PO применение формулы корректировки обычно требует, чтобы набор корректировок удовлетворял предположению об условной независимости. Это предположение выполняется автоматически, если набор удовлетворяет критерию обходного пути. Существует несколько вариаций инструментальных переменных, которые используют одну и ту же формулу. Решающим аспектом при выборе вариации является понимание сделанных предположений и их влияния на интерпретацию результатов. Лестница причинности Перла подразделяет причинно-следственные вопросы на три ступени: ассоциация, вмешательство и контрфактуалы.
11 Эффекты событий во времени В этой главе: „ „ „ синтетический контроль, метод разрывной регрессии и метод сравнения разностей; предположения и ограничения этих трех методов; использование этих методов для оценки причинно-следственных связей. В главе 1 мы рассмотрели пример оценки влияния вновь созданного веб-сайта и узнали, что лучший способ сделать такую оценку – A/Bтестирование. Однако, как мы уже знаем, не всегда есть возможность провести A/B-тестирование. Поэтому в этой последней главе мы снова вернемся к оценке эффекта решения, сравнивая ситуацию до и пос­ ле, не полагаясь на A/B-тестирование. То есть мы сосредоточимся на изучении влияния событий во времени. В этой главе мы исследуем три метода оценки эффекта решения. Все они применимы в разных ситуациях. Поэтому будем придерживаться следующего правила: по мере изучения каждого метода пример будет модифицироваться так, чтобы мы могли увидеть, в каких случаях применим метод, какие у него есть предположения и как его использовать для оценки ATE.
Эффекты событий во времени 351 Итак. Представьте, что мы работаем в потоковом видеосервисе и собираемся запустить новый фильм «VII: Пробуждение силы» из саги «Звездные войны». Нам интересно узнать, как запуск этого фильма повлияет на просмотры предыдущего фильма «III: Месть ситхов» из той же саги «Звездные войны». Понимание, как выход одного фильма влияет на зрительскую аудиторию других фильмов, поможет компании решить, какие новые фильмы стоит выпускать. В идеале хотелось бы провести A/B-тестирование, чтобы измерить влияние нового фильма на просмотры других из каталога сервиса. В таком тестировании экспериментальная группа имела бы доступ к новому фильму (VII), а контрольная группа – нет. Однако такой эксперимент очень непрактичен, поскольку по причинам популярности вы не можете позволить себе выпустить фильм только для эксклюзивной группы клиентов. Итак, как оценить ATE с неэкспериментальными данными, распределенными во времени? Сначала давайте посмотрим, как выглядят эти данные. На рис. 11.1 показан тренд из Google Trends веб-поиска старого фильма (III) в декабре 2015 г. Метрика, сообщаемая Google Trends, называется интересом и представляет собой количество поисков, масштабированное так, чтобы максимальное значение равнялось 100. Напомню, что новый фильм (VII) вышел 18 декабря. Рис. 11.1. Выход нового фильма «Звездные войны» может повысить интерес (как сообщает Google Trends) к предыдущим фильмам «Звездные войны». Источник: Google Trends ПРИМЕЧАНИЕ. В качестве иллюстративного примера мы ис- пользуем поиск Google Trends. Однако основное внимание в этом разделе уделяется оценке влияния выхода нового фильма на просмотры старых фильмов. Это совершенно другая метрика, отличная от количества веб-поисков, отображаемых в Google Trends.
Глава 11 Эффекты событий во времени 352 Явный скачок в количестве поисков старого фильма, по-видимому, подтверждает гипотезу о том, что выпуск фильма «VII: Пробуждение силы» увеличил просмотры фильма «III: Месть ситхов». Но корреляция не является причинно-следственной связью, поэтому скачок не обязательно вызван новым фильмом. Как мы знаем из главы 1, нельзя полагаться на разницу в просмотрах до и после выпуска, пытаясь оценить эффект влияния. Контекст до и после может быть несопоставим из-за одновременных факторов (факторов, происходивших в одно и то же время), совпавших с выпуском фильма, которые могли повлиять на количество запросов: возможные одновременные маркетинговые кампании и сезонность и т. д. Наличие одновременных факторов не позволяет оценить причинно-следственные эффекты. Однако часто вполне можно предположить отсутствие одновременных факторов или по крайней мере ограниченность их влияния. В таких случаях, углубляясь в процесс выпуска фильма и включая разум­ ные дополнительные предположения, мы можем повысить надежность нашей оценки. Далее мы рассмотрим три разных подхода к оценке эффекта выхода нового фильма. Каждый метод адаптирован для разных ситуаций, поэтому имеет разные наборы предположений. Изучив следующие три метода, вы получите более прочное понимание особенностей оценки причинно-следственных эффектов. „ „ Метод разрывной регрессии (regression discontinuity design, RDD) – контекст до и после выпуска «VII: Пробуждение силы» может сильно отличаться и потому не сопоставим. Но если увеличить масштаб рядом с датой выпуска, то различия станут меньше. RDD предоставляет причинно-следственные оценки, исходя из предположения, что данные, близкие к дате выпуска, можно рассматривать так, как если бы они были получены в результате A/B-тестирования. Синтетический контроль (synthetic control, SC) – рассмотрим еще одну популярную кинофраншизу: «Властелин колец» (ВК). «Влас­ телин колец» и «Звездные войны» могут демонстрировать схожие закономерности, особенно в отношении фильмов, выпущенных давно. На них влияют общие факторы, такие как сезонность, схожая целевая аудитория и схожая конкуренция. Однако выход нового фильма «Звездные войны» может потенциально повлиять на старые фильмы «Звездные войны», но не на «Властелин колец». Учитывая высокую корреляцию между «Звездными вой­ нами» и «Властелином колец», можно разработать прогностическую модель для ответа на гипотетический вопрос: «Что бы произошло со зрительской аудиторией старых фильмов “Звездные войны”, если бы новый фильм никогда не вышел?» Увлекательный аспект этого подхода, известного как синтетический контроль, заключается в том, что он не ограничивается
Эффекты событий во времени 353 прог­нозированием изменений, основанных только на просмотрах других фильмов. С его помощью можно создать модель с другими связанными величинами, такими как количество проданных билетов в кино в разных странах. Пока модель хорошо предсказывает, все в порядке! „ Метод сравнения разностей (differences in differences, DiD) – отсутствие контрольной группы в самом начале не означает, что ее нельзя найти позже. Возьмем, к примеру, сериал «Властелин колец». Он имеет довольно похожую картину просмотров, но на него не повлиял (сделаем вид, что это так) новый фильм «Звездные войны». С другой стороны, нам может быть интересно найти влияние выпуска новой серии не только на конкретный фильм «Звездные войны», но и на все ранее выпущенные фильмы. DiD помогает выяснить, какое влияние новый фильм оказал на предыдущие фильмы, путем сравнения его с другими фильмами с похожей тенденцией. Эта глава разбита на три основных раздела, по одному для каждого метода: RDD, SC и DiD. Все три раздела имеют одинаковую структуру, что облегчает понимание различий между ними: „ „ „ „ „ „ введение – в этом разделе даются описание методики и основные положения, лежащие в ее основе; моделирование данных – перед углублением в теорию будет создаваться синтетический набор данных, подходящий для метода; терминология – рассматриваются и объясняются имена, присвоенные каждой переменной; предположения – объясняются основные предположения, на которых основан метод, и в каких ситуациях его можно применять; оценка эффекта – каждый метод оценивает причинно-следственную величину, иногда отличную от ATE, которую мы видели раньше. Этот раздел описывает, что в действительности оценивает каждый метод; практика – в этом разделе рассматриваются основные алгоритмы для каждого метода и объясняется, как использовать программные библиотеки, которые их реализуют. Как и в предыдущих главах, мы протестируем алгоритмы с использованием синтетических данных. Проблема реальных данных в том, что они не дают уверенности в точности результатов нашего анализа. Но когда мы создаем данные самостоятельно, то точно знаем используемый для этого процесс, что позволяет вычислить истинный ATE. Благодаря этому есть возможность оценить эффективность метода, сравнив его результаты с истинным ATE. Испытание методов на синтетических данных укрепляет уверенность в подходе. Имея такую уверенность, вы сможете применить метод к реальным наборам данных.
354 Глава 11 Эффекты событий во времени Когда имеет смысл использовать методы, связанные со временем Эти методы следует использовать всегда, когда требуется оценить эффект события во времени. В общем случае старайтесь следовать этим рекомендациям: „ используйте RDD, если нет никаких существенных внезапных изменений, вызванных другими факторами, помимо главного события; используйте SC, если есть возможность сопоставить свой времен„ ной ряд с другими временными рядами; применяйте DiD для оценки влияния события на группу элементов. „ 11.1. Какие типы данных будут использоваться? Прежде чем двигаться дальше, проясним, какие типы данных мы будем использовать в этой главе. Существует три типа данных, связанных со временем. „ Данные перекрестных рядов (cross-sectional data) включают множест­ во измерений, выполненных в один момент времени. Это может быть количество просмотров каждого фильма «Звездные войны» в день его выхода. „ Данные временных рядов (time series data) фокусируются на отслеживании одного субъекта или элемента в течение некоторого периода времени. Например, вы можете отслеживать количество просмот­ ров первого фильма «Звездные войны» в течение многих дней. „ Панельные данные (panel data) объединяют два других типа. Они включают отслеживание нескольких элементов в течение некоторого времени. Например, вы можете фиксировать ежедневные просмотры всех ранее выпущенных фильмов «Звездные вой­ ны» за трехмесячный период. В следующих разделах мы более подробно рассмотрим каждый из трех методов, но имейте в виду, что представленные здесь версии являются простейшими формами. RDD и SC будут нацелены на данные временных рядов, а DiD, осуществляющий анализ множества фильмов «Звездных войн» одновременно, будет иметь дело с панельными данными. ПРИМЕЧАНИЕ. Для каждого метода существуют вариации, не связанные со временем. Например, эти же методы можно использовать для оценки эффекта новой экологической политики, сравнивая соседние районы города, реализующие политику по-разному. Самое интересное, что, поняв, как эти методы работают с события­ ми, связанными со временем, вы сможете с легкостью применять их к задачам других типов. Эти методы описываются во множестве источников, и они постоянно совершенствуются. Если для вашего сценария вам потребуются более конкретные адаптации, то я предлагаю найти и изучить специализированную литературу. На протяжении всего следующего раздела помните, что наша цель – оценить влияние выпуска «VII: Пробуждение силы» на «III: Месть сит-
Метод разрывной регрессии 355 хов». Событие, представляющее интерес, которое мы назовем главным событием, – это выпуск «VII: Пробуждение силы». Главное событие играет роль воздействия. Событие происходит в момент времени T. В нашем примере T – это время выпуска: 18 декабря 2015 г. Чтобы лучше разобраться в каждом из методов, мы будем использовать синтетический набор данных, адаптированный к потребностям каждого раздела. 11.2. Метод разрывной регрессии Предположим, что данные, связанные с количеством просмотров «III: Месть ситхов», выглядят, как показано на рис. 11.2 (код, генерирующий данные, показан в разделе 11.2.1). Простейший способ выяснить, как выпуск нового фильма влияет на количество просмотров, чтобы сравнить количество людей, посмотревших фильм до и после выхода новой серии. Но этот метод может давать искаженные результаты, если в то же время происходили другие события, тоже влиявшие на количество людей, посмотревших фильм. Но не волнуйтесь, надежда не потеряна. Если эти другие факторы, которые произошли в то же время, не вызвали резких изменений в зрительской аудитории, а оказывали постепенное влияние, то мы сможем оценить причинно-следственные связи с помощью RDD. Чтобы понять, как работает RDD, необходимо знать следующую идею: если другие факторы оказывают постепенное влияние, то чем ближе мы к дате события, тем меньшее влияние эти факторы будут иметь на исход. Например, сезонность может не оказывать большого влияния на ежедневные просмотры фильмов, но она может оказаться существенным фактором при объяснении различий между двумя измерениями, которые разделены шестью месяцами. Таким образом, RDD использует идею о том, что при приближении ко времени события факторы следует рассматривать как имеющие одинаковое влияние до и после события. Это также верно в отношении влияния других одновременных факторов. Почему RDD позволяет оценить причинно-следственный эффект даже при наличии одновременных факторов? Дело в том, что когда воздействие других факторов происходит постепенно, ситуацию можно представить следующим образом: вблизи даты события T существует период времени [T – s, T + s], где „ s – небольшой временной интервал, который можно рассматривать так, как если бы не было никаких одновременных факторов; „ в этот период времени [T – s, T + s], в течение которого нет одновременных факторов и единственный потенциальный эффект обу­ словлен главным событием, данные можно рассматривать, как если бы они были получены в результате A/B-тестирования. Этот способ представления RDD – всего лишь приближение, которое может помочь лучше понять, как RDD используется на практике. С технической точки зрения, предположение о возможности рассматривать данные вблизи времени события как случайные называется локальной рандомизацией.
Глава 11 Эффекты событий во времени Количество просмотров 3-го фильма «Звездные войны» 356 Время Рис. 11.2. Данные, имитирующие количество просмотров фильма «III: Месть ситхов». Здесь наблюдается всплеск просмотров, за которым следует спад. Чтобы проверить, правильно ли работают наши алгоритмы, мы можем протестировать их на синтетических данных Рассуждения в пользу RDD выглядят следующим образом: поскольку предполагается, что факторы, отличные от главного события, не вызывают внезапных и резких изменений, то если отмечается существенный скачок в данных в момент времени T, мы можем приписать его главному событию. Другими словами, если в данных имеется большой скачок, то его можно интерпретировать как эффект главного события. 11.2.1. Моделирование данных Как уже отмечалось, лучший способ понять особенности работы этих методов – применить их к искусственно сгенерированному набору данных. Давайте сгенерируем данные для этого раздела. В листингах 11.1 и 11.2 выбирается временное окно (параметр periods_n) и эффект выхода фильма. Листинг 11.1. (R) Подготовка к созданию синтетического набора данных library(ggplot2) set.seed(1234) periods_n <- 15 impact <- 1000
Метод разрывной регрессии 357 time_points <- seq(-periods_n, periods_n) n <- length(time_points) Листинг 11.2. (Python) Подготовка к созданию синтетического набора данных from numpy.random import normal, seed from numpy import abs, cos, mean, pi, arange import statsmodels.formula.api as smf import pandas as pd from rdrobust import rdrobust seed(1234) periods_n = 15 impact = 1000 time_points = arange(-periods_n, periods_n + 1) n = len(time_points) Теперь создадим набор данных. Для этого нужно сгенерировать два потенциальных исхода (что случится, если выпуск новой серии произойдет, и что случится, если не произойдет). Чтобы сделать набор данных более реалистичным, в него добавляется сезонный тренд, как показано на рис. 11.3. Для получения эффекта новизны мы имитируем максимальное влияние в момент времени 0 и его постепенное уменьшение со временем. Рис. 11.3. Имитация тренда сезонности. Мы добавляем этот тренд в сгенерированные данные, чтобы сделать их более реалистичными
Глава 11 Эффекты событий во времени 358 Листинг 11.3. (R) Генерирование данных seasonality <- -cos(time_points/(2*pi)) D <- as.numeric(time_points >= 0) Y_0 <- 500 + 100*seasonality + rnorm(n, sd=50) Y_1 <- Y_0 + impact * D / (abs(time_points) + 1) Y <- D*Y_1 + (1-D)*Y_0 Листинг 11.3. (Python) Генерирование данных seasonality = -cos(time_points / (2 * pi)) D = (time_points >= 0).astype(int) Y_0 = 500 + 100 * seasonality + normal(size=n, scale=50) Y_1 = Y_0 + impact * D / (abs(time_points) + 1) Y = D * Y_1 + (1 - D) * Y_0 11.2.2. Терминология RDD Прежде чем углубляться в сам метод, познакомимся с его терминологией. В базовой конфигурации RDD используются три переменные: „ t – переменная времени; главное событие происходит в момент t = T; „ D(t) – бинарная переменная решения для каждой временной точки. В нашем примере D(t) обозначает, была ли выпущена новая серия фильма. То есть она имеет значение 0 до события и 1 после события: D(t) = 0 для t < T и D(t) = 1 для t > T; Y(t) – это временной ряд, представляющий исход. В нашем примере это количество просмотров серии «III: Месть ситхов» в Соединенных Штатах. При использовании схемы потенциальных исходов переменных будет больше! Добавятся переменные: „ Y (t) – временной ряд, представляющий исход, если решение 0 не принято в момент времени t; „ Y (t) – временной ряд, представляющий исход, если решение 1 принято в момент времени t. Напомню, что переменные Y0(t) и Y1(t) наблюдаются частично (только если соответствующее решение было фактически принято). Мы сами сгенерировали набор данных, поэтому знаем о возможных исходах, показанных на рис. 11.4. Однако в реальных сценариях обычно нет доступа к обоим потенциальным исходам одновременно; только к одному из них, который представлен переменной Y(t). Обратите внимание, что в период до начала воздействия (до момента времени 0) два потенциальных исхода перекрываются. Это объясняется тем, что до момента события само событие не оказывает влияния на исход. Мы можем записать фундаментальную связь между наблюдаемым Y(t) и потенциальными исходами как „ Y(t) = Y0(t)(1 – D(t)) + Y1(t)D(t).
Потенциальные иcходы – количество просмотров 3-го фильма «Звездные войны» Метод разрывной регрессии 359 потенциальные исходы Время Рис. 11.4. Потенциальные исходы. Они известны только потому, что мы сами сгенерировали данные. В реальных сценариях обычно наблюдается только один из двух исходов То есть если решение фактически принято, D(t) = 1, то наблюдаемый исход Y(t) = Y1(t). А если решение не принято, D(t) = 0, то наблюдаемый результат Y(t) = Y0(t). Поскольку решение фактически принимается после времени события T, наблюдаемым исходом для времени после T, t > T, становится Y1(t). Аналогично для времени t < T наблюдаемым исходом становится потенциальный исход Y0(t). Таким образом, мы имеем E[Y(t)|t < T] = E[Y0(t)|t < T] и E[Y(t)|t > T] = E[Y1(t)|t > T]. В этой книге мы рассмотрим только случай четкого разрыва регрессии, когда главное событие зафиксировано в некоторый момент времени T. Альтернативный вариант называется нечетким разрывом регрессии, в котором время события является случайным при x > 0.
Глава 11 Эффекты событий во времени 360 11.2.3. Предположения Для использования метода RDD достаточно одного предположения: потенциальные исходы Y0(t) и Y1(t) должны плавно меняться с течением времени. Говоря техническим языком, потенциальные исходы Y0(t) и Y1(t) должны быть непрерывными функциями относительно переменной времени. Это означает, что прямо около времени события T значения Y0(t) до и после события должны быть похожими (то же касается и Y1(t)). Например, если мы исследуем количество просмотров фильмов около T = 18 декабря 2015 года и в эту дату не выходит новый фильм, то количество просмотров до и после T должно быть примерно одинаковым. Когда это предположение не работает? Когда что-то, помимо главного события, происходит в то же самое время T, что вызывает резкое изменение (разрыв) в Y0(t) и Y1(t). Например, представьте, что в тот же день 18 декабря 2015 года разразился большой скандал, связанный с сагой «Звездные войны». Если люди решат прекратить смотреть эти фильмы, то количество просмотров резко упадет сразу после даты T. Это создаст внезапное изменение в характере просмотров, например скачок в данных. Соответственно, поведение Y0(t) и Y1(t) не будет непрерывным вокруг T. Математически предположение о непрерывности в точке T записывается следующим образом: и при s > 0. Это выражение говорит нам, что ожидаемые значения Y0(t) и Y1(t) одинаковы для моментов времени непосредственно перед T, lims→0 E[Y0(T – s)], или сразу после T, lims→0 E[Y0(T + s)]. Предположения RDD Для применения метода RDD достаточно выполнения единственного предположения о непрерывности потенциального исхода в момент времени T: и . 11.2.4. Оценка эффекта В дополнение к опоре на интуитивное понимание оценки причинно-следственных эффектов формальное доказательство дает более
361 Метод разрывной регрессии прочный фундамент для выводов. В нашем примере эффект события в момент времени T – это разница в просмотре старого фильма между тем, что произошло бы, если бы новый фильм не вышел, и если бы он вышел. В математических терминах ATE ATE = E[Y1(T) – Y0(T)] определяет изменение результата в момент времени T из-за выхода нового фильма. Вопрос в том, как вычислить ATE на основе данных. Напомню, что для наблюдения доступен только один из двух потенциальных исходов – Y0(t), Y1(t). В частности, в момент времени T мы будем наблюдать только Y1(T). Поэтому нам нужен способ оценить ненаблюдаемый потенциальный исход Y0(T). К счастью, предположение о непрерывности говорит нам, что значение Y0(T) можно аппроксимировать наблюдаемыми данными Y(t) = Y0(T) до времени главного события, t < T. То есть для s > 0: . С другой стороны, хотя мы можем получить значение Y1(T) из данных, это всего лишь одно наблюдение. Поэтому, говоря статистическим языком, размер выборки очень мал. Намного интереснее использовать данные после главного события для аппроксимации значения Y1(T). То есть . Эти два уравнения говорят нам, что ненаблюдаемый ATE = E[Y1(T) – Y0(T)], определяемый потенциальными исходами, можно аппроксимировать наблюдаемыми данными Y(t) вблизи времени главного события T: . (11.1) 11.2.5. RDD на практике Мы рассмотрим три разных алгоритма. Первые два – это своего рода разминка. В реальных ситуациях используется третий, но первые два помогут вам понять основные идеи и увидеть сильные и слабые стороны RDD. Важной частью этих алгоритмов является решение о величине исследуемого промежутка времени. Этим алгоритмам нужны данные из определенного временного диапазона, который мы обозначим как [T – w, T + w], где w – положительное количество времени. Мы предполагаем, что все постепенно меняется с течением времени, поэтому должны сосредоточиться на значениях Y(t), близких к T. Это означает выбор небольшого временного интервала w. Однако если выбрать чересчур маленькое временное окно, то у нас будет мало данных для анализа, что может сделать оценки менее точными из-за более высокой изменчивости.
362 Глава 11 Эффекты событий во времени Итак, выбирая w, важно соблюдать баланс: уменьшение w уменьшает смещенность, но увеличивает изменчивость, а увеличение w увеличивает смещенность и уменьшает изменчивость. Проблема в том, что мы не знаем точной смещенности наших оценок, потому что она обусловлена ненаблюдаемыми факторами! К сожалению, мы не можем объективно оценить влияние этих факторов, не имея соответствующих данных. Поэтому выбор периода времени должен основываться на знании предмета. Например, можно выбрать максимально возможный период времени, в течение которого другие одновременные факторы существенно не изменятся. Разность средних Первый подход заключается в вычислении разницы средних значений исхода до и после момента события. , – число наблюдений в интервале [T – w, T] и аналогично – где число наблюдений в интервале [T, T + w]. Но как объяснялось в начале главы, это именно то, чего не следует делать! Важно помнить, что мы принимаем решение о временном интервале w. В листингах 11.5 и 11.6 мы пробуем разные временные интервалы, от 10 до 2 временных точек вокруг времени главного события. Для каждого интервала вычисляется эффект и затем определяется разность между средними. Листинг 11.5. (R) Оценка разных временных интервалов методом разности средних results <- c() time_windows <- 10:2 for(time_window in time_windows){ ind <- abs(time_points) < time_window results <- c( results, mean(Y[ind & D == 1]) - mean(Y[ind & D == 0]) ) } data.frame(time_windows, results) Листинг 11.6. (Python) Оценка разных временных интервалов методом разности средних results = [] time_windows = arange(10, 1, -1) for time_window in time_windows: ind = abs(time_points) < time_window results.append(mean(Y[ind & D == 1]) - mean(Y[ind & D == 0])) pd.DataFrame({"time_window": time_windows, "estimate": results})
Метод разрывной регрессии 363 Оценка Результаты показаны на рис. 11.5. На графике можно различить фактический (верхняя линия) и предполагаемый (нижняя линия) эффекты. Это означает, что с уменьшением интервала оценка становится точнее. Важно отметить, что эта закономерность может не проявляться повсеместно; это происходит из-за природы наших данных, в которых эффект со временем уменьшается. Интервал времени Рис. 11.5. Оценка эффекта для различных временных интервалов. Ось x представляет размеры опробованных интервалов. Ось y – оценка эффекта алгоритма. Горизонтальная линия вверху соответствует реальному эффекту Ограничения метода разности средних Этот метод имеет две проблемы: „ „ на него может существенно влиять выбор w; он не отражает никаких возможных тенденций в период времени [T – w, T + w]. Линейные модели Для оценки тенденций в анализируемом периоде времени можно использовать линейную регрессию. Суть состоит в том, чтобы аппроксимировать режимы поведения до и после с использованием линейной модели, как показано на рис. 11.6. Как будет показано ниже, хотя на рисунке изображены две линейные модели, они являются разными частями одной и той же линейной модели.
Глава 11 Эффекты событий во времени Количество просмотров 3-го фильма «Звездные войны» 364 D Время Рис. 11.6. Для оценки эффекта методом RDD можно использовать линейные модели. Первый шаг – подгонка линейной модели к данным, с разными постоянными членами и угловыми коэффициентами для каждого из режимов Давайте посмотрим, как найти такую линейную модель. Представим, что набор данных выглядит как табл. 11.1. Таблица 11.1. Доступные данные для линейной модели RDD i ti Di Yi 1 t1 D1 Y1 ... ... ... ... 1 tn Dn Yn Индекс i сообщает номер наблюдения. Переменная ti обозначает время, когда была получена информация. Решение Di – бинарная переменная, определяющая, было ли получено наблюдение до или пос­ ле главного события T: принимает значение 1, когда ti > T, и 0, когда ti < T. Наконец, Yi – исход i-го наблюдения. Обратите внимание, что общее количество наблюдений n зависит от периода времени [t – w, T + w], выбранного ранее. Линейная модель, которую мы будем использовать, выглядит следующим образом: Yi = a0 + a1Di + a2(ti – T) + a3(ti – T)Di + εi(t),
365 Метод разрывной регрессии где εi(t) – нормально распределенная переменная, независимая от других εj(s), c E[εi(t)] = 0. Давайте разберем эту интерпретацию модели. Во-первых, выражение ti – T центрирует временную переменную вокруг времени главного события T. Во-вторых, каждая линия в модели имеет две важные части: постоянный член и угловой коэффициент. Мы выбрали этот конкретный формат представления модели, потому что он позволяет вычислить постоянный член и угловой коэффициент для каждого периода времени, как до, так и после T. Важно отметить, что период времени, в который попадает наблюдение, определяется переменной Di. Поэтому, рассматривая период времени до T, мы устанавливаем Di = 0 (левая линия на рис. 11.6). В результате линейная модель упрощается (заменой Di = 0) до Yi|[ti < T] = Yi|[Di = 0] = a0 + a2(ti – T) + εi. То есть результирующий свободный член при Di = 0 равен a0, а угловой коэффициент равен a2. С другой стороны, для периода времени после события (линия справа на рис. 11.6) мы имеем Di = 1, и модель превращается в Yi|[ti > T] = Yi|[Di = 1] = a0 + a1 + (a2 + a3)(ti – T) + εi. То есть результирующий свободный член при Di = 1 равен a0 + a1, а угловой коэффициент равен a2 + a3. Коэффициенты a0, a1, a2 и a3 определяются из данных методом линейной регрессии. Это означает, что разность свободных членов, соответствующих периодам до и после T, равна a1, а разность угловых коэффициентов равна a3, как показано в табл. 11.2. Таблица 11.2. Результирующие коэффициенты в линейной регрессии с применением RDD Период Di Свободный член Угловой коэффициент t<T t<T Di = 0 Di = 1 a0 a0 + a1 a2 a2 + a3 Интерпретация разницы Разные периоды времени Скачок в данных Изменение углового на величину a1 коэффициента на величину a3 Давайте вычислим ATE с помощью уравнения (11.1). С одной стороны, для случаев до T мы должны использовать формулу Y|[t < T] = a0 + a2(t – T) + ε (мы убрали верхний индекс i, чтобы представить процесс в целом, а не для конкретного наблюдения i). Итак: E[Y|t < T] = a0 + a2(t – T) и (с s > 0)
Глава 11 Эффекты событий во времени 366 . Для вычисления предела мы просто подставили t = T. С другой стороны, для t > T нужно использовать соответствующую формулу Yi|[ti > T] = a0 + a1 + (a2 + a3)(ti – T) + εi. Итак, вычисляя предел, имеем . И наконец: . Количество просмотров 3-го фильма «Звездные войны» Как видите, ATE – это всего лишь коэффициент a1, как показано на рис. 11.7. ATE = a1 D Время Рис. 11.7. ATE – это скачок в момент времени 0, который совпадает с коэффициентом a1 в расчетной линейной модели Для запуска линейной регрессии в R используем функцию lm и пакет statsmodels в Python, как и в предыдущих главах. Точно так же, как в предыдущем разделе, выполним расчеты для размера временного окна в диапазоне от 10 до 4. (Уменьшить размер окна меньше 4 не получится, потому что в линейных моделях количество точек данных должно превышать количество параметров.) Для каждого временного окна вычислим эффект как разность средних.
Метод разрывной регрессии 367 Листинг 11.7. (R) Линейная регрессия с разными размерами временного окна results <- data.frame() time_windows <- 10:4 for(time_window in time_windows){ ind <- abs(time_points) < time_window time_points_window <- time_points[ind] Y_window <- Y[ind] D_window <- D[ind] model <- lm(Y_window~D_window*time_points_window) res_stats <- cbind( time_window = time_window, t(coef(model)['D_window']), t(confint(model)[2, ])) results <- rbind(res_stats, results) } results Листинг 11.8. (Python) Линейная регрессия с разными размерами временного окна d_coefs = [] lower_cis = [] upper_cis = [] time_windows = arange(10, 3, -1) for time_window in time_windows: ind = abs(time_points) < time_window time_points_window = time_points[ind] Y_window = Y[ind] D_window = D[ind] df = pd.DataFrame({ 'y': Y_window, 'd': D_window, 'time_points': time_points_window }) model = smf.ols(formula='y ~ d*time_points', data=df).fit() d_coefs.append(model.params['d']) lower_cis.append(model.conf_int().loc['d'][0]) upper_cis.append(model.conf_int().loc['d'][1]) pd.DataFrame({ 'time_window': time_windows, 'd': d_coefs, '2.5%': lower_cis, '97.5%': upper_cis }) Результаты показаны на рис. 11.8. Мы добавили доверительные интервалы оценки коэффициента (заштрихованная область), напрямую предоставляемые результатами линейной регрессии. Оценка коэффициента уменьшается с уменьшением временного окна не так, как в методе разности средних, описанном выше. То есть чувствительность к параметру временного окна ниже.
Глава 11 Эффекты событий во времени 368 И снова наилучшая оценка получается при меньшем временном окне, а ее доверительный интервал содержит фактическое значение эффекта (горизонтальная линия). Лучшая оценка вычисляется в следующем листинге, который дает нам эффект 785,02 (54,30, 1515,74), где числа в скобках – это (2,5 %, 97,5 %) доверительный интервал оценки. Листинг 11.9. (R) Эффект для временного окна с размером 4 results[results$time_window==4, ] Оценка Лучшая оценка: 785.02 Размер временного окна Рис. 11.8. Расчетное значение эффекта для временных окон разного размера. Ось x – это различные размеры временного окна. Ось y – расчетный эффект. Горизонтальная линия – реальный эффект. Более темная область показывает доверительный интервал для расчетного эффекта. Лучшая оценка соответствует временному окну 4, но нам это известно только потому, что были использованы синтетические данные Ограничения линейного подхода к RDD Этот метод имеет две проблемы. Интервал w сильно влияет на предполагаемые свободный член „ и угловой коэффициент модели. Для большего w те же свободный член и угловой коэффициент должны соответствовать большему количеству данных. Соответственно, модель очень чувствительна к выбору w. „ Плохо подходит для оценки нелинейных данных.
Метод разрывной регрессии 369 Нелинейные модели На практике иногда есть возможность использовать линейные модели, как обсуждалось в предыдущем разделе. Но я все же рекомендую применять нелинейные модели, потому что они могут лучше соответствовать данным. В частности, они могут давать более точные оценки вблизи главного события T. Итак, можно ли использовать машинное обучение для оценки эффекта в подходе RDD? Да, можно. Для этого следует обучить отдельную модель с применением предпочитаемого вами метода обучения (случайные леса, бустинг, глубокое обучение и т. д.) для каждой области, используя данные до и после T. Чтобы получить качественные модели, применяйте перекрестную проверку. Затем используйте каждую модель для получения двух прогнозов в момент времени T и вычислите разность между ними. Так вы получите достоверную оценку ATE в момент времени T. Однако процесс оценки можно улучшить. Интересно, что вместо машинного обучения можно с успехом использовать старый статистический метод, называемый локальной линейной регрессией (local linear regression, LLR) или локальной полиномиальной регрессией (local polynomial regression, LPR). Причина в том, что методы обучения с учителем, как правило, являются черными ящиками, которые трудно анализировать. Метод LLR, напротив, предоставляет явные формулы, что позволяет лучше понять его поведение и сделать точнее аналогов в машинном обучении. Давайте оценим ATE для RDD с помощью пакета rdrobust (https:// rdpackages.github.io/rdrobust/). Этот пакет входит в состав библиотеки rdpackages (https://rdpackages.github.io/), содержащей реализации различных подходов к RDD. Функция rdplot показывает изменение эффекта (рис. 11.9). Для получения результата (с настройками по умолчанию) используем функцию rdrobust, которая сообщает, что предполагаемый эффект составляет 770,05 (–11,42, 1551,52); в скобках указан доверительный интервал оценки (2,5 %, 97,5 %). Проблема с этим интервалом в том, что он содержит отрицательное значение, поэтому мы не уверены, что эффект вообще является положительным! Листинг 11.10. (R) Нелинейная оценка с помощью функции rdrobust summary(rdrobust(Y, time_points)) Листинг 11.11. (Python) Нелинейная оценка с помощью функции rdrobust rdrobust(Y, time_points) Результаты, возвращаемые методом rdrobust, могут показаться хуже, чем результат линейной модели, потому что линейная модель дала лучшие доверительные интервалы (без отрицательных чисел). Однако мы немного схитрили, поскольку нашли наилучшее приближение, имея в виду фактическое решение. На практике было бы сложнее определить наилучшее приближение среди временных окон разного размера.
370 Глава 11 Эффекты событий во времени Рис. 11.9. Пробный график изменения эффекта, полученный функцией rdplot Как работает функция rdrobust В этом разделе объясняются технические детали вычисления нелинейной оценки с использованием LLR для тех, кому интересно узнать, как действует rdrobust. Сначала посмотрим, как работает линейная регрессия, а уже потом углубимся в LLR. Предположим, мы решили выполнить линейную регрессию, используя только набор данных до T: т. е. данные из интервала [T – w, T]. Цель регрессии – найти свободный член (a0) и угловой коэффициент (a1) для модели Y(t) = a0 + a1 (t – T) + εi. Такие коэффициенты находятся путем минимизации следующей целевой функции, известной как сумма квадратов остатков: ,
371 Метод разрывной регрессии где остатки – это члены ошибки Y(t) – (a0 + a1(t – T)). То есть чтобы найти свободный член и угловой коэффициент, нужно использовать метод, называемый методом обычных наименьших квадратов (ordinary least squares, OLS), который отыскивает такие оптимальные параметры (см. главу 6, где приводится обзор линейной регрессии). LLR работает иначе. Вместо решения одной задачи оптимизации, которая находит одну модель для всего периода времени [t – w, T], LLR запускает программу оптимизации для каждой временной точки, как объясняется далее. Возьмем момент времени t0, для которого нужно получить прогноз. Такой прогноз будет сделан с использованием линейной модели, которая работает только локально. Один из вариантов – запустить регрессию лишь для точек вблизи выбранного времени t0. То есть мы выберем параметр h > 0, называемый полосой пропускания (как его выбрать, я объясню чуть ниже), и выполним регрессию только с данными около t0 – другими словами, с данными, попадающими в интервал [t0 – h, t0 + h]. Следуя этой логике, имеет смысл взвешивать наблюдения: наблюдения, находящиеся ближе к t0, должны вносить больший вклад в линейные коэффициенты, чем те, что находятся дальше. Для этого можно скорректировать веса остатков в процессе минимизации. Назначая более высокие веса остаткам вблизи t0, процесс минимизации будет отдавать приоритет уменьшению ошибок в точках вблизи t0. Это связано с тем, что ошибка в точке, расположенной близко к t0, будет иметь более существенное влияние на общую целевую функцию. В математическом смысле мы вводим весовой коэффициент для остатков в целевой функции. Это достигается умножением каждого остатка на функцию, известную как ядро, Kh: . Типичные функции ядра включают равномерные и треугольные функции: „ равномерная функция: K(z) = 1, если |z| < 1, и 0 в противном случае, как показано на рис. 11.10; „ треугольная функция: K(z) = 1 – |z|, если |z| < 1, и 0 в противном случае, как показано на рис. 11.11. Определив ядро, применяем следующее преобразование: . Это преобразование центрирует ядро в точке t0 и масштабирует его по h: „ равномерная функция: K (t – t ) = 1, если |t – t | < h, и 0 в против0 0 h ном случае; „ треугольная функция: K(z) = 1 – |t – t | / h, если |t – t | < h, и 0 0 0 в противном случае.
Глава 11 Эффекты событий во времени 372 Обратите внимание, что теперь ядро (для однородного и треугольного случаев) для временных точек, удаленных от t0 более чем на h, всегда равно 0, т. е. всегда, когда |t – t0| > h. Таким образом, полоса пропускания h определяет, какие наблюдения включены в регрессию, а какие нет. Итак, как выбрать полосу пропускания h? Для этого можно выполнить перекрестную проверку с различными значениями h и выбрать то, которое дает наименьшую ошибку прогнозирования. Однако есть более сложные способы найти оптимальное значение h. С практической точки зрения функции rdplot и rdrobust, которые отвечают за вычисление и оценку ATE, используют метод по умолчанию, и я предлагаю использовать его. Но если у вас появится желание глубже понять детали методов, используемых для выбора h, то я рекомендую начать с документации пакета rdrobust, доступной по адресу https://mng.bz/ Aamo (обновленная версия доступна по адресу https://mng.bz/ZVDR), и воспользоваться ссылками в ней. Рис. 11.10. Однородное ядро Использование локальной полиномиальной регрессии К настоящему моменту мы рассмотрели метод локальной линейной регрессии. Однако его можно обобщить, используя полиномы вместо прямых. Пакет rdrobust позволяет использовать полиномы. Однако желательно, чтобы степень полиномов была не выше 2. Более подробную информацию вы найдете в статье Гельмана и Имбенса (см. раздел 11.7).
373 y Синтетический контроль z Рис. 11.11. Треугольное ядро Как оценить ATE с помощью LLR? Легко! Нужно выполнить LLR, чтобы предсказать значение в T, сначала используя данные из перио­ да t > T, а затем из периода t < T, и вычислить разность между ними. Именно так действует пакет rdrobust за кулисами. Упражнение 11.1 Используя библиотеку rdrobust, оцените причинно-следственный эффект для данных из Google Trends, показанных на рис. 11.1. Набор данных в файле gtrends_rdd.csv вы найдете на веб-сайте книги (www.manning.com/books/causal-inference-for-data-science) или в репозитории GitHub (https://mng.bz/RN0Z). Оцените эффект для даты «2015-12-18». Решение вы также найдете на веб-сайте книги и в репозитории. 11.3. Синтетический контроль Метод синтетического контроля (SC) способен оценить, что бы произошло со старым фильмом «III: Месть ситхов», если бы не было выпущено нового фильма. Например, поиск в Google Trends на рис. 11.12 показывает схожую картину между «III: Месть ситхов» и сагой «Влас­ телин колец», за исключением декабря 2015 года. Предположительно такую разницу можно отнести к выпуску нового фильма «Звездные во-
374 Глава 11 Эффекты событий во времени йны». Таким образом, мы могли бы подумать, что если бы не вышел новый фильм, то эволюция «III: Месть ситхов» была бы довольно похожа на эволюцию «Властелин колец». Суть SC заключается в использовании прогностической модели, основанной на использовании тенденции изменения количества просмотров «Властелин колец» для оценки причинно-следственного эффекта выхода новой серии. Для успешного применения SC нужно запомнить два основных шага: 1 Корреляция между просмотрами «III: Месть ситхов» и «Властелин колец» позволяет нам построить прогностическую модель. На количество просмотров также могут влиять самые разные факторы, такие как сезонность, конкуренция со стороны других фильмов и социально-экономические события. Это означает, что теоретически мы можем предсказать, насколько успешным будет «III: Месть ситхов», учитывая происходящее с «Властелином колец». Итак, предположим, что мы обучаем модель предсказывать количество просмотров «III: Месть ситхов» на основе количества просмотров «Властелина колец». Также предположим, что модель обуча­ется на данных до выхода нового фильма в декабре 2015 года. Взгляните на рис. 11.13, визуализирующий процесс. 2 Прогнозы модели после даты выпуска оценивают контрфактуальный сценарий, в котором новый фильм не был выпущен. Теперь представим, будто мы уверены, что новый фильм влияет на просмотры «III: Месть ситхов», но не влияет на просмотры «Властелина колец». Тогда прогнозы нашей модели на период после выхода нового фильма (с 18 декабря 2015 года по 18 января 2016 года), скорее всего, окажутся ошибочными. Причина в том, что тенденция просмотров «III: Месть ситхов» находится в контексте «новый фильм был выпущен», тогда как тенденция просмотров «Властелина колец» находится в контексте «новый фильм не был выпущен». Проще говоря, мы пытаемся предсказать поведение «с новым фильмом» на основе наблюдений, полученных из контекста «без нового фильма». Таким образом, мы фактически предсказываем контрфактуальность того, что случилось бы с «III: Месть ситхов», если бы не вышел фильм «VII: Пробуждение силы». Эти два шага составляют основу метода SC. Общая идея заключается в использовании прогностической модели, обученной на сильно коррелированных данных, для оценки того, что произошло бы, если бы новый фильм не был выпущен. Теперь исследуем этот метод в общем виде, чтобы вы могли использовать его в других ситуациях. Сначала введем обозначения для каждого временного ряда. Затем опишем шаги алгоритма оценки причинно-следственного эффекта. И наконец, познакомимся с предположениями, которые делаются для получения надежных оценок методом SC.
375 Синтетический контроль Рис. 11.12. Сравнение интереса к «III: Месть ситхов» и саге «Властелин колец». Выпуск нового фильма явно повлиял на «III: Месть ситхов», но, похоже, не затронул «Властелина колец». Источник: Google Trends Ноябрь ’15 Декабрь ’15 Январь ’16 18-е США 31-е Властелин колец Обучающие данные Прогнозные данные Рис. 11.13. Мы можем обучить модель на данных, предшествовавших выпуску нового фильма, и предсказать изменение количества просмотров после выпуска нового фильма. Этот прогноз сообщает, что произошло бы, если бы новый фильм не был выпущен. Влияние выхода нового фильма можно оценить по разности между реальными и предсказанными значениями
376 Глава 11 Эффекты событий во времени 11.3.1. Моделирование данных Для применения синтетического контроля нужно добавить еще два временных ряда, коррелированных с основным анализируемым временным рядом. Следующие примеры основаны на коде из предыдущего раздела и реализуют моделирование переменной Y, затронутой событием, и коррелированных временных рядов X1, X2. Листинг 11.12. (R) Моделирование Y и временных рядов X1, X2 library(ggplot2) library(CausalImpact) set.seed(1234) periods_n <- 15 impact <- 1000 time_points <- seq(-periods_n, periods_n) n <- length(time_points) seasonality <- -cos(time_points/(2*pi)) D <- as.numeric(time_points >= 0) Y_0 <- 500 + 100*seasonality + rnorm(n, sd=50) Y_1 <- Y_0 + impact * D / (abs(time_points) + 1) Y <- D*Y_1 + (1-D)*Y_0 X_1 <- 400 + 100*seasonality + rnorm(n, sd=20) X_2 <- 700 + 80*seasonality + rnorm(n, sd=60) df <- data.frame(Y, X_1, X_2, time=time_points) Листинг 11.13. (Python) Моделирование Y и временных рядов X1, X2 from numpy.random import normal, seed from numpy import cos, mean, pi, arange, abs import pandas as pd import causalimpact seed(1234) periods_n = 15 impact = 1000 time_points = arange(-periods_n, periods_n + 1) n = len(time_points) seasonality = -cos(time_points / (2 * pi)) D = (time_points >= 0).astype(int) Y_0 = 500 + 100 * seasonality + normal(size=n, scale=50) Y_1 = Y_0 + impact * D / (abs(time_points) + 1) Y = D * Y_1 + (1 - D) * Y_0 X_1 = 400 + 100 * seasonality + normal(size=n, scale=20) X_2 = 700 + 80 * seasonality + normal(size=n, scale=60) df = pd.DataFrame({ "Y": Y, "X_1": X_1, "X_2": X_2, "time": time_points }) Временную динамику трех разных временных рядов можно увидеть на рис. 11.14.
Количество просмотров Синтетический контроль 377 переменная X_1 X_1 Y Время Рис. 11.14. Моделирование временных рядов. X1, X2 – это синтетические ряды, не затронутые главным событием. Наша цель – оценить, насколько главное событие повлияло на временной ряд Y 11.3.2. Терминология метода синтетического контроля Перечислим основные ингредиенты SC. Наша цель – понять влияние события на временной ряд исхода, который мы обозначим Y(t). Переменная t индексирует время, и для каждой временной точки t у нас есть значение Y(t). В нашем примере переменная результата – это ежедневное количество просмотров фильма «III: Месть ситхов». Второй ингредиент – контрольные элементы, обозначаемые как X(t), которыми в нашем примере являются просмотры «Властелина колец». Таких контрольных элементов может быть несколько, например по одному для каждого фильма в саге «Властелин колец». Их можно обозначить как Xi(t), поэтому X(t) соответствует вектору (X1(t), ..., XM(t)),
378 Глава 11 Эффекты событий во времени где M – общее количество используемых контрольных элементов. В нашем примере M = 3, потому что в декабре 2015 года вышло три фильма «Властелин колец». Контрольные элементы должны быть прогнозируемыми временными рядами В общем случае временные ряды контрольных элементов не обязательно должны иметь ту же природу, что и временные ряды исходов! Это огромное преимущество данного метода. Например, в нашем примере временные ряды элементов управления X(t) могут содержать социально-экономическую информацию, такую как темпы инфляции, средние зарплаты населения и прогнозы погоды. Они необязательно должны быть информацией о других фильмах! Подойдут любые контрольные элементы X(t), сильно коррелирующие с исходами и не зависящие от интересующего события (в нашем примере – выпуск нового фильма). Наконец, прогнозы, созданные на основе контрольных элементов X(t) для прогнозирования результата Y(t), обозначаются как Ŷ(t). Поскольку наша цель – обучить прогностическую модель и затем сгенерировать прогнозы, то нам нужно определить периоды времени, в которые будут решаться эти две задачи. Период времени обучения должен предшествовать времени T, и мы будем называть его предварительным периодом Pb. Период времени прогнозирования – это время для оценки контрфактуального сценария. Он следует за временем T, и мы будем называть его заключительным периодом Pa. Обычно заключительный период содержит более одной временной точки. Оба периода, Pb и Pa, должны выбираться на основе знаний предметной области (см. раздел 11.3.6). 11.3.3. Предположения Метод SC хорошо работает, только когда выполняются его предположения. Перед тем как использовать SC, важно оценить обоснованность этих предположений и вашу способность объяснять и поддерживать их. Стоит отметить, что даже если предположения верны, отсутствие уверенности в них может подорвать вашу уверенность в результатах анализа и удержать вас от использования сделанных выводов для принятия решений. Предположения SC Допустим, что у нас есть временной ряд результатов Y(t) и событиекандидат, происходящее в момент времени t = T. Допустим также, что у нас есть другой временной ряд X(t), который будет выступать в роли контрольного. Важно отметить, что такие контрольные переменные не обязательно должны быть того же типа данных, что и исходы, – они могут иметь любой тип, если соответствуют следующим условиям.
Синтетический контроль 379 Мы предполагаем, что: X(t) можно использовать для создания модели, прогнозирующей Y(t) на данных до T; „ событие в момент времени T не оказывает влияния на контрольный временной ряд X(t); „ между исходами и контрольными элементами существует устойчивая связь: никакие события вблизи времени T, кроме главного события, не искажают связь между временными рядами Y(t) и X(t). „ Рассмотрим эти предположения подробнее. Событие-кандидат не должно оказывать никакого влияния на контрольные переменные X(t). Если такие переменные подвержены влиянию события, то их эффективность в качестве контрольных элементов будет весьма сомнительной, потому что любые прогнозы, сделанные с использованием этих переменных после наступления события, перестанут точно отражать контрфактуальный сценарий в отсутствие события. Мы также должны учитывать стабильность связи между исходами и контрольными элементами. Рассмотрим случай нарушения стабильности, например когда появляется новый поставщик услуг, предлагающий сагу «Звездные войны» в момент выпуска нового фильма, но не предлагающий сагу «Властелин колец». Это изменение отрицательно скажется на прогнозах модели, потому что соотношение между просмотрами фильмов «Звездные войны» и «Властелин колец» изменится. Следовательно, наши оценки того, что могло бы произойти в ином случае (контрфактуальные оценки), могут оказаться смещенными. В более общем смысле предположим, что кроме главного события около момента времени t происходит что-то еще. Это событие влияет на связь между временными рядами. В таком случае мы не сможем уверенно приписать различия между фактическими и предсказанными контрфактуальными исходами исключительно влиянию главного события. Изменения, влияющие на связь между двумя временными рядами, тоже могут быть способствующими факторами, поэтому возникает некоторая неопределенность. 11.3.4. Оценка эффекта При использовании метода синтетического контроля (SC) обычно оценивается пролонгированный эффект решения с течением времени: т. е. насколько иным был бы результат после главного события, если бы в момент времени T было принято иное решение. Поэтому выбирается временной диапазон Pa. Подробнее о выборе такого диапазона рассказывается в разделе 11.3.6. Мы не можем знать, каким бы был исход, если бы было принято другое решение. Поэтому мы примерно оцениваем разность между этой величиной и тем, что произошло в действительности, – разность между прогнозом модели и фактическим исходом. А затем усредняем эти разности в период времени Pa:
380 Глава 11 Эффекты событий во времени , (11.2) где |Pa| – количество периодов времени, выбранных для оценки. Результат интерпретируется так: что испытала бы группа пациентов, прошедших курс лечения, если бы они не получили этого лечения. То есть мы по сути вычисляем средний эффект воздействия на подвергнувшихся воздействию (ATET). 11.3.5. Синтетический контроль на практике Далее перечислены четыре шага, описывающих порядок применения метода SC. 1 Выбор периодов времени. Выбор интервалов времени Pb для обуче­ ния и Pa для прогнозирования. 2 Создание прогностической модели. Обучение модели для прогнозирования исхода Y(t) по входным данным X(t) только с использованием данных за период Pb, до момента времени T. Такую прогнос­ тическую модель можно создать с использованием стандартных методов обучения с учителем, таких как бустинг, линейная регрессия и т. д., а настройку гиперпараметров и выбор модели можно произвести с применением перекрестной проверки. 3 Прогнозирование. Использование предыдущей модели для прог­ нозирования исходов в период времени Pa до T. Выбранные для прогнозирования временные точки (их может быть несколько) определяются аналитиком на основе его знаний предметной области (см. следующий раздел). 4 Оценка эффекта. Вычисление средней разности между прогнозируемыми и реальными результатами (ATET) с помощью уравнения 11.2. ПРИМЕЧАНИЕ. В своей оригинальной статье о методе SC Абади и Гардеазабал (см. раздел 11.7) не использовали методы машинного обучения. В литературе, указанной в ссылках, тоже не используется машинное обучение. Однако я решил описать обобщенную версию, допускающую применение машинного обуче­ния вместо классической регрессии. Она ближе по стилю к науке о данных, понятнее для специалистов по обработке данных и обеспечивает более гибкий подход. 11.3.6. Выбор периодов обучения и прогнозирования Выбор данных для обучения модели и создания прогнозов должен осуществляться на основе знаний предметной области: аналитикам приходится иметь дело с рядом компромиссов, включающих размеры выборки и причинно-следственные связи. Определим конечные точки для предварительного
381 Синтетический контроль и заключительного периода . Они упорядочены во времени как . Давайте рассмотрим несколько советов о выборе этих конечных точек. „ Начальная точка предварительного периода должна выбираться так, чтобы максимизировать прогностическую способность. В общем случае желательно, чтобы связь между Y(t) и X(t) была максимально последовательной в течение периода t < T, предшествующего событию. Такая стабильность может быть нарушена, если на какой-либо временной ряд влияет особый контекст. Поэтому по мере удаления точки от времени события T увеличивается вероятность ослабления их корреляции, что, в свою очередь, снижает прогностическую способность модели. Однако выбор точки слишком близко к событию T уменьшает размер выборки обучающих данных и, как следствие, увеличивает дисперсию оценок. Поэтому в общем случае рекомендуется опробовать несколько разных значений , провести перекрестную проверку для каждого из них, оценить прогностические способности получившихся моделей и выбрать ту, которая имеет наименьшую прогнос­тическую ошибку. „ В общем случае за окончание предварительного периода можно выбрать момент, непосредственно предшествующий главному событию. Однако, как и в предыдущем примере, такой выбор не всегда является правильным. В нашем примере выпуск нового фильма состоялся 18 декабря, но, как показывает график на рис. 11.1, его влияние на просмот­ ры старых фильмов началось за несколько дней до этого события. Этот эффект можно объяснить тем, что люди просматривают старые фильмы, ожидая выхода нового. Учитывая, что в данном примере прогностическая модель разрабатывается для оценки ситуации, когда новый фильм не был бы выпущен, было бы нецелесообразно включать в обучающий набор данные, на которые повлияло сообщение о выпуске новой серии. Таким образом, проявляя разумную осторожность, мы могли бы отказаться от включения в обучающий набор любых данных за декабрь 2015 г. Соответственно, конечная точка должна отстоять на некотором расстоянии во времени от T, если имеют место эффекты предвосхищения. При этом следует признать, что отдаление от T влечет уменьшение размера выборки и увеличение дисперсии.
Глава 11 Эффекты событий во времени 382 „ Далее нужно определить оцениваемый период, следующий за главным событием в момент времени T. В общем случае за начало периода можно выбрать момент, следующий сразу после момента времени T главного события. Однако если эффект влия­ ния главного события задерживается, то имеет смысл выбрать на некотором отдалении от T. Рассмотрим пример: ваша организация инициирует маркетинговую кампанию, нацеленную на определенный сегмент лояльных клиентов. В ходе этой кампании выбранным клиентам выдаются фирменные футболки и предлагается разместить фотографии в них в социальных сетях вместе с тегом вашей компании. Организуется конкурс, обещающий скидку на товар за пост с наибольшим количеством репостов. Эффективность кампании измеряется количеством упоминаний вашей компании на популярных платформах социальных сетей. Однако из-за времени, необходимого на транспортировку, бессмысленно измерять эффект кампании сразу после ее запуска. Существует некоторый период ожидания, пока футболки будут доставлены клиентам. В результате значение должно отстоять на определенное количество дней от главного события, которым в данном случае является запуск кампании. „ В некоторых случаях событие производит краткосрочный эффект, влияние которого ослабевает вскоре после события. В других случаях событие производит устойчивый во времени эффект. Поэтому мы должны выбрать, какие эффекты главного события оценивать – краткосрочные, среднесрочные или долгосрочные. Этот выбор предполагает выбор точки , более близкой или удаленной от времени T. Такое решение зависит от цели анализа. Но важно помнить, что чем дальше от T, тем выше вероятность изменения условий, окружающих исход Y(t) и контрольный временной ряд X(t), что приведет к потере точности прогностической модели. Кроме того, в этом сценарии мы движемся вслепую. В отличие от периода, используемого для обучения, когда есть возможность выполнить перекрестную проверку и оценить точность модели, в период после воздействия модель предсказывает сценарий, который на самом деле не произошел. Это означает отсутствие возможности проверить правильность прогнозов. В результате вам придется положиться на свой опыт, чтобы гарантировать, что связь между исходом Y(t) и контрольными элементами X(t) останется стабильной в течение периода оценки. В табл. 11.3 представлен обзор достоинств и недостатков, связанных с выбором временных точек, более отдаленных от времени T. Обратите внимание, что при выборе точек ближе к T последствия, указанные в таблице, меняются на противоположные.
383 Синтетический контроль Таблица 11.3. Последствия выбора конечных точек, более отдаленных от времени события T. Стрелка направления показывает, по какую сторону от T находятся точки T ← Направление Окно обучающих данных • больше размер выборки; • потенциально ниже точность из-за изменения контекста ← Направление Ожидание события • меньше размер выборки; • потенциально выше точность из-за изменения контекста → Направление1 Задержка проявления эффекта • меньше данных для оценки влия­ ния; • потенциально ниже точность из-за изменения контекста → Направление Оценка долговременного влияния • больше данных для оценки влия­ ния; • потенциально ниже точность из-за изменения контекста Использование библиотеки CausalImpact Давайте используем библиотеку CausalImpact для оценки эффекта в момент времени T = 0 на синтетическом наборе данных. Для Python мы используем реализацию tfp-causalimpact (https://github.com/google/tfpcausalimpact/tree/main). Для этого выберем периоды до и после воздействия, которые на данный момент охватывают всю продолжительность наших данных. Затем оценим эффект. Листинг 11.14. (R) Анализ причинноследственного эффекта за весь период pre.period <- c(-periods_n, -1) + periods_n + 1 post.period <- c(0, periods_n) + periods_n + 1 estimated_impact <- CausalImpact(df, pre.period, post.period) estimated_impact Листинг 11.15. (Python) Анализ причинноследственного эффекта за весь период pre_period = [0, periods_n-1] post_period = [periods_n, 2 * periods_n] estimated_impact = causalimpact.fit_causalimpact( df, pre_period, post_period ) print(causalimpact.summary( estimated_impact, output_format="summary" )) Результат (в R) функции CausalImpact показан на рис. 11.15. Здесь есть два столбца, Average (среднее) и Cumulative (накопленное), которые относятся к выбранному заключительному периоду. Значение Prediction (прогноз), как следует из названия, относится к временному ряду Y. Прогнозируемое значение – это контрфактуальное предсказанное значение, предоставленное алгоритмом CausalImpact. Оцениваемое воздействие – это Absolute Effect (абсо-
Глава 11 Эффекты событий во времени 384 лютный эффект) или, в относительном выражении, Relative Effect (относительный эффект). Для всех этих величин также сообщаются доверительные интервалы. Рис. 11.15. Результаты, полученные библиотекой CausalImpact Оценка абсолютного эффекта равна 443 (197, 700), где в скобках приводится доверительный интервал (2,5 %, 97,5 %). Средний эффект, который можно рассчитать с помощью кода в листингах 11.16 и 11.17, равен 211,29 и укладывается в доверительный интервал, рассчитанный алгоритмом. Листинг 11.16. (R) Средний эффект за период времени [0, 15] inds = D > 0 mean(impact * D[inds] / (abs(time_points[inds]) + 1)) Листинг 11.17. (Python) Средний эффект за период времени [0, 15] inds = D > 0 mean(impact * D[inds] / (abs(time_points[inds]) + 1)) На рис. 11.16 показан типичный график, созданный библиотекой CausalImpact: „ „ „ на исходном графике (original) показаны исходные данные с контр­фактуальным прогнозом и его доверительным интервалом; на поточечном графике (pointwise) показана разность между фактическим исходом и контрфактуальными прогнозом в каждый момент времени; накопительный показатель (cumulative) показывает накопленные разности между двумя предыдущими графиками с момента события.
Синтетический контроль 385 Рис. 11.16. Первый график показывает наблюдаемые исходные данные и контр­фактуальный прогноз. Второй показывает поточечные разности. А третий – накопленную разность между реальным и контрфактуальным исходом Для сравнения методов SC и RDD можно запустить алгоритм, взяв заключительный интервал, начинающийся в точке 0 главного события. Листинг 11.18. (R) Анализ причинно-следственного эффекта начиная с момента события pre.period <- c(-periods_n, -1) + periods_n + 1 post.period <- c(periods_n + 1, periods_n + 1) estimated_impact <- CausalImpact(df, pre.period, post.period) estimated_impact Листинг 11.19. (Python) Анализ причинно-следственного эффекта начиная с момента события pre_period = [0, periods_n-1] post_period = [periods_n, periods_n] estimated_impact = causalimpact.fit_causalimpact( df, pre_period, post_period ) print(causalimpact.summary( estimated_impact, output_format="summary" )) Результат показан на рис. 11.17. Обратите внимание: в этом случае мы получили оценку эффекта 1024 (941, 1102), что намного лучше, чем RDD.
386 Глава 11 Эффекты событий во времени Рис. 11.17. Результаты, полученные библиотекой CausalImpact при анализе, начиная с момента времени 0 Упражнение 11.2 Оцените причинно-следственный эффект по данным из Google Trends, которые показаны на рис. 11.12, с помощью библиотеки CausalImpact. Набор данных в виде файла gtrends_sc.csv вы найдете на веб-сайте книги (www.manning.com/books/causal-inference-for-data-science) или в репозитории GitHub (https://mng.bz/RN0Z). Оцените эффект, начав с недели «2015-12-20» и заканчивая двумя неделями спустя. Решение можно найти в репозитории. 11.4. Метод сравнения разностей Представим, что нам стало интересно оценить влияние выхода «VII: Пробуждение силы» на просмотры не только «III: Месть ситхов», но и на другие пять предыдущих фильмов «Звездных войн», а также на просмотры их всех одновременно. Последний метод, который называется сравнением разностей (difference in differences, DiD), позволяет анализировать группы фильмов одновременно. Но для этого нужна еще одна группа фильмов, не затронутая выпуском нового фильма «Звездных войн», чтобы они действовали как контрольная группа. В этом примере мы постараемся оценить влияние выхода фильма «VII: Пробуждение силы» на количество просмотров предыдущих шес­ ти фильмов «Звездных войн». Для этого мы сравним количество их просмотров с количеством просмотров трех ранее выпущенных фильмов «Властелина колец». На рис. 11.18 показан смоделированный набор данных. Группа с D = 1 представляет фильмы «Звездные войны», а группа с D = 0 – фильмы «Властелин колец». Мы добавили линии регрес-
387 Метод сравнения разностей Количество просмотров сии, чтобы показать, как выход нового фильма влияет на количество просмотров других фильмов. Обратите внимание, что в этом случае мы имеем дело с панельными данными (множеством временных рядов). D Время Рис. 11.18. Пример смоделированных панельных данных. Группа с D = 1 представляет фильмы «Звездные войны», а группа с D = 0 – фильмы «Властелин колец». Линии помогают визуализировать изменение тренда из-за выхода нового фильма Фактически метод сравнения разностей (DiD) сочетает в себе элементы двух методов, представленных выше. Он напоминает RDD, оценивая эффект сравнением изменений в период до и после выпуска. В то же время он имеет сходство с SC, определяя, что могло бы произойти, если бы новый фильм не вышел, путем сравнения результатов основной группы, называемой экспериментальной, с другой группой фильмов, не подверженной влиянию выхода нового фильма и называемой контрольной. Неформально идею DiD можно описать так. Представьте, что при нормальных обстоятельствах фильмы «Звездные войны» смотрят в 100 раз чаще, чем фильмы «Властелин колец». Но в неделю выпуска
388 Глава 11 Эффекты событий во времени нового фильма «Звездные войны» набрали в 300 раз больше просмот­ ров. Можно предположить, что выпуск новой серии дал увеличение просмотров фильмов в 200 раз. Подход DiD к оценке эффекта события основан на предположении, что в отсутствие события обе группы, экспериментальная и контрольная, следовали бы прежней тенденции. Теперь рассмотрим формальное определение, чтобы понять ограничения и возможности метода DiD. 11.4.1. Моделирование данных В этом примере мы выберем данные о просмотрах фильмов из саги «Звездные войны» (предположив, что фильмов было столько, сколько нам нужно), обозначенных как D = 1, и множество других из «Влас­ телина колец», обозначенных как D = 0. В отличие от предыдущих имитаций, где эффект был равен 1000, в этом случае мы установим эффект равным всего лишь 200. Листинг 11.20. (R) Генерирование данных library(did) library(ggplot2) set.seed(1234) impact <- 200 n_group <- 10 time_points_base <- c(0, 1) n <- length(time_points_base) seasonality_base <- -cos(time_points_base/(2*pi)) time_points <- rep(time_points_base, 2*n_group) seasonality <- rep(seasonality_base, 2*n_group) D <- c(rep(0, 2*n_group), rep(1, 2*n_group)) id <- sort(rep(1:(2*n_group), 2)) Y_0 <- 500 + 200*D + 100*seasonality + rnorm(4*n_group, sd=100) Y_1 <- Y_0 + D*time_points*impact Y <- D*Y_1 + (1-D)*Y_0 df_observed <- data.frame( id, time_points, D, Y ) Листинг 11.21. (Python) Генерирование данных from numpy.random import normal, seed from numpy import cos, mean, pi, arange, hstack, array, floor import statsmodels.formula.api as smf import pandas as pd from doubleml import DoubleMLData from doubleml import DoubleMLDID from sklearn.linear_model import LogisticRegression from sklearn.linear_model import LinearRegression seed(1234) impact = 200 n_group = 10 time_points_base = arange(0, 2)
Метод сравнения разностей 389 n = len(time_points_base) seasonality_base = -cos(time_points_base / (2 * pi)) time_points = hstack((time_points_base,) * 2 * n_group) seasonality = hstack((seasonality_base,) * 2 * n_group) D = array([0] * (2 * n_group) + [1] * (2 * n_group)) id = list(range(1, 2 * n_group + 1)) * 2 id.sort() Y_0 = 500 + 200 * D + 100 * seasonality + \ normal(size=4 * n_group, scale=100) Y_1 = Y_0 + D * time_points * impact Y = D * Y_1 + (1 - D) * Y_0 df_observed = pd.DataFrame({ "id": id, "time_points": time_points, "D": D, "Y": Y }) Набор данных df_all содержит всю информацию, связанную с процессом генерации данных, включая полную информацию о потенциальных результатах. На практике такая информация редко бывает доступна. Набор df_observed содержит только те данные, которые мы должны получить. На практике мы редко имеем доступ ко всем переменным Y0, Y1, поскольку они являются потенциальными исходами и наблюдаются лишь частично. 11.4.2. Терминология DiD Введем некоторые обозначения. „ Различные элементы или единицы (в зависимости от того, как вы их называете) индексируются по i, как экспериментальные (группа для изучения), так и контрольные. В нашем примере индекс i обозначает рассматриваемый фильм (как «Звездные войны», так и «Властелин колец») и находится в диапазоне от 1 до 9 (шесть старых фильмов «Звездных войн» и три старых фильма «Властелина колец»). Мы также будем использовать переменную t для описания времени, а главное событие, которое нас интересует, происходит в момент времени T. Чтобы упростить, предположим, что T равно 1, поэтому в основном мы будем рассматривать временной интервал [0, 1], который непосредственно предшествует главному событию. i „ Переменная D обозначает, подвергся ли i-й элемент воздействию (значение 0 означает «нет», а 1 – «да»). В нашем примере воздействием является выпуск нового фильма в той же саге. i „ Результат анализа i-го элемента как Y (t). „ У нас также есть два потенциальных исхода для каждого i-го элемента в момент времени t, Y0i(t) и Y1i(t), определяющие исходы, когда они подвергаются и не подвергаются воздействию соответственно. В наших примерах они представляют количество просмотров при выходе нового фильма в той же саге. Обратите внимание, что до его появления событие не оказывает никакого влия­ния на исходы. Поэтому потенциальные исходы Y0i(t) = Y1i(0), т. е. абсолютно одинаковы. Кроме того, они совпадают с наблюдаемым результатом: соответственно, Y0i(0) = Y1i(0) = Yi(0).
390 Глава 11 Эффекты событий во времени Эта терминология дополнительно поясняется диаграммой на рис. 11.19. Для точек слева, t = 0, показаны наблюдаемые значения (которые совпадают с потенциальными исходами). Для точек справа ненаблюдаемые потенциальные исходы Y0i(1) нарисованы как пустые кружки. Ожидаемые точки (объясняются далее) нарисованы черным цветом. Рис. 11.19. Данные в терминах потенциальных исходов. Для D = 0 все данные наблюдаются. Ненаблюдаемые потенциальные исходы нарисованы как пустые кружки. Ожидания нарисованы черным цветом. Контрфактуальные текстовые подписи затенены Давайте попрактикуемся в использовании обозначений потенциальных исходов с некоторыми величинами, которые пригодятся нам позже. i „ Ожидание, например E[Y (0)], означает среднее значение по всем элементам. Например, в данном случае E[Y i(0)] – это средний исход для всех элементов в момент времени 0. Проверьте свои знания: как записать ту же величину в момент времени 1? В этом случае обе величины можно рассчитать напрямую из данных. i i „ Величины E[Y (1)] и E[Y (1)] представляют средние потенци0 1 альные исходы в момент времени 1, как если бы воздействие затронуло и не затронуло все элементы соответственно. В нотации «do» это записывается как E[Y0i(1)] = E[Yi(1)|do(D1 = 0)] и E[Y1i(1)] = E[Yi(1)|do(D1 = 1)]. i „ В нашем примере E[Y (1)] – это средний исход, как если бы одно1 временно вышел новый фильм в обеих сагах, «Звездные войны» и «Властелин колец». Аналогично E[Y0i(1)] – это средний исход, как если бы вышел новый фильм в одной из саг. Проверьте свои знания: что такое E[Y0i(0)] и E[Y1i(0)]?
391 Метод сравнения разностей Величины E[Y0i(0)] и E[Y1i(0)] определяют потенциальные исходы в момент времени 0. Как объяснялось выше, в этот момент времени потенциальные исходы совпадают, поэтому E[Y0i(0)] = E[Y1i(0)] = E[Y i(0)]. i i „ Величина E[Y (0)|D = 0] – это средний исход в момент времени 0 для элементов, не подвергшихся воздействию. В нашем примере это будет среднее количество просмотров фильмов «Властелин колец» до выхода нового фильма. Проверьте свои знания: объясните смысл выражений E[Y i(1)|D i = 0], E[Y i(0)|D i = 1] и E[Y i(1)|D i = 1]. Обратите внимание, что все эти четыре величины можно рассчитать из данных. Величина E[Y0i(1)|D i = 1] может вызвать затруднения, но она одна из самых интересных. Это то, что мы называем контрфактуалом, т. е. она относится к сценарию, который не произошел, но мог бы произойти. Давайте рассмотрим его подробнее. Сначала сосредоточимся на группе элементов, подвергшихся воздействию. Таковыми в нашем примере являются фильмы «Звездные войны». Для этого мы обусловим (отфильтруем) группу так, чтобы Di = 1, т. е. оставим только затронутые фильмы. Для каждого элемента, подвергшегося воздействию, рассмотрим исход, обозначенный как Y0i(1), конкретно в момент времени 1. Нижний индекс 0 означает, что нас интересует возможный результат, как если бы этот элемент не подвергся воздействию. А теперь самая интригующая часть: хотя на первый взгляд это может показаться странным, но данное выражение просит нас представить сценарий, в котором те элементы, которые на самом деле подверглись воздействию (фактическое событие), гипотетически не подвергались ему (сценарий, который не произошел в реальности, контрфактуальное событие). Это способ исследования, что могло бы произойти в альтернативном мире. В табл. 11.4 перечислены четыре варианта последнего выражения. „ Таблица 11.4. Фактические события и контрфактуалы в момент времени 1 Выражение Смысл Можно рассчитать? С помощью какой формулы? E[Y0i (1)|D i = 1] Какой был бы исход после события среди подвергшихся воздействию, если бы они не подверглись воздействию? Нет E[Y1i (1)|D i = 1] Какой исход наступил после события среди подвергшихся воздействию? E[Y i(1)|D i = 1] E[Y0i (1)|D i = 0] Какой исход наступил после события среди не подвергшихся воздействию? E[Y i(1)|D i = 0] E[Y1i (1)|D i = 0] Какой был бы исход после события среди не подвергшихся воздействию, если бы они подверглись воздействию? Нет
392 Глава 11 Эффекты событий во времени С другой стороны, в момент времени 0, поскольку событие не влияет на результат (потому что оно еще не произошло), мы имеем E[Y0i(0)|D i = 1] = E[Y1i(0)|D i = 1] = E[Y i(0)|D i = 1]; E[Y0i(0)|D i = 0] = E[Y1i(0)|D i = 0] = E[Y i(0)|D i = 0]. Для определения нашей цели, которой является ATET, можно использовать следующую нотацию: ATET = E[Y1i(0) – Y0i|D i = 1]. Количество просмотров Проще говоря, это отражает влияние выхода нового фильма на фильмы, подвергшиеся воздействию (в нашем примере это фильмы «Звездные войны»), по сравнению со сценарием, когда новый фильм не был выпущен, как показано на рис. 11.20. D Время Рис. 11.20. Визуальное представление ATET для метода DiD 11.4.3. Предположения Основное предположение в методе сравнения разностей (DiD) – схожесть, или общность, тенденций. Оно предполагает, что в отсутствие воздействия ожидаемая разность между группами до и после времени события оставалась бы неизменной. Запишем это предположение математически. „ В отсутствие воздействия исход до события выражался бы как Y0i(0). Таким образом, разность ожидаемых исходов между группами до события составляет E[Y0i(0)|D i = 1] – E[Y0i(0)|D i = 0].
393 Метод сравнения разностей „ Проверьте свои знания: какова разность ожидаемых исходов между группами после времени события? Разность ожидаемых исходов между группами после времени события составляет E[Y1i(1)|D i = 1] – E[Y1i(1)|D i = 0]. Итак, предположение о схожести тенденций можно выразить как E[Y0i(0)|D i = 1] – E[Y0i(0)|D i = 0] = E[Y0i(1)|D i = 1] – E[Y0i(1)|D i = 0]. Количество просмотров Предположение о схожести тенденций показано на рис. 11.21, где видно, что тенденции просмотров для двух групп D = 0, 1 были бы схожими, если бы новый фильм не был выпущен. Контрфактуальная тенденция нарисована пунктирной линией, параллельной линии группы D = 0. D Время Рис. 11.21. Ключевое предположение в DiD называется предположением о сходстве тенденций. Оно предполагает, что тенденции между двумя группами, D = 0 и D = 1, были бы схожи, если бы не был выпущен новый фильм
394 Глава 11 Эффекты событий во времени Переставляя члены, предположение о схожести тенденций можно выразить иначе: E[Y0i(0) – Y0i(1)|D i = 1] = E[Y0i(0) – Y0i(1)|D i = 0]. Предположения DiD Главное предположение в методе DiD – так называемое предположение о схожести тенденций, согласно которому в отсутствие воздействия разность в ожиданиях между группами до и после события была бы одинаковой: E[Y0i(0)|D i = 1] – E[Y0i(0)|D i = 0] = E[Y0i(1)|D i = 1] – E[Y0i(1)|D i = 0], или, что то же самое, E[Y0i(0) – Y0i(1)|D i = 1] = E[Y0i(0) – Y0i(1)|D i = 0]. 11.4.4. Оценка эффекта Определение ATET выражается в терминах потенциальных исходов. Напомню, что потенциальные исходы наблюдаются лишь частично, поэтому у нас нет всей информации, необходимой для расчета ATET. Чтобы рассчитать ATET на основе имеющихся данных, нужно выразить ATET только в терминах наблюдаемых данных, или, что эквивалентно, в терминах наблюдаемых значений Y i(t). Объединив определение ATET с предположением о схожести тенденций, можно найти формулу для расчета ATET на основе данных. Вспомним определение ATET: ATET = E[Y1i(1) – Y0i(1)|D i = 1] = E[Y1i(1) |D i = 1] – E[Y0i(1) |D i = 1]. Потенциальный исход Y1i(1) для подвергшихся воздействию, Di = 1, равен наблюдаемому исходу Yi(1), поскольку потенциальный исход относится к тому, что произошло бы, если бы они подверглись воздействию, а условие Di = 1 говорит, что они в конечном итоге подверг­ лись воздействию (это известно как уравнение согласованности схемы потенциальных исходов; см. главу 10). Соответственно, первый член ATET можно рассчитать усреднением исходов после воздействия для тех элементов, которые фактически подверглись воздействию: E[Y1i(0)|D i = 1] = E[Y1i(0)|D i = 1]. Второй член E[Y0i(1)|D i = 1], как объясняется в разделе 11.4.2, является ненаблюдаемым контрфактуалом. Этот член также появляется в предположении о схожести тенденций. Таким образом, идея состоит в том, чтобы из предположения о схожести тенденций получить альтернативную формулу для E[Y0i(1)|D i = 1], которую можно найти, опираясь на данные. Вспомним предположение о схожести тенденций: E[Y0i(0)|D i = 1] – E[Y0i(0)|D i = 0] = E[Y0i(1)|D i = 1] – E[Y0i(1)|D i = 0].
395 Метод сравнения разностей Поскольку в момент времени t = 0 событие не оказывает никакого влияния, из данных можно рассчитать следующий член: E[Y0i(0)|D i = 1] – E[Y0i(0)|D i = 0] = E[Y i(0)|D i = 1] – E[Y i(0)|D i = 0]. И в соответствии с правилом согласованности потенциальных исходов член E[Y0i(1)|D i = 0] = E[Y i(1)|D i = 0] тоже можно вычислить из данных. То есть можно выделить интересующий нас член: E[Y i(0)|D i = 1] = E[Y i(0)|D i = 1] – E[Y i(0)|D i = 0] + E[Y i(1)|D i = 0]. Наконец, объединив все члены, получаем: ATET = E[Y i(1)|D i = 1] – (E[Y i(0)|D i = 1] – E[Y i(0)|D i = 0] + E[Y i(1)|D i = 0]), что простым переупорядочением членов можно выразить как ATET = (E[Y i(1) – Y i(0)|D i = 1]) – (E[Y i(1) – Y i(0)|D i = 0]). (11.3) Теперь нетрудно догадаться, откуда этот метод получил свое название. Эффект рассчитывается по разности между двумя членами, каждый из которых сам является разностью: „ разность между элементами, подвергшимися воздействию, до и после события: E[Y i(1)|D i = 1] – E[Y i(0)|D i = 1]; „ разность между элементами, не подвергшимися воздействию, до и после события: E[Y i(1)|D i = 0] – E[Y i(0)|D i = 0]. 11.4.5. Практика Так же, как в случае с RDD, далее мы рассмотрим три варианта практического применения этого метода. Первые два – более простые, поэтому их можно использовать в качестве базовых. Если понадобится более сложная модель, то вы можете использовать третий вариант, включающий в анализ дополнительные ковариаты. Прямая формула Уравнение 11.3 можно применить непосредственно к данным. Обозначим как I1 элементы с D i = 1 (и аналогично для I0), а как n1,t – количест­во наблюдений из I1 в момент времени t (и аналогично для n0,t). Тогда , , .
396 Глава 11 Эффекты событий во времени Реализация расчета ATET с помощью этого метода показана в листингах 11.22 и 11.23. Для нашего примера она дает оценку эффекта 168,24; фактическое значение равно 200. Листинг 11.22. (R) Оценка ATE методом DiD с применением прямой формулы diff_1 <- mean(df_observed[ df_observed$time_points == ]) - mean(df_observed[ df_observed$time_points == ]) diff_0 <- mean(df_observed[ df_observed$time_points == ]) - mean(df_observed[ df_observed$time_points == ]) diff_1 - diff_0 1 & df_observed$D == 1, 'Y' 0 & df_observed$D == 1, 'Y' 1 & df_observed$D == 0, 'Y' 0 & df_observed$D == 0, 'Y' Листинг 11.23. (Python) Оценка ATE методом DiD с применением прямой формулы diff_1 = mean( df_observed.loc[(df_observed.time_points == 1) & (df_observed.D == 1), "Y"] \ ) - mean(df_observed.loc[(df_observed.time_points == (df_observed.D == 1), "Y"]) diff_0 = mean( df_observed.loc[(df_observed.time_points == 1) & (df_observed.D == 0), "Y"] \ ) - mean(df_observed.loc[(df_observed.time_points == (df_observed.D == 0), "Y"]) diff_1 - diff_0 \ 0) & \ \ 0) & \ Получить доверительные интервалы можно с помощью метода бутстрэппинга (описывается в главе 8), выполнив следующие шаги: „ повторить выборку данных; выборка должна быть произведена с заменой, иначе всегда будет получаться один и тот же набор данных, только в другом порядке; „ рассчитать ATET с помощью уравнения 11.3. Повторить предыдущие шаги много раз (обычно от 1000 до 10 000 раз), а затем вычислить квантили a и 1 – a, где 0 < a < 1. Обычно используется a = 0,025 для 95%-ного доверительного интервала, что приводит к 2,5%-ному и 97,5%-ному квантилям. Линейные модели Альтернативный вариант – использование линейных моделей. Они дают точно такие же оценки, как уравнение 11.3, но у них есть два преимущества: „ они имеют стандартные реализации, такие как функция lm в R и библиотека statmodels в Python;
397 Метод сравнения разностей если возникнет необходимость в видоизмененной версии метода DiD, то велика вероятность, что с помощью линейных моделей вы сможете применить аналогичные приемы, что позволит повторно использовать предыдущие наработки. „ Линейная модель, которая дает те же оценки, что и уравнение 11.3, имеет те же особенности, что и обсуждаемая в разделе RDD. Далее мы используем модель Y i(t) = a0 + a1D i + a2t i + a3t iD i + εi(t), где E[εi(t)] = 0 и члены εi(t) независимы друг от друга. При такой спецификации линейной модели мы позволяем каждой группе, D = 0 и D = 1, иметь свой свободный член и угловой коэффициент. Рассуждения строятся так же, как в случае RDD (если вы не помните, то прочитайте еще раз подраздел «Линейные модели» в разделе 11.2.5). Чтобы понять, чего следует ожидать от применения этой модели в подходе DiD, нужно применить уравнение 11.3 (записанное здесь еще раз для полноты) к выбранной линейной модели: ATET = (E[Y i(1) – Y i(0)|D i = 1]) – (E[Y i(1) – Y i(0)|D i = 0]). То есть необходимо рассчитать четыре комбинации вида E[Y i(t)|D i = d] для переменных времени t = 0,1 и переменных решения d = 0,1. Для этого достаточно подставить соответствующие значения t и d в линейную формулу. Члены ошибки εi(t) исчезают, потому что мы применяем ожидания, и эти члены получают нулевое ожидание. Полученные расчеты показаны в табл. 11.5. Таблица 11.5. Значения выражения E[Y i(t)|D i = d] для моментов времени t = 0,1 и решений d =0,1 ti = 0 ti = 1 Di = 0 a0 a0 + a2 D =1 a0 + a1 a0 + a1 + a2 + a3 i То есть мы можем найти ATET как [(a0 + a1 + a2 + a3) – (a0 + a1)] – [(a0 + a2) – (a0)] = [a2 + a3 + a2)] = a3. То есть ATET – это всего лишь коэффициент a3. Оценить ATET можно с помощью кода в листингах 11.24 и 11.25, который дает результат 168,24 (49,4, 287,1). Оценка ATET предоставляется коэффициентом D:time_points. Обратите внимание, что мы получили в точности ту же оценку 168,24, как и в случае прямого применения уравнения 11.3. Это соотношение будет выполняться всегда: линейные модели и уравнение 11.3 всегда дают одинаковые оценки.
398 Глава 11 Эффекты событий во времени Листинг 11.24. (R) Оценка ATET методом DiD с использованием линейной регрессии определяется значением D:time_points model <- lm(Y~D*time_points, data=df_observed) print(summary(model)) confint(model, level = 0.95) Листинг 11.25. (Python) Оценка ATET методом DiD с использованием линейной регрессии определяется значением D:time_points model = smf.ols(formula="Y~D*time_points", data=df_observed).fit() model.summary() Дополнительные ковариаты Линейную модель можно расширить, добавив дополнительные временные точки или другие ковариаты. Например, в нашем примере с фильмами можно ввести еще один фактор: возраст фильма. Этот фактор поможет разделить уже вышедшие фильмы на старые и новые фильмы. Для иллюстрации мы можем классифицировать фильмы «Звездные войны» IV–VI, вышедшие в 1970–1980-х годах, как старые, а «Звездные войны» I–III и все три фильма «Властелина колец» (вышедшие между 1999 и 2005 годом) – как более новые. Дополнительные ковариаты могут охватывать несколько факторов, иметь непрерывные или дискретные значения и оказывать прямое влияние на переменную результата Y i(t). Например, более новые фильмы, как правило, смотрят чаще, чем старые, т. е. возраст фильма влияет на переменную результата Y i(t). Интересно отметить, что добавление статических ковариатов, не зависящих от времени или переменной решения, не оказывает никакого влияния на оценку DiD. Например, рассмотрим модель Yi = a0 + a1D i + a2t iD i + bX i + εi(t), где X – возраст фильма. При вычислении разности E[Y i(1) – Y i(0)|D i = 1] в уравнении 11.3 член bX i сокращается и не влияет на результат. То же самое происходит со второй разностью в уравнении 11.3. Код в листингах 11.26 и 11.27 создает новый набор данных с дополнительной переменной A, влияющей на исход. Четверть экземпляров, не подвергавшихся воздействию, и половина подвергавшихся имеют категорию A = 1. Листинг 11.26. (R) Генерирование синтетического набора данных с дополнительными ковариатами n_a <- floor(n_group/4) A <- c(rep(1, n_a*2), rep(0, 2*(n_group - n_a))) n_a <- floor(n_group/2) A <- c(A, rep(1, n_a*2), rep(0, 2*(n_group - n_a))) D <- c(rep(0, 2*n_group), rep(1, 2*n_group))
Метод сравнения разностей 399 Y_0_age <- Y_0 - 50 * A Y_1_age <- Y_1 - 50 * A Y_age <- D*Y_1_age + (1-D)*Y_0_age df_observed_age <- data.frame( id, time_points, D, Y=Y_age, A ) Листинг 11.27. (Python) Генерирование синтетического набора данных с дополнительными ковариатами n_a = int(floor(n_group / 4)) A = [1] * (n_a * 2) + [0] * (2 * (n_group - n_a)) n_a = int(floor(n_group / 2)) A = array(A + [1] * (n_a * 2) + [0] * (2 * (n_group - n_a))) D = array([0] * (2 * n_group) + [1] * (2 * n_group)) Y_0_age = Y_0 - 50 * A Y_1_age = Y_1 - 50 * A Y_age = D * Y_1_age + (1 - D) * Y_0_age df_observed_covariates = pd.DataFrame({ "id": id, "time_points": time_points, "D": D, "Y": Y, "A": A }) Код в листингах 11.28 и 11.29 использует линейную регрессию, включающую A, и получает результат 168,245 (93,12, 268,20). Оценка ATET предоставлена коэффициентом D:time_points. Этот результат практически совпадает с оценкой, полученной без дополнительного ковариата. Листинг 11.28. (R) Оценка ATET с использованием линейных моделей и дополнительного ковариата model <- lm(Y~D*time_points + A, data=df_observed) print(summary(model)) confint(model, level = 0.95) Листинг 11.29. (Python) Оценка ATET с использованием линейных моделей и дополнительного ковариата model = smf.ols(formula="Y~D*time_points + A", data=df_observed_covariates).fit() model.summary() В общем случае добавление большего количества ковариатов с зависимостями от времени или других переменных, таких как D, может значительно усложнить вычисления. Желающим узнать больше я рекомендую обратиться к специализированной литературе о методе сравнения разностей (DiD). Реализация метода DiD с использованием пакетов did и DoubleML Рассчитать ATET можно с помощью пакета DoubleML в Python или drdid в R (https://cran.r-project.org/web/packages/DRDID). Эти пакеты ос-
400 Глава 11 Эффекты событий во времени нованы на статье «Doubly robust difference-in-differences estimators» Педро Х. К. Сант'Анны (Pedro H. C. Sant’Anna) и Цзюня Чжао (Jun Zhao). Они могут производить вычисления методом DiD с дополнительными ковариатами и нелинейными связями, используя модели машинного обучения, но в этом разделе мы рассмотрим только самый простой вариант их применения. Листинг 11.30. (R) Реализация метода DiD с использованием пакета did att_gt( yname='Y', tname = 'time_points', idname = 'id', gname = 'D', data = df_observed) В этом примере используется функция att_gt, которая дает результат 168,245 (61,23, 275,26) – близкий к результатам, полученным ранее. Как уже упоминалось, эти библиотеки можно использовать в более сложных ситуациях, когда имеются дополнительные ковариаты, влияющие на результат и нелинейную переменную решения D. Эти пакеты вычисляют оценки ATET с двойной надежностью. В Python для применения метода DiD можно использовать пакет DoubleML. Обратите внимание, что DoubleML может обрабатывать нелинейные случаи, поэтому при работе с этой библиотекой нужно указать тип используемых моделей машинного обучения. Для простоты в листинге 11.31 мы выбрали линейную и логистическую регрессии. Однако при необходимости можно использовать любой алгоритм машинного обучения, совместимый с пакетом. Листинг 11.31. (Python) Реализация метода DiD с использованием пакета DoubleML dml_data = DoubleMLData( df_observed_covariates, y_col="Y", d_cols="D", x_cols="A", \ t_col="time_points" \ ) ml_g = LinearRegression() ml_m = LogisticRegression(penalty=None) dml_did = DoubleMLDID( dml_data, ml_g=ml_g, ml_m=ml_m, score="observational", in_sample_normalization=True, n_folds=5, ) dml_did.fit() print(dml_did)
Сравнение методов 401 11.5. Контрольные вопросы Завершая главу, важно убедиться в наличии четкого понимания ключевых концепций. Ниже перечислены контрольные вопросы, на которые вы должны уметь ответить четко и кратко. Если это не так, то я рекомендую еще раз прочитать разделы в ссылках, сопровождающих вопросы. 1 Какие три вида данных связаны со временем? Ответ во введении. 2 Объясните, какое предположение лежит в основе метода разрывной регрессии (Regression Discontinuity Design), что позволяет оценить причинно-следственный эффект? Ответ во врезке «Почему RDD позволяет оценить причинно-следственный эффект даже при наличии одновременных факторов?» в разделе 11.2. 3 Какую общую практическую проблему имеют методы разности средних и линейной регрессии при применении к RDD? Ответ во врезках «Ограничения метода разности средних» и «Ограничения линейного подхода к RDD» в разделе 11.2.5. 4 Объясните предположения, лежащие в основе подхода синтетического контроля (SC). Ответ во врезке «Предположения SC» в разделе 11.3.3. 5 Какие последствия имеются при выборе временных периодов до и после основного события в подходе SC? Ответ в табл. 11.3. 6 Какие величины, выраженные в нотации PO, наблюдаются на рис. 11.19? Какие из них вычисляются? Какие являются ненаблюдаемыми? 11.6. Сравнение методов В табл. 11.6 приводится краткое обобщение методов, обсуждаемых в этой главе. Эта таблица показывает: „ какой метод предпочтительнее, в зависимости от типа данных и предположений; „ что оценивает метод. Не забывайте, что в этой главе мы рассмотрели лишь самые основные варианты каждого метода. Существует множество других вариантов каждого из них, предназначенных для работы с разными типами данных, при разных предположениях и оценивающих разные величины. Желающим больше узнать об этих вариантах я советую обратиться к специализированной литературе.
Глава 11 Эффекты событий во времени 402 Таблица 11.6. Какой метод предпочтительнее (в зависимости от типа данных и предположений) и что оценивает каждый метод Метод Тип данных RDD Временные ряды Предположения Оценка эффекта ATE в момент времени T и SC Временные ряды • X(t) можно использовать для прогнозирования Y(t) до момента времени T; • главное событие в момент T не влияет на X(t); • между исходами и контрольными элементами существует устойчивая связь Средний ATET в период времени после события DiD Панельные данные Схожесть тенденций ATET в момент времени T E[Y (0) – Y (1)|D = 1] = E[Y (0) – Y (1)|D = 0] i 0 i 0 i i 0 i 0 i 11.7. Ссылки „ „ Эндрю Гельман (Andrew Gelman) и Гвидо Имбенс (Guido Imbens) «Why high-order polynomials should not be used in regression discontinuity designs» (2018; https://mng.bz/DpXV); «The economic costs of conflict: a case study of the Basque country» Альберто Абади (Alberto Abadie) и Хавьер Гардеасабаль (Javier Gardeazabal) (2003; https://mng.bz/lr6o). Итоги „ „ „ „ Существуют различные типы временных данных: перекрестные ряды, временные ряды и панельные данные. Метод RDD можно использовать для анализа временных рядов, если нет никаких существенных и внезапных изменений, вызванных другими факторами, помимо основного события. Метод SC можно использовать для анализа временных рядов, если есть возможность соотнести их с другими временными рядами. Метод DiD можно использовать для анализа панельных данных, чтобы оценить влияние события на группу элементов.
Приложение A. Математика, лежащая в основе формулы корректировки В главе 2 была показана формула корректировки с интуитивной точки зрения. В этом приложении я покажу математическую основу этой формулы для тех, кому это интересно. Здесь я четко изложу основные предположения, проиллюстрирую графы математическими выражениями и покажу некоторые алгебраические манипуляции. Основная цель заключается в следующем. Предположим, что у нас есть данные, полученные из процесса, изображенного на рис. A.1, который создает распределение вероятностей P. 1 Граф вмешательства на рис. A.2 показывает желаемый процесс генерирования данных, создающий распределение вероятностей P|do(T = A). Для этого доказательства мы будем использовать нотацию P do(T = A), обозначающую P|do(T = A). 2 Итак, на основе графа вмешательства нам нужно вычислить вероятность выздоровления Pdo(T = A), но только с использованием членов из исходного графика распределения P (это единственная доступная нам информация). Каждый граф можно перевести в эквивалентный набор уравнений. Начнем с распределения P: S := US; T := fT(D, UT); R := fR(S, T, UR).
404 Приложение A. Математика, лежащая в основе формулы корректировки S T S R T Рис. A.1. Процесс генерирования исторических данных R Рис. A.2. Желаемый процесс генерирования данных Эти уравнения образуют структурную причинно-следственную модель (structural causal model, SCM). Опишем ее подробно. Символ := – это оператор присваивания, который отличается от оператора равенства (=). Выражение x = y означает, что если изменится x или y, то другой член тоже изменится. Выражение x := y, напротив, означает, что при изменении y изменится x, но изменение x не повлияет на y. Этот символ моделирует внутреннюю направленность причинно-следственной связи y → x. „ U , U и U – это экзогенные переменные, представляющие конS T R текст вне модели. Мы предполагаем, что они независимы и имеют некоторое произвольное распределение. Это источники вариаций в нашей системе. „ Функции f и f – это функции произвольного типа. В отношении T S них не предполагается никакой функциональной формы (примерами функциональной формы являются линейные отношения и отношения, описываемые нейронной сетью). Это очень общее определение. Однако, как будет показано далее, этих предположений вполне достаточно, что очень хорошо, потому что у нас появляется возможность моделировать широкий спектр ситуаций. Давайте запишем набор уравнений для Pdo(T = A) (где единственное отличие заключается в определении T): „ S := US; T := A; R := fR(S, A, UR). Предположив допустимость этих моделей, мы можем смело использовать тот факт, что переменная S ведет себя одинаково в обоих графах, а также что связь между R и переменными S и T одинакова. Единственная переменная, которая ведет себя по-разному, – это T, что, конечно, влияет на значения, которые примет R (но не на порядок их вычисления). Мысль, которую мы выразили словами, можно выразить математически. То есть тот факт, что S ведет себя одинаково, означает, что ее распределение в обоих графах одинаково: P(S) = P do(T = A) (S). Точно так же, если зафиксировать значения S = s и T = A (т. е. обусловить эти значения), то мы получим
Приложение A. Математика, лежащая в основе формулы корректировки 405 P(R = 1|S = s, T = A) = Pdo(T = A) (R = 1|S = s, T = A). Теперь у нас есть все необходимое для вывода формулы. Мы будем использовать переменные из примера с почечнокаменной болезнью и их значения, такие как Small и Large. Однако, приложив немного усилий, ее можно записать в общем виде. Используя закон полной вероятности (который работает для всех распределений и, в частности, для вмешивающегося), мы имеем P do(T = A) (R = 1) = P do(T = A) (R = 1, S = Small) + P do(T = A) (R = 1, L = Large). Теперь развернем каждый член, применяя определение условной вероятности: P do(T = A) (R = 1, S = Small) + P do(T = A) (R = 1, L = Large) P do(T = A) (R = 1|S = Small) P do(T = A) (S = Small) + P do(T = A) (R = 1| L = Large) P do(T = A) (L = Large). В графе вмешательства всегда можно поставить условие T = A, потому что лечение A назначается всем пациентам и всегда T = A. Напомню, что обусловливание означает выбор этих случаев; но в графе вмешательства лечение всегда равно A, поэтому мы имеем P do(T = A) (R = 1|S = Small) = P do(T = A) (R = 1|S = Small, T = A). Подставляя эти члены (и аналог крупных камней), получаем P do(T = A) (R = 1|S = Small) P do(T = A) (S = Small) + P do(T = A) (R = 1| L = Large) P do(T = A) (L = Large) = P do(T = A) (R = 1|S = Small, T = A) P do(T = A) (S = Small) + P do(T = A) (R = 1| L = Large, T = A) P do(T = A) (L = Large). Теперь равенства P(S) = P do(T = A) (S) и P(R = 1|S = s, T = A) = P do(T = A) (R = 1|S = s, T = A) можно заменить: P do(T = A) (R = 1|S = Small, T = A) P do(T = A) (S = Small) + P do(T = A) (R = 1| L = Large, T = A) P do(T = A) (L = Large) = P (R = 1|S = Small, T = A) P (S = Small) + P (R = 1| L = Large, T = A) P (L = Large).
406 Приложение A. Математика, лежащая в основе формулы корректировки Вот и все! Мы выразили интересующую нас величину в терминах наблюдаемых величин (распределение вероятностей P), получив формулу корректировки, которую ранее мы вывели интуитивно: P do(T = A) (R = 1) = P (R = 1|S = Small, T = A) P (S = Small) + P (R = 1|L = Large, T = A) P (L = Large).
Приложение B. Решения упражнений в главе 2 B.1. Решение парадокса Симпсона для метода лечения B Какова была бы эффективность метода B, если бы он применялся ко всем? Какой метод лучший? Сначала разложим вероятность выздоровления при применении метода лечения B. В данном случае мы имеем 81 % = 62 % × 23 % + 87 % × 77 %. Если применять только метод B, то расчет будет выглядеть так: 75 % = 62 % × 49 % + 87 % × 51 %. Процент излечения снизится с 81 % до 74 %, потому что увеличится доля сложных (крупных) камней. Разница между применением ко всем пациентам метода лечения A с вероятностью выздоровления 83 % и метода лечения B с вероятностью выздоровления 74 % составляет 9 процентных пунктов. Это означает, что метод A лучше, если в больнице решат применять его ко всем пациентам. B.2. Наблюдать и делать – это не одно и то же Рассмотрим простой пример с C~N(0,1) и ε~N(0,1), E := C + ε.
Приложение B. Решения упражнений в главе 2 408 То есть у нас есть очень простой граф C → E, и мы описываем связь с помощью математических формул и распределений вероятностей, которые только что объяснили. Обратите внимание, что здесь используется символ := в отношении E := C + ε, которое должно читаться как программный код: получив значение C, мы сможем вычислить значение E. Но, как и в программировании, изменив значение E, мы не изменим значение C. В качестве упражнения вычислите распределения переменных E|C = c, E|do(C = c), C|E = y и C|do(E = y). B.2.1. Решение Поскольку C → E, вмешательство в C (удаление всех стрелок, входящих в C) не меняет граф, поэтому вмешательство и наблюдение – это одно и то же, соответственно, E|do(C = c) = E|C = c. Но при обусловленности C = c (как говорилось в разделе 1.5.2 «Условные вероятности и ожидания»), при наличии точной зависимости E от C нужно лишь подставить: E = C + ε. Поскольку ошибка имеет нормальное распределение, то распределение E тоже является нормальным, и Е ~ N(c, 1). Теперь вмешательство в E не влияет на C. То есть если изменение A вызывает изменение B, это не означает, что изменение B вызовет изменение A. Это неотъемлемое свойство причинно-следственной связи. Аналогично если что-то сделать с E, значение C не изменится. Таким образом, распределение C|do(E = y) такое же, как и C, поэтому C|do(E = y) ~ N(0, 1). Остается распределение C|E = y. Это выражение читается следующим образом. Оба члена, C и ε, имеют нормальное распределение, и значение E вычисляется из них. Если известно, что E = y, то каково распределение C в этом случае? у = С + ε. Для доказательства необходимо углубиться в математические выкладки, но суть сводится к тому, чтобы найти ссылку на распределение гауссианы, обусловленное ее суммой с другой гауссианой. Решение состоит в том, что C|E = y также является гауссианой со средним y/2 и дисперсией, равной квадратному корню из ½. .
Приложение B. Решения упражнений в главе 2 B.3. 409 Что нужно скорректировать? Цель: определить в каждом сценарии, какую формулу использовать для расчета ATE. Учитывая переменные метода лечения T и исхода O, мы пройдем следующие шаги: 1 Проверим структурные уравнения и посмотрим, как меняется результат при использовании разных методов лечения в этих уравнениях. Это означает, что вам придется вручную рассчитать все уравнения при изменении метода лечения: – установить T = 1 независимо от остальных переменных и вычислить ожидаемое значение O (которое, говоря математическим языком, равно E[O |do(T = 1)]); – установить T = 0 и вычислить ожидаемое значение O (говоря математическим языком, E[O|do(T = 0)]); – вычислить разность ATE = E[O|do(T = 1)] – E[O|do(T = 0)]. 2 Оценим разность средних E[O|T = 1] – E[O|T = 0]. 3 Применим формулу корректировки к набору данных. Ответим на следующий вопрос: существует ли несмещенная оценка истинного значения ATE в разности средних значений и формуле корректировки? 4 значений по данным: то есть Таким образом, в каждом упражнении мы должны заполнить табл. B.1, где adjustment(t) обозначает функцию, вычисляющую формулу корректировки на основе данных для метода лечения t. Таблица B.1. Результаты упражнений Истинное значение ATE E[O|T = 1] – E[O|T = 0] adjustment(1) – adjustment(0) Оценка ATE B.3.1. RCT Заполним табл. B.1, моделирующую случай с размером выборки 10 000, показанный на рис. B.1: T := B(0,5), R := B(0,3)T + B(0,5)(1 – T), где B(p) выводится из распределения Бернулли с математическим ожиданием p. Рис. B.1. RCT или A/B-тестирование. T означает Treatment (метод лечения), и O – Outcome (исход, результат) T O
Приложение B. Решения упражнений в главе 2 410 Листинг B.1. (R) Пример RCT set.seed(1234) n <- 10000 treatment <- rbinom(n, 1, 0.5) outcome <- rbinom(n, 1, 0.3)*treatment + rbinom(n, 1, 0.5)*(1-treatment) condition_prob_diff <- mean(outcome[treatment==1]) mean(outcome[treatment==0]) print(condition_prob_diff) Листинг B.2. (Python) Пример RCT (инструкции импорта также потребуются в следующих примерах) from numpy.random import binomial, normal, seed from numpy import mean, unique seed(1234) n = 10000 treatment = binomial(1, 0.5, size=n) outcome = binomial(1, 0.3, size=n)*treatment + \ binomial(1, 0.5, size=n)*(1-treatment) condition_prob_diff = mean(outcome[treatment==1]) - \ mean(outcome[treatment==0]) print(condition_prob_diff) Таблица B.2. Результаты, полученные кодом на R Истинное значение ATE –0,2 E[O|T = 1] – E[O|T = 0] –0,200824 adjustment(1) – adjustment(0) Не применимо Оценка ATE –0,200824 B.3.2. Искажающие факторы Заполним табл. B.1, моделирующую случай с размером выборки 10 000, показанный на рис. B.2: C := B(0,8), T := B(0,6)C + B(0,2)(1 – C), R := B(0,3)T + B(0,5)(1 – T) + C + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). C T O Рис. B.2. Граф с искажающим фактором. C означает Confounder (искажающий фактор), T – Treatment (метод лечения) и O – Outcome (исход, результат)
Приложение B. Решения упражнений в главе 2 Листинг B.3. (R) Пример с искажающим фактором: генерирование данных set.seed(1234) n <- 10000 confounder <- rbinom(n, 1, 0.8) treatment <- rbinom(n, 1, 0.6)*confounder + rbinom(n, 1, 0.2)*(1-confounder) outcome <- rbinom(n, 1, 0.3)*treatment + rbinom(n, 1, 0.5)*(1-treatment) + confounder + rnorm(n) condition_prob_diff <- mean(outcome[treatment==1]) mean(outcome[treatment==0]) print(condition_prob_diff) Листинг B.4. (R) Формула корректировки adjustment <- function(t, o, z, t0){ ind_t0 <- t == t0 z_values <- unique(z) adjusted_prob <- 0 for(z_ in z_values){ ind_z_ <- z == z_ ind <- ind_t0 & ind_z_ adjusted_prob <- adjusted_prob + mean(o[ind])*mean(ind_z_) } return(adjusted_prob) } adj_result <- adjustment(treatment, outcome, confounder, 1) adjustment(treatment, outcome, confounder, 0) print(adj_result) Листинг B.5. (Python) Пример с искажающим фактором: генерирование данных seed(1234) n = 10000 confounder = binomial(1, 0.8, size=n) treatment = binomial(1, 0.6, size=n)*confounder + \ binomial(1, 0.2, size=n)*(1-confounder) outcome = binomial(1, 0.3, size=n)*treatment + \ binomial(1, 0.5, size=n)*(1-treatment) + \ confounder + normal(size=n) condition_prob_diff = mean(outcome[treatment==1]) - \ mean(outcome[treatment==0]) print(condition_prob_diff) Листинг B.6. (Python) Формула корректировки def adjustment(t, o, z, t0): ind_t0 = t == t0 z_values = unique(z) adjusted_prob = 0 411
Приложение B. Решения упражнений в главе 2 412 for z_ in z_values: ind_z_ = z == z_ ind = ind_t0 & ind_z_ adjusted_prob = adjusted_prob + mean(o[ind])*mean(ind_z_) return(adjusted_prob) adj_result = adjustment(treatment, outcome, confounder, 1) - \ adjustment(treatment, outcome, confounder, 0) print(adj_result) Таблица B.3. Результаты, полученные кодом на R Истинное значение ATE E[O|T = 1] – E[O|T = 0] –0,2 0,0727654 adjustment(1) – adjustment(0) –0,1729764 Оценка ATE –0,1729764 B.3.3. Ненаблюдаемые искажающие факторы Заполним табл. B.1, моделирующую случай с размером выборки 10 000, показанный на рис. B.3: C := B(0,8), T := B(0,6)C + B(0,2)(1 – C), R := B(0,3)T + B(0,5)(1 – T) + C + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). C T O Рис. B.3. Граф с ненаблюдаемым искажающим фактором (у нас нет никаких данных об этой переменной). C означает Confounder (искажающий фактор), T – Treatment (метод лечения) и O – Outcome (исход, результат) Листинг B.7. (R) Ненаблюдаемый искажающий фактор set.seed(1234) n <- 10000 confounder <- rbinom(n, 1, 0.8) treatment <- rbinom(n, 1, 0.6)*confounder + rbinom(n, 1, 0.2)*(1-confounder) outcome <- rbinom(n, 1, 0.3)*treatment + rbinom(n, 1, 0.5)*(1-treatment) + confounder + rnorm(n) condition_prob_diff <- mean(outcome[treatment==1]) mean(outcome[treatment==0]) print(condition_prob_diff)
Приложение B. Решения упражнений в главе 2 413 Листинг B.8. (Python) Ненаблюдаемый искажающий фактор seed(1234) n = 10000 confounder = binomial(1, 0.8, size=n) treatment = binomial(1, 0.6, size=n)*confounder + \ binomial(1, 0.2, size=n)*(1-confounder) outcome = binomial(1, 0.3, size=n)*treatment + \ binomial(1, 0.5, size=n)*(1-treatment) + \ confounder + normal(size=n) condition_prob_diff = mean(outcome[treatment==1]) - \ mean(outcome[treatment==0]) print(condition_prob_diff) Таблица B.4. Результаты, полученные кодом на R Истинное значение ATE –0,2 E[O|T = 1] – E[O|T = 0] 0,0727654 adjustment(1) – adjustment(0) Нельзя вычислить Оценка ATE Нельзя вычислить B.3.4. Медиаторы Заполним табл. B.1, моделирующую случай с размером выборки 10 000, показанный на рис. B.4: T := B(0,4), M := B(0,6)T + B(0,2)(1 – T), R := B(0,4)T + B(0,5)(1 – T) + M + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). Рис. B.4. Граф с медиатором. Например, размер камней в почках после лечения – это медиатор, если после лечения размеры камней в почках могут измениться. M означает Mediator (медиатор), T – Treatment (метод лечения) и O – Outcome (исход, результат) M T Листинг B.9. (R) Медиатор set.seed(1234) n <- 10000 treatment <- rbinom(n, 1, 0.4) mediator <- rbinom(n, 1, 0.6)*treatment + rbinom(n, 1, 0.2)*(1-treatment) outcome <- rbinom(n, 1, 0.4)*treatment + rbinom(n, 1, 0.5)*(1-treatment) + mediator + rnorm(n) condition_prob_diff <- mean(outcome[treatment==1]) - O
Приложение B. Решения упражнений в главе 2 414 mean(outcome[treatment==0]) print(condition_prob_diff) adj_result <- adjustment(treatment, outcome, mediator, 1) adjustment(treatment, outcome, mediator, 0) print(adj_result) Листинг B.10. (Python) Медиатор seed(1234) n = 10000 treatment = binomial(1, 0.4, size=n) mediator = binomial(1, 0.6, size=n)*treatment + \ binomial(1, 0.2, size=n)*(1-treatment) outcome = binomial(1, 0.4, size=n)*treatment + \ binomial(1, 0.5, size=n)*(1-treatment) + \ mediator + normal(size=n) condition_prob_diff = mean(outcome[treatment==1]) - \ mean(outcome[treatment==0]) print(condition_prob_diff) adj_result = adjustment(treatment, outcome, mediator, 1) - \ adjustment(treatment, outcome, mediator, 0) print(adj_result) Таблица B.5. Результаты, полученные кодом на R Истинное значение ATE E[O|T = 1] – E[O|T = 0] (0,6 + 0,4) - (0,2 + 0,5) = 0,3 0,2876732 adjustment(1) – adjustment(0) Оценка ATE –0,1170337 0,2876732 B.3.5. Переменные, прогнозирующие результат Заполним табл. B.1, моделирующую случай с размером выборки 10 000, показанный на рис. B.5: T := B(0,4), P := B(0,4), O := B(0,4)T + B(0,5)(1 – T) + P + ε, где B(p) выводится из распределения Бернулли с математическим ожиданием p, а ε ~ N(0, 1). ... Z1 X Zp Y Рис. B.5. Переменная, предсказывающая результат, прогнозирует именно результат, но не метод лечения. В этом случае с точки зрения смещенности оценок нет никакой разницы между применением формулы корректировки и простой разности средних значений. Однако корректировка предсказывающей переменной может уменьшить дисперсию оценок
Приложение B. Решения упражнений в главе 2 Листинг B.11. (R) Предсказывающая переменная set.seed(1234) n <- 10000 treatment <- rbinom(n, 1, 0.4) predictor <- rbinom(n, 1, 0.4) outcome <- rbinom(n, 1, 0.4)*treatment + rbinom(n, 1, 0.5)*(1-treatment) + predictor + rnorm(n) condition_prob_diff <- mean(outcome[treatment==1]) mean(outcome[treatment==0]) print(condition_prob_diff) adj_result <- adjustment(treatment, outcome, predictor, 1) adjustment(treatment, outcome, predictor, 0) print(adj_result) Листинг B.12. (Python) Предсказывающая переменная seed(1234) n = 10000 treatment = binomial(1, 0.4, size=n) predictor = binomial(1, 0.4, size=n) outcome = binomial(1, 0.4, size=n)*treatment + \ binomial(1, 0.5, size=n)*(1-treatment) + \ predictor + normal(size=n) condition_prob_diff = mean(outcome[treatment==1]) - \ mean(outcome[treatment==0]) print(condition_prob_diff) adj_result = adjustment(treatment, outcome, predictor, 1) - \ adjustment(treatment, outcome, predictor, 0) print(adj_result) Таблица B.6. Результаты, полученные кодом на R Истинное значение ATE 0,4 – 0,5 = –0,1 E[O|T = 1] – E[O|T = 0] –0.0950824 adjustment(1) – adjustment(0) –0.1011824 Оценка ATE Обе оценки верны: –0.0950824 и –0,1011824 415
Приложение C. Техническая лемма о мерах склонности В разделе 5.1.4 мы узнали, что для определения ATE можно сгруппировать всех пациентов с одинаковой мерой склонности, потому что при одинаковой величине меры склонности характеристики популяции равномерно распределены между экспериментальной и контрольной группами. В этом приложении я приведу математическое доказательство истинности этого утверждения. Мы будем использовать условные вероятности, поэтому при необходимости прочитайте еще раз определение идеи обусловливания в разделе 1.5.2. Цель Цель данного приложения – математическое доказательство следующего утверждения: для данной меры склонности распределение характеристик популяции одинаково в экспериментальной и контрольной группах пациентов, получавших и не получавших лечение. Начнем с примера. На рис. C.1 мы объединили детей и пожилых людей, потому что их соотношение (1 к 2) одинаково в обеих группах, экспериментальной и контрольной. Обычно, группируя пациентов с одинаковой мерой склонности, распределение характеристик, таких как возраст, одинаково в экспериментальной и конт­ рольной группах. Нам нужно доказать общее утверждение о мерах склонности (что для группы с одинаковой мерой склонности распределение искажающих факторов одинаково как в экспериментальной, так и в контроль-
Приложение C. Техническая лемма о мерах склонности 417 ной группе). Чтобы доказать это, нужно научиться описывать это утверждение в абстрактной нотации. Поскольку абстрактная нотация может оказаться излишне сложной для понимания, я добавлю иллюст­ ративный пример на рис. C.1. Позже мы перейдем к нотации, которая описывает утверждение в целом. Рис. C.1. Среди лиц с одинаковой мерой склонности распределение по возрасту одинаково в экспериментальной и контрольной группах ЭКСПЕРИМЕНТАЛЬНАЯ ГРУППА КОНТРОЛЬНАЯ ГРУППА Исход Исход Группа, состоящая из детей и пожилых людей, полностью описывается путем отбора пациентов с мерой склонности 1/4. Эта группа, объединенная по величине меры склонности (переменная S), математически описывается следующим образом: «группа, обусловленная по S = 1/4». Поскольку единственным имеющимся у нас искажающим фактором c является возраст, мы можем сказать, что . То есть доля пожилых людей в группе с мерой склонности 1/4 составляет 4/12. Нам нужно сделать еще один шаг и поговорить о доле пожилых людей в группе с мерой склонности 1/4, которые, кроме того, получают лечение. Но добавление еще одного условия – прохождение лечения – не более чем такое же обусловливание. Оно записывается как , поскольку из трех пациентов только один – пожилой человек (см. рис. C.2). ЭКСПЕРИМЕНТАЛЬНАЯ ГРУППА Рис. C.2. Доля пожилых людей среди прошедших лечение
418 Приложение C. Техническая лемма о мерах склонности Итак, мы можем сделать вывод, что распределение пожилых людей одинаково в экспериментальной P(c = old|S = 1/4, T = 1) и контрольной группах P(c = old|S = 1/4, T = 0), т. е. . Теперь перейдем к абстрактной нотации условных вероятностей и мер склонности. Выберем некоторую меру склонности s (в предыдущем случае 1/4), некоторый искажающий фактор C (в нашем случае возраст) и определенное значение c (в нашем случае old (пожилые)). Тот факт, что распределение C в группе с мерой склонности s одинаково в экспериментальной и контрольной подгруппах, можно записать как P(C = c|t = 1, S = s) = P(C = c|t = 0, S = s), или в упрощенном виде: P(c|t = 1, s) = P(c|t = 0, s). Поскольку распределение c в подгруппе S = s одинаково для t = 1 и t = 0, мы фактически говорим, что P(c|t, s) не зависит от t. То есть P(c|t, s) = P(c|s). Это последнее уравнение нам и нужно доказать математически. Для простоты начнем с проверки случая T = 1. По определению условной вероятности: , и снова применяя определение: . Утверждение о том, что мы выбираем пациентов с характеристикой C = c (в нашем примере пожилых людей), более ограничительно, чем утверждение S = s (в нашем примере S = 1/4). Таким образом, группа пациентов с S = s и C = c – это точно такая же группа пациентов с C = c, и мы можем удалить s: P(T = 1|c, s) = P(T = 1|c). В то же время P(T = 1|c) – это точное определение меры склонности, поэтому если s – мера склонности пациентов с характеристикой C = c, то P(T = 1|c) = s и P(T = 1|c, s) = s. С другой стороны, по определению условной вероятности: P(T = 1, s) = P(T = 1|s)P(s).
Приложение C. Техническая лемма о мерах склонности 419 Чтобы вычислить значение P(T = 1|s), нужно понять, что оно означает. По определению оно означает набор пациентов, вероятность лечения которых равна s, и вычисляет вероятность лечения (выглядит слишком рекурсивно, но так оно и есть). Итак, эта вероятность равна именно s! Соответственно, P(T = 1|s) = s и P(T = 1, s) = sP(s). Объединив все вместе, получаем , где снова используем определение условной вероятности.
Приложение D. Доказательство двойной надежности оценки В главе 8 мы познакомились с оценкой и увидели, что она имеет двойную надежность. Те, кому интересно узнать, почему она имеет двойную надежность, здесь найдут доказательство этого факта. Итак, нам нужно проверить два следующих условия. „ Если модели из T-learner несмещенные, f (c) = E[Y|c, T = 0] 0 и f1(c)= E[Y|c, T = 1], тогда оценка тоже несмещенная, т. е. „ E[ ] = ATE. Если оценка склонности несмещенная, s(c) = P(T = 1|c), то и тоже несмещенная, т. е. E[ ] = ATE. D.1. Свойство двойной надежности по отношению к T-learner Сначала проверим свойство двойной надежности (doubly robust, DR) для T-learner. Предположим, что модели из T-learner несмещенные. Во-первых, обратите внимание, что можно выразить в терминах оценки T-learner . Рассмотрим случайные величины Ti, Ci и Yi. Тогда
Приложение D. Доказательство двойной надежности оценки 421 . Если остаток имеет нулевое ожидание, , то на этом доказательство заканчивается, потому что в этом случае . Давайте проверим, действительно ли . Для простоты опустим индекс i и вычислим математическое ожидание только для одного слагаемого. Используя общий закон математического ожидания, получаем . (D.1) Начнем с первого члена: . Когда T = 0, член сокращается, потому что умножается на T. Предположим теперь, что T = 1. Когда мы обусловливаем по C и T = 1, эти переменные становятся фиксированными. Поэтому мы можем использовать T с 1 и исключить члены с C из условного ожидания EY|C, T = 1. То есть , поскольку f1(c) = E[Y|C, T = 1], по гипотезе о несмещенности моделей T-learner. Аналогичные рассуждения применимы ко второму члену в уравнении D.1, откуда следует, что . D.2. Свойство двойной надежности относительно обратного взвешивания вероятности Далее проверим свойство двойной надежности относительно овзвешивания обратной вероятности (inverse probability weighting, IPW). Предположим, что s(c) = P(T = 1|c). Нам нужно доказать, что E[ ] = ATE. Для этого применим рассуждения, аналогичные предыдущему случаю.
422 Приложение D. Доказательство двойной надежности оценки Сначала переставим члены Обратите внимание, что , чтобы получить связь с . . И аналогично для члена с f0: . В результате получаем следующее соотношение между ATEaipw и ATEipw: . Осталось доказать, что . Как и в случае с T-learner, у нас есть следующее ожидание для остатков с IPW: . Теперь , потому что ET[(s(C) – T)|C] = s(C) – ET[t|C] = 0, по гипотезе о несмещенности s(C). Применяя те же рассуждения к оставшемуся члену остатков IPW, приходим к выводу, что E[ ] = 0.
Приложение E. Техническая лемма для альтернативной формулы инструментальной переменной В главе 9 (в уравнении 9.2) была представлена альтернативная формула инструментальной переменной (instrumental variable, IV), которая опирается на следующее доказательство: если R – бинарная переменная, то для любой переменной Q: cov(Q, R) = (E[Q|R = 1] – E[Q|R = 0])P(R = 1)P(R = 0). То есть cov(Q, R) = E[Q R] – E[Q]E[R] = E[Q|R = 1] P(R = 1) – (E[Q|R = 1)P(R = 1) + E[Q|R = 0]P(R = 0))P(R = 1) = (E[Q|R = 1] – E[Q|R = 0])P(R = 1)P(R = 0).
Приложение F. Доказательство формулы неидеального соответствия инструментальной переменной В этом приложении мы докажем формулу неидеального соответствия инструментальной переменной (IV) из главы 10. Предположим, что инструмент Z и решение D являются бинарными и что P(D = 1|Z = 0) = 0. Тогда влияние D на исход Y равно . Начнем с технического доказательства, которое поможет нам вывести оценку IV. Пусть даны три случайные величины X, Y, Z, причем X и Z являются бинарными, тогда для любого значения x = 0, 1 мы имеем E[Y|X = x] = E[Y|X = x, Z = 1]P(Z = 1|X = x) + E[Y|X = x, Z = 0]P(Z = 0|X = x). Воспользуемся аналогией с более простым случаем, в котором все переменные являются бинарными и x = 1. Мы будем в основном использовать определение условной вероятности:
Приложение F. Доказательство формулы неидеального соответствия ... 425 . Предположим, что мы находимся в сценарии IV, соответствующем графу на рис. F.1 (здесь повторно приводится рис. 10.3 из главы 10). Также напомню уравнение согласованности, описанное в главе 10 (уравнение 10.1): Y(i) = Y0(i)(1 – T(i)) + Y1(i)T(i). (F.1) C Рис. F.1. Обобщенный граф с IV Z D Y Кроме того, у нас есть данные, что в контрольной группе P(D = 1|Z = 0) = 0 нет клиентов, использующих чат-бот (в основном потому, что у них нет к нему доступа). Теперь нам нужно это доказать: . Для этого нам понадобятся некоторые промежуточные вычисления. „ Уравнение F.1 можно переписать следующим образом: Y = Y0(1 – T) + Y1T = Y0 + T(Y1 – Y0). „ „ Из факта P(D = 1|Z = 0) = 0 следует, что все, кто использует чат-бот, должны находиться в экспериментальной группе: P(Z = 0|D = 1) = 0 и P(Z = 1|D = 1) = 1. Согласно предыдущему выводу имеем: E[Y1 – Y0|D = 1] = E[Y1 – Y0|D = 1, Z = 1]P(Z = 1|D = 1) + E[Y1 – Y0|D = 1, Z = 0]P(Z = 0|D = 1) = E[Y1 – Y0|D = 1, Z = 1].
426 Приложение F. Доказательство формулы неидеального соответствия ... „ „ Поскольку Z не вмешивается в Y, потенциальные исходы Y1, Y0 не зависят от Z. В частности, E[Yt|Z = 1] = E[Yt]. Поскольку переменная D принимает только значения 0 и 1, E[Y1D|Z = 1] = E[Y1 × 1|Z = 1, D = 1]P(D = 1|Z = 1) + E[Y1 × 0|Z = 1, D = 1]P(D = 0|Z = 1) = E[Y × 1|Z = 1, D = 1]P(D = 1|Z = 1). Тогда E[Y|Z = 1] = E[Y0|Z = 1] + E[(Y1 – Y0)D|Z = 1] = E[Y0] + E[(Y1 – Y0)D|Z = 1] = E[Y0] + E[Y1 – Y0|Z = 1, D = 1]P(D = 1|Z = 1) = E[Y0] + E[Y1 – Y0|D = 1]P(D = 1|Z = 1). Аналогично имеем: E[Y|Z = 0] = E[Y0] + E[Y1 – Y0|D = 1, Z = 0]P(D = 0|Z = 0] = E[Y0], потому что P(D = 1|Z = 0) = 0. Наконец, можем объединить все расчеты. Принимая во внимание, что по определению ATET = E[Y1 – Y0|D = 1] E[Y|Z = 1] – E[Y|Z = 0] = E[Y1 – Y0|D = 1]P(D = 1|Z = 1), получаем .
Предметный указатель А алгоритм k-ближайших соседей (kNN) 191 анализ по всем рандомизированным пациентам (intention to treat, ITT) 314 анализ по выборке пациентов, выполнивших протокол (per protocol) 315 анализ путей (path analysis) 215 роль графов в условной независимости 235 Д Берксона парадокс 243 бутстрэппинг 297 в DoubleML 298 данные наблюдений 32 двойное машинное обучение (double machine learning, DML) 277, 279 теорема FWL 281 двухэтапный алгоритм наименьших квадратов (2SLS) 323 доверительные интервалы 34, 276, 296 аналитические формулы 299 в DoubleML 300 в линейных моделях 299 В З взвешивание обратной вероятности 187 вмешательство 73 условное 93 Вовлеченность, переменная 312 выборка сама является распределением 52 выражение предположений PO с помощью DAG 340 выявление причинно-следственных связей 111 закон полной вероятности 405 Б Г гетерогенные эффекты в линейных моделях 295 гиперпараметры 292 графы 228 изменение корреляции между двумя переменными с учетом третьей 232 как корреляция распространяется в 215 критерий обходного пути 253 описание проблем 70 И инструментальные переменные 34, 307 оценка причинно-следственной связи с помощью 315 предположения 312 инструментальные переменные (instrumental variables, IV) 291 инструментальные переменные с потенциальными исходами 347 инструмент, определение 307 интерактивная регрессионная модель (interactive regression model, IRM) 291 интервенционная bkb экспериментальная группа 42 искажающие факторы 66, 77, 87, 115 ненаблюдаемые 88 не упускайте из виду 88 парадокс Симпсона 64 искажающие факторы (confounders) 27, 33
428 Предметный указатель искажающий фактор эффект влияния 210 исключительность, предположение 312 Использование чат-бота, переменная 312 К ковариаты 77 когда и зачем использовать графы в причинно-следственном анализе 103 коллайдер эффект влияния 213 коллайдеры 243 Контекст клиента, переменные 312 контрольная группа 42, 387 контроль переменной 222 контрфактуалы 333, 334, 341, 391 продвинутый пример 342 контрфактуальные утверждения 95 корреляции расчет причинно-следственной связи и корреляции по коэффициентам при стрелках 221 косвенное влияние 112 косвенные эффекты 201, 207 влияние искажающего фактора 210 влияние коллайдера 213 влияние медиатора 212 и линейные модели 199 о типах эффектов и выбор линейной регрессии в каждом случае 213 прямые и косвенные эффекты в практике использования регрессии 209 косвенный эффект 112 критерий обходного пути 232, 253 важность 258 стратегий 254 Л лестница причинности 343 линейная регрессия 199 линейные модели 199 изучение причинно-следственной динамики 214 аналогия с газом 215 как корреляция распространяется в графе 215 корреляция с искажающим фактором 217 корреляция с коллайдером 219 корреляция с медиатором 218 расчет причинно-следственной связи и корреляции по коэффициентам при стрелках 220 сравнение корреляции и причинноследственной связи 220 и оператор do 222 оценка причинно-следственных связей 201 применение IV с 315 ложная корреляция 47, 156 М математическое доказательство ATE 416 машинное обучение и причинно-следственный анализ 134 медиатор эффект влияния 212 медиаторы 89 мера склонности 165 меры склонности 163 знакомство 166 основные понятия 172 метод опорных векторов (support vector machines, SVM) 35 метод разрывной регрессии (regression discontinuity design, RDD) 352 метод сравнения разностей (differences in differences, DiD) 291, 353, 386 дополнительные ковариаты 398 и пакет DoubleML 400 линейные модели 396 моделирование данных 388 оценка эффекта 394 предположения 392 прямая формула 395 терминология 389 методы временных рядов 34 моделирование задачи ценообразования 202 генерирование данных 203 оценка влияния расстояния 206 оценка влияния цены 204 рисование графа 203 Моделирование задачи ценообразования 201 моделирование синтетических данных 47 Н наблюдаемые данные 32 наблюдательные исследования 45 нейтральные наборы корректируемых переменных 262 несоответствующий RCT 314 О обусловливание 73 общий эффект 113
Предметный указатель одновременные факторы 352 ожидание 52 оператор присваивания 404 ориентированный ациклический граф (Directed Acyclic Graph, DAG) 32 ортогонализация 291 основные статистические концепции обзор 51 о типах эффектов и выбор линейной регрессии в каждом случае 213 оценка причинно-следственной связи с помощью IV 315 оценка причинно-следственных связей с помощью линейных моделей 201 оценка склонности 268 оценки с двойной надежностью 278, 300 ошибка III рода 113 П парадокс Берксона 243 парадокс Симпсона 64 важность понимания 66 решение проблемы 67 чем обусловлена эта проблема 64 первый закон причинно-следственного анализа 339 перекрестная подгонка 150 перекрестное обучение 150, 292 переменные поствоздействия 263 переменные предварительного воздействия 263 плохие наборы корректируемых переменных 262 площадь под кривой (area under the curve, AUC) 179 подбор гиперпараметров 292 потенциальные исходы (potential outcomes, PO) 332 потомки 252 предположение о положительности 76, 77, 114, 115, 176 предположение о стабильности воздействия на единицу (SUTVA) 340 предположения о потенциальных исходах 338 причинная модель Рубина 332 причинно-следственная динамика, изучение с помощью линейных моделей 214 аналогия с газом 215 и оператор do 222 как корреляция распространяется в графе 215 429 корреляция с искажающим фактором 217 корреляция с коллайдером 219 корреляция с медиатором 218 расчет причинно-следственной связи и корреляции по коэффициентам при стрелках 220 сравнение корреляции и причинноследственной связи 220 причинно-следственная связь 31 причинно-следственные связи при наличии искажающих факторов 49 причинно-следственный анализ 27, 102, 123 графы 231 когда и зачем использовать графы 103 определения 36 оценка причинно-следственной связи с помощью IV 315 оценка причинно-следственных связей с помощью линейных моделей 201 предположения 36 рекомендательные системы 115 решение парадокса Симпсона 407 риски и ограничения 36 события во времени, синтетический контроль 374 цели 36 шаги 31 шаги по формулированию задачи с использованием графов 105 причинный анализ 27 определения 36 предположения 36 риски и ограничения 36 цели 36 шаги 31 прогностические переменные 91 прямое влияние 112 прямой эффект 112 прямые эффекты 201, 207 влияние искажающего фактора 210 влияние коллайдера 213 влияние медиатора 212 и линейные модели 199 о типах эффектов и выбор линейной регрессии в каждом случае 213 прямые и косвенные эффекты в практике использования регрессии 209 Р разбиение причинно-следственной модели на независимые модули 236
430 Предметный указатель развилки 242 различия между причинноследственными моделями и прогностическими моделями машинного обучения 35 разность средних значений 61 Рандомизация, переменная 312 рандомизированное контролируемое исследование (randomized controlled trial, RCT) 61, 78, 174 рандомизированные контролируемые испытания (randomized controlled trials, RCT) 37 распределение сгенерированных данных 51 расчет причинно-следственной связи и корреляции по коэффициентам при стрелках 220 расширенное обратное вероятностное взвешивание (augmented inverse probability weighting, AIPW) 301 рекомендательные системы 115 релевантность, предположение 312 С связь метода потенциальных исходов с методом графов 339 Симпсона парадокс решение 407 синтетический контроль (synthetic control, SC) 352, 374 выбор периодов обучения и прогнозирования 380 моделирование данных 376 оценка эффекта 379 предположения 378 терминология 377 слабые инструменты 324 события во времени 350 метод сравнения разностей 386 сравнение методов 401 события во времени, синтетический контроль 374 сопоставление 189 сплайны 296 способ лечения 42 сравнение корреляции и причинноследственной связи 220 средний лечебный эффект (average treatment effect, ATE) 43, 59, 61 средний лечебный эффект для контрольной группы (average treatment effect on the control, ATC) 186 средний лечебный эффект для получивших лечение (average treatment effect on the treated, ATT) 186 структурный подход 79 схожесть тенденций 393 Т теорема FWL 281 У уравнение согласованности 394 условная независимость 234, 344 время прихода на работу, пример 234 математический пример 234 роль графов в 235 условное вмешательство 93 условные вероятности 53 условные ожидания 55 условный средний эффект воздействия (conditional average treatment effect, CATE) 295 Ф факторизация распределений вероятностей 240 формула корректировки 62, 69, 74, 124 и меры склонности 187 когда применять 85 математическая основа 403 формула корректировки (adjustment formula) 27, 34, 49 формула корректировки с потенциальными исходами 344 функции оценки 291 Х хорошие наборы корректируемых переменных 261 центральная предельная теорема 289 Ц цепочки 240 циклические графы 111 Ч частично линейная модель (partially linear model, PLM) 279, 285 частично линейные модели применение IV с 318 Ш шаги по формулированию задачи с использованием графов 105 Э экзогенность, предположение 312
Предметный указатель экзогенные переменные 236, 404 экспериментальная группа 387 экспериментальная или интервенционная группа 42 экспериментальные данные 31 экспериментальные исследования 37 эмпирическое распределение 51 эндогенные переменные 236 эффект воздействия на подвергшихся воздействию (average treatment effect on the treated, ATET) 337 эффективность в A/B-тестировании 267 эффективность оценки DML 287 эффективные наборы корректируемых переменных 264 оценка склонности 268 поправка на доход 270 A A/B-тестирование 40, 41 ограничения 44 шаги 42 AIPW (augmented inverse probability weighting, расширенное обратное вероятностное взвешивание) 301 ATE (average treatment effect, cредний эффект воздействия ) 337 ATET (average treatment effect on the treated, эффект воздействия на подвергшихся воздействию) 337 ATE, вычисление на основе мер склонности 187 C CATE (conditional average treatment effect, условный средний эффект воздействия) 295 CausalImpact, библиотека 383 clone, метод 330 cредний эффект воздействия (average treatment effect, ATE) 337 cтруктурная причинно-следственная модель (structural causal model, SCM) 239 D DiD (differences in differences, метод сравнения разностей) 353, 386 дополнительные ковариаты 398 и пакет DoubleML 400 431 линейные модели 396 моделирование данных 388 оценка эффекта 394 предположения 392 прямая формула 395 терминология 389 DML (double machine learning, двойное машинное обучение) 279 теорема FWL 281 DoubleML, библиотека доверительные интервалы 296 DoubleMLIIVM, класс 329 DoubleMLPLR, класс 290, 293 DoubleML, библиотека 162 двойное машинное обучение (double machine learning, DML) 277 DoubleML, пакет 327 do-исчисление (do-calculus) 273 do, оператор 222 drdid, пакет в R 399 d-разделение 247 определение 251 F FWL (Frisch, Waugh, Lovell, Фриш, Во, Ловелл) 281 P PLM (partially linear model, частично линейная модель) 279, 285 R RCT несоответствующий 314 RDD (regression discontinuity design, метод разрывной регрессии) 352 S SCM (structural causal model, cтруктурная причинно-следственная модель ) 239, 404 SC (synthetic control, синтетический контроль) 352, 374 выбор периодов обучения и прогнозирования 380 моделирование данных 376 оценка эффекта 379 предположения 378 терминология 377 summary, функция 300 Z z-специфические эффекты 94
Книги издательства «ДМК Пресс» можно купить оптом и в розницу на складе издательства по адресу: Москва, ул. Электродная, д. 2, стр. 12, офис 7, тел. +7 (499) 322–19–38, а также заказать на сайте www.dmkpress.com с доставкой в любой регион РФ. Алекс Руис де Вилья Роберт Причинно-следственный анализ в науке о данных Главный редактор Мовчан Д. А. Зам. главного редактора Яценков В. С. editor@dmkpress.com Перевод Киселев А. Н. Корректор Синяева Г. И. Верстка Луценко С. В. Дизайн обложки Мовчан А. Г. Формат 70×100 1/16. Гарнитура «PT Serif». Печать цифровая. Усл. печ. л. 35,1. Тираж 100 экз. Веб-сайт издательства: www.dmkpress.com