文章来源于 gzh 数据万花筒
文章链接如下:https://mp.weixin.qq.com/s/7u…
点击上方蓝字关注咱们
因果推断系列文章分为高低两篇,目录构造如下所示,上篇文章可点击浏览原文查看。
利用 Dowhy 框架进行因果分为推断高低两篇,目录构造如下
上篇
1.Dowhy 因果推断框架
2. 数据起源及预处理
3. 数据相关性摸索
下篇
因果推断实现
1. 计算冀望频数,初步判断因果关系
2. 基于假如创立因果图
3. 辨认因果效应
4. 预计因果效应
5. 反驳后果
这篇文章是基于上篇的根底持续剖析,后面数据预处理的过程能够通过浏览全文查看源代码,这篇文章次要聚焦于因果推断的实现。
因果推断实现
实现数据预处理和相关性剖析之后,各个变量间的相关性已有了初步的后果,但变量间是否存在因果关系咱们还不得而知,须要进行进一步地因果推断,即利用 Dowhy 框架,通过建模,辨认,预计,反驳四个步骤实现。
1. 计算冀望频数,初步判断因果关系
由相关性剖析可知,客户勾销预订与“停车位”、“总共寓居天数”以及“预约房型与调配房型不同”三个因素相关性较高。除此以上三个因素之外,还有局部因素与客户勾销预约出现强劲相关性,例如,“预约变更”、“特殊要求”等因素。
相干不肯定等同于因果,而且由图 9 -10 可知,数据集中正负样本比例是不平衡的,所以此处须要对因果关系进行初步地探索。于是对于变量“勾销”、“预约房型与调配房型不同”,在数据集中随机选取 1000 次观测数据,统计两个变量值雷同的次数,即如果酒店为客户调配了与预约房型不同的房间客户勾销订单的次数,反复上述过程 10000 次取平均值,实现代码如下。
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”,也是造成酒店调配与预订时不同房型的影响因素之一,所以去除该变量的影响也较为重要。因而,此处随机抉择预约变更次数为 0 的 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
492.0499
对于预约变更次数为 0 的客户,最终得出的冀望频数为 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,冀望频数产生较大差别。这一后果提醒咱们“预约扭转”可能是一个混淆变量。
然而影响客户勾销预订的混淆变量可能不止“预约扭转”一个,面对这种状况 Dowhy 框架会将未指明的变量都作为潜在的混淆变量进行推断。
2. 基于假如创立因果图
基于冀望频数的摸索以及数据分析师本人的教训,对于变量之间的关系,咱们做出如下的假如。
- 细分市场,即“market\_segment”字段,包含了两种类别即“集体”和“旅行社”。这里示意酒店预订起源,预订形式会影响客户从预约酒店到达到酒店之间的工夫,即“lead \_time”字段。
- 国家,即“country”字段,是指客户旅行的指标国家。指标国家的游览热度会影响用户是否会提前预约酒店,从而对“lead\_time”造成影响;同时不同的国家有不同的饮食习惯,因而目标国家和美食,即“meal”字段,之间也有肯定关联。
残缺文章请移步数据万花筒,https://mp.weixin.qq.com/s/7u…