Источник статьи: гж дата калейдоскоп
Ссылка на статью:Tickets.WeChat.QQ.com/Yes/7UB Q3_SR2…
Нажмите на синее слово выше, чтобы подписаться на нас
Серия статей о причинно-следственном выводе разделена на две части, верхнюю и нижнюю части.Структура каталогов выглядит следующим образом.Для предыдущей статьи вы можете нажать, чтобы прочитать исходный текст.
Использование структуры Доуи для причинно-следственной связи делится на две части.
Часть 1
1. Структура причинно-следственного вывода Доуи
2. Источник данных и предварительная обработка
3. Исследование корреляции данных
Следующий
реализация причинного вывода
1. Рассчитать ожидаемую частоту и предварительно судить о причинно-следственной связи
2. Создайте причинно-следственные диаграммы на основе предположений
3. Определите причинно-следственные связи
4. Оценка причинно-следственных связей
5. Опровержение результатов
Эта статья продолжает анализ, основанный на предыдущей статье.Предыдущий процесс предварительной обработки данных можно просмотреть, прочитав полный текст исходного кода.Эта статья в основном посвящена реализации причинно-следственного вывода.
реализация причинного вывода
После предварительной обработки данных и корреляционного анализа были получены предварительные результаты о корреляции между переменными, но мы до сих пор не знаем, существует ли причинно-следственная связь между переменными.Моделируйте, идентифицируйте, оценивайте, опровергайте четыре шага к достижению.
1. Рассчитать ожидаемую частоту и предварительно судить о причинно-следственной связи
Из корреляционного анализа видно, что отмена бронирования клиентом сильно коррелирует с тремя факторами: «парковочное место», «общее количество дней проживания» и «тип забронированного номера отличается от выделенный тип номера». В дополнение к вышеупомянутым трем факторам есть также некоторые факторы, которые слабо коррелируют с отменой клиентов, такие как «изменения бронирования», «особые требования» и другие факторы.
Корреляция не обязательно совпадает с причинно-следственной связью, и из рисунка 9-10 видно, что соотношение положительных и отрицательных выборок в наборе данных несбалансировано, поэтому здесь требуется предварительное исследование причинно-следственной связи. Следовательно, для переменных «Отмена» и «Тип зарезервированного номера отличается от назначенного типа номера» случайным образом выберите 1000 наблюдений в наборе данных и подсчитайте количество раз, когда две переменные имеют одинаковое значение, то есть если отель назначает клиенту другой тип номера, клиент отменяет количество заказов, повторите описанный выше процесс 10 000 раз, чтобы получить среднее значение, код реализации выглядит следующим образом.
counts_sum=0
for i in range(1,10000):
counts_i = 0
rdf = data.sample(1000)
counts_i =rdf[rdf["is_canceled"]==rdf["different_room_assigned"]].shape[0]
counts_sum+= counts_i
counts_sum/10000
517.9752
Теоретически это число должно составлять 50% от общего количества наблюдений, поскольку при выделении отелем номера, не соответствующего типу номера, заказчик либо отменяет бронирование, либо принимает корректировку типа номера. Если это число близко к 50% от общего числа наблюдений, это может предварительно указывать на то, что между двумя переменными может существовать причинно-следственная связь.
Окончательная ожидаемая частота равна 518, то есть, если клиенту назначен тип номера, отличный от бронирования, вероятность того, что клиент отменит бронирование, составляет около 50%.
Изменения бронирования, то есть переменная «booking_changes», также является одним из факторов, обусловливающих разные типы номеров при распределении и бронировании отелей, поэтому также более важно устранить влияние этой переменной. Таким образом, здесь случайным образом выбираются 1000 пользователей, у которых заданное количество изменений равно 0, и вышеописанный случайный тест повторяется 10 000 раз для получения среднего значения. Код реализации выглядит следующим образом.
counts_sum=0
for i in range(1,10000):
counts_i = 0
rdf =data[data["booking_changes"]==0].sample(1000)
counts_i =rdf[rdf["is_canceled"]==rdf["different_room_assigned"]].shape[0]
counts_sum+= counts_i
counts_sum/10000
492.0499
Для клиентов с нулевым запланированным изменением окончательная ожидаемая частота составляет 492, что составляет около 50 % выборки, что соответствует ожиданиям.
Для пользователей с заранее определенными изменениями также выбираются 1000 клиентов, и вышеупомянутый случайный тест выполняется 10000 раз Код реализации выглядит следующим образом.
counts_sum=0
for i in range(1,10000):
counts_i = 0
rdf =data[data["booking_changes"]>0].sample(1000)
counts_i =rdf[rdf["is_canceled"]==rdf["different_room_assigned"]].shape[0]
counts_sum+= counts_i
counts_sum/10000
663.4134
Для клиентов, у которых запланированное время изменения больше 0, окончательная ожидаемая частота равна 663, а ожидаемая частота совсем другая. Этот результат предполагает, что «запланированное изменение» может быть искажающей переменной.
Однако может быть более одной смешанной переменной «изменение бронирования», влияющей на отмену заказа клиентом.
2. Создайте причинно-следственные диаграммы на основе предположений
Основываясь на изучении ожидаемых частот и собственном опыте аналитика данных, мы делаем следующие предположения о взаимосвязи между переменными.
- Сегмент рынка, поле «market_segment», включает две категории: «Частное лицо» и «Туристическое агентство». Это представляет собой источник бронирования отеля, а метод бронирования влияет на время между бронированием отеля клиентом и прибытием в отель, то есть на поле «lead_time».
- Страна, поле «страна» относится к стране, в которую едет клиент. Туристическая популярность целевой страны повлияет на то, будут ли пользователи бронировать отели заранее, что повлияет на «lead_time»; в то же время в разных странах разные привычки питания, поэтому страна назначения и еда, то есть « поле еды», также имеет определенную связь.
Для полной статьи, пожалуйста, перейдите в калейдоскоп данных gzh,Tickets.WeChat.QQ.com/Yes/7UB Q3_SR2…
В этой статье используетсяПомощник по синхронизации статейСинхронизировать