判别分析

download report

Transcript 判别分析

判 别 分 析
贝叶斯判别(Proc discrim)
判别分析变量选择(Proc
stepdisc)典型判别(Proc
candisc)
节选自谢小燕教授课件
判别分析利用已知类别的样本培训模型,为
未知样本判类的一种统计方法。
它产生于本世纪30年代。近年来,在自然科
学、社会学及经济管理学科中都有广泛的应用。
判别分析的特点是根据已掌握的、历史上每个类
别的若干样本的数据信息,总结出客观事物分类
的规律性,建立判别公式和判别准则。然后,当
遇到新的样本点时,只要根据总结出来的判别公
式和判别准则,就能判别该样本点所属的类别。
讲课提纲
 假设
 贝叶斯判别分类
 变量选择
 典型判别分类
假设条件
 样本大小: 我们先把数据按结果变量的类别划分到
几个组里,在各组样本上数据量大小不同是允许的
,在最小组的样本数据量至少要超过预测变量数。
经验法则要求最小组的样本数据量应为预测变量数
的4~5倍。
假设条件
 正态分布: 在此假设数据服从多元正态分布。这可
以通过频率分布的直方图看出来。然而,违反正态
分布的假设不是“致命”的,只要非正态是由偏态
而不是由界外点引起的,结果给出的显著性检验依
然可靠 (Tabachnick and Fidell 1996).
假设条件
 方差齐性: 判别分析对协方差矩阵的非齐性(
heterogeneity)非常敏感。在接收一项重要研究的
最终结果之前,需要审察一下几个组内方差和相关
系数矩阵。 方差齐性是通过散点图进行评价,并通
过变量转换进行校正。
假设条件
 异常值: 判别分析对于异常值非常敏感。对每一个
组进行单变量或多变量异常值检验,如果有的话进
行转变或删除。如果研究数据中一个组包含极端异
常值,会对均值产生影响以及增加方差。对参数的
显著性检验基于混合方差,即所有组的平均方差。
因此相对较大的均值(和较大方差)的显著性检验
会基于较小的混合方差,会导致错误。
假设条件
 无多重共线性: 如果其中一个自变量跟其它的变量
高度相关,或者就是其它变量的函数,判别分析将
难以给出唯一解,因此要求自变量之间的多重共线
性很低。当自变量相关时,标准化后的判别函数系
数将不能可靠地给出预测变量的相对重要性。
Classification with Bayesian
Rule
设有k个类别
Gi (i  1,2,, k ),Gi 具有概率密度函
数 f i (x) 。并且根据以往的统计分析,知道 Gi 出现
的概率为 qi 。即当样本 x0发生时,求他属于某类的概
率。由贝叶斯公式计算后验概率,有:
qi fi ( x0 )
P(Gi | x0 ) 
q j f j ( x0 )
qi f i ( x0 )
q
f
(
x
)
l
l
0
 max
判别规则
P(Gl | x0 ) 
q j f j ( x0 ) 1ik q j f j ( x0 )
则 x0判给Gl 。在正态的假定下,f i (x) 为正态分布的
密度函数。
特别,总体服从正态分布的情形
ql fl ( x0 )  max qi fi ( x0 ), 则x0 判给 Gl 。
1i  k
1
1
1
(i )
(i )

若f i ( x) 
exp[

(
x


)

(
x


)]
i
12
(2 i )
2
1
1
1
(i )
(i )

则, qi f i ( x)  qi
exp[ ( x   ) i ( x   )]
12
(2 i )
2
上式两边取对数并去掉与i无关的项,则等价
的判别函数为:
zi ( x)  ln(qi fi (x))
1
1
 ln qi  ln | i |  ( x   ( i ) )i1 ( x   ( i ) )]
2
2
[ Z i ( x)],则判 x  Gl 。
问题转化为若 Z l ( x)  max
1i  k
当协方差阵相等 1  k  
则判别函数退化为
1
(i)
1
(i)

(
x

μ
)
Σ
(x

μ
)]
zi ( x)  ln qi 
2
1
(i)
1
(i)

(
x

μ
)
Σ
(x

μ
)]
  [2 ln qi 
2
令
(i)
1
(i)

(x

μ
)
Σ
(x

μ
)]
Fi ( x)  2 ln qi 
(i)
(i)
Pi ( x)  2 ln qi  2μ Σ x  μ Σ 1μ(i)
1
问题转化为若Pl ( x)  min[ Pi ( x)] ,则判 x  Gl 。
1i  k
1 (i) 1 (i)
Pi (x)  2(ln qi  μ Σ μ  μ(i) Σ 1x)
2
令
1 (i) 1 (i)
(i) 1
mi (x)  ln qi  μ Σ μ  μ Σ x
2
[mi ( x)],则判 x  Gl 。
问题转化为若 ml ( x)  max
1i  k
【定义】(平均错判损失)
用P(j/i)表示将来自总体Gi的样品错判到总体Gj的条件
概率。
p( j / i)  P( X  D j / Gi )   fi ( x)dx
i j
Dj
C(j/i)表示相应错判所造成的损失。
则平均错判损失为:
k
ECM   qi  C ( j / i ) P( j / i )
i 1
j i
使ECM最小的分划,是Bayes判别分析的解。
【定理】
若总体G1,G2,,Gk的先验概率为
qi , i  1,2,3,, k
且相应的密度函数为  fi (x),损失为 C ( j / i)
则划分的Bayes解为


Di  x | hi (x)  min hj (x) ,
1 j k
k
其中
h j (x)   qiC ( j / i ) f i (x)
i 1
i  1,2,3,, k
含义是:当抽取了一个未知总体的样品值
x,要判别它属于那个总体,只要先计算出k
个按先验概率加权的误判平均损失
k
h j (x)   qiC ( j / i ) f i (x)
i 1
然后比较其大小,选取其中最小的,则判定样品属
于该总体。
data fish (drop=HtPct WidthPct);
title 'Fish Measurement Data';
input Species Weight Length1 Length2 Length3 HtPct
WidthPct @@;
Height=HtPct*Length3/100;
Width=WidthPct*Length3/100;
format Species specfmt.;
datalines;
proc discrim data=fish list listerr;
class Species;
priors prop;
run;
§2 变量选择和逐步判别
变量的选择是判别分析中的一个重要的问题,
变量选择是否恰当,是判别分析效果有列的关键。
如果在某个判别问题中,将起最重要的变量忽略
了,相应的判别函数的效果一定不好。而另一方
面,如果判别变量个数太多,计算量必然大,会
影响估计的精度。特别当引入了一些判别能力不
强的变量时,还会严重地影响判别的效果。
一
变量组间差异的显著检验
设有n样品,分别来自 k个类G1,G2,┅,
Gk其中ni个来自Gi,
Gi ~ N p (i , ).
样品分别为:
X 1(1) ,, X n(1) ;

X 1( k ) ,, X n( k ) ;
1
k
H 0 : μ1    μ n
即,p个指标对G1,G2,┅,Gk无区别能力;
H1 : μ1 ,, μ k 不尽相同
p个指标对G1,G2,┅,Gk有区别能力。
|E|
| E | 组内离差平方和



| E  B | |W |
总离差平方和
|E|
|E|

当比值  
很小,类内的离差平方和在总
| E  B | |W |
离差平方和中所占比率小,则类间的离差平方和所占比
重大。在原假设为真的条件下, 服从维尔克斯分布
 p ( p, n  k , k  1) 。
|E|
|E|


  ( p, n  k , k  1)
| E  B | |W |
接受原假设;
|E|
|E|


  ( p, n  k , k  1)
| E  B | |W |
p个指标对G1,G2,┅,Gk有强的区别能力,拒绝原
假设。
二
变量增减对区分类别效果的检验
在回归分析中,变量的好坏直接影响回归的
效果。在判别分析中也有类似的问题。如果在某
个判别分析问题中,将其中最主要的指标忽略了。
判别效果一定不会好。但是在许多问题中,事先
并不知道那些是主要的指标。因此筛选变量的问
题就成了非常重要的了。
向后剔除 开始时,所有变量依赖于VAR语句中的变
量都在模型中。每一步,在Wilks的统计量的准则下
对模型中判别能力贡献最小的变量剔除。当所有余
下的变量都达到留在模型中的标准时,向后剔除过
程停止。
逐步选择 开始时如同向前选择一样,模型中没有变
量,每一步都被检查。如果在Wilks的准则下统计量
对模型的判别能力贡献最小的变量达不到留在模型
中的标准,它就被剔除。否则,不在模型中对模型
的判别能力贡献最大的变量被选入模型。当模型中
的所有变量都达到留在模型中的标准而没有其他变
量能达到进入模型的标准,逐步选择过程停止。
逐步判别法采用有进有出的算法,即每一步
都进行检验。首先,将判别能力最强的变量引进判
别函数,而对较早进入判别函数的变量,随着其他
变量的进入,其显著性可能发生变化,如果其判别
能力不强了,则删除。
向前选入
开始时模型中没有变量。每一步,
Wilks的统计量最小者,进入模型。当不再有未被
选入的变量小于选入的临界值时,向前选入过程停
止。
步骤

第一步:通过计算单变量的统计量,逐步
选择判别变量
Ei
i 
Wi
统计量最小者首先进入模型。

第二步:分别计算未被选中的其它变量
与选中变量x1的统计量,
E1i
1i 
W1i
统计量1i得值最小者与x1搭配进入模型。
 第三步:类推假设已经有q+1个变量进入了模
型,要考虑较早选入模型得变量得重要性是否有
较大得变化,应及时将其从模型中剔除。其原则
与引入相同。统计量得值最小者或F最大者保留。
 第四步:进行判别分析。
proc stepdisc data=fish;
class Species;
run;
proc glm data=fish;
class Species;
model height=Species/nouni;
manova h=Species /printe;
run;
proc glm data=fish;
class Species;
model height length2=Species/nouni;
manova h=Species m=height,length2/printe;
run;
§3
一
典型判别法
两个总体的费歇(Fisher)判别法
u能使总体单位
尽可能分开的方向
  


 

 





















X不能使总体单位
尽可能分开的方向
旋转坐标轴至总体单位尽可能分开的方向,此时
分类变量被简化为一个
典型判别分析的图形解释
 其做法是进行维数压缩,同时尽可能多地保留数据类别区分
的信息
 假如我们观测的是D维的数据,其中N1个点属于1类,N2个
点属于2类。我们要把数据x投影到一条直线上,即:y=wTx,
得到y值
 在所有这些直线中,我们要找最能把这些y值按类别区分开
的那条。
(一)费歇判别的基本思想
Fisher判别法是根据方差分析的思想建立起来的
一种能较好区分各个总体的线性判别法,Fisher
在1936年提出。
从两个总体中抽取具有P个指标的样品观测
数据,借助于方差分析的思想构造一个线性判别
函数:
Y  C1 X 1  C2 X 2    C p X p
其中系数 C1 , C2 ,, C p 确定的原则是使两组间的组间
离差最大,而每个组的组内离差最小。当建立了判
别式以后,对一个新的样品值,我们可以将他的P
个指标值代入判别式中求出Y值,然后与某个临界
值比较,就可以将该样品归某类。
假设我们可以得到一个线性判别函数:
y  c1 x1  c2 x2    c p x p
我们可以把两个总体的样品代入上面的判别式
yi(1)  c1 xi(11)  c2 xi(21)    c p xip(1)
yi( 2)  c1 xi(12)  c2 xi(22)    c p xip( 2)
(二)判别准则
y (1)  y ( 2)
定义临界点为y0 
2
不妨假定y (1)  y ( 2)
如果由原始数据y求得判别函数得分为Y*,
对与一个样品代入判别函数中,若Y*>Y0 ,则判
给G1,否则判给G2。
二、多个总体的Fisher判别法
(一) 判别函数
Fisher判别法实际上是致力于寻找一个最能反映组和
组之间差异的投影方向,即寻找线性判别函
数 Y ( x)  c1 x1    c p x p ,设有 k个总体 G1 , G2 ,, Gk,

 



分别有均值向量 1 , 2 ,…, k 和协方差阵 1 ,,  k , 分
别各总体中得到样品:
X 1(1) ,, X n(1)
1
X 1( 2 ) ,, X n( 2 )

X 1( k ) ,, X n( k )
2
k
例 某种产品的生产厂家有12家,其中7家的产
品受消费者欢迎,属于畅销品,定义为1类;5家
的产品不大受消费者欢迎,属于滞销品,定义为2
类。将12家的产品的式样,包装和耐久性进行了
评估后,得分资料,今有一新得厂家,得分为(6,
4,5),该厂的产品是否受欢迎。
data a;
input type$ x1 x2 [email protected]@;
cards;
1 9 8 7 1 7 6 6
1 8 7 8 1 8 5 5
1 9 9 3 1 8 9 7
1 7 5 6 2 4 4 4
2 3 6 6 2 6 3 3
2 2 4 5 2 1 2 2
;
proc print;
proc candisc data=a out=outcan simple distance
anova;
class type;
var x1 x2 x3;
proc print data=outcan;
run;
Total-Sample
Variable
N
Sum
x1
12
72.00000
x2
12 68.00000
x3
12
62.00000
Mean
6.00000
5.66667
5.16667
Standard
Variance Deviation
7.81818
2.7961
5.15152
2.2697
3.42424
1.8505
Raw Canonical Coefficients
Variable
Can1
x1
0.6638029449
x2
0.0626766729
x3
0.2315780967
Class Means on Canonical Variables
type
Can1
1
1.604156534
2
-2.245819148
Obs
1
2
3
4
5
6
7
8
9
10
11
12
无错判。
type
1
1
1
1
1
1
1
2
2
2
2
2
x1
9
7
8
8
9
8
7
4
3
6
2
1
x2 x3
8 7
6 6
7 8
5 5
9 3
9 7
5 6
4 4
6 6
3 3
4 5
2 2
Can1
2.56221
0.87768
2.06731
1.24723
1.69858
1.96109
0.81500
-1.70224
-1.77753
-0.66889
-2.79827
-4.28216
判类
1
1
1
1
1
1
1
2
2
2
2
2
个案1的得分:
0.6638029449(9-6.00000)+ 0.0626766729(8-5.66667)
+0.2315780967(7-5.16667)= 2.56221
阈值=(1.604156534 -2.245819148)/2=-0.320831307
所以个案1判为1类。
新个案的得分
0.6638029449(6-6.00000)+
0.0626766729(4-5.66667)
+0.2315780967(5-5.16667)= -0.14306
新个案判给第1类,即该厂的产品是否受欢迎
一、主要步骤
选择变量
(1)和判别分析的目的密切相关
(2)反映要判类变量的特征
(3)在不同研究对象上的值有明显的差异
将样本分成两部分,一部分用于确定判别函
数,另一部分用于检查判别的效果。如果样本量
很大,可将样本平均地或随机地分成两部分。
用逐步判别法筛选变量
在第一步所选的变量可能在类间无差异,应该将
对判别分析无贡献的变量剔除
估计鉴别函数
选择某种方法建立判别规则,有贝叶斯判别和
典型判别
检查判别的效果
计算错判比率和正确判定的比率。将判别函数用于验证
样本,通过验证样本的错判比率和正确判定的比率来确定判
别的效果。所谓错判,就是把原来是第一类的样本判给了第
二类。对于正确判定的比率应该达到多少才能接受,并没有
严格的规则。
判别分析的短处
 判别分析本质上是含参数的统计分析,要求自变量服从正态
分布,如果离正态分布差很多,则效果不好
 如果区分类别的主要信息不是均值而是方差,其效果也不会
好