统计建模应该是学术界非常流行的专业术语之一,当然也是精算学中最常用的术语之一。作为方法和工具,统计建模在很多领域被广泛使用,初看上去似乎很完美。但统计学是一个偶尔会出现惊奇与悖论的学科(例如,经验表明在一个有30个同学的班上,十有八九会有同一天过生日的同学,这是否很惊奇?另一个例子是面对同样的数据集,两人各说各话、各有各的结论的辛普森悖论,这是否很费解?)。能否准确使用统计建模,并准确理解最后得到的结论,取决于对统计建模的有关概念是否准确理解。

在统计学文献里,有两篇经典论文(Breiman 2001, Shmueli 2010),对统计建模有系统的讨论。这两篇的角度有所不同,对读者会有多方面的启发。

一、解释性建模与预测性建模

Shmueli (2010)中,作者表明:统计建模是通过因果解释和预测方式来发展和检验理论的有力工具。在许多领域,如经济学、心理学、教育学、环境科学,统计模型几乎完全用于因果解释,而且具有较高解释功效的模型通常也被认为具有较好的预测功效。

在图像识别、自然语言处理、生物信息学等领域,关注的焦点是经验预测,而因果解释之间的关系很小也很间接。然而,在其它研究领域,如流行病学,对因果解释和经验预测的强调更为混杂。

消除因果解释和预测两者之间的模糊性,不仅对适当的统计建模至关重要,更重要的是,对适当的科学使用至关重要。解释和预测都是产生和检验理论的必要条件,但它们在这方面的作用各不相同。在统计学中需明确区分,这样才不会导致对构建合理的解释模型与创建强大的预测模型之间的区别缺乏理解,从而不会导致解释功效与预测功效之间的混淆。

解释性建模和预测性建模分别反映了使用数据和统计模型(或数据算法)方法进行解释或预测的过程。建模(modeling)与模型(models)不同,前者突出所涉及的整个过程,从目标设定、研究设计、数据收集、到科学使用。

1)解释性建模

在社会科学领域,统计方法几乎完全用于检验因果理论。给定一个因果理论模型,把统计模型应用于数据,以检验因果假设。在这样的模型中,假设由自变量导致因变量的结果。社会科学中用于检验因果假设的统计模型的类型,几乎都是应用于观测数据的关联模型,回归模型是最常见的例子。这种做法的理由在于,理论本身提供了因果关系。此时,解释性建模定义为应用统计模型检验因果解释。

理论与数据之间的关系在不同领域当然有差异。虽然在社会科学领域,比较关注因果关系,但在自然语言处理和生物信息学等领域,对因果关系理论的重视却要弱得多。

2)预测性建模

预测性建模可定义为:将统计模型或数据算法应用于数据,以预测新的或未来的可能结果的过程。这个定义还包括时间序列预测,时刻t之前的观测值用于预测时刻t+k,k>0的可能值。预测问题可分为回归、分类、聚类等几大类。预测性模型可以是产生预测的任何方法,无论是贝叶斯学派或频率学派、参数或非参数方法、统计模型或数据算法等。

认识到解释性建模和预测性建模之间的区别,以及每种建模所起的不同科学作用,并体现到统计教育中,对于科学知识的进步至关重要。

Shmueli (2010)的附录中,给出了一个比较简单的线性回归的例子,说明预测功效较好的模型不必是“真实的”模型,其准确含义是指在期望预测误差(expected prediction error)指标下,在某些情形下,对“真实的”包含两个自变量的线性回归模型(可看成数据产生机制)产生的数据,再来构造线性回归模型,预测功效更好的模型可能只包含一个自变量。这可以看成是预测性建模的一个陷阱。

与上述结论类比,在数理统计学中的例子就是,对有些分布参数(或其函数),在均方误差(mean square error)指标下,无偏估计不必是最好的。

3)关于因果解释和预测的进一步讨论

造成对因果解释和预测产生误解的一个原因,也许是对数据产生(或收集)机制没有准确理解。从19世纪后期到20世纪初,统计学开始对实验科学的发展产生重要影响。实验科学经常使用设计化的研究,数据由研究人员控制。设计化的研究在实验室环境下进行,研究人员对于那些被认为可能重要的变量,都有严格的物理限制。设计化的研究也出现在更大的现场实验中,其中的控制机制不同于实验室控制。来自设计化的研究的数据被称为实验数据。比较典型的开展设计化的研究的两个领域就是农业和药学。

例如,在农业中,为研究农作物的产量与肥料的关系,对每块土地(观测数据)都分配了各自水平的肥料。研究人员使用随机化技术为多块土地分配不同水平的肥料后,就可以用肥料水平的变化来解释产量的变化。通过使用随机化技术,通过设计化的研究,研究人员可以推断肥料对产量的因果影响。

而对精算学和有些科学领域,设计化的研究是非常少见的。例如,如果研究吸烟对死亡率的影响,研究人员是不能控制参与者是否吸烟的,换言之,研究人员不能在试验开始就选出一些不吸烟的参与者,把他们随机分配到吸烟组和不吸烟组,再观察好些年,来发现各自的死亡率模式。精算学通常使用的是观测数据。观测数据不受研究人员的控制。在观测性研究中,采用统计控制而不是采用实验控制。

以一个简单的线性回归模型为例,可帮助理解因果解释和预测的区别。在统计学里,回归概念来源于高尔顿(英国探险家、人类学家、生物统计学家、心理学家),他在1885年任英国科学进步协会人类学分会主席的就职演讲提出了回归概念。通过观察上千个成年子女及其父母的身高,发现上代的身高和下代的身高有正相关性。如以父亲的身高作为自变量,以儿子的身高作为因变量,就可用最小二乘法构建线性回归模型。该回归模型可用于预测,但不能认为回归模型必然存在因果关系。有可能其它变量(如营养)与两代人的身高都是关联的。全面的营养会使两代人的身高都增加。“营养”就是混淆变量。在这个例子中,为了说明统计控制的含义,设想把所有的样本分成两类,分别对应于营养好的和差的。对每一类再考察两代人的身高的关系。

回归模型显示出来的统计相关不能等同于因果关系。另一个类似的例子就是:设想有一个数据集,其中包含两个变量,分别是个人的饮食消费和服装消费开支。即使二者有较强的正相关(吃的好的人,穿的也好),但很难说二者有何因果关系。出现正相关的原因在于,除了彼此可能有的影响外,还受到其它变量的影响。例如,如考虑到收入,那么一般来说,收入高的个人,各方面消费都倾向于高些,它带动了吃和穿的消费增长,致使两者显示出较高的正相关。

回归建模可以说是统计建模中最重要最广泛的一类,它在许多科学领域有着广泛的应用。由于不同领域的习惯,在回归应用中出现的术语非常多样,如下表所示。

y-变量

x-变量

结果变量

解释变量

因变量

自变量

内生变量

外生变量

响应变量

处理变量

回归值

回归元、回归量

被解释变量

预测变量

输出变量

输入变量

二、数据建模与算法建模

统计学从数据开始。早在近20年前,Breiman (2001)提出:数据分析有两个目标:

针对输入变量,预测输出变量的取值。

了解输出变量与输入变量是如何相关联的。

为实现这两个目标,从建模文化上看,有两类不同的文化。一类是从统计学习的角度,对给定的数据,选择统计模型,应用最大似然估计方法估计参数、拟合模型,后续的工作包括应用统计理论,进行模型验证、假设检验、统计推断等。Breiman称之为数据建模文化。

另一类是从实际应用的角度,在实际应用中更感兴趣的是模型的预测准确性,即得到的模型在应用到未知数据的泛化能力,建模的焦点在于预测准确性,而不是可解释性。Breiman称之为算法建模文化。按照算法建模文化的逻辑,各种机器学习方法的广泛使用,目的就是增加预测精度。

1)数据建模的一个陷阱

统计学里有名言:所有的模型都是错误的,有些是有用的。引用Breiman (1996)的一个例子,设想有30个自变量,从中选择5个自变量,构建线性回归模型,那么就共有142506个模型。以残差平方和(RSS)为指标,考察那些RSS低于1%的模型,至少发现3个模型:

模型1


模型2

模型3


现在的问题是:一方面,以上3个模型的预测精度都很高,似乎任选一个都可。另一方面,如果关注哪些自变量是更重要的,那么每个模型都给出了不同的答案。这些模型“各说各话,真相不明”,有日语词汇“罗生门”的含义。

如果好的模型较多,在提高预测精度的同时,为避免模型的不唯一性,通常把这些模型的预测结果汇集在一起考虑。这样做的代价就是模型的解释性就消失了。

2)奥卡姆(Occam)困境

较高的预测精度通常需要复杂的预测方法。简单的而且易于解释的模型,往往不能得到较高的预测精度。例如,假设数据产生机制(或“真实的”模型)是y=sin(x)+ε,那么简单的线性回归模型与样条回归模型相比,预测精度就较低。类似地,对含有多个自变量的数据集,多元线性回归模型和随机森林相比,一般来说随机森林的预测精度更高。

3)贝尔曼(Bellman)维数诅咒

几十年来,在统计学里数据建模中形成的惯例是尽量要避免维数诅咒。如果有太多的预测变量,通常是首先寻找较少的特征(预测变量的一些函数),而且这些特征“包含尽可能多的信息”,用这些特征代替原来的预测变量。但是在算法建模中,与降低维数相反,往往需要通过增加预测变量的很多函数,来增加维数,例如在支持向量机和模式识别中。

最后指出,统计学的目标是使用数据来预测和获取有关内在的数据机制的信息。模型的要点在于提供关于因变量和自变量之间关系的有用的信息。可解释性是获得信息的一种方式。但是一个模型不必一定是简单的,也不必一定是数据模型。简言之,目标不是解释性,而是准确的信息。

三、多重共线性

在数据建模中,有些解释变量可能与其它解释变量线性相关,称之为多重共线性。在实际应用数据建模时,仔细考虑问题的背景,对数据进行仔细的初步考察,并删除那些已经被其它变量解释过的变量,通常会避免下面将要说明的多重共线性的极端影响。

下面的一个例子令人惊奇。现有来自R软件包compositions的数据集Coxite,其中包含焦土类型25个岩石样本的矿物成分。

以最后一列作为因变量,前面6列作为自变量,首先注意到前5列都是百分比,相加都是100%,因此线性相关。在应用线性回归模型时,可删去E列。

通过检验最后1列和前面各列的相关系数,发现只与前3列的相关系数(绝对值)较大,为此构造的模型,自变量只选前3列。检查方差通胀因子(variance inflation factor),最后得到的模型只包含BC两个自变量。使用AIC统计量,把最后的模型与包含所有自变量(删去E列)的模型比较,发现简化的模型更好。

现在对自变量稍加调整:把前5列的百分比先取整数,再构建包含6个自变量的模型,此时自变量发生了微小的变化,但模型结论看上去出乎意料地变化很大。当模型包含所有的自变量时,C非常显著,尤其是Dp0.033,也就是说D变得很显著了。

上例就是数据建模的一个陷阱。虽然上例是人为设计的,但我们时不时就会遇到研究人员得到的需要仔细推敲的结论。

四、蘑菇是否可食用的判断

美国加州大学欧文分校(University of California, Irvine简称UCI)有一个机器学习数据集存储库的网页,其中就有蘑菇数据集,网址如下

http://archive.ics.uci.edu/ml/datasets/Mushroom

蘑菇数据集包括对蘑菇和麻风菌科(Family23种(Species)带菌蘑菇的假设样本(8124个)的描述。(生物学中的分类级别顺序为界>>>>>>种)。每种都被确定为可食用的、绝对有毒的、毒性未知的三类,其中后两类合并为一类。每个样本有22个特征,涉及菌盖颜色、菌盖形状、气味、菌褶等,以下是来自网上的示意图。


采蘑菇时,为避免食物中毒,只采集那些有较大的置信度是可食用的蘑菇,即使有可能会遗漏掉一些可食用的蘑菇。进一步观察该数据集,就发现每个特征都是分类型变量,而因变量是一个二分类变量。从预测建模的角度,这是一个分类问题。

设想你是一个植物学家,偶然发现一枚蘑菇。由蘑菇集的数据信息,如何判断蘑菇是否可食用?很难想象如何用传统的数据建模方法。实际上,这似乎只能借助于算法建模。关于该数据集,目前已有比较成熟的机器学习办法,如随机森林,为此首先将22个原始特征加工后,变成了126维特征。这里就不再展开讨论。

参考文献

Breiman, L. (1996). The heuristics of instability in model selection. Annals of Statistics 24, 2350-2381.

Breiman, L. (2001). Statistical Modeling: The Two Cultures. Statistical Science Vol. 16, No. 3, 199-231.

Shmueli, G. (2010). To Explain or to Predict? Statistical Science Vol. 25, No. 3, 289-310.

(本文作者是南开大学金融学院张连增教授