判别分析


判别分析

判别分析方法最初应用于考古学, 例如要根据挖掘出来的人头盖骨的各种指标来判别其性别年龄等. 近年来, 在生物学分类, 医疗诊断, 地质找矿, 石油钻探, 天气预报等许多领域, 判别分析方法已经成为一种有效的统计推断方法

判别分析是一种在一些已知研究对象用某种方法已经分成若干类的情况下,确定新的样品的观测数据属于哪一类的统计分析方法。

栗子:肝病的判别、地震的判别等。

为了能识别待判断的对象 x = ( x 1 , x 2 , , x m ) T 是属于已知类 A 1 , A 2 , , A r 中的哪一类?
事先必须要有一个一般规则,一旦知道了 x 的值,便能根据这个规则立即作出判断,称这样的一个规则为判别规则(用于衡量待判对象与各已知类别接近程度的方法准则)。
判别规则往往通过的某个函数来表达, 我们把它称为判别函数,记作 W ( i ; x )

常用的方法有:距离判别法、Fisher判别法、贝叶斯判别法、逐步判别法。
这里仅介绍后两种。


Bayes判别法

Bayes判别法的基本思想:总是假设对所研究的对象已有一定的认识,计算新给样品属于各总体的条件概率 P ( G i | x 0 ) , ( i = 1 , 2 , 3... k ) , 比较这个概率的大小,然后将新样品判归为来自概率最大的总体。
例题:人文发展指数是联合国开发计划署于1990年5月发表的一份<<人类发展报告>>中公布的数据如下,试通过已知的样品建立判别函数,误判率是多少?并判断待判的归类。
数据
SAS解答

data ex;input g x1-x3 @@;
cards;
1 76 99 5374 1 79.5 99 5359 1 78 99 5372 1 72.1 95.9 5242 1 73.8 77.7 5370 2 71.2 93 4250 2 75.3 94.9 3412 2 70 91.2 3390 2 72.8 99 2300 2 62.9 80.6 3799
;
data ex1; input x1-x3 @@;
cards;
68.5 79.3 1950 69.9 96.9 2840 77.6 93.8 5233 69.3 90.3 5159
;
proc discrim data=ex testdata=ex1
anova manova simple list /*这块不是特别懂,都写上吧*/
testout=ex2;
class g; /*针对类别g*/
proc print data=ex2;
run;

Proc Discrim后的常用选择项有:
(1)Data=数据集名,指定输入数据集名,若缺省则指定最新建立的数据集。
(2)Testdata=数据集名,指定待作出判别的数据集名,其中的变量名须上Data数据集中的变量名一致。
(3)Testout=数据集名,指定输出数据集,输出Testdata数据集中所有观测值以及每个观测值的后验概率和判别后的类别。
(4)List,指定打印每个观测值的回代结果。
(5)Anova,指定输出各类均值检验的一元统计量。
(6)Manova,指定输出各类均值检验的多元统计量。
(7)Simple,指定打印总体和组内的简单统计量。
结果
这里写图片描述
因此Bayes判别函数为:
y1=-323.21568+5.79107x1+0.26498x2+0.03407x3
y2=-236.03823+5.14034x1+0.25167x2+0.02533x3
结果2
从上面运行结果得知,两类的误判率均为0。
这里写图片描述
因而得知中国与罗马尼亚归入第二类,希腊与哥伦比亚归入第一类。


逐步判别法

在判别问题中,当判别变量个数较多时,如果不加选择地一概采用来建立判别函数,不仅计算量大,还由于变量之间的相关性,可能使求解逆矩阵的计算精度下降,建立的判别函数不稳定。因此适当地筛选变量的问题就成为一个很重要的事情。凡具有筛选变量能力的判别分析方法就统称为逐步判别法。

逐步判别法其基本思路类似于逐步回归分析,按照变量是否重要逐步引入变量,每引入一个“最重要”的变量进入判别式,同时要考虑较早引入的变量是否由于其后的新变量的引入使之丧失了重要性变得不再显著了(例如其作用被后引入地某几个变量的组合所代替),应及时从判别式中把它剔除,直到判别式中没有不重要的变量需要剔除,剩下来的变量也没有重要的变量可引入判别式时,逐步筛选结束。也就是说每步引入或剔除变量,都作相应的统计检验,使最后的判别函数仅保留“重要”的变量。

逐步判别法步骤
1. 计算各总体中各变量的均值和总均值以及似然统计量,规定引入变量和剔除变量的临界值 F F
2. 逐步计算,计算全部变量的判别能力,在已入选变量中考虑剔除可能存在的最不显著变量。在未选入变量中选出最大判别能力的变量,对变量作F检验通过检验则接受,否则剔除变量。直到能剔除又不能增加新变量,逐步计算结束。
3. 建立判别式,使用第2步中选入的变量,用Bayes判别法建立判别式。
4. 对待判样本进行判别分类。

proc stepdisc data=ex method=stepwise sle=0.3 sls=0.3;
/*选择用逐步判别法,选择后验概率大于0.3,不注明时系统默认为0.15*/
class g; var x1-x3;
run;
proc discrim data=ex testdata=ex1 /*待判别集合*/
anova manova simple list 
testout=ex2;
class g; var x1 x3; /*选用x1和x3作为判别指标*/
proc print data=ex2;
run;

1.逐步回归选取变量:
这里写图片描述
结果显示:通过逐步判别分析选入两个变量X1、X3作为判别分析的指标,接下来再以变量X1,X3为参考变量作Bayes判别。

2. 得到判别函数:
这里写图片描述
y1=-322.01658+6.13904x1+0x2+0.03335x3
y2=-234.95662+5.47083x1+0x2+0.02465x3
3. 误判概率:
这里写图片描述
两类的误判率均为0,说明判别能力很强,于是可以利用已经得到的判别函数去判别新样本。

4. 待判样本分类结果:
这里写图片描述
结果表明,中国与罗马尼亚归入第二类,希腊与哥伦比亚归入第一类。

由以上两个例子可知,逐步判别法所得到的结果可看出来,尽管这里没有利用变量X2(成人识字率),但是最终的判别结果与利用全部变量所得得判别结果完全一致,这说明了三个变量在判别式中所起到的作用不同。由此可见,在解决现实问题中应结合两种方法使得更加科学的使用已知数据得到更加合理的结论。

猜你喜欢

转载自blog.csdn.net/richard__ting/article/details/80972822