判别分析是用于判断样本所属类型的一种统计分析方法。目的是对已知归类的数据建立由数值指标构成的归类规则,然后把这样的规则应用到未知归类的去归类.
判别分析的一般提法是:设有k个总体
,已知样品X来源于k个总体中的一个,但不知道究竟来自哪一个。判别分析就是要根据对这k个总体的已知知识(由过去的经验和采样获得)和待判样品的一些指标的观测值,去判断样品X究竟属于哪一个总体。
1、距离判别
距离判别又称直观判别法:样品和哪个总体距离最近,就判它属于哪个总体。设有两个总体
,现在又一个样品X,则判别准则可以写成:
距离D的定义有很多种,但是考虑判别分析中常涉及多变量的问题,且变量之间可能有相关性,故多使用马氏距离:
其中
是
的协方差,
是
的均值向量。
2、贝叶斯判别
距离判别简单直观,很实用,但是距离判别的方法把总体等同看待,没有考虑到总体会以不同的概率(先验概率)出现,也没有考虑误判之后所造成的损失的差异。一个好的判别方法,既要考虑到各个总体出现的先验概率,又要考虑到错判造成的损失,Bayes判别就具有这些优点,其判别效果更加理想,应用也更广泛。
设有总体
,具有概率密度函数
。并且根据以往的统计分析,知道
出现的概率为
。即当样本
发生时,求他属于某类的概率。由贝叶斯公式计算后验概率,有:
则
判给
。在正态的假定下,
为正态分布的密度函数。
3、Fisher判别
Fisher判别的基本思想是投影,将
组m维数据投影到一个方向,使得投影后组和组之间尽可能地分开,而衡量组和组之间之间是否分开的方法借组于一元方差分析的思想.
设p维总体
,
,令
为
维空间中任一向量,
表示
在方向
上的投影,通过这样的投影,我们把数据转化为
组数据:
,按方差分析的思想,其组间平方和为
合并的组内平方和:
其中
,
分别是
的样本均值以及总样本均值。若
类的均值有显著差异,则比值
应该充分大.因为该值也被
的量纲影响,因此我们加入约束条件:
,这样,我们就只需要找
的极大值.
使用lagrange乘数法可以容易地导出
为特征方程
的最大特征跟对应的满足
的特征向量.如果使用一个线性特征方程不能很好的区分各个总体,则可使用第二、第三特征向量.
定义:Discrim(A:array,X:array,method:integer,options:array):array;
说明:按照给定分类训练样本,根据训练结果对待定样本类别判定,也可作为原样本的回代检验
参数:
A:样本数据观测矩阵,每行为一个样本,第0列为所在分类
X:样本数据观测矩阵,为待分类样本
Method:为判别方法,默认为 0 bayesian 判别,1为距离判别
Options: 为方法选项
默认options := array('cov':1,'backtest':1,'crosstest':1)
'cov' 总体协方差是否相等,默认0表示相等 ,1表示不相等
'backtest' 是否回代检验,默认0表示不检验,1表示检验
'crosstest' 是否进行交叉回代检验,默认0表示不检验,1表示检验
例子:1991年全国30个省市居民消费判别(参见平台下的Demo_Discrim_cluster函数)
省(市) | 类型 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 |
山西 | 1 | 8.35 | 23.53 | 7.51 | 8.62 | 17.42 | 10.00 | 1.04 | 11.21 |
内蒙古 | 1 | 9.25 | 23.75 | 6.61 | 9.19 | 17.77 | 10.48 | 1.72 | 10.51 |
吉林 | 1 | 8.19 | 30.50 | 4.72 | 9.78 | 16.28 | 7.60 | 2.52 | 10.32 |
黑龙江 | 1 | 7.73 | 29.20 | 5.42 | 9.43 | 19.29 | 8.49 | 2.52 | 10.00 |
河南 | 1 | 9.42 | 27.93 | 8.20 | 8.14 | 16.17 | 9.42 | 1.55 | 9.76 |
甘肃 | 1 | 9.16 | 27.98 | 9.01 | 9.32 | 15.99 | 9.10 | 1.82 | 11.35 |
青海 | 1 | 10.06 | 28.64 | 10.52 | 10.05 | 16.18 | 8.39 | 1.96 | 10.81 |
河北 | 1 | 9.09 | 28.12 | 7.40 | 9.62 | 17.26 | 11.12 | 2.49 | 12.65 |
陕西 | 1 | 9.41 | 28.20 | 5.77 | 10.80 | 16.36 | 11.56 | 1.53 | 12.17 |
宁夏 | 1 | 8.70 | 28.12 | 7.21 | 10.53 | 19.45 | 13.30 | 1.66 | 11.96 |
新疆 | 1 | 6.93 | 29.85 | 4.54 | 9.49 | 16.62 | 10.65 | 1.88 | 13.61 |
| 1 | 8.67 | 36.05 | 7.31 | 7.75 | 16.67 | 11.68 | 2.38 | 12.88 |
云南 | 1 | 9.98 | 37.69 | 7.01 | 8.94 | 16.15 | 11.08 | 0.83 | 11.67 |
湖南 | 1 | 6.77 | 38.69 | 6.01 | 8.82 | 14.79 | 11.44 | 1.74 | 13.23 |
安徽 | 1 | 8.14 | 37.75 | 9.61 | 8.49 | 13.15 | 9.76 | 1.28 | 11.28 |
贵州 | 1 | 7.67 | 35.71 | 8.04 | 8.31 | 15.13 | 7.67 | 1.41 | 13.25 |
辽宁 | 1 | 7.90 | 39.77 | 8.49 | 12.94 | 19.29 | 11.05 | 2.04 | 13.29 |
四川 | 1 | 7.18 | 40.91 | 7.32 | 8.94 | 17.60 | 12.75 | 1.14 | 14.80 |
山东 | 1 | 8.82 | 33.70 | 7.59 | 10.98 | 18.82 | 14.73 | 1.78 | 10.10 |
江西 | 1 | 6.25 | 35.02 | 4.72 | 6.28 | 10.03 | 7.15 | 1.93 | 10.39 |
福建 | 2 | 10.60 | 52.41 | 7.70 | 9.98 | 12.53 | 11.70 | 2.31 | 14.69 |
广西 | 2 | 7.27 | 52.65 | 3.84 | 9.16 | 13.03 | 15.26 | 1.98 | 14.57 |
海南 | 2 | 13.45 | 55.85 | 5.50 | 7.45 | 9.55 | 9.52 | 2.21 | 16.30 |
天津 | 2 | 10.85 | 44.68 | 7.32 | 14.51 | 17.13 | 12.08 | 1.26 | 11.57 |
江苏 | 2 | 7.21 | 45.79 | 7.66 | 10.36 | 16.56 | 12.86 | 2.25 | 11.69 |
浙江 | 2 | 7.68 | 50.37 | 11.35 | 13.30 | 19.25 | 14.59 | 2.75 | 14.87 |
北京 | 2 | 7.78 | 48.44 | 8.00 | 20.51 | 22.12 | 15.73 | 1.15 | 16.61 |
西藏 | 待判 | 7.94 | 39.65 | 20.97 | 20.82 | 22.52 | 12.41 | 1.75 | 7.90 |
上海 | 待判 | 8.28 | 64.34 | 8.00 | 22.22 | 20.06 | 15.12 | 0.72 | 22.89 |
广东 | 待判 | 12.47 | 76.39 | 5.52 | 11.24 | 14.52 | 22.00 | 5.64 | 25.50 |
a:=array(
(1.00,8.35,23.53,7.51,8.62,17.42,10.00,1.04,11.21),
(1.00,9.25,23.75,6.61,9.19,17.77,10.48,1.72,10.51),
(1.00,8.19,30.5,4.72,9.78,16.28,7.6,2.52,10.32),
(1.00,7.73,29.2,5.42,9.43,19.29,8.49,2.52,10.00),
(1.00,9.42,27.93,8.2,8.14,16.17,9.42,1.55,9.76),
(1.00,9.16,27.98,9.01,9.32,15.99,9.1,1.82,11.35),
(1.00,10.06,28.64,10.52,10.05,16.18,8.39,1.96,10.81),
(1.00,9.09,28.12,7.4,9.62,17.26,11.12,2.49,12.65),
(1.00,9.41,28.2,5.77,10.8,16.36,11.56,1.53,12.17),
(1.00,8.7,28.12,7.21,10.53,19.45,13.3,1.66,11.96),
(1.00,6.93,29.85,4.54,9.49,16.62,10.65,1.88,13.61),
(1.00,8.67,36.05,7.31,7.75,16.67,11.68,2.38,12.88),
(1.00,9.98,37.69,7.01,8.94,16.15,11.08,0.83,11.67),
(1.00,6.77,38.69,6.01,8.82,14.79,11.44,1.74,13.23),
(1.00,8.14,37.75,9.61,8.49,13.15,9.76,1.28,11.28),
(1.00,7.67,35.71,8.04,8.31,15.13,7.67,1.41,13.25),
(1.00,7.9,39.77,8.49,12.94,19.29,11.05,2.04,13.29),
(1.00,7.18,40.91,7.32,8.94,17.6,12.75,1.14,14.8),
(1.00,8.82,33.7,7.59,10.98,18.82,14.73,1.78,10.1),
(1.00,6.25,35.02,4.72,6.28,10.03,7.15,1.93,10.39),
(2.00,10.6,52.41,7.7,9.98,12.53,11.7,2.31,14.69),
(2.00,7.27,52.65,3.84,9.16,13.03,15.26,1.98,14.57),
(2.00,13.45,55.85,5.5,7.45,9.55,9.52,2.21,16.3),
(2.00,10.85,44.68,7.32,14.51,17.13,12.08,1.26,11.57),
(2.00,7.21,45.79,7.66,10.36,16.56,12.86,2.25,11.69),
(2.00,7.68,50.37,11.35,13.3,19.25,14.59,2.75,14.87),
(2.00,7.78,48.44,8.00,20.51,22.12,15.73,1.15,16.61));
X:=array(
(7.94,39.65,20.97,20.82,22.52,12.41,1.75,7.9),
(8.28,64.34,8.00,22.22,20.06,15.12,0.72,22.89),
(12.47,76.39,5.52,11.24,14.52,22.00,5.64,25.5));
return Discrim(a,x,0,array('cov',1,'backtest':1,'crosstest':1));