预测人们对某件事物的偏好:比如一部电影或一本书。这样的模型可以纳入成百上千个特征变量,再利用变量选择的方法筛选出对于因变量最为重要的那些特征变量。模型的终极目标是最大化模型的预测准确度。在模型优化过程当中,变量本身的含义和解释就显得无足轻重了。尤其是当模型中的变量个数很多时,我们不可能逐一地解释每个变量的含义。
也就是说,如果建模的目的是最大化模型的预测精度,那么你大可不必花很多心思在变量的解释上。例如,一个亚马逊的图书推荐模型可能包含这样一个变量,即“你是否读过 Wes McKinney 的 O’Reilly 系列书 Python for Data Analysis”,这个变量对于预测你是否会读这本书当然有用。但是,是否读过这本书就代表你会买下它?这可说不定。而且这个解释本身听起来就像是一段同义反复。当我们的建模标准时预测准确度时,我们可以这么
做,不必担心如何理解或者解释变量间可能存在的因果关系。但是,如果你真的想要构建研究因果关系的模型时,就不能这么干了。实际生活中不是所有的问题都是预测问题,你可能真的想要研究变量之间的因果关系。到
底什么是因果关系?说白了,如果你想要做出某种行为导致了某个结果的论断,这便是因果关系推断。因果关系模型并不是一套完全不同于预测模型的统计方法。恰好相反,它其实是根植于传统预测模型(如逻辑回归、线性回归)的框架内的。但是,你的思路和目标就不再是优化模型以提高预测的准确性了,而是尽力分离出变量之间的因果关系。
相关性不代表因果
计算事物之间的相关性非常简单,但是相关性完全不等于因果关系。对因果关系的最自然的提问方式是:x对y的影响是什么。或者p(x|y)的概率是多少?
例如,受广告影响的客户有多大的概率购买产品?药物是否能够有效治疗?
实话说,因果推断中的参数估计是非常困难的。比如说,广告到底有没有作用?它的作用有多大?这是一个典型的因果推断问题,但是却基本不可能有精确的答案。因为其中因果关系的强度实在是太难估量了。人们通常花大力气研究那些简单易测的变量,但这些变量却并未能测出他们想要的东西,而大家不管三七二十一,都根据这些变量的研究结果做出决策,这样的研究是非常不负责任的。比如,营销人员会因为销售业绩好而受到公司的奖励,因为公司认为他们的营销努力为公司带来了更高的销售额。这是一个典型的因果关系推断,但是其中一个值得怀疑的地方是,销售业绩好可能是因为那些消费者本来就有强烈的购物欲望,跟营销人员的工作没有关系。这里面就有一个“干扰因子”的问题,它是因果关系推断的核心概念。
约会网站的例子
假如有一个寂寞的小伙子在约会网站上勾搭异性,当他有了目标的时候,希望约她出来,但是他需要说什么?
小伙子觉得对方很漂亮,想直接夸他漂亮,但是这样合适吗?也就是说在搭讪中里就直接夸赞对方漂亮小伙子 有好处吗?对方会买账吗?
理论上来说,可以做一个实验,可以将所有漂亮的妹子分为两组,一组搭讪的时候夸漂亮,一组不夸。这样就可以确定搭讪中直接夸赞对方是否有用。
其实约会网站中有做过分析,利用近 50 万会员的数据,分析了一些常用词和短语在第一次邮件(搭讪邮件)接触的时候对回复率的影响。分析的结果可见图:
Y 轴表示回复率。平均来看,所有邮件的回复率约为32%。然后,他们将这些邮件按关键词,如“漂亮”或“惊艳”来分类,并观察各类邮件的回复率。如果用条件概率来表达上述结果,可以说他们估计的结果是:P( 回复 ) = 0.32,而 P( 回复|“漂亮”) = 0.22。
他们把上述发现总结为搭讪的第一原则:“避免过度恭维。”他们还把这条发现发在了公司的博客上,题为“在线约会应该如何搭讪”。文中说到:“你也许认为人们都喜欢被‘光彩照人’‘漂亮’及‘性感’这样的词语包围,但从在线约会搭讪的数据分析来看倒并非如此。在见面之前,用这些词语搭讪往往会事与愿违。另外,当你告诉一位女士她很漂亮的时候,很可能是你不够帅。”
从统计学的角度来说,上面的例子叫作观察性研究。观察性研究指的是数据的生成过程没有受人为干扰,是自然生成的。这与人工设计的实验正好相反——在实验中各种因素都被人为控制,以研究某一个特定因素对实验结果的影响。从观察性研究的角度来说,能否根据上图就推断,在邮件中使用“惊艳”(fasinating)可以提高回复率,而使用“漂亮”(beautiful)就会降低回复率呢?
事实上,如果“漂亮”可以被完整地定义,它在这个例子中可被视作一个干扰因子。也就是说,如果这个女士真的“漂亮”,会同时影响到是否给她发邮件以及她是否会回复。当一个变量同时影响到“实验”本身,以及“实验”的结果时,它就是一个干扰因子。
随机试验 - 因果推断的方法
确立因果关系的黄金准则是使用随机化实验。顾名思义,随机化实验的关键在于随机化:样本被随机化为两个子样本,一个作为实验组(接受处理),另一个作为控制组。随机化之后,两组样本的表现差异就可以视作是“处理”因素引起的。从统计学角度来看,随机化保证了两个子样本都是来自同一个总体的同质样本,因此对于两个子样本来说,潜在干扰因子的可能影响是同等的。这从理论上排除了所有潜在干扰因子的影响。
随机实验的效果很好,因为在随机化的过程中,所有可能成为干扰因子的因素都被排除了(比如是否有吸烟史)。随机化保证了有抽烟史的人将会以同样的概率被分到两个子样本中,于是“吸烟史”这样一个干扰因子就被随机化排除了。
随机实验的绝妙之处在于,不单是我们所能想到的,就连那些我们很难考虑到的无数其他干扰因子的影响,也被排除了。
因此,虽然我们可以通过算法针对某些变量找到一些不错的划分,但是这些划分不可能对所有变量都有同样好的效果。这也正是我们需要随机化的原因,因为随机化无论对于我们能考虑到的变量还是没有考虑的变量都有同等的效果。随机实验在医学研究中也有自己的软肋。根据医学研究的“临床均衡”原则,只有当医学界确实不清楚哪一种治疗方法更好时,随机化分组才是道德上可以接受的。如果研究人员基本确信某药物对某疾病有效,而将一部分人随机化分组到控制组中(也就是说,不给予该药物治疗),这是不符合医疗道德的。
观察性研究
虽然一般情况下因果关系推断的黄金准则是采用随机实验或 A/B测试,但正如我们反复强调的,它们并不总是可行的。有时候我们不得不退而求其次,用观察性研究的方法解决问题。观察性研究是当控制实验(随机实验)不可行时而采用的一项分析因果关系的实
证性研究方法。
观察数据常常会遇到两个问题:
- 辛普森悖论
- 鲁宾因果关系模型
因果推断的几个原则
第一,当进行因果推断时,深入地了解数据的生成过程至关重要。因为任何模型都会有相应的模型假设,数据本身的数据生成过程可能会明显背离这些假设。如果假设明显不符合数据的生成模型,那模型的使用就应该打上问号。
第二,数据分析的第一步应该置身数据之外,弄清楚到底想要分析的问题是什么。可以把问题写下来,这会帮助你思考,然后再一步一步地思考使用什么样的工具解决这些问题。在使用工具分析数据的过程中,要不时地回头想想当初想要回答的问题,以及正在做的事情是不是在正确的轨道上。这听起来很有道理,也稀松平常,但人们往往都会忘了这么做,忘记了自己分析问题的初衷。
最后,当你运用算法分析数据时,不要被算法和代码冲昏了头脑。不要以为只要算法收敛,模型参数估计显著就一切大吉了。在数据分析时,要时刻保持一颗清醒的头脑,人脑可以发现电脑所不能发现的逻辑性的、常识性的错误;人也应该在数据分析中扮演主导型的角色。