Причинно-следственный вывод для новых выборок

#python #statistics #data-science #probability #causality

#питон #Статистика #наука о данных #вероятность #причинно-следственная связь

Вопрос:

Я новичок в области причинно-следственных умозаключений и пытаюсь кое в чем разобраться. Я следую этому фрагменту кода из документации библиотеки dowhy ( https://microsoft.github.io/dowhy/example_notebooks/dowhy_ihdp_data_example.html ).

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

Спасибо!

Комментарии:

1. Вы хотите применить одну и ту же модель к разным наборам данных?

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

Ответ №1:

Я думаю, что вам буквально нужна функция f такая, что y = f (x, t), где y — результат, t — лечение, а x — ковариаты (или особенности младенца), потому что с помощью этой функции вы можете сравнить f (x, 1) и f (x, 0) и посмотрите, что дает вам лучшее y.

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

в шаге 1 примера делается предположение модели о том, что все ковариаты (т. Е. Все 26 x) Являются общими причинами, и из-за этого все 26 x должны находиться внутри функции f, которую вы хотите создать.

затем вам нужно подумать о том, как y зависит от x. шаг 3 на самом деле также требовал этого, но поскольку это зависит от каждого конкретного случая, единого ответа нет, и поэтому шаг 3 фактически продемонстрировал 4 разных простых способа. Возьмите шаг 3.1 в качестве примера, он использует линейную регрессию, которая должна эффективно моделировать f как:

f(x, t) = at bx

Однако можем ли мы использовать эту модель для вашей цели — рассчитать разницу в результатах двух методов лечения новорожденного? да, но поскольку f(x, 1) — f(x, 0) = a, и это различие не зависит от x, что означает, что вы всегда получаете один и тот же результат для любого нового дочернего элемента, а это значит, что вам всегда придется выбирать одно и то же лечение.

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