首页 理论教育基于人文发展指数的判别分析

基于人文发展指数的判别分析

【摘要】:=TRUE)TstX<-as.matrixif(is.matrix(TrnX1)!=TRUE)TrnX2<-as.matrixnx<-nrowblong<-matrixmu1<-colMeans;mu2<-colMeansif{S<-var;beta<-2logw<-mahalanobis-mahalanobis}else{S1<-var;S2<-varbeta<-2log+logw<-mahalanobis-mahalanobis}for{ifblong[i]<-1elseblong[i]<-2}blong}

人文发展指数是联合国开发计划署于1990年5月发表的第一份《人类发展报告》中公布的.该报告建议,目前对人文发展的衡量应当以人生的三大要素为重点,衡量人生三大要素的指标分别为出生时的预期寿命、成人识字率和实际人均GDP,将以上三个指示指标的数值合成为一个复合指数,即为人文发展指数.

从1995年世界各国人文发展指数的排序中选取高发展水平、中等发展水平的国家各五个作为两组样品,另选四个国家作为待判样品作距离判别分析(资料来源:UNDP,《人类发展报告》,1995年).

第1类:高发展水平国家,见表8-3.

表8-3 第1类——高发展水平国家

第2类:中等发展水平国家,见表8-4.

表8-4 第2类——中等发展水平国家

待判样本,见表8-5.

表8-5 待判样本

以下我们分别应用Fisher判别和Bayes判别进行判别分析.

(1)Fisher判别

根据表8-3,表8-4和表8-5,按矩阵形式导入训练样本和待判样本,调用函数discriminiant.fisher.R(附后),进行Fisher判别,其代码如下:

说明:discriminiant.fisher.R 附后.

协方差矩阵不同时,

全部样本回代正确.

协方差矩阵不同时进行判别:

结果:

中国、罗马尼亚属于2(中等发展水平国家);希腊、哥伦比亚属于1(高发展水平国家).

附:discriminiant.fisher.R

(2)Bayes判别

在(1)的基础上,调用函数“discriminiant.bayes.R”(附后),进行Bayes判别,其代码如下:

协方差矩阵相同和不同时,全部样本回代都正确.

说明:discriminiant.bayes.R 附后.

协方差矩阵相同和不同时进行判别:

(www.chuimin.cn)

以上结果说明协方差矩阵相同和不同时,都有如下结果:

中国、罗马尼亚属于2(中等发展水平国家);希腊、哥伦比亚属于1(高发展水平国家).

附:discriminiant.bayes.R

discriminiant.bayes<-function

(TrnX1,TrnX2,rate=1,TstX=NULL,var.equal=FALSE){

if(is.null(TstX)==TRUE)TstX<-rbind(TrnX1,TrnX2)

if(is.vector(TstX)==TRUE)TstX<-t(as.matrix(TstX))

else if(is.matrix(TstX)!=TRUE)

TstX<-as.matrix(TstX)

if(is.matrix(TrnX1)!=TRUE)TrnX1<-as.matrix(TrnX1)

if(is.matrix(TrnX2)!=TRUE)TrnX2<-as.matrix(TrnX2)

nx<-nrow(TstX)

blong<-matrix(rep(0,nx),nrow=1,byrow=TRUE,

dimnames=list("blong",1:nx))

mu1<-colMeans(TrnX1);mu2<-colMeans(TrnX2)

if(var.equal==TRUE||var.equal==T){

S<-var(rbind(TrnX1,TrnX2));beta<-2∗log(rate)

w<-mahalanobis(TstX,mu2,S)-mahalanobis(TstX,mu1,S)

}

else{

S1<-var(TrnX1);S2<-var(TrnX2)

beta<-2∗log(rate)+log(det(S1)/det(S2))

w<-mahalanobis(TstX,mu2,S2)-mahalanobis(TstX,mu1,S2)

}

for(i in 1:nx){

if(w[i]>beta)

blong[i]<-1

else

blong[i]<-2

}

blong

}