Подборка вопросов, которые вы все время пропускали, и как это сделать правильно

Зачем нам нужен причинно-следственный вывод?

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

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

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

Что такое причинно-следственный вывод?

К счастью, люди работали над этим фундаментальным вопросом: что такое причинность и как мы узнаем, когда А вызывает Б?

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

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

Исторически люди в каждой области использовали эти модели для принятия решений. Говорят, что клиенты, завершившие адаптацию в первую неделю, «с большей вероятностью» избегут оттока в течение первого года, когда все, что измерялось, — это корреляция или условная вероятность, а не причинно-следственный эффект. Большинство людей все еще делают это.

Второй уровень Judea Pearl, интервенция, содержит вопросы, на которые мы хотим ответить. ЕСЛИ мы предпримем X деловых действий, что произойдет? Если мы предоставим клиентам скидку, как долго они останутся? Если мы добавим эту новую функцию, насколько изменится LTV клиента?

Если бы мы знали все ответы на уровне 2, мы могли бы принять все оптимальные решения (в рамках вариантов, которые мы думаем рассмотреть!)

Наконец, вопросы уровня 3 дают полное представление о причинно-следственных связях системы. Даже если бы я знал, насколько изменится LTV, понял бы я почему? В то время как уровень 2 касался следствия любой причины, уровень 3 касается причины любого следствия. Если мы сможем посмотреть на все, что произошло, и полностью понять каждую причину, почему это произошло, то мы сможем легко ответить на любой вопрос уровня 2, а не только получить ответы, которые мы стремились оценить.

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

Общий подход к причинно-следственной связи

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

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

Ключевой факт причинно-следственного вывода заключается в следующем: Для любых ковариат в системе, которые могут повлиять на измеряемый результат (прямо или косвенно), вы должны быть уверены, что ваша экспериментальная и контрольная группы имеют одинаковое количество этих ковариат.

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

В рандомизированном испытании вы бы дали другой группе плацебо, чтобы обе группы в равной степени думали, что они приняли препарат, поскольку их убеждения могут повлиять на их результаты (непосредственно или через их действия). Независимо от того, рандомизированное это испытание или нет, вы должны убедиться, что обе группы имеют одинаковую пропорцию каждого пола (если пол каким-то образом влияет на измеримый результат), генетическую предрасположенность и что у вас есть.

Теперь, чтобы сделать это правильно, как напомнила бы нам Джуда Перл, нам действительно нужна модель всей нашей системы. Мы хотели бы знать все факторы, влияющие на то, кто получает лечение, каков результат и все, что с этим связано. Структура этой модели представляет собой DAG (направленный ациклический граф), который может показать нам соответствующие переменные и направление ребер, которые их связывают. (например, давление в кофеварке влияет на показания барометра, но показания барометра не влияют на давление в кофеварке).

Мы, по крайней мере, хотим отметить, какие из наших переменных являются искажающими факторами (вызывают лечение и результат непосредственно или через другие отношения), посредниками (являются путем, по которому лечение вызывает результат), и теми, которые вызываются лечением или результатом. исход.

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

Эти правила правильного управления переменными в DAG, называемые d-разделением, вызывают проблемы, когда реальная каузальная модель процесса генерации данных содержит переменные, которые влияют друг на друга (двусторонняя стрелка), переменные, которые сами по себе являются причинами, но также действуют как медиаторы других причин и другие сложные структуры.

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

Следовательно, количество контактов может влиять на удержание как напрямую, так и через посредников количества каждого вида действия, так как эти действия напрямую влияют на удержание. Итак, должны ли мы относиться к обеим этим переменным как к помехам? Если мы это сделаем, что мы будем измерять? Часто мы должны делать выбор, основываясь на наших предположениях о том, какие причинные пути важнее, и мы должны помнить, что наше измерение относится к определенному набору причинных путей, который может быть большим количеством путей, чем мы хотели измерить, или меньшим количеством путей. чем мы хотели измерить (если мы хотим получить эффект от добавления большего количества элементов, нам нужно позволить ему влиять на все пути, поэтому мы не должны контролировать количество действий).

Еще один сложный аспект определения вашей DAG заключается в том, что любые подмножества лиц, которые имеют разные причинно-следственные связи, считаются причинно-следственной переменной. Например, если пол вызывает некоторые телесные особенности, которые изменяют вероятность различных видов лечения/исходов (например, рака молочной железы), то он считается причиной этого лечения/исхода. Точно так же, если пол вызывает некоторые социально-психологические обстоятельства, влияющие на его частоту в группе лечения/результата (например, женщин больше, чем мужчин, подписанных на женский журнал), то это является причиной этого лечения/результата.

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

Основы для определения причинно-следственной связи

Как только мы установили предварительную модель ненулевых причинно-следственных связей между измеримыми переменными нашей системы и таким образом определили предварительный набор переменных, которые действуют как наши искажающие факторы, мы можем приступить к процессу причинно-следственного вывода!

Я придумал эту основу для процесса причинно-следственной связи.

Это включает 4 шага:

  1. Случайный эксперимент
  2. Сокращение числа наблюдений
  3. Ковариативное моделирование
  4. Измерение результатов

Рандомизированный эксперимент — это тест A/B (или рандомизированное контролируемое испытание), который, как мы знаем, очень полезен для оценки причинно-следственного эффекта переменной лечения. Сокращение — это процесс удаления данных, которые мы не хотим включать в наше измерение. Моделирование заключается в представлении влияния каждой ковариаты на результат. Наконец, измерение заключается в рассмотрении различий между экспериментальной и контрольной группами и определении их диапазона, надежности и значимости.

Каждый из первых 3 шагов потенциально может быть пропущен. Мы можем сделать причинно-следственный вывод без рандомизированного распределения, без удаления наихудших данных и без моделирования эффекта ковариат. Тем не менее, мы почти наверняка должны сделать хотя бы 1 из этих 3 шагов. В идеале использование всех шагов приведет к наилучшему результату.

Вывод причинно-следственных связей часто относится к квазиэкспериментам, которые представляют собой искусство вывода причинно-следственных связей без рандомизированного назначения шага 1, поскольку изучение A/B-тестирования охватывает проекты, в которых действительно используется шаг 1. Но здесь я подчеркну, что эта схема применима. для всех проектов причинно-следственных связей с A/B-тестированием или без него.

(Да, мы должны подумать об обрезке и моделировании, даже если мы проведем A/B-тестирование! Мы разберемся, почему и как.)

Шаг 1. Рандомизированные эксперименты (A/B-тестирование)

A/B-тесты не идеальны

Возвращаясь к теме рандомизированных контролируемых испытаний (РКИ) или A/B-тестирования, как они известны в технологическом секторе, мы можем начать понимать, почему они почти волшебны в области причинно-следственных связей. С помощью рандомизированных испытаний мы можем гарантировать, что группа лечения и контрольная группа не будут распределены предвзято по отношению к любым ковариациям, которые могут повлиять на результат.

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

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

Но беспристрастность не делает вас оптимальной мерой.

Блокировка лучше

Если пол влияет на наш результат, а в вашей случайно назначенной группе лечения больше женщин, чем в контрольной группе, повлияет ли это на результат, который вы измеряете? Вы держите пари, что это! Разница в результатах, которые вы измеряете для экспериментальной и контрольной групп, будет частично связана с тем, что в этих двух группах будет разное соотношение женщин! Следовательно, причинно-следственный эффект вашего лечения в вашем эксперименте будет искажен несбалансированными ковариантами вашего эксперимента (например, полом). Если вы повторяете этот эксперимент много раз, средний причинный эффект, который вы измеряете, действительно будет правильным (в отличие от того, если бы вы не проводили РКИ, где среднее значение было бы неточным), но мера вашего эксперимента искажена.

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

Тогда у нас есть равные ковариаты между группами! При наличии многих смешанных переменных, которые необходимо учитывать, нам необходимо создать страты из комбинаций переменных. Если нас интересует пол и возраст старше 40 лет, то у нас есть мужчины старше 40 лет и мужчины моложе 40 лет, женщины старше 40 лет и женщины моложе 40 лет и т. д. Каждый из этих слоев должен быть поровну разделен между каждой лечебной группой.

С точки зрения статистики, что это даст? Мера случайного эффекта лечебной переменной и раньше была несмещенной, но теперь она будет более точной: у нее будет меньшая дисперсия. То есть, если мы проведем этот эксперимент много раз, измерения эффекта нашего лечения все равно будут беспристрастными, и эти показатели будут иметь более низкую дисперсию, чем в простом РКИ.

Так что сделайте RCT с блокировкой, если можете!

Переменные Bin Continuous для включения блокировки

Это первый из нескольких раз, когда мы будем упоминать тип каждого столбца данных. Подумайте об узлах в вашей DAG, которые вы решили включить в свой причинно-следственный вывод, о переменных, которые, как вы знаете, влияют на результат. Каждый из них может быть непрерывным, порядковым или категориальным. С порядковыми и категориальными переменными можно обращаться одинаково в отношении стратификации, но как насчет непрерывных переменных?

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

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

KBinsDiscretizer от Scikit-learn имеет несколько методов, таких как равномерная сортировка данных по k ячейкам (разделение по квантилям), установка k границ равномерно друг от друга или использование одномерной кластеризации k-средних для данных. На самом деле, сочетание просмотра гистограммы выборки непрерывных данных и размышлений о знании предметной области, вероятно, является лучшим выбором для выбора того, как его следует группировать для блочного рандомизированного исследования:

Если на гистограмме есть четкие выступы, из них могут получиться хорошие ячейки. Если это очень асимметричное распределение, вы можете разделить его геометрическим или логарифмическим способом, например, бинировать каждый порядок величины (коэффициент 10).

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

Обязательный бит при расчете мощности и размера выборки

Было бы упущением, если бы я не сказал немного больше о правильном проведении рандомизированного эксперимента.

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

Давайте обсудим это явление для t-критерия с двумя независимыми выборками, поскольку для более сложных моделей и измерений могут потребоваться некоторые модификации. С точки зрения частотности мы думаем о нулевой гипотезе, когда разница между экспериментальными группами равна нулю. Если бы эта нулевая гипотеза была верна, и мы неоднократно беспристрастно измеряли разницу между группами (провели множество беспристрастных экспериментов), то полученные нами меры усреднялись бы до нуля и формировали нормальное распределение с некоторой дисперсией (т.е. Центральная предельная теорема) . Дисперсия этой меры будет обратно пропорциональна размеру выборки. Мы нарисуем наш альфа-порог на основе этого распределения (например, для двустороннего альфа-канала с 5% ложноположительных результатов мы можем найти, где нормальный CDF равен 0,975, что соответствует стандартному отклонению 1,96).

Затем мы также думаем о мире, в котором существует разница между экспериментальными группами, так что измерения различий во многих экспериментах были бы одним и тем же нормальным распределением, но с ненулевым средним значением. Это ненулевое среднее значение, разница между средними значениями этих двух гауссианов и есть размер эффекта. В этом мире мы отклоним нулевую гипотезу только в том случае, если наша мера превышает 1,96 стандартного отклонения в первом распределении, поэтому нам нужно, чтобы положение этой точки во втором распределении находилось на некотором расстоянии от центра второго распределения, так что, учитывая второе распределение истинно, у нас будет P шансов правильно отклонить нулевое значение. P здесь известен как мощность, и это площадь под вторым распределением, которая находится справа от этих 1,96 стандартных отклонений в первом распределении (при двусторонней альфе 5%). Типичное число мощности составляет 80%, что на нормальном CDF составляет 0,84 стандартных отклонения от центра. Таким образом, средние значения двух нормальных распределений должны отличаться друг от друга на 1,96+0,84 стандартных отклонения. Используя уравнение t-критерия для двух выборок, связывающее z-показатель с размером эффекта, дисперсией и (средним гармоническим) размерами выборки, мы находим, что необходимый размер выборки для этого стандартного сценария 5% альфа, 80% мощности составляет примерно:

N = 16 * дисперсия / размер_эффекта²

TL; DR Для двухвыборочного t-критерия с мощностью 80% и двусторонней альфой 5% приведенная выше формула дает размер выборки как функцию дисперсии отдельных наблюдений в группах и размер эффекта между группами. Мы склонны называть это минимальным размером эффекта — у нас будет 80% мощности для обнаружения минимального эффекта и еще больше мощности для обнаружения более крупных эффектов.

Некоторые эмпирические правила того, как действует эта формула, основанные на отношении стандартного отклонения к минимальному обнаруживаемому эффекту:

  • Соотношение 10x -> Требуется 1600 образцов на группу
  • Соотношение 100x -> Требуется 160 тыс. сэмплов на группу
  • Соотношение 1000x -> Требуется 16 миллионов образцов на группу.

В качестве разумного примера, если бы у нас была мера со стандартным отклонением 50%, например, средняя стоимость покупки 80 долларов со стандартным отклонением 40 долларов, и мы заботимся об обнаружении эффекта 0,5% (40 центов) между группами лечения , то наше отношение равно 100x, поэтому нам нужно 160 тыс. выборок на группу.

Изменения размера выборки

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

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

Таким образом, нам нужно много выборок для каждой страты, причем каждой страте требуется разное количество выборок. Если мы проведем простое рандомизированное контролируемое исследование, то каждая страта будет появляться так часто, как в полной выборке. Если людей старше 60 лет всего 1%, то нам, возможно, придется масштабировать всю выборку до огромных размеров, чтобы получить достаточное количество людей старше 60 лет, чтобы получить хорошее измерение для этого сегмента. Однако в блочном эксперименте мы явно возьмем любое количество людей старше 60 лет, которое захотим, и отдельно возьмем столько людей из каждой другой группы, сколько захотим. Таким образом, мы можем увеличить масштаб одной страты, не увеличивая масштаб другой, сохраняя при этом общий размер выборки на низком уровне. Это может быть полезно для некоторых экспериментов (но, возможно, не для других, когда мы просто запускаем пробную версию в течение нескольких недель и ждем, пока наберется достаточное количество людей в каждой страте).

Как правило, мы можем умножить расчетный необходимый размер выборки на различные факторы, часто называемые дизайн эффектами, чтобы учесть любые соображения. Если мы хотим перейти от одностороннего к двустороннему тесту, набираем на 20% больше людей. Если у нас есть какая-то доля недостающих данных, пригласите еще столько же людей. Нам также потребуются более крупные размеры выборки для обнаружения эффектов взаимодействия, по сути, эффектов лечения для одной страты.

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

Сетевые эффекты

Мы сказали, что это всеобъемлющее руководство, не так ли? Итак, давайте поговорим о сетевых эффектах.

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

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

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

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

В зависимости от того, как мы анализируем полученный эксперимент, нам может понадобиться немного больше или намного больше размера выборки, чтобы компенсировать структуру эксперимента. Традиционные методы заставляют нас рассматривать каждый кластер как одну единицу, поэтому кластеры будут учитываться при размере выборки. N — N кластеров, а не N человек — это НАМНОГО больший размер выборки!

В более поздних методах будут сохраняться отдельные наблюдения и включать их кластеры на этапе моделирования, чтобы отделить эффект кластера от эффекта лечения. Поскольку наблюдения коррелируются по их кластеру, они не являются независимыми выборками в этом смысле, и нам потребуется больший размер выборки, чтобы компенсировать это. Внутрикластерная корреляция (ICC) — это мера того, насколько схожи выборки внутри кластеров по сравнению с другими кластерами, и она определяет, какой дополнительный размер выборки нам потребуется. Фактор эффекта схемы, на который мы умножаем размер нашей выборки, равен 1+ ICC*(N-1), где ICC находится в диапазоне от 0 до 1.

Переходим к следующим этапам.

Шаг 2. Сокращение

Проблема с обрезкой

Обрезка данных — это когда мы удаляем точки данных перед выполнением нашего анализа. Это спорная тема, и на то есть веские причины. Гибкость критериев сокращения означает, что исследователь может испробовать множество эвристик сокращения, пока не получит желаемый результат (этот способ обмана в науке иногда называют p-hacking). Чтобы справиться с этим, давайте сначала сделаем 2 пункта:

  1. Ваш анализ должен быть спланирован до того, как вы его сделаете. Исследователи недавно опубликовали свои планы анализа на arxiv, чтобы они несли публичную ответственность за проведение анализа, который не был изменен для получения желаемых результатов.
  2. Если вы рассматриваете несколько различных стратегий, то вы должны учитывать это в дисперсии ваших результатов. Пороговые значения p-значения должны быть скорректированы, чтобы поддерживать истинный уровень ложных срабатываний на заявленном пороге, поскольку вы фактически проводите более одного эксперимента. Мы углубимся в поправки p-значения позже.

Далее давайте более глубоко разберемся в сокращении, обсудив выбор правильных данных.

Что мы делаем, когда удаляем обрезки?

Сокращение выбросов является обычной практикой, но почему именно мы это делаем? Когда мы видим выброс, мы знаем, что он испортит наши измерения, в то время как это среднее значение или модель. Но почему нельзя оставить выброс?

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

Если нашей целью является причинно-следственный вывод, то мы должны четко понимать, что мы делаем. Если данные производятся по причинам, которые мы не хотим моделировать, то мы должны их обрезать. И данные не обязательно должны быть выбросами, чтобы соответствовать этому определению. Любые данные из другого источника, которые мы не хотим моделировать, или данные о подмножестве людей, которых мы не хотим моделировать, должны быть исключены!

Эта концепция идеально согласуется с нашим представлением о смешанных переменных. Действительно, концепция «обобщения» в статистических моделях, которые «обобщают» на тестовую популяцию, обычно касается моделирования тех же причин, что и наша тестовая популяция. Если наш набор данных/обучающие данные каким-то ключевым образом отличаются от наших тестовых данных/общих данных о населении, например, в другое время, другое место или другое демографическое распределение, это смешанные причины, которые мы не уловили должным образом в нашей модели. Модели, не способные обобщать, в значительной степени являются проблемой смешанных переменных. Мы должны использовать правильные данные для моделирования правильных причин, чтобы ответить на вопросы, на которые мы хотим получить ответы.

Давайте обрезать!

Перво-наперво, вы можете заниматься регулярной практикой обрезки. Плохие данные, безусловно, должны быть исправлены или удалены, и вы можете сказать: «Я не хочу моделировать эти крайние случаи». Если вы отсекаете верхние 10% ваших данных, то просто прямо скажите, что вы моделируете нижние 90% населения. Если вы урезаете дома дороже 5 миллионов долларов, просто скажите, что ваша модель к ним не применима. Иногда иметь разные модели для каждого режима — отличное решение. (например, сегментированная регрессия).

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

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

Например, если мы хотим изучить прямое влияние дохода родителей на доход детей, нам может понадобиться контролировать такие переменные, как штат, в котором они живут. Мы не можем проводить здесь какое-либо рандомизированное исследование, поскольку мы не можем установить доход родителей.

Чтобы понять, почему это может быть проблемой, учтите, что население в целом непропорционально имеет разные доходы в разных штатах, поэтому, если государство проживания независимо влияет на доход детей, то в общей популяции семьи с высоким доходом родителей обычно будут жить с высоким доходом. состояние, которое будет смещать доходы ребенка (объединение влияния доходов родителей и состояния в наше измерение, когда мы хотели измерить только прямое влияние доходов родителей)

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

Разберемся в деталях, как это сделать

Соответствие

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

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

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

Если наши вмешивающиеся факторы непрерывны, мы можем просто сопоставить наблюдения за лечением с контролем, чьи вмешивающиеся факторы имеют наименьшее «расстояние» друг от друга. Это называется сопоставлением расстояний Махаланобиса. Возможно, вам следует изменить масштаб вмешивающихся факторов, чтобы они были одинаково важны на единицу расстояния, чтобы мы сопоставлялись с ближайшими. На самом деле нам, вероятно, следует масштабировать, основываясь на том, насколько сильно каждый искажающий фактор влияет на меру результата.

Если у нас есть категориальные вмешивающиеся факторы или мы объединяем наши непрерывные вмешивающиеся факторы в категории, мы снова можем создавать страты (каждую возможную комбинацию вмешивающихся факторов). Мы можем сокращать данные до тех пор, пока у нас не будет одинакового количества точек данных из каждой группы лечения в каждой страте. Мы также можем просто удалить все точки данных в стратах, где какая-либо группа лечения не представлена ​​(имеет 0 точек данных в этих стратах), и позволить иметь несбалансированное лечение по сравнению с контролем в каждой страте — затем мы можем взвесить наши точки данных, чтобы эффективно балансировать внутри слоев. Это называется грубым точным соответствием.

Кратко отмечу, что еще одним распространенным методом причинно-следственного вывода является сопоставление склонностей. Мы обсудим оценки склонности позже, так как здесь я только скажу, что обрезка на основе склонности не рекомендуется. Склонность, по сути, включает в себя проецирование многомерных ковариат на одно измерение, и в результате она основана на меньшем количестве информации, поэтому строго хуже, чем обрезка на основе страт. Иногда рекомендуется как решение проблемы проклятия размерности и потребности в позитивности (трудно иметь данные по каждой группе лечения в каждой страте, если есть много вмешивающихся факторов. Например, если имеется, например, n вмешивающихся факторов с k уровнями каждый, существует k^n слоев). См. обсуждения Гэри Кинга о том, почему это того не стоит: https://www.youtube.com/watch?v=rBv39pK1iEs

Категориальные представления данных для сокращения

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

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

Чтобы включить его в Coarsened Exact Matching, нам понадобится относительно низкоразмерное представление, чтобы сохранить разумное количество блоков, чтобы мы не удаляли слишком много данных. Данные естественного языка могут быть объединены в небольшое количество категорий на основе настроений/эмоций и семантической темы.

Затем давайте перейдем к шагу 3, где мы явно моделируем влияние каждой переменной.

Шаг 3. Моделирование вмешивающихся факторов

Если вспомнить нашу дискуссию об обрезке, нам на самом деле не нужно, чтобы наш набор данных / данные обучения имели точно такой же баланс ковариат, что и наши тестовые данные. Нам просто нужно знатьвсе искажающие факторы, влияющие на результат, и каким-то образом «контролировать» их.

Даже если наши данные о поездах составляют 10% детей, а наши тестовые данные — 90% детей, мы потенциально можем делать точные прогнозы, если мы полностью смоделировали эффект того, что ребенок.

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

В целом, я бы сказал, что эти дискуссии об интерпретируемости зависят от незнания того, какую переменную мы должны рассматривать как переменную нашего лечения. Если мы хотим учитывать причинный эффект каждой переменной, одновременно используя все остальные в качестве контроля, то да, интерпретируемость превосходна. Мы можем использовать простую линейную регрессию и интерпретировать все коэффициенты как причинный эффект каждой переменной (мы рассмотрим это более строго). Однако мы знаем, что мультиколлинеарность вызывает сложности, и мы должны быть обеспокоены тем, уместно ли «рассматривать все остальные переменные как вмешивающиеся факторы», учитывая нашу DAG-модель нашей причинно-следственной системы.

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

Что касается рандомизированных экспериментов, мы вполне можем захотеть включить моделирование. В простом рандомизированном эксперименте наши ковариаты не совсем сбалансированы. Если мы не справимся с этим с помощью обрезки и взвешивания, то мы можем справиться с этим в моделировании.

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

Наконец, для кластерных рандомизированных испытаний нам необходимо использовать моделирование, если мы хотим использовать отдельные наблюдения, поскольку кластеры являются дополнительным фактором, влияющим на результаты.

Мета-обучение

Фреймворк Meta-learner позволяет нам использовать ЛЮБУЮ произвольно сложную модель машинного обучения таким же простым способом для измерения эффекта лечения. Учащиеся S, T и X позволяют нам преобразовать любую модель машинного обучения в машину причинного вывода.

Самый простой фреймворк — S-learner. Во-первых, мы обучаем любую модель на наших данных, используя обработку и ковариаты для прогнозирования результата. Это может быть регрессия, случайный лес, kNN, повышающая машина, нейронная сеть, что угодно.

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

Мы также можем получить CATE (средний условный эффект лечения), просто просматривая наблюдения с заданным условием. Если мы хотим получить эффект лечения для мужчин, мы можем просто посмотреть на наблюдения, которые являются мужчинами, когда мы выполняем процесс S-обучаемого.

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

Зная это, мы можем вернуться к интерпретации линейной регрессии как причинно-следственной. Действительно, если бы мы использовали линейную регрессию в модели S-learnner, то средняя разница между группами лечения была бы просто коэффициентом перед переменной лечения, поскольку все остальное вычитается до 0.

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

Но реальность не так прекрасна.

Гетерогенные эффекты лечения и взаимодействия

Хорошее моделирование означает оценку нашей системы настолько точно, насколько это возможно. Простая линейная модель является хорошей моделью только в том случае, если каждая переменная линейно связана с результатом, и влияние каждой переменной на результат полностью не зависит от других переменных. Это так для вашей системы?

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

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

Обобщая, влияние каждой переменной на результат может быть произвольно нелинейным и произвольно зависеть от любой другой переменной.

Хорошо, что мы можем использовать сложные модели для причинно-следственных связей.

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

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

Например, если у нас есть страта для женщин моложе 40 лет, и внутри этой страты у нас есть модель, содержащая возраст (как непрерывную переменную), лечение и то, являются ли они новыми пользователями, тогда мы фиксируем эффект лечения. исключительно для женщин моложе 40 лет, гетерогенный эффект, и мы также фиксируем влияние непрерывного возраста и новых пользователей на женщин моложе 40 лет, эффект взаимодействия.

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

Кроме того, если бы у нас была единая модель, обычно рекомендуется включать основной эффект (термины отсутствия взаимодействия), и каждая страта вносила бы вклад в усредненные оценки этого термина. Но в послойном подходе этот аспект отсутствует.

Извлечение признаков как обычно

Правила хорошего машинного обучения по-прежнему применяются. Если мы сохраняем некоторые из наших данных непрерывными, нам нужно попытаться смоделировать их связь с переменной результата, как и в любом ML. В то время как модель на основе дерева решений (леса, GBM) будет обрабатывать непрерывные данные для нас, а нейронная сеть может изучать произвольные функции, некоторые более простые модели требуют нашей помощи. Мы можем извлекать новые функции из наших данных, создавая полиномы непрерывных переменных, взяв их отношения или применяя другие методы извлечения / уменьшения размерности для создания новых функций (PCA, ICA, ядра RBF и т. д.).

Как обычно в ML, мы должны учитывать функции масштабирования, если это необходимо. Любой подход, использующий метрику расстояния (kNN, ядра RBF), должен иметь перемасштабированные функции, чтобы расстояния оценивали каждую функцию одинаково (или не стесняйтесь масштабировать их по своему усмотрению). Мы также, вероятно, изменим масштаб, если будем использовать регуляризацию, о которой мы поговорим позже.

Объединение непрерывных переменных в категориальные или, скорее, порядковые переменные может быть полезным для правильного моделирования предметной области.

В линейной модели с непрерывными переменными нам нужно использовать полиномы и отношения, чтобы зафиксировать любую нелинейную связь. Однако, если мы бинируем непрерывную переменную, наше One Hot Encoding заставит нас узнать, по крайней мере, постоянную связь между каждым бином и переменной результата. Если мы сопоставим это обратно с нашей исходной непрерывной переменной, это будет похоже на изучение кусочно-постоянной функции. Для достаточно большого количества частей это может позволить нам найти гораздо более сложные отношения, чем явно смоделированная непрерывная переменная.

Например, если мы разделим количество социальных контактов пользователя на несколько групп, то сможем измерить, что в континууме есть несколько пиков и спадов — возможно, отсутствие контактов приводит к максимальному удержанию, потому что люди забывают о своей учетной записи, а иметь 1–5 контактов — это плохо. Тогда, возможно, 6–25 контактов — это тоже хорошо, потому что они используют платформу для общения с однокурсниками, но 25–200 контактов — это плохо, потому что все их слабые связи создают шум в ленте, а иметь 200+ контактов — это хорошо, потому что эти пользователи используют платформу для своего бизнеса.

Аналогичным образом объединение непрерывных переменных может помочь нам смоделировать гетерогенные отношения и отношения взаимодействия. Если мы разделим переменную X на 5 ячеек [X1…X5], то мы можем создать термины с произведением X1 и обработки X1*T, X2 и обработки и т. д. или между X и другим конфаундером. Это снова позволяет использовать кусочную модель этих взаимодействий, что обеспечивает хорошую гибкость. Чтобы сделать это с непрерывными переменными, нам нужно было бы рассмотреть произведение отношений и полиномов на X с другими членами, что может быть более сложным при указании неправильной структуры. Но это зависит от вашего домена!

Как выбрать правильную модель?

Мы сказали, что с помощью платформы Meta-learner мы можем использовать любой тип модели ML, и теперь мы также рассматриваем ряд взаимодействующих/гетерогенных терминов и выбор для обучения разных моделей для разных режимов.

Итак, как нам определить правильный подход к моделированию?

Что ж, учтите, что нам просто нужна модель, точно отражающая нашу систему. Это не кажется принципиально отличным от типичного компромисса смещения и дисперсии. Это неудивительно, поскольку мы сказали, что обобщение модели во многом связано с правильным моделированием причинно-следственной связи нашей системы.

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

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

Как и в случае со всеми нашими подходами к моделированию, мы должны попробовать множество способов, подходящих для нашей системы, и сравнить результаты. Если результаты совпадают, мы можем быть уверены, что наша модель/данные устойчивы к небольшим изменениям в предположениях/структуре. Там, где результаты различаются, мы узнаем что-то важное о наших данных — возможно, важное значение имеет конкретное отношение.

Рассмотрим наши варианты.

Регуляризация

Мы обсудили простую линейную регрессию. Следующим шагом усложнения, а точнее, более сложной функции потерь, уменьшающей сложность модели, является регуляризация нашей линейной модели. Если регуляризация улучшит наш тестовый результат при одновременном снижении сложности модели, вполне вероятно, что мы лучше улавливаем причинно-следственные связи.

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

В одной статье Amazon в 2019 году аналитически определяется правильный уровень регуляризации, чтобы лучше всего оценить эффект лечения при некоторых предположениях. Как правило, это соответствует более строгой регуляризации.

Обратное взвешивание вероятностей

Как мы уже говорили, суть причинно-следственного вывода заключается в уравновешивании искажающих факторов. Если ваши группы лечения имеют одинаковые значения вмешивающихся факторов, то разница в результатах будет сосредоточена на эффектах лечения.

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

Учтите, что наши модели минимизируют функцию потерь, которая суммирует ошибки для каждой точки в нашем наборе данных. Если в нашем наборе данных много женщин, получающих лечение 1, но мало женщин, получающих лечение 2, то модель будет больше заботиться об оптимизации прогноза для женщин, получающих лечение 1, чем для женщин, получающих лечение 2. Мы хотим, чтобы модель в равной степени заботилась обо всех слоях, и все гетерогенные/лечебные эффекты, но наши данные этого не отражают.

Итак, мы взвешиваем данные.

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

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

Математически для категориальных переменных мы можем просто взвесить данные по обратной частоте их группы лечения. Например, если у нас есть 3 примера лечения 1 и 5 примеров лечения 2, мы можем взвесить точки данных на 1/3 и 1/5 соответственно. Тогда каждая лечебная группа имеет одинаковый общий вес, равный 1. Мы также можем взвесить по обратному значению вероятности попадания точки в каждую лечебную группу. Вероятность равна 3/8 и 5/8 соответственно, поэтому обратные вероятности равны 8/3 и 8/5. Взвешивание баллов с этими значениями также приведет к одинаковому общему весу для каждой группы лечения. Мы называем это обратным взвешиванием вероятностей.

Но как мы можем взвесить непрерывные переменные в модели?

Склонность

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

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

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

Например, если в нашем наборе данных есть много наблюдений за мужчинами, которым примерно 39 лет, и очень мало женщин, которым около 39 лет, то наблюдения будут смещены в этом диапазоне. Мы можем скорректировать это смещение в нашей основной модели, используя модель склонности, чтобы оценить степень, в которой у нас больше наблюдений за мужчинами, чем за женщинами в этом возрастном диапазоне, и используя эти веса для наших данных наблюдений, чтобы лучше обучать нашу основную модель.

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

Кроме того, поскольку мы используем модель склонности в качестве вероятности, мы хотим, чтобы она была хорошо откалибрована и избегала значений, слишком близких к краям. Давайте обсудим это более подробно:

Рассмотрим случай, когда у нас есть бинарное лечение, например 1 лечение против 1 контроля, обозначенное 0 или 1. Показатель склонности — это вероятность того, что наблюдение подверглось лечению. Когда мы обучаем бинарный классификатор, который выводит «вероятность» от 0 до 1 (например, с помощью метода predict_proba()), нам очень хотелось бы, чтобы эта вероятность была максимально точной. При классификации мы обычно не заботимся о точных вероятностях — нас интересует только отделение двух классов от любой границы решения (при некотором значении вероятности) — обычно нас интересует только монотонная масштабирование. Но здесь мы хотим, чтобы точные вероятности для оценки склонности работали должным образом.

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

Давайте углубимся в выбор подходящих моделей.

Структура ошибок выходных данных и обобщенные линейные модели

Хотя мы можем слепо использовать подход AutoML к машинному обучению, предметная область и математика могут предложить несколько хороших решений.

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

Функция стоимости наименьших квадратов на самом деле является оценкой максимального правдоподобия для случая, когда переменная результата равна выходу модели плюс простая нормально распределенная ошибка, эпсилон:

y = линейная модель + эпсилон,

с эпсилон ~ N (0, дисперсия)

Это подразумевает гомоскедастическую реальность, т. Е. Шум за пределами линейной модели не является функцией независимых переменных (дисперсия y одинакова по всей оси x).

Конечно, это может быть не так.

Конечно, это не относится к категориальной переменной результата, где распределение является своего рода биномиальным/полиномиальным, принимающим n значений с некоторыми вероятностями для каждого значения независимых переменных x.

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

Если нам не нравится наша структура ошибок или мы не хотим предсказывать очень искаженную переменную результата (поскольку квадраты ошибок будут огромными в правом хвосте), мы можем рассмотреть возможность преобразования нашей выходной переменной. Нам просто нужно указать правильное распределение ошибок для преобразованной выходной переменной.

Хотя это отступление полезно само по себе, я подумал, что это будет хорошим введением в рассмотрение распределения наших изученных параметров.

Смешанные/иерархические модели и обобщенные оценочные уравнения (GEE)

Стандартной практикой для категориальных переменных является преобразование их в переменные One Hot. То есть для категории с N возможными значениями мы отображаем значение для каждого наблюдения на вектор длины N-1 (чтобы избежать полной мультиколлинеарности), представляя N-1 категорий с индикаторными переменными в каждой из N- 1 векторных элементов и позволить состоянию 0 во всех элементах ссылаться на отброшенную «эталонную» категорию.

Когда мы делаем это One Hot Encoding, мы позволяем нашей модели изучать независимые параметры для каждой категории. Рассмотрим линейную модель. Значение параметров одной категории практически не влияет на значение параметров других категорий (за исключением того, что все они могут быть сдвинуты на некоторую величину, если эта сумма учитывается в других терминах модели).

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

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

Любые «коррелированные» данные могут быть смоделированы таким образом. Каждый раз, когда у нас есть несколько наблюдений от каждого человека, этот подход может быть уместным, когда люди действуют как сгруппированный «случайный эффект» с нормально распределенными параметрами. Я также использовал этот подход, когда мы смотрим на ответы пользователей на инфлюенсеров или кампании, поскольку мы хотим включить в модель отдельные ответы, но они коррелируют с кампанией или инфлюенсером, на который они реагируют.

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

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

Расширенные модели причинно-следственных связей

Наконец, мы можем коснуться нескольких других моделей, специально предназначенных для каузального вывода.

Модель Double Robust является небольшим дополнением к нашему обсуждению использования показателей склонности вместе с нашей моделью. Модель двойной надежности очень похожа на мета-обучение в том смысле, что мы используем нашу основную модель, чтобы делать прогнозы и смотреть на результаты. Разница в том, что мы также используем предрасположенность и комбинируем их прогнозы для каждого наблюдения. Это окончательное уравнение для оценки ATE (среднего эффекта лечения) использует причинно-следственную модель и модель предрасположенности таким образом, что если любая из моделей указана правильно, результат будет правильным! Отсюда следует, что небольшие ошибки в моделях и большие ошибки в одной из них не будут слишком сильно влиять на нашу оценку эффекта лечения.

Двойное машинное обучение (DML) и Причинно-следственные леса — два других популярных метода. DML может использовать Causal Forest или другой произвольно сложный ML для обработки нелинейностей, взаимодействий и разнородных эффектов. DML использует надежный подход, который включает чередующуюся подгонку модели и, что интересно, моделирует результат как функцию только вмешивающихся факторов, а также модель, подобную склонности.

Перейдем к шагу 4.

Шаг 4: Измерение

Снова стратификация

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

Однако при этом лучше провести стратификацию. Беря эффект лечения для каждой страты, а затем объединяя эти показатели вместе (на основе их распространенности в популяции, которую мы хотим смоделировать), мы получаем средний эффект лечения, строго контролируя эти искажающие факторы.

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

И, конечно же, если у нас есть просто данные наблюдений, мы должны использовать эту технику, особенно если мы не можем очень хорошо обрезать.

Эффект стратификации здесь может быть очень похож на моделирование, особенно на моделирование условий взаимодействия переменных One Hot. Линейная модель может содержать k-мерные члены взаимодействия k различных переменных-конфаундеров One Hot, и эти члены по существу будут измерять то же самое, что и простое расслоение данных на эти k-мерные слои и получение среднего значения данных. Стратегическое сочетание этих методов полезно.

Итак, какие статистические тесты мы используем?

Статистические тесты

Для непрерывных переменных мы можем использовать t-критерий с двумя выборками или расширение с несколькими выборками. С категоричными результатами мы можем использовать хи-квадрат.

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

Вы также можете проверить, что распределения являются нормальными, или обрезать/упорядочить их до тех пор, пока они не станут такими: наличие одного и того же среднего значения не делает два распределения равными, если они имеют совершенно разные формы! Используйте график QQ и тест Шапиро-Уилка, чтобы убедиться, что ваши распределения являются нормальными, или обрежьте x% данных и укажите, что вы проверяете, одинаковы ли средние (100-x)% каждого распределения, если это что нужно, чтобы сделать их нормальными.

В противном случае вы можете использовать непараметрические статистические тесты. Как правило, это ранжирование всех точек данных, чтобы определить, являются ли распределения, вероятно, одинаковыми.

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

Если мы проводим много статистических тестов, нам также необходимо контролировать частоту ошибок по семейным обстоятельствам. Если мы хотим, чтобы общий уровень ложноположительных результатов для всего нашего анализа был равен альфа-каналу, мы не можем проводить несколько тестов с одним и тем же альфа-каналом. Поправка Бонферонни — очень консервативный способ решения этой проблемы, так как он предполагает, что все тесты независимы, и заставляет их всех превышать самые строгие возможные критерии (деление альфа на количество тестов). Поправка Холма-Бонферонни по-прежнему предполагает независимые проверки, но, по крайней мере, позволяет отвергнуть несколько гипотез, если одна из них соответствует самым строгим критериям. В этом методе и других методах коррелированных статистических тестов значения p ранжируются так же, как ранжируются значения наблюдений в непараметрических тестах.

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

Если мы подбираем модели, то можем измерять так, как мы обсуждали. Платформа Metalearner или структура Double Robust предоставляют способы измерения нашего среднего эффекта лечения. Тем не менее, нам все еще нужна ошибка в этих лечебных эффектах. Для этого общим решением является начальная загрузка.

Загрузка для получения измерений ошибок

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

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

Техника бутстрэппинга проста. Если у нас есть N точек данных, которые мы используем для получения нашей меры (путем подгонки некоторой произвольно сложной модели к этим N точкам данных), мы просто повторно выбираем N точек данных из наших N точек данных с заменой. Итак, если наши точки данных — это числа [1, 2, 3, 4, 5], одна бутстрап-выборка — это [2, 2, 4, 5, 5] — это все еще 5 точек данных, но это другой набор данных. Мы будем использовать эти новые «начальные данные», чтобы снова получить нашу меру. Мы делаем это неоднократно, возможно, 50 или 100 раз, чтобы получить распределение результата.

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

Невероятный.

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

Мы также заинтересованы в измерении разнородных причинных эффектов и их ошибок.

Размер и значение гетерогенных эффектов

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

Мы можем просмотреть статистические тесты в каждой страте, чтобы увидеть размер эффекта и значимость лечения для этой отдельной страты. Мы также можем использовать подход CATE к нашим моделям и посмотреть, является ли эффект лечения для подмножества людей (определяемый диапазоном некоторых ковариат) значительным, и получить его размер эффекта. Используйте начальную загрузку там, где это необходимо для получения показателей ошибок.

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

Следующие уроки

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

Во-первых, мы не слишком много обсуждали порядковые данные. Фактически, все наши непрерывные переменные, объединенные в категории, могут сохранять свою порядковую структуру. Подходы к порядковому моделированию могут сделать единую границу решения с разными пороговыми значениями или обучить n-1 различных моделей на границах решения между n порядковыми значениями и объединить эти модели. Как это взаимодействует с причинно-следственными выводами — тема для другого дня.

Совсем недавно Джудея Перл работала с Элиасом Барейнбоймом над слиянием данных, благодаря которому мы можем использовать несколько очень разных источников данных для создания единого причинно-следственного вывода. Например, у нас может быть рандомизированное контролируемое исследование И отдельный набор данных наблюдений, каждый из которых измеряет различные подмножества переменных. Как это можно совместить?

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

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

Кроме того, мы не уделяли особого внимания типам данных временных рядов. Различие в разнице Методы DiD являются базовым подходом к изучению эффекта лечения, но они предполагают, что тенденция одинакова для каждой группы лечения (а не является функцией значений до лечения для каждой группы). По сути, подход глубокоэшелонированной защиты — это просто парный тест. Мы также можем применить сегментированную регрессию вдоль временной оси, как и с другими ковариатами, чтобы уровень и наклон изменялись в каждый период времени. Однако в этих подходах упускаются более сложные модели временных явлений, таких как автокорреляция и сезонность. Модели, учитывающие эти элементы, необходимы для правильного моделирования системы и получения точных оценок стандартных ошибок. Google CausalImpact использует подход пространства состояний к моделированию временных рядов, а именно байесовские структурные временные ряды (BSTS), который является очень гибким подходом, который может охватывать большинство временных явлений.

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

Наконец, есть недавняя работа по интеграции причинно-следственной связи с глубоким обучением. Я с нетерпением жду предстоящего семинара Judea Pearl 25 февраля 2022 года по этой теме:
https://www.cs.uci.edu/events/seminar-series/?seminar_id=1094

Прощай

Я старался изо всех сил, чтобы сделать это Руководство всеобъемлющим — это мой лучший способ упорядочить мои общие знания о причинно-следственных связях за один уик-энд. В будущем я опубликую несколько других статей на более конкретные темы или не стесняйтесь обращаться ко мне с любыми вопросами. Я надеюсь, что это поможет вам!

Для краткого обсуждения по теме ознакомьтесь с моей статьей: Уменьшение дисперсии в причинно-следственном выводе: