基于R语言的互补双对数模型分析

2017-05-30 08:40戴建国杨剑红
宁波职业技术学院学报 2017年4期
关键词:R语言

戴建国 杨剑红

摘 要: 针对分类数据模型的误差不满足正态分布,Logistic分布等常用分布,而是满足极值分布这类特殊情况时,采用互补双对数模型进行分析。以R语言作为分析工具,并将其与几种常用模型进行对比分析,结果表明互补双对数模型优于其他模型。

关键词: 互补双对数模型; R语言; 有序分类

中图分类号: O 212.1 文献标志码: A 文章编号: 1671-2153(2017)04-0087-03

1 问题提出

大数据时代,数据挖掘与数据分析过程中遇到的数据类型主要有连续型,离散型,以及混合型,其涉及的方法众多,如机器学习,深度学习等。当然,对于离散型数据,回归模型也是比较流行的统计分析方法之一,而且在多数情况下,因变量有可能是有序二分类或多分类的离散型变量,在医疗卫生统计或社会统计尤为常见,如对某事的评价可能分为不好、好、非常好这样三个等级。对于这类数据常用的模型有Logistic回归模型(包括累积Logistic,邻近Logistic等模型),Probit回归模型,但它们分别是假设模型误差分布是Logistic分布和正态分布的,而有些情况误差并不满足这样的假设,其误差分布是非对称的极值分布或称Gumbel 分布[1]。如某年某河面最高水位这样一个极值,这时需要寻求一个更为有效的模型,此时采用互补双对数线性模型与其他几种模型进行对比分析。并且近年来R语言已成为当下最流行做数据分析和挖掘的工具之一,它不仅有丰富的函数包,而且能与Hadoop,Python等软件结合,使得成为重要的数据分析工具。下面基于R语言用互补双对数模型对一组实际数据进行对比分析。

2 互补双对数线性模型[1]

该模型的一般形式为

log{-log[1-P(Y≤j)]}=αj+β'X, (1)

从而可得求概率的表达式为

式中:αj为解释变量不能解释的部分;β'为参数构成的向量。当只有一个自变量,并且当X=xi(i=1,2)时,有性质:

P(Y>j|x1)=P(Y>j|x2)exp[β(x1-x2)]。

对于各自变量的回归系数通常采用极大似然法来估计。由于互补双对数函数是严格凹的,海森矩阵便是负的,因此通过牛顿—拉夫森方法[2]得到参数估计,对参数进行检验,模型拟合优度检验[3],这些都可以由R语言的summary()函数得到。

3 实例分析与R程序

下面实例是研究肤色和性别对寿命的影响,其中寿命作为因变量分为5个类别(0~20岁、20~40岁、40~50岁、50~60岁、>60岁),分别记为1,2,3,4,5;性别和肤色作为两个自变量,记为X,Z。对于自变量X包含男性、女性两个类别,分别用0,1表示;自变量Z包含白人、黑人两个类别,同样用0,1表示。且每行的总数均为1000,数据见表1。由表1可以看出,在寿命的给类别上分布是很不平衡的,如比较寿命分别对应0~20和>60的两列,下面给出几种模型的对比分析。

3.1 建立数据文件

首先将表1中数据的每一列构成因子,然后用cbind()函数将其按列合并,最后用as.data.frame()将合并后的数据转化成数据框,并命名为w,程序如下:

>gender<-c(0, 0, 1, 1); race<-c(0, 1, 0, 1);y1<-c(13, 26, 9, 18);y2<-c(28, 49, 13, 24);y3<-c(32, 56, 19, 37);>y4<-c(122, 201, 80, 129); y5<-c(805, 668, 879, 792)

>w<-as.data.frame(cbind(gender,race,y1,y2,y3,y4,y5))

3.2 安装和载入VGAM包

在数据文件建立后,需要安装和载入所需要的函数包,以下用一种简单有效的方法载入和安装所需的VGAM包。

>install.package(“VGAM”); library(VGAM)

3.3 模型的构建及预测

在完成前面的准备工作后,使用VGAM包中的vglm()函数对表中的数据用上述模型和其他两种常用模型进行分析及预测。首先构建互补双对数模型,模型的表達式已在式(1)给出。以下代码中设置link = cloglog表示互补双对数,将构建的模型记为CLL_fit,可用summary(CLL_fit)得到模型参数的估计和检验,并用predict()所构建模型对数据进行预测,用round()结果保留一位小数,预测结果见表1中括号内的数据。相关代码如下:

>CLL_fit<-vglm(cbind(y1,y2,y3,y4,y5)~gender+race,family = cumulative(link = cloglog,parallel = T),data = w)

>summary(CLL_fit)

>fitted<-predict(CLL_fit,type = "response");round(fitted*1000,1)

3.3.1 邻近logit回归模型

该模型的一般形式为

式中:c为因变量的类别数;X为解释变量构成的向量;πj为类别j在给定解释变量下对应的概率;βj'为对应的回归系数,该模型的假设是模型误差服从Logistic分布。同样使用VGAM包中的vglm()函数对表中的数据进行分析及预测,此时需设置family=acat(),将构建后的模型记为AL_fit,由predict()命令得到预测结果见表2。代码如下:

>AL_fit<-vglm(cbind(y1,y2,y3,y4,y5)~gender+race,family=acat(reverse=TRUE,parallel=FALSE), data=w)

>fitted<-predict(AL_fit,type ="response");round(fitted*1000,1)

3.3.2 累积Probit模型

模型的一般形式为

P(Y≤j)=?椎(αj+β'X) (j=1,…,c-1), (3)

式中:c为因变量的类别数;X为解释变量构成的向量;β'为对应的回归系数;?椎为正态分布的分布函数;P(Y≤j)为累积概率,该模型的假设是模型误差服从正态分布。可同互补双对数模型一样用代码构建模型,只需将连接函数设为probit,即link=probit,同样,得到的拟合值如表2所示,代码如下:

>fit.cprobit<-vglm(cbind(y1,y2,y3,y4,y5)~gender+race,family=cumulative(link=probit,parallel=TRUE), data=w)

>fitted<-predict(fit.cprobit,type = "response");round(fitted*1000,1)

3.4 模型擬合评价

本文分别用BIC和AIC准则[4-5]对上述模型进行评价,对于具体的公式及证明在此不讨论,有兴趣者可参考相关文献。当模型的BIC和AIC值越小,说明模型拟合的越好。下面分别给出代码计算各模型的AIC和BIC值,结果如表3所示,代码如下:

>AIC(CLL_fit);BIC(CLL_fit);AIC(AL_fit);BIC(AL_fit);AIC(fit.cprobit);BIC(fit.cprobit)

综合上面代码得到表2和表3的结果,比较发现:表1中模型(1)的拟合数据比表2中另外两种模型的拟合值更接近真实值,尤其是在年龄大于60的那一列,而且比较表3中三个模型的AIC和BIC值可知模型(1)的值明显小于另外两种模型,因此,表明对于这样一类特殊数据,互补双对数模型具有明显的优势。

由互补双对数模型拟合的输出结果,可以得到4个回归方程分别为

log{-log[1-P(Y≤1)]}=-4.21-0.54X+0.61Z,

log{-log[1-P(Y≤2)]}=-3.19-0.54X+0.61Z,

log{-log[1-P(Y≤3)]}=-2.58-0.54X+0.61Z,

log{-log[1-P(Y≤4)]}=-1.52-0.54X+0.61Z。

由互补双对数模型给出的性质有P(Y>j|X=1,Z)=P(Y>j|X=0,Z)exp(0.54),即在给定肤色的情况下,男性寿命长于固定时间的比例是女性比例的exp(0.54)=1.71次方;在给定性别时,黑人寿命长于某一固定时间的比例是白人比例的exp(0.61)=1.84次方,并且可以得到对于寿命长于某一固定时间,黑种男人的比例是白种女人比例的3.55次方。

4 结束语

对于互补双对数线性模型主要用于误差分布是极值分布的情况,如上例所示,其可以对自变量进行选择,也可以估计概率的大小,从而得到拟合值,当因变量是二分变量时,可以用于预测分类,在文献[6-7]中给出了相关实例分析,说明了在误差分布非对称时,互补双对数模型体现一定的优势,而且R语言能够很有效,简洁完成分析过程,从而也说明R语言是一款很好的统计分析工具。

参考文献:

[1] AGRESTI,ALAN. Analysis Of Ordinal Categorical Data,Second Edition[M]. Canada:Wiley,2010.

[2] BOLARINWA,OLUBUSOYE O E. On the sensitivity of probit and complementary log-log models to violated tolerance[J]. 2013,12:351-360.

[3] AGRESTI,ALAN. An Introduction to Categorical Data Analysis[M]. Wiley,New York,Duxbury Press,1996.

[4] BURNHAM K P,ANDERSON D R. Multimodel Inference understanding AIC and BIC in model selection[J]. Sociological Methods & Research,2004,33(33):261-304.

[5] KUHA J. AIC and BIC comparisons of assumptions and performance[J]. Sociological Methods & Research,2004,33(2):188-229.

[6] 肖珉,周宗放. 基于互补双对数模型的企业集团财务困境预测研究[C]. 中国灾害防御协会风险分析专业委员会第四届年会论文集,2010:976-981.

[7] 史芳芳,杨海珍,徐昭,等. 基于互补双对数模型的国际资本流入风险影响因素研究[J].数学的实践与认识,2016,46(10):91-96.

猜你喜欢
R语言
基于Holt—Winters时间序列的图书选题预测模型
基于R语言的轿车销量分析基于R语言的轿车销量分析
基于R语言时间序列的轿车销量分析及预测
R语言在统计分析中的使用技巧
基于R语言的学生成绩分析
基于GPS轨迹数据进行分析改善城市交通拥挤
基于R语言的Moodle平台数据挖掘技术的研究
基于R语言的湖南产业结构对其经济增长贡献分析
注重统计思维培养与应用为主导的生物统计学课程建设
人民币汇率的均值回复检验及Hurst指数计算