Реализация нелинейного причинного вывода в библиотеке DoWhy

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.09.2020
Размер файла 497,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет информатики, математики и компьютерных наук

Программа подготовки бакалавров по направлению
01.03.02 Прикладная математика и информатика

Выпускная квалификационная работа

Реализация нелинейного причинного вывода в библиотеке DoWhy.

Рагузова Татьяна Александровна

Рецензент:

Старший преподаватель, младший научный сотрудник ЛАТАС

Бычков Илья Сергеевич

Научный руководитель

Доцент Набиуллин Олег Ривхатович

Нижний Новгород, 2020

Пoстанoвка задачи

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

Содержание

Введение

1. Обзор литературы

1.1 Обзор инструментов

1.2 Общий эффект

1.3 Прямой эффект

2. Непрямой эффект

2.1 Набор данных

2.2 Вычислительный эксперимент

Вывoды и направления дальнейших работ

Список литературы

Приложение

Введение

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

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

Большинство алгоритмов машинного обучения зависят от корреляций.

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

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

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

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

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

1. Обзор литературы

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

Долгие годы люди были вполне удовлетворены своей врожденной способностью справляться с моментами неопределенности в повседневной жизни - от выбора маршрута до опасного взаимодействия с огнем. Так и обстояли дела до того момента, пока увлеченные игроки не разработали сложные и тщательно продуманные игровые стратегии, идея которых заключается в попытке обмануть противника, чтобы он сделал неверный выбор. В то время математики Блез Паскаль (1654), Пьер де Ферма (1654) и Кристиан Гюйгенс (1657) разработали теорию, которая положила начало науке, известной сегодня как теория вероятности. Такая же ситуация возникла, когда страховые организации требовали точных оценок жизни людей. Ученые Эдмон Галлей (1693) и Авраам де Мойвр (1731), изучая таблицы смертности, попытались рассчитать ожидаемую продолжительность жизни. Позже, когда астрономам потребовались точные знания о предсказании движения небесных тел, ученые Якоб Бернулли, Пьер-Симон Лаплас (1921) и Карл Фридрих Гаусс (1795) дали начало теории погрешности, которая помогает извлекать сигналы из шума.

Рис.1 Диаграмма Исикавы

Все эти теории привели к возникновению статистики, которая изучается сегодня. Важность и необходимость теории причинно-следственных связей появились сразу после появления статистики. Если посмотреть на нее с другой стороны, то современная статистика складывалась из причинно-следственных вопросов, задаваемых учеными. Генетик Сьюолл Райт (Sewall Wright, 1934), который впоследствии стал родоначальником методов причинно-следственного анализа, разработал анализ путей. Но этот анализ был сильно недооценен в статистике и не использовался десятилетиями. Он должен был стать первым шагом на пути к разработке причинно-следственных связей, но стал единственным шагом вплоть до 1980-х годов.

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

Анализ посредничества долгое время был сложным вопросом в науке. В статье, посвященной анализу процесса, Джадд К. и Кенни Д. (1981) попытались определить процесс, который косвенно влияет на результаты некоторых видов лечения, с этой целью они оценили параметры причинно-следственной связи между лечением и некоторой переменной результата. Затем Барон и Кенни (1986) попытались различить свойства переменных медиатора и модератора на разных уровнях. Мюллер и его коллеги в 2005 году дали точное определение как медиаторной, так и модерируемой медиации, и разработали методы оценки этих процедур. Анализ медиации долгое время представлял собой сложную задачу, поскольку моделирование структурных уравнений основывалось на линейном анализе в эмпирических науках, а различие между параметрами при причинно-следственном предположении и их регрессивной интерпретации может быть легко объединено. Пол Холланд (1995) в своей статье проанализировал случайную ошибку интерпретации регрессионных моделей и неправильное использование этих моделей для причинно-следственных умозаключений в ряде областей науки. Затем Собел (2008) определил и интерпретировал уравнения параметров, которые необходимы для обоснования моделей структурных уравнений с эффектами медиатора, он предусмотрел более слабые и сильные условия, при которых оценка инструментальной переменной может быть интерпретирована как эффект.

Ситуация усложнялась нелинейными моделями, в которых изучаемые суммы и продукты могут применяться с большей сложностью. Большое количество различных факторов обусловило необходимость переосмысления и выведения причинно-следственных связей из исходных понятий, которые не связаны с допущениями о распределении. В данной работе будет представлена методология, использующая нелинейный подход к причинно-следственным связям, основанный на контрфактуальной интерпретации структурных уравнений (Balke and Pearl, 1994; Pearl, 2009).

1.1 Обзор инструментов

На сегодняшний день существует небольшое количество библиотек, пакетов и инструментов для выявления причинно-следственных связей и их вывода. Самыми популярными сегодня являются DoWhy, CausalInference, CausalImpact и CGNN.

В данной работе будет изучена и расширена библиотека DoWhy с открытым исходным кодом, которая была разработана компанией Microsoft. Она позволяет легко реализовывать причинно-следственные связи на компьютере. Данная библиотека объединяет в себе некоторые методы причинно-следственных связей.

Вдохновленная подходом “do-calculus” Джуда Перла для причинного вывода, который работает для систем с линейными связями, DoWhy объединяет несколько методов для вычисления причинных связей в рамках простой модели программирования, которая устраняет многие из сложностей традиционных подходов. По сравнению со своими предшественниками, рассматриваемая библиотека вносит три ключевых вклада в реализацию моделей причинно-следственных связей.

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

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

Автоматически проверяет достоверность предположений, если это возможно, и оценивает устойчивость оценки к нарушениям.

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

Рис.2 Рабочий процесс

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

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

Оценка. На этом этапе оценивается причинно-следственный эффект, при помощи статистических методов, таких как back-door критерий или использование инструментальных переменных.

Проверка. DoWhy использует различные методы робастности для проверки валидности причинно-следственного эффекта.

Рис.3 Схема работы с библиотекой

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

В данной работе библиотека DoWhy будет расширена путем добавления нового метода оценки причинного эффекта (nonlinear_mediation_formula_estimator), основанного на формуле медиации.

Формула медиации.

Рассмотрим нелинейный вариант модели посредничества, представленный на Рис. 4.

Рис.4 Общая модель, изображающая посредничество через Z

В общем случае соответствующие структурные уравнения будут иметь форму:

,

,

,

где X,Y,Z - дискретные или непрерывные случайные переменные, - произвольные функции, а - опущенные факторы, которые считаются взаимонезависимыми, но произвольно распределенными.

Рассматриваемый метод оценки заключается в вычислении значений трех переменных; TE(общий эффект), DE (прямой эффект), IE (непрямой эффект). Другими словами, формула медиации имеет вид системы из трех уравнений:

,

,

,

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

1.2 Общий эффект

Среди трех рассматриваемых в данной работе типов эффектов проще всего определить и оценить общий эффект, который измеряет изменение в Y, вызванное единичным изменением в X, допустим, от X = 0 до X = 1. Состояние Z не обязательно должно быть указано в этом определении, так как Z позволяет отслеживать изменения в X и, таким образом, мы имеем для общего эффекта: нелинейный генерирование данный

.,

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

.

Эта разность является ничем иным, как наклоном регрессии Y на X. В более общем плане, если нас интересует суммарный эффект перехода от X = x к X = x', где x и x' соответствуют любым двум уровням X (к примеру, двум уровням дозировки препарата), то равернство выглядит так, как представленно в формуле (4).

1.3 Прямой эффект

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

Идея оценки прямого влияния X на Y путем контроля над Z применима и к нелинейным моделям, так как, предполагая, что независимы, условие по Z моделирует физическое действие "фиксации" или "установки" Z на фиксированное значении , тем самым не позволяя X передать ее изменение по опосредованному пути X>Z>Y. Полученное в результате вычисление называется "контролируемым прямым эффектом", а именно наклон регрессии по Y на X при постоянном значении Z:

.

Однако при условиях (X = 1, Z = 0) и (X = 0, Z = 0), соответственно, как указано в уравнении (7), мы сравниваем различные типы изучаемых предметов. Первый представляет испытуемых, у которых, несмотря на прием препарата, в конечном итоге получается низкий уровень Z, в то время как второй представляет испытуемых, у которых низкий уровень Z еще до приема препарата. Принимая во внимание разницу в E(Y) в этих двух подгруппах, не учитывается идея измерения прямого эффекта X на Y при сохранении Z константой для каждого индивидуума. По этой причине более значимым является определение понятия прямого эффекта, называемого естественным, которое не требует равномерной установки Z над группой людей, но позволяет ему варьироваться от человека к человеку. Это понятие, обозначаемое или просто , определяется как ожидаемое изменение Y, вызванное изменением X с x на x' при сохранении неизменными всех опосредующих факторов при любом значении, которое они получили до перехода от x к x'. Формула прямого эффекта представлена в (2) равенстве. Естественный прямой эффект перехода от x к x', включает в себя вероятности вложенных контрфактуалов и не может быть записан в терминах оператора do(x) (do-calculus). Поэтому естественный прямой эффект в целом не может быть определен или оценен даже с помощью идеальных контролируемых экспериментов, что было подчеркнуто в работе Робинса и Гринленда(1992).

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

2. Непрямой эффект

Важно отметить, что определение прямого эффекта можно перевернуть и дать обратное ему определение непрямого эффекта. Данное понятие окутано противоречиями, потому что невозможно, контролируя любую из переменных в модели, выборочно отключить прямую связь от X к Y так, чтобы позволить X влиять на Y исключительно по непрямым путям. Непрямой эффект от перехода от x к x' определяется как ожидаемое изменение значения Y, на которое влияет удержание постоянной X при X=x и изменение Z на любое значение, которое было бы достигнуто, если бы X было установлено в X=x'. Непрямой эффект для модели, представленной на рис.3, сводится к оцениваемому выражению, записанному в формуле (3). В силу нелинейного характера модели соотношение между общим, прямым и непрямым эффектами не является аддитивным, в отличие от случая с линейной моделью. В действительности, общий эффект TE перехода, является разницей (а не суммой) между прямым эффектом и непрямым эффектом обратного перехода:

,

Алгоритм.

В данной работе будет рассмотрена модель, представленная на рис.3, с условием того, что E(Y |x, z) линейна по Z, но нелинейна по X. Таким образом, мы имеем:

,

,

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

Алгоритм нашей функции будет выглядеть следующим образом. Для начала надо будет проверить наши данные на бинарность. Если переменные X, Y, Z принимают значения либо 0, либо 1, то вычисление прямого эффекта не требует использование регрессий, а сводится к постым арифметическим операциям, что обеспечивает общее решение для любого возможного набора данных. Разберем подробнее этот подход на примере.

Предположим, что модель, приведенная на рис.3, является достоверной, а наблюдаемые данные приведены в таблице 1. Значения E(Y|x, z) и P(Z|x) могут быть легко оценены, как продемонстрированно в двух крайних правых столбцах таблицы 1, и, при замене их в (2), мы получим следующую формулу для оценки прямого эффекта:

,

Табл. 1 Наблюдаемые данные

В случае, если условие бинарности всех трех переменных X, Y, Z не выполняется, то оценка прямого эффекта будет выполняться при помощи регрессий и формулы, которую можно вывести из условий (9), (10) и равенства (2):

.

Заметим, что только условное математическое ожидание E(Z|x) должно входить в оценку причинно-следственных связей в этой модели, а вовсе не всё распределение P(z|x).

Для програмной реализации данной оценки нужно выполнить сделующие шаги:

Прежде всего нужно построить модель линейной регрессии и оценить параметр Z при значении X = 0.

На основе данных при помощи функции аппроксимации curve_fit нужно вычислить наилучшие параметры для определенной формулы, которая описывает связь между X, Y, Z. Формула связи выглядит следующим образом:

,

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

Далее в функцию (13) подставляются подобранные на предыдущих шагах параметры и значение Z.

На последнем этапе рассчитывается разность значений функции (13) при X=1 и X=0.

2.1 Набор данных

В библиотеке DoWhy есть модуль datasets, где реализованы три метода для генерирования набора данных, в которых можно контролировать существование эффекта между переменными:

linear_dataset. Основной датасет c линейными связями между X и Y, с возможностью задать бинарность переменным и добавить инструментальные переменные; simple_iv_dataset. Простой набор данных с линейной связью и с одной инструментальной переменной;

xy_dataset. Простой линейный набор данных с дискретными X и Y.

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

2.2 Вычислительный эксперимент

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

Для проверки будут реализованы и проанализированны следующие сценарии:

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

Сгенерировать бинарный X_Y_Z датасет без прямой связи между X и Y. В качестве результата работы функции расчета прямого эффекта ожидается число близкое или равное 0.

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

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

Табл. 2 Эксперименты

Бинарность переменных

Прямая связь XY

Функция связи

Ожидаемый результат по модулю

Полученный результат по модулю

1

+

+

power

~ 1

0.78

2

+

-

-

~ 0

0.0

3

-

+

logarithmic

>> 0

7.13

4

-

+

sin

>> 0

1.5

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

Вывoды и направления дальнейших работ

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

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

Список литературы

1. Blaise, P. (1654). Traitй du triangle arithmйtique avec quelques autres petits traitйs sur la mкme matiиre (eng. English as Treatise on the Arithmetical Triangle).

2. Renyi, A. (1972). Letters on Probability. Wayne State University Press, Detroit.

3. Huygens, C. (1657). De Ratiociniis in Ludo Aleae or The Value of all Chances in Games of Fortune.

4. Halley, E. (1693). VI. An estimate of the degrees of the mortality of mankind; drawn from curious tables of the births and funerals at the city of Breslaw; with an attempt to ascertain the price of annuities upon lives. Philosophical transactions of the Royal Society of London, 17, 596-610.

5. de Moivre, A. (1731). Annuities Upon Lives, Or, The Valuation of Annuities Upon Any Number of Lives, as Also, of Reversions: To which is Added, an Appendix Concerning the Expectations of Life, and Probabilities of Survivorship.

6. Bernoulli, J. (1975). Aus den Meditationes. Werke, Bd. 3. Basel, 21 - 89.

7. Laplace P.S. (1821). Sur la dйtermination des orbites des comиtes.

8. Stigler, S. M. (1981). Gauss and the invention of least squares. The Annals of Statistics, 465-474.

9. Wright, S. (1934). The method of path coefficients. The annals of mathematical statistics, 5, 161-215.

10. Ishikawa, K. (1985). What is total quality control? The Japanese way. Prentice Hall.

11. Judd, C. M., & Kenny, D. A. (1981). Process analysis: Estimating mediation in treatment evaluations. Evaluation review, 5, 602-619.

12. Baron, R. M., & Kenny, D. A. (1986). The moderator-mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of personality and social psychology, 51, 1173.

13. Muller, D., Judd, C. M., & Yzerbyt, V. Y. (2005). When moderation is mediated and mediation is moderated. Journal of personality and social psychology, 89, 852.

14. Holland, P. W. (1997). Some reflections on Freedman's critiques. In Topics in the Foundation of Statistics, pp. 50-57.

15. Sobel, M. E. (2008). Identification of causal parameters in randomized studies with mediating variables. Journal of Educational and Behavioral Statistics, 33, 230-251.

16. Balke, A., & Pearl, J. (1994). Counterfactual probabilities: Computational methods, bounds and applications.

17. Pearl, J. (2009). Causality: Models, Reasoning, and Inference. Cambridge University Press, New York.

Приложение

Главная функция оценки

def _estimate_effect(self):

#Naive

if (len(np.unique(self._confounder)) <= 2) \

and (len(np.unique(self._treatment)) <= 2) \

and (len(np.unique(self._outcome)) <= 2):

g = [[0, 1], [1, 0]] #E(Y |x=xi, z=zi)

h = 0

for i in range(2):

for j in range(2):

df_all_outcome = self._data.loc[self._data['Treatment'] == i][self._data['Confounder'] == j]

df_outcome1 = self._data.loc[self._data['Treatment'] == i] [self._data['Outcome'] == 1][self._data['Confounder'] == j]

if len(df_all_outcome) == 0:

g[i][j] = 0

else:

g[i][j] = len(df_outcome1) / len(df_all_outcome)

# E(Z|x=0)

df_allz_notreatment = self._data.loc[self._data[] == 0]

df_withz_notreatment = self._data.loc[self._data['Outcome'] == 0] [self._data['Confounder'] == 1]

if len(df_allz_notreatment) == 0:

h = 0

else:

h = len(df_withz_notreatment) / len(df_allz_notreatment)

effect_estimate = (g[1][0] - g[0][0])*(1-h) + (g[1][1] - g[0][1])*h

estimate = CausalEstimate(effect_estimate, None, None)

else:

# All treatments are set to the same constant value

effect_estimate = self._do_new(self._treatment_value, self.confounder_new(self._control_value)) - self._do_new(self._control_value, self.confounder_new(self._control_value))

estimate = CausalEstimate(estimate=effect_estimate,

target_estimand= None,

realized_estimand_expr= None,

intercept=None)

return estimate

Функции для подбора лучших параметров в функцию связи и для расчета значения Y.

def _do_new(self, x, z):

interventional_treatment_2d = np.full((self._treatment.shape[0], 1), x)

interventional_confounders_2d = np.full((self._confounder.shape[0], 1), z)

features = self._build_features()

new_features = np.concatenate((interventional_treatment_2d, features[:, 1:]), axis=1)

interventional_outcomes = self._build_suitable_model(new_features, interventional_confounders_2d)

return interventional_outcomes.mean()

def _build_suitable_model(self, treatment_val, confounder_val):

features = self._treatment.to_numpy()

function = None

if self._relation_function == 'linear':

function = linear_func

elif self._relation_function == 'logistic':

function = logistic_func

elif self._relation_function == 'log':

function = logarithmic_func

elif self._relation_function == 'exp':

function = exp_func

elif self._relation_function == 'sin':

function = sinusoidal_func

popt, _ = curve_fit(function, (features, self._confounder), self._outcome)

outcome = function((treatment_val, confounder_val), *popt)

return outcome

Функции связи между переменными X, Y, Z

def logarithmic_func(x, a, b, c, d):

_x, _z = x

return a*(b**_x) + c + d*_z

def linear_func(x, a, b, c, d):

_x, _z = x

return a*(_x**b) + c + d*_z

def logistic_func(x, L, b, c, d, f):

_x, _z = x

return L/(1 + c*np.exp(-b*_x)) + d + f*_z

def exp_func(x, a, b, c, d, f):

_x, _z = x

return a * np.exp(-b * (_x - c)) + d + f*_z

def sinusoidal_func(x, a, b, c, d, f):

_x, _z = x

return a * np.sin(b * (_x - np.radians(c))) + d + f*_z

Размещено на Allbest.ru

...

Подобные документы

  • Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.

    дипломная работа [2,9 M], добавлен 25.01.2013

  • Особенности решения задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования. Общая характеристика классических и числовых методов решения.

    дипломная работа [2,4 M], добавлен 20.01.2013

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

    курсовая работа [2,0 M], добавлен 16.05.2013

  • Метод численного интегрирования. Использование метода половинного деления для решения нелинейного уравнения. Определение отрезка неопределенности для метода половинного деления. Получение формулы Симпсона. Уменьшение шага интегрирования и погрешности.

    курсовая работа [3,0 M], добавлен 21.05.2013

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

    дипломная работа [968,8 K], добавлен 01.07.2011

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

    курсовая работа [1,5 M], добавлен 25.09.2010

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

    дипломная работа [846,0 K], добавлен 22.09.2012

  • Предотвращение угроз информационной безопасности. Использование криптографических методов защиты в информационных системах. Разработка блока обратного преобразования для системы нелинейного шифрования на основе операции возведения в степень по модулю.

    дипломная работа [565,1 K], добавлен 01.07.2011

  • Понятие графика функции и его представление на ЭВМ. Алгоритм реализации, блок-схема и функциональные тесты графического метода решения частного случая задачи нелинейного программирования, его математическая модель. Диалог программы с пользователем.

    курсовая работа [1,6 M], добавлен 15.05.2012

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

    курсовая работа [665,7 K], добавлен 22.08.2013

  • Учет книжного фонда библиотеки. Разработка концептуальной модели данных. Составление спецификации атрибутов и связей, генерация в системе PowerDesigner физической модели по концептуальной модели. Создание скрипта создания базы данных для СУБД FireBird.

    контрольная работа [784,2 K], добавлен 10.04.2014

  • Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.

    задача [472,9 K], добавлен 01.06.2013

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

    курсовая работа [97,1 K], добавлен 10.01.2014

  • Описание предметной области и обоснование актуальности разработки базы данных "Учет фонда библиотеки для Харьковского колледжа текстиля и дизайна". Построение реляционной модели данных. Типы сущностей и связей. Разработка объектно-ориентированной модели.

    курсовая работа [1,1 M], добавлен 24.01.2016

  • Математическое описание, алгоритм и программа вычисления нелинейного уравнения методом дихотомии. Метод половинного деления. Метод поиска корней функции. Написание текста программы с комментариями. Проведение тестовых расчетов. Вывод ответа на экран.

    курсовая работа [67,2 K], добавлен 15.02.2016

  • Требования, предъявляемые к базе данных "Публикации в СМИ". Выбор инструментальных средств для разработки. Проектирование базы данных: выявление необходимого набора сущностей, обоснование требуемого набора атрибутов, определение связей между объектами.

    курсовая работа [1,2 M], добавлен 18.04.2014

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

    курсовая работа [388,8 K], добавлен 17.11.2011

  • Формулировка предметной задачи. Анализ требований к программе. Функциональная модель системы. Выбор языка и программных средств реализации. Описание логической модели базы данных. Концептуальная модель данных информационной системы Интернет-библиотеки.

    курсовая работа [4,4 M], добавлен 13.10.2017

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

    курсовая работа [1,5 M], добавлен 31.03.2015

  • Постановка задачи нелинейного программирования. Определение стационарных точек и их типа. Построение линий уровней, трехмерного графика целевой функции и ограничения. Графическое и аналитическое решение задачи. Руководство пользователя и схема алгоритма.

    курсовая работа [2,5 M], добавлен 17.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.