预测人们对某件事物的偏好:比如一部电影或一本书。这样的模型可以纳入成百上千个特征变量,再利用变量选择的方法筛选出对于因变量最为重要的那些特征变量。模型的终极目标是最大化模型的预测准确度。在模型优化过程当中,变量本身的含义和解释就显得无足轻重了。尤其是当模型中的变量个数很多时,我们不可能逐一地解释每个变量的含义。 也就是说,如果建模的目的是最大化模型的预测精度,那么你大可不必花很多心思在变量的解释上。例如,一个亚马逊的图书推荐模型可能包含这样一个变量,即“你是否读过 Wes McKinney 的 O’Reilly 系列书 Python for Data Analysis”,这个变量对于预测你是否会读这本书当然有用。但是,是否读过这本书就代表你会买下它?这可说不定。而且这个解释本身听起来就像是一段同义反复。当我们的建模标准时预测准确度时,我们可以这么 做,不必担心如何理解或者解释变量间可能存在的因果关系。但是,如果你真的想要构建研究因果关系的模型时,就不能这么干了。实际生活中不是所有的问题都是预测问题,你可能真的想要研究变量之间的因果关系。到 底什么是因果关系?说白了,如果你想要做出某种行为导致了某个结果的论断,这便是因果关系推断。因果关系模型并不是一套完全不同于预测模型的统计方法。恰好相反,它其实是根植于传统预测模型(如逻辑回归、线性回归)的框架内的。但是,你的思路和目标就不再是优化模型以提高预测的准确性了,而是尽力分离出变量之间的因果关系。

相关性不代表因果

计算事物之间的相关性非常简单,但是相关性完全不等于因果关系。对因果关系的最自然的提问方式是:x对y的影响是什么。或者p(x|y)的概率是多少?

例如,受广告影响的客户有多大的概率购买产品?药物是否能够有效治疗?

实话说,因果推断中的参数估计是非常困难的。比如说,广告到底有没有作用?它的作用有多大?这是一个典型的因果推断问题,但是却基本不可能有精确的答案。因为其中因果关系的强度实在是太难估量了。人们通常花大力气研究那些简单易测的变量,但这些变量却并未能测出他们想要的东西,而大家不管三七二十一,都根据这些变量的研究结果做出决策,这样的研究是非常不负责任的。比如,营销人员会因为销售业绩好而受到公司的奖励,因为公司认为他们的营销努力为公司带来了更高的销售额。这是一个典型的因果关系推断,但是其中一个值得怀疑的地方是,销售业绩好可能是因为那些消费者本来就有强烈的购物欲望,跟营销人员的工作没有关系。这里面就有一个“干扰因子”的问题,它是因果关系推断的核心概念。

约会网站的例子

假如有一个寂寞的小伙子在约会网站上勾搭异性,当他有了目标的时候,希望约她出来,但是他需要说什么? 小伙子觉得对方很漂亮,想直接夸他漂亮,但是这样合适吗?也就是说在搭讪中里就直接夸赞对方漂亮小伙子 有好处吗?对方会买账吗?

理论上来说,可以做一个实验,可以将所有漂亮的妹子分为两组,一组搭讪的时候夸漂亮,一组不夸。这样就可以确定搭讪中直接夸赞对方是否有用。

其实约会网站中有做过分析,利用近 50 万会员的数据,分析了一些常用词和短语在第一次邮件(搭讪邮件)接触的时候对回复率的影响。分析的结果可见图: