Шивани Шехават

В статистике всегда возникает вопрос, который приходит на ум исследователям: «Почему что-то происходит?». Здесь в центре внимания находится причинно-следственный вывод, который можно рассматривать как семейство статистических методов. чей главный мотив - объяснить причины любого события. Мы используем причинно-следственный вывод, чтобы определить причину изменений одной переменной, если изменения происходят в другой переменной, тогда как стандартные статистические подходы, такие как регрессия, используются для определения того, как изменения одной переменной связаны с изменениями другой переменной.

Предположим, что есть две переменные X и Y. Стандартные методы здесь будут сосредоточены на определении связи, тогда как подходы причинного вывода будут касаться того, почему переменная X изменяется, если она причинно связана с переменной Y, чтобы мы могли объяснить изменения в X с точки зрения изменения переменной Y.

Давайте посмотрим на другой пример:

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

Почему важен вывод о причинно-следственных связях?

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

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

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

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

Проблемы в причинно-следственном выводе

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

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

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

  1. Естественные эксперименты. Когда рандомизация невозможна, исследователи могут использовать естественные эксперименты, которые происходят, когда внешние факторы или события случайно создают экспериментальную и контрольную группы. Сравнивая результаты этих групп, исследователи могут сделать выводы о причинно-следственных связях без непосредственного манипулирования интересующими переменными.
  2. Инструментальные переменные. Инструментальные переменные используются для решения проблем, связанных с искажениями и эндогенностью в данных наблюдений. Инструментальная переменная — это внешний фактор, который связан с независимой переменной, но не с членом ошибки или ненаблюдаемыми факторами в регрессионной модели, что позволяет исследователям изолировать причинное влияние независимой переменной на зависимую переменную.
  3. Разница в различиях. Этот метод сравнивает изменения результатов между группой лечения и контрольной группой до и после вмешательства, исходя из предположения, что любые различия в тенденциях сохранялись бы в отсутствие вмешательство.
  4. Сопоставление показателей склонности. Этот метод включает сопоставление обработанных и контрольных единиц на основе их склонности к лечению, как это предсказывается наблюдаемыми характеристиками. Сравнивая результаты между подобранными парами, исследователи могут оценить причинно-следственный эффект лечения.

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

  • Причинный вывод с экспериментальными данными

  • Причинный вывод с данными наблюдений

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

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

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

Пример 1. Продажа мороженого и случаи утопления

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

Взгляните на эти ложные корреляции: https://www.tylervigen.com/spurious-correlations.

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

Пример 2. Курение и рак легких

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

Распространенные заблуждения и подводные камни –

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

Некоторые подводные камни включают в себя:

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

Работа с набором данных

В этой статье мы собираемся исследовать причинно-следственную связь, используя набор данных «Бронирование отелей», взятый с kaggle. Во-первых, мы начнем с EDA. После анализа данных мы очистим данные. Следовательно, мы удалим столбец «компания», поскольку почти 95% значений компании отсутствуют, поэтому мы удаляем этот столбец.

import seaborn as sns
import matplotlib.pyplot as plt
sns.countplot(x=dataset['hotel'], hue=dataset['is_canceled'], palette='mako')
plt.savefig('Type_of_hotel-is_canceled_1.png')

sns.countplot(x=dataset['previous_cancellations'],hue=dataset['is_canceled'],palette="Set1")
plt.savefig("prev_cancellation_is_cancelled_2.png")

sns.countplot(x=dataset['is_repeated_guest'],hue=dataset['is_canceled'],palette='rocket')
plt.savefig("repeated_guest_is_cancelled_3.png")

sns.countplot(x=dataset['deposit_type'],hue=dataset['is_canceled'],palette='Set1')
plt.savefig("deposit_type_is_canceled_5.png")

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

import matplotlib.pyplot as plt
import seaborn as sns

f, axes = plt.subplots(1, 2, figsize=(15,8), sharex=True, sharey=True)

sns.barplot(x=c_month.index, y=c_month['is_canceled'], ax=axes[0], color='darkblue')
sns.barplot(x=nc_month.index, y=nc_month['is_canceled'], ax=axes[1], color='darkblue')

axes[0].tick_params(axis='x', rotation=45)
axes[1].tick_params(axis='x', rotation=45)

axes[0].set_title("Booking canceled")
axes[1].set_title("Booking not canceled")

plt.savefig("is_cancelled_Acctomonth_7.png")

Построение корреляции

categorical_features = []
numerical_features = []

for col in dataset.columns:
    if(dataset[col].dtype!='object'):
        numerical_features.append(col)
    else:
        categorical_features.append(col)
print(categorical_features)
import seaborn as sns
plt.figure(figsize=(12,7))
sns.heatmap(dataset[numerical_features].corr(),linewidths=2,linecolor='black',annot=True)
plt.savefig("heatmap_6.png")

Моделирование с дауи

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

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

В мире, где данные — это новое золото, DoWhy предлагает вам карту сокровищ. Это важный инструмент для специалистов по данным и исследователей, стремящихся раскрыть скрытые истины причинно-следственных связей, поднимая свой анализ от простых корреляций до истинного понимания причинно-следственных связей. Дайте волю своему внутреннему Шерлоку Холмсу и отправляйтесь в захватывающее приключение с DoWhy!

dataset['is_canceled']=np.where(dataset['is_canceled']=='Booking not canceled',0,1)
dataset['is_repeated_guest']=np.where(dataset['is_repeated_guest']=="First time guest",0,1)
dataset['previous_cancellations']=np.where(dataset['previous_cancellations']=="No previous cancellation",0,1)

dataset['different_room_assigned']= dataset['different_room_assigned'].replace(1,True)
dataset['different_room_assigned']= dataset['different_room_assigned'].replace(0,False)
dataset['is_canceled']= dataset['is_canceled'].replace(1,True)
dataset['is_canceled']= dataset['is_canceled'].replace(0,False)
!pip install dowhy
!pip install causalgraphicalmodels
from graphviz import Source
from IPython.display import Image, display
from dowhy import CausalModel


from causalgraphicalmodels import CausalGraphicalModel
graph = CausalGraphicalModel(
    nodes=[ 'is_canceled', 'lead_time', "unobserved_confounder",'total_of_special_requests',
        'meal', 'country', 'market_segment',
        'is_repeated_guest', 
       'previous_bookings_not_canceled', 'booking_changes', 'previous_cancellation','required_car_parking_spaces',
        'days_in_waiting_list',
         'total_guests',
       'total_days', 'different_room_assigned','agent'],
    edges=[
        ("market_segment", "lead_time"), 
        ("lead_time", "is_canceled"), 
        ("country", "lead_time"),
        ("different_room_assigned", "is_canceled"), 
        ("unobserved_confounder", "is_canceled"),("unobserved_confounder","lead_time"),("unobserved_confounder","different_room_assigned"),
        ("country","meal"),
        ("lead_time",'days_in_waiting_list'),
        ('days_in_waiting_list',"is_canceled"),
        ('previous_bookings_not_canceled','is_canceled'),
        ('previous_bookings_not_canceled','is_repeated_guest'),
        ('is_repeated_guest','is_canceled'),
        ('total_days',"is_canceled"),
        ('total_days',"agent"),
        ('total_guests','is_canceled'),
        ('previous_cancellation','is_canceled'),
        ('previous_cancellation','is_repeated_guest'),
        ('required_car_parking_spaces','is_canceled'),('total_guests','required_car_parking_spaces'),('total_days','required_car_parking_spaces'),
        ('total_of_special_requests','is_canceled'),
        ('booking_changes','different_room_assigned'),('booking_changes','is_canceled')
    ]
)
G=graph.draw()
G

import statsmodels
model= dowhy.CausalModel(
        data = dataset,
        graph=causal_graph.replace("\n", " "),
        treatment="different_room_assigned",
        outcome='is_canceled')
#Identify the causal effect
identified_estimand = model.identify_effect(proceed_when_unidentifiable=True)
print(identified_estimand)

dataset['different_room_assigned'].value_counts()

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

  1. DAG: причинно-следственные графы ML представляют собой ориентированные ациклические графы, что означает, что они состоят из узлов (представляющих переменные), соединенных направленными ребрами (стрелками) без каких-либо циклов. Эта структура предотвращает появление петель обратной связи и обеспечивает четкий поток причинно-следственных связей.
  2. Выявление вмешивающихся факторов. Эти графики чрезвычайно полезны для выявления вмешивающихся переменных, которые влияют как на причину, так и на следствие, создавая тем самым ложную связь между ними.
  3. Визуализация предположений. Диаграммы машинного обучения причинно-следственных связей позволяют исследователям визуализировать и явно сообщать о своих причинно-следственных предположениях. Эта ясность помогает оценить обоснованность допущений и выявить потенциальные погрешности в анализе.
  4. Поддающиеся проверке следствия. Используя причинно-следственные диаграммы машинного обучения, исследователи могут определить поддающиеся проверке следствия, такие как условная независимость, которые могут помочь проверить предположения о причинно-следственных связях и оценить причинно-следственные эффекты.
  5. Анализ вмешательства. Графики причинного машинного обучения позволяют исследователям выполнять анализ «что, если», моделируя вмешательство в переменные, что помогает оценить причинно-следственное влияние одной переменной на другую в различных условиях.

Заключение

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

Лицензия

Весь код в этой записной книжке доступен как открытый исходный код по лицензии MIT.

Все тексты и изображения можно использовать бесплатно по лицензии Creative Commons Attribution 3.0. https://creativecommons.org/licenses/by/3.0/us/

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

Copyright 2023 AI Skunks https://github.com/aiskunks

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

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

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИМ ПРАВОМ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ИНУЮ ОТВЕТСТВЕННОСТЬ, БУДУТ СВЯЗАННЫЕ С ДОГОВОРОМ, ДЕЛОМ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИСПОЛЬЗОВАНИЯ, ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ, ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.

Рекомендации