Причинный вывод

Вмешательства

Это девятая публикация из серии, в которой мы прорабатываем Причинный вывод в статистике - хороший учебник, соавтором которого является сам Judea Pearl.

Вы можете найти предыдущий пост здесь и весь соответствующий код Python в сопутствующем репозитории GitHub:



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

3.1 - Вмешательства

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

  • Помогает ли лекарство X вылечить болезнь?
  • Что будет, если мы изменим цвет нижней части Y?
  • Могу ли я увеличить свои продажи, изменив цену своего виджета на Z?

Золотым стандартом для изучения эффекта вмешательств является рандомизированное контрольное испытание, используемое в медицинских приложениях (также известное как A / B-тест в онлайн-приложениях), где мы:

  • Произвольно разделите население на две группы.
  • Применяйте вмешательство к одному, а не к другому
  • Анализируйте различия

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

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

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

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

Рассмотрим простой пример:

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

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

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

Я думаю, что этот пример проясняет, чем отличаются вмешательства от простого обусловливания значения данной переменной. Вмешавшись в переменную:

  • Все его потомки продолжают нормально работать (я по-прежнему езжу по той же дороге)
  • Сама переменная больше не отвечает своим родителям.
  • Родители вмешавшейся переменной продолжают нормально функционировать.

Мы можем приравнять вмешательство в систему с выполнением операции над исходным графом для удаления всех входящих ребер с сохранением всех исходящих ребер:

Математически распределение Y, когда мы вмешиваемся в X, представлено как:

чтобы отличить его от более обычного P (Y | X).

Теперь мы можем легко увидеть, что ключ к возможности использовать исходные данные - это связать количества, наблюдаемые в новом DAG, с величинами в исходном DAG. Из рисунка выше мы видим, что P (Z) и P (Y | X, Z) не изменились в результате нашего вмешательства на X поэтому мы можем использовать значения, вычисленные из исходного набора данных. Однако что изменилось, так это допустимые значения X, заставившие нас использовать Pm (X) вместо P (X | Z) (где нижний индекс m предназначен для подчеркнем, что распределение вычисляется на модифицированном графике).

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

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

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

Уже доступен следующий пост из серии:



Напоминаем, что вы можете найти код для всех приведенных выше примеров в нашем репозитории GitHub:



А если вы хотите получить уведомление, когда выйдет следующий пост, вы можете подписаться на информационный бюллетень The Sunday Briefing: