Logitboost法与累积比数Logit模型在判别分析中的应用分析
【摘要】 目的: 探讨Logitboost和累积比数Logit模型这两种方法应用于判别分析的优缺点。 方法: 简要介绍Logitboost和累积比数Logit模型的原理,并采用此两种方法分别对同一个实例进行判别分析。结果: 两种方法的判别正确率均较高。Logitboost判别效果高于累积比数Logit模型判别。讨论: 在迭代轮数适当的情况下,Logitboost判别正确率更高,受迭代次数影响较大;而累积比数Logit模型的稳定性较强。在对事件进行判别时,可根据数据资料的具体特点选用判别方法,也可将两种方法结合应用,取其判别效果较好者。
【关键词】 累积比数Logit模型 判别分析 Logitboost 睡眠质量
Logitboost and Cumulative Odds Logit Model and Their Application in Discriminant Analysis
Abstract Objective: To compare Logitboost with Cumulative odds logit model, and discuss their characteristics when they are used in Discriminant analysis. Methods: The ultimate principle of Logitboost and Cumulative odds logit model will be introduced in this paper, and we will use the two methods to solve the same problem. Results Logitboost’s effect is better than Cumulative odds logit model. Conclusion: The effect of Logitboost would be better if a appropriate iteration is given, in other words, Logitboost is affected by iteration in large measure. But Cumulative odds logit model is stable. We should choose the better according the data.
Key words cumulative odds Logit model; discriminant analysis; Logitboost; sleep quality
判别分析(discriminant analysis)是判别样品所属类型的一类统计方法,其应用之广可与回归分析相媲美。进行判别时,通常是根据已经掌握的一批分类明确的样品建立判别函数。从判别准则上分为Fisher判别和Bayes判别,但由于这两种传统的判别方法各有利弊,对资料有特定要求,如Fisher判别要求资料服从多元正态分布,Bayes判别要求已知先验概率,当不满足条件时,判别效果往往不理想,给人们的实际工作带来许多困难。
本研究以一个实例简介Logitboost法和累积比数Logit模型在判别分析中的应用。
1 原理
1.1 累积比数Logit模型判别
累积比数Logit模型是二分类Logit模型的扩展,主要用于处理反应变量为有序分类变量的资料。该模型对资料要求不严,解释变量既可以是连续型变量,也可以是无序分类变量或有序分类变量[1]。只要资料满足比例优势假定条件(proportional odds assumption),即自变量的回归系数与分割点无关,且各自变量与Logit P呈线性关系,即可应用此方法。
设应变量Y为K个等级的有序变量,第k(k=1,2,…,K)个等级的概率分别为{π1,π2,…,πk},且∑ki=1πk=1。影响因素xT=(x1,x2,…,xP)为自变量,xi(i=1,2,…,p)可以是连续变量、无序或有序分类变量。则累积比数Logit模型可以表示为:
logit(P(y>k|x))=ln(P(y>k|x)1-P(y>k|x))=-αk+∑pi=1βixi (k=1,2,…,K-1) 等价于:P(y≤k|x)=11+e(-αk+∑pi=1βixi)
每类结果的概率:P(y=k|x)=P(y≤k|x)-P(y≤k-1|x)
=11+e(-αk+∑pi=1βixi)-11+e(-αk-1+∑pi=1βixi) k=1,2, …K
式中,αk和βi为待估参数。该模型实际上是将K个等级人为地分成{1,…,k }和{k+1,…,K}两类,在这两类基础上定义的Logit P表示属于前k个等级的累积概率与后K-k个等级的累积概率的比数之对数。故该模型称为累积比数模型。对于K类反应变量,K-1个累积Logit模型各有一个不同的αk估计,而对于xi,K-1个模型的系数βi均相同[2]。
1.2 Logitboost判别
Boosting是由Schzpire于1990年首先提出[3],后经Freud和Schapire改进的一种机器学习方法。Frieman、Hastie、Tibshirani于2000年又进一步改进,称为Logitboost,属于提升算法的一种。其基本思想是:基于现有样本数据集构建一个基础的“弱分类器”,反复调用该“弱分类器”,通过对每轮中错判的样本赋予更大的权重,使其更关注那些难判的样本,经过多轮循环,最后采用加权的方法将各轮的“弱分类器”合成“强分类器”,从而得到较高精度的预测模型[4]。其算法如下:
首先给定一个样本集:(xi1,…,xiN,yi),yi∈Y={-1,+1}表示不同的类。赋予每一个样品相同的权重,选定一种基础分类器,根据该权重建立预测模型,回代样本,其中错判的样本的权重在下一轮将被提升。迭代T轮后得出最终分类器F(x):F(xi)=∑Tt=1F(t)(xi) 式中,t∈(1,T)为迭代轮数,f(x)表示弱分类器的函数形式,可以是Logit函数、决策树等,根据F(xi)的正负对第i个样品进行判别归类。
此算法也可用于多分类。下面以一个三分类的例子简介两种方法的特点。
2 实例分析
采用匹兹堡指数为标准,随机抽查了480名在校大学生,男生254,女生226名。以睡眠质量(好、中、差)为反应变量,属于有序结果的资料。153名睡眠质量好,赋值为0,235名睡眠质量一般,赋值为1,92名睡眠质量差赋值为2。包括7个显著影响因素,每个因素按严重程度相应赋值,形成等级资料,将样本分成两份,其中85%作为训练样本用来建立预测模型,其余15%样本用来回代,以检验模型的判别效果。
以睡眠质量好者为对照,用SAS8.0进行累积比数Logit模型判别,建立判别模型如下:
LogitP1/0=9.7435+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29
LogitP2/0=6.8291+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29得概率判别模型:
P(y=0|X)=1/(1+e9.7435+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29)
P(y=1|X)=1/(1+e6.8291+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29)
-1/(1+e9.7435+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29)
P(y=2|X)=1-1/(1+e6.8291+0.3816x3+0.3192x8+1.4127x9+0.6780x10+0.5321x18+0.4447x24+0.3623x29)e
≈2.72
用Weka软件作Logitboost判别[5]。Weka是由新西兰怀卡托大学开发的,汇集了当今最前沿的机器学习算法及数据预处理工具。利用Weka的Explorer界面,选择logitboost功能,分别迭代10轮、50轮、100轮。结果见表1。表1 Logitboost判别与Logit判别模型判别效果的比较(略)
我们用弃一法(Leave?one?out)交叉验证(cross?validation)对预测模型进行了评价。
由表1可见,随着迭代次数的增加,Logitboost模型的判别正确率、阳性预测值、阴性预测值、灵敏度、特异度及Kappa值(一致性指标)都不断提高。迭代50轮时达到最高,继续迭代,其判别效果反而下降,说明Logitboost重复次数过多会造成过度拟合,在应用时可根据数据自身特点及判别效果选择恰当的迭代轮数。
3 讨论
与累积比数Logit模型判别相比,Logitboost判别准确率更高,它具有改善模型预测精度的能力,但有时也会出现过度拟合现象,实际操作中应慎用。累积比数Logit模型各项指标比Logitboost迭代50轮时低,但是高于10轮,结果较稳定。当数据资料不满足Fisher判别或Bayes判别的条件,但是满足比例优势假定条件,而且自变量与LogitP呈线性关系时,可选用累积比数Logit模型,作出较好的判别。
累积比数Logit判别可以得到固定的模型,便于对单个样本进行判别。Logitboost无法得到具体的模型,但是其自动化较强,只要把数据资料按照格式整理好,输入相应的分类器由机器处理即可,整个判别过程在软件中进行。在处理一些特殊的、不具备logistic回归所要求的条件、结构复杂或者资料类型内部关联模糊不清的资料时,用logitboost算法有可能会收到意想不到的良好效果。
累积比数Logit判别提供的信息量更大,可解释性更强,容易被接受,当研究目的既要进行判别,又要确切知道各自变量对判别结果的影响大小,或者说影响因素的危险度时,在条件允许的前提下,累积比数logit判别是比较好的选择。
4 小结
在判别问题上,没有最好,只有更好。究竟选用哪种方法效果更好,这就看研究目的和资料本身的具体要求了。两种判别方法各有优缺点。累积比数Logit判别稳健性较好,而且具有很好的可解释性。当迭代轮数恰当时,Logitboost判别能得到较高的正确率,特别是当资料不满足线性判别条件时,其判别优势更明显。因此,我们在处理具体问题时,应根据研究目的和数据资料类型特点,综合考虑两种方法的特点,慎重选择,也可将两种方法联合应用。
【】
1 陈峰,编著. 医用多元统计分析方法. 北京:统计出版社,2000,105~107.
2 杨秀珍,陈景武,冯国双,等. 医学大学生睡眠状况及其影响因素的调查分析. 中华医学研究杂志,2005,5(2):108.
3 Schapire RE. The strength of weak learnability. Machine Learning,1990,5(2):197~227.
4 富春枫,荀鹏程,赵杨,等. Logitboost及其在判别分析中的应用. 中国卫生统计,2006,23(2):98~99.
5 Ian H.Witten, Eibe Frank,著. 数据挖掘实用机器学习技术. 北京:机械出版社,2006,245~249.