入门
为什么需要因果推断
相关性并不意味着因果关系,比如一项研究表明,吃早餐的女孩比不吃早餐的女孩更瘦,因此得出结论:‘吃早餐能减肥‘。 但事实上,吃早餐和瘦这2件事也许只是存在相关性,瘦并不是吃早餐的 果,也就是它们并不存在因果关系;事实上,也许吃早餐的女孩瘦是因为她有很多好的生活习惯比如:起得早,睡得早,健身等,最终使他变瘦。我们把’吃早餐和瘦‘ 之间的其他能够影响结论的变量称之为 混淆变量(coudounding variables), 如健身。
到我们实际场景中,这些例子就变成了
- 在 feeds 流里刷到一个新推荐策略的内容的用户留存更高,他们的高留存是因为这个推荐策略导致的吗,这个策略究竟对留存的提升有多大效果?
- 上周投放了某游戏广告的用户登录率更高,他们的高登录率有多大程度是由广告带来的,有多大程度是由于他们本身就是高潜力用户?
- ······
在这些例子中,本质上,我们都是想要分析一个干预(treatment)对一个结果(outcome)有怎样的影响,想要探究其中的因果效应,最常见的办法就是做 A/B Test 。但是,A/B Test 也有一定的局限性,例如:
- 需要花一定的时间实现,比较耗费人力;
- 需要占用足量的随机流量,并且需要持续一段时间以收集数据;
- 某些实验可能损害用户体验,例如给用户推荐一些并不匹配兴趣的内容;
- 当可做 A/B Test 的选择太多时,往往难以全部都进行尝试。
鉴于 A/B Test 的种种局限性,研究如何利用手边已有的历史数据进行 “因果分析” 变得无比重要。所以如何不通过 A/B test 来对潜在结果进行合理的预估,就是因果推断所研究的范围,下面先介绍一些名词/符号