基于matlab的fisher线性判别及感知器判别_SPSS 判别分析

一、定义

判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。

二、判别分析的一般形式

y=a1x1+a2x2+……+anxn(a1为系数,Xn为变量)。事先非常明确共有几个类别,目的是从已知样本中训练出判别函数

三、前提假设(有点类似多重回归分析)

1.各自变量为连续性或有序分类变量

2.自变量和因变量符合线性假设

3.各组的协方差矩阵相等,类似与方差分析中的方差齐

4.变量间独立,无共线性

注:违反条件影响也不大,主要看预测准不准,准的话违反也无所谓

四、用途

1.对客户进行信用预测;2.寻找潜在客户等

五、判别分析常用判别方法

1.最大似然法

适用于自变量均为分类变量的情况,算出这些情况的概率组合,基于这些组合大小进行判别

2.距离判别

对新样品求出他们离各个类别重心的距离远近,适用于自变量均为连续变量的情况,对变量分布类型无严格要求

3.Fisher判别法

与主成份分析有关,对分布、方差等都没有什么限制,按照类别与类别差异最大原则提取公因子然后使用公因子判别

4.Bayes判别

强项是进行多类判别,要求总体呈多元正态分布。利用贝叶斯公式,概率分布逻辑衍生出来一个判别方法,计算这个样本落入这个类别的概率,概率最大就被归为一类

在spss中一般用Fisher判别即可,要考虑概率及误判损失最小的用Bayes判别,但变量较多时,一般先进行逐步判别筛选出有统计意义的变量,但通常在判别分析前我们已经做了相关的预分析,所以不推荐使用逐步判别分析(采用步进法让自变量逐个尝试进入函数式,如果进入到函数式中的自变量符合条件,则保留在函数式中,否则,将从函数式中剔除)。

六、聚类分析与判别分析的区别与联系

都是研究分类的。聚类分析,对总体到底有几种类型不知道(研究分几类较为合适需从计算中加以调整)。判别分析则是在总体类型划分已知,对当前新样本判断它们属于哪个总体。如我们对研究的多元数据的特征不熟悉,当然要进行聚类分析,才能考虑判别分析问题。

七、判别分析得到的判别函数效果评判方法

1.自身验证(拿训练数据直接预测验证,但是对预测样本预测好不代表对新样本预测好)

2.外部数据验证(收集新的数据来验证,这是最客观最有效的,但是麻烦而且两次收集的数据不一定是同质的)

3.样本二分法(一般划分2/3为训练集,1/3为验证集,但是浪费了1/3的样本)

4.交互验证(Cross-Validation)----刀切法(10分法,数据划分为10个集合,每次挑选一个出来做验证集,其余9个做训练集,可以做10次,因为验证集可换10种可能)

在spss软件中通过【分析】—【留一分类】获得此项结论。

——————————————————————————————————————

下面采用实例来说明。

一、问题描述

如下图-1数据集包含了刚毛、变色、弗吉尼亚这三种鸢尾花的花萼长、宽和花瓣长、宽,分析目的是希望能够使用这4个变量来对花的种类进行区分。spno为事先的分组,度量标准设为【名义】。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第1张图片
图-1

二、数据预处理

主要是对假设条件的检验,在spss中【分析】—【描述统计】—【描述】,如图-2

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第2张图片
图-2

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第3张图片
如图-3可以看到数据的分布没有特别的离异点,也没有缺失值和不合理的分布,从而可以用该数据做接下来的判别分析。

三、spss操作

1)选择分类变量及其范围:如图-4所示

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第4张图片
图-4

【分组变量】矩形框中选择表明已知的观测量所属类别的变量(一定是离散变量),在定义范围框最小值中输入该分类变量的最小值,最大框中输入该分类变量的最大值。

2) 指定判别分析的自变量

3) 选择观测量

如果希望使用一部分观测量进行判别函数的推导而且有一个变量的某个值可以作为这些观测量的标识,则用Select 功能进行选择,键入标识参与分析的观测量所具有的该变量值,一般均使用数据文件中的所有合法观测量此步骤可以省略。

4) 选择分析方法:如图-5所示

eef422da461de95fbaf44ec6aa2541fa.png
图-5

【一起输入自变量】选项,当认为所有自变量都能对观测量特性提供丰富的信息时,使用该选择项。选择该项将不加选择地使用所有自变量进行判别分析,建立全模型,不需要进一步进行选择。

【使用步进式方法】选项,当不认为所有自变量都能对观测量特性提供丰富的信息时,使用该选择项。因此需要判别贡献的大小,再进行选择当鼠标单击该项时【方法】按钮加亮,可以进一步选择判别分析方法。一般我们做判别分析前已经做了相关的预分析(不推荐)。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第5张图片
图-6

如图-6所示【方法】选项:步进法让自变量逐个尝试进入函数式,如果进入到函数式中的自变量符合条件,则保留在函数式中,否则,将从函数式中剔除。可供选择的判别分析方法有:

1.Wilks'lambda 选项,它是组内平方和与总平方和之比,用于描述各组的均值是否存在显著差别,当所有观测组的均值都相等时,Wilks’lambda值为1;当组内变异与总变异相比很小时,表示组件变异较大,表示组间变异较大,系数接近于0。系统默认选项。

2.未解释方差。 它指把计算残余最小的自变量优先纳入到判别函数式中。

3.Mahalanobis’距离 。它把每步都使靠得最近的两类间的马氏距离最大的变量进入判别函数

4.最小 F值。它把方差差异最大的自变量优先纳入到判别函数中。

5.Rao’s V 。劳氏增值法:它把劳氏统计量V产生最大增值的自变量优先纳入到判别函数中。可以对一个要加入到模型中的变量的V 值指定一个最小增量。选择此种方法后,应该在该项下面的V-to-enter 后的矩形框中输入这个增量的指定值。当某变量导致的V值增量大于指定值的变量后进入判别函数。

【标准】:选择逐步判别停止的判据

1.使用F值。系统默认的判据。当加人一个变量(或剔除一个变量)后,对在判别函数中的变量进行方差分析。当计算的F值大于指定的进入值时,该变量保留在函数中。默认值是3.84:当该变量使计算的F值小于指定的删除值时,该变量从函数中剔除。默认值为2.71。即当被加入的变量F 值为3.84 时才把该变量加入到模型中,否则变量不能进入模型;或者,当要从模型中移出的变量F值<2.71时,该变量才被移出模型,否则模型中的变量不会被移出.设置这两个值时应该注意进入值>删除值。

2.使用F检的概率。决定变量是否加入函数或被剔除的概率而不是用F值。加入变量的F值概率的默认值是0.05(5%),移出变量的F值概率是0.10(10%)。删除值(移出变量的F值概率) >进入值(加入变量的F值概率)。

【输出】:对于逐步选择变量的过程和最后结果的显示可以通过输出栏中的两项进行选择:

1.步进摘要。要求在逐步选择变量过程中的每一步之后显示每个变量的统计量。

2.两两组间距离的F值。要求显示两两类之间的两两F值矩阵。

这里我们选择建立全模型,所以不用对方法进行设置。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第6张图片
图-7

如图-7所示【statistics】选项:可以选择的输出统计量分为以下3 类:

(1) 描述性

1.平均值。可以输出各类中各自变量的均值、标准差和各自变量总样本的均值和标准差。

2.单变量ANOVA复选项。对各类中同一自变量均值都相等的假设进行检验,输出单变量的方差分析结果。

3.Box’s M 复选项。对各组的协方差矩阵相等的假设进行检验。如果样本足够大,差异不显著的p值表明矩阵差异不明显。

(2)函数系数栏:选择判别函数系数的输出形式

1.Fisherh’s。给出Bayes判别函数的系数。对每一类给出一组系数,并给出该组中判别分数最大的观测量。(注意:这个选项不是要给出Fisher判别函数的系数。这个复选框的名字之所以为Fisher’s,是因为按判别函数值最大的一组进行归类这种思想是由Fisher提出来的。这里极易混淆,请注意辨别。)

2.未标准化。给出未标准化的判别函数(即典型判别函数)的系数(SPSS默认给出标准化的判别函数信息)。

(3)矩阵

1.组内相关。即类内相关矩阵,它是根据在计算相关矩阵之前将各组(类)协方差矩阵平均后计算类内相关矩阵。

2.组内协方差。即计算并显示合并类内协方差矩阵,是将各组(类)协方差矩阵平均后计算的。区别于总协方差阵。

3.分组协方差。对每类输出显示一个协方差矩阵。

4.总体协方差。计算并显示总样本的协方差矩阵。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第7张图片
图-8

如图-8所示【分类】选项:

(1) 先验概率:两者选其一

1.所有组相等。各类先验概率相等。若分为m类,则各类先验概率均为1/m。系统默认

2.根据组大小计算。由各类的样本量计算决定,即各类的先验概率与其样本量成正比。

(2) 使用协方差矩阵 :选择分类使用的协方差矩阵

1.在组内。指定使用合并组内协方差矩阵进行分类。系统默认

2.分组。指定使用各组协方差矩阵进行分类。

由于分类是根据判别函数,而不是根据原始变量,因此该选择项不是总等价于二次判别。

(3) 图:选择要求输出的统计图

1.合并组。生成一张包括各类的散点图。该散点图是根据前两个判别函数值作的散点图。如果只有一个判别函数就输出直方图。

2.分组。根据前两个判别函数值对每一类生成一张激点图,共分为几类就生成几张散点图。如果只有一个判别函数就输出直方图。

3.区域图。生成用于根据函数值把观测量分到各组中去的边界图。此种统计图把一张图的平面划分出与类数相同的区域。每一类占据一个区各类的均值在各区中用*号标出。如果仅有一个判别函数,则不作此图。

(4) 输出栏:选择生成到输出窗中的分类结果

1.个案摘要。要求输出每个观测量包括判别分数、实际类、预测类(根据判别函数求得的分类结果)和后验概率等。选择此项还可以选择其附属选择项:将个案限制在前,并在后面的小矩形框中输入观测量数n选择。此项则仅对前n个观测量输出分类结果。观测数量大时可以选择此项。

2.摘要表。要求输出分类的小结,给出正确分类观测量数(原始类和根据判别函数计算的预测类相同)和错分观测量数和错分率。

3.不考虑该个案时的分类(留一分类)。输出对每个观测量进行分类的结果,所依据的判别是由除该观测量以外的其他观测量导出的,也称为交互校验结果。建议勾选

(5)使用均值替换缺失值:即用该类变量的均值代替缺失值。缺失值缺失大于10%,不介意勾选

本例中如图-8中勾选。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第8张图片
图-9

如图-9所示【保存】选项:指定生成并保存在数据文件中的新变量

1.预测组成员。要求建立一个新变量,预测观测量的分类。是根据判别分数把观测量按后验概率最大指派所属的类。每运行一次Discriminant过程,就建立一个表明使用判别函数预测各观测量属于哪一类的新变量。第1 次运行建立新变量的变量名为dis_l,如果在工作数据文件中不把前一次建立的新变量删除,第n次运行Descriminant 过程建立的新变量默认的变量名为dis_n。

2.判别分数。要求建立fisher判别分数的新变量。该分数是由未标准化的判别系数乘自变量的值,将这些乘积求和后加上常数得来。每次运行Discriminant过程都给出一组表明判别分数的新变量,建立几个判别函数就有几个判别分数变量。

3. 组成员概率。Bayes后验概率值。有m类,对一个观测量就会给出m个概率值,因此建立m个新变量。

本例不勾选。

四、输出结果

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第9张图片
个案处理摘要

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第10张图片
首先给出的是描述性统计分析结果。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第11张图片
单变量ANOVA:假设条件检验之一,各个自变量在各类别之间是否有差异,四个Sig.<0.05,证明是有差异的。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第12张图片
(BOX‘s M)检验:假设条件检验之一,对各组的协方差矩阵相等的假设进行检验。Sig.<0.05证明多元方差齐性是不齐的,证明判别分析适用条件可以违背只要预测效果好就可以 。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第13张图片
Wilks的Lambda:对函数判定有无价值的检验,我们看到两个函数的Sig.<0.05的,所以都有统计意义。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第14张图片
结构矩阵:类似于因子分析里面的载荷,判断函数与变量之间的关联性

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第15张图片
组质心处的函数:各分类对应的中心坐标 。群组重心函数为各类别重心在空间中的坐标位置。只要在前面计算出各观测值的具体坐标位置后,再计算出它们分别离各重心的距离,就可以得知它们的分类了

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第16张图片
贝叶斯判别 :给出各类先验概率和贝叶斯判别的线性判别式系数 。对每一个类别都会给函数式,扔一个样本进去计算,哪个得分高,算哪一个类,不过这里不改先验概率等参数和典型判别分析结果是一致的 。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第17张图片
合并图:三个类别放在一组图

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第18张图片
分组图:一个类别一张图,几个类别就有几张分组图

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第19张图片
区域图(领域图):类与类之间划分为两个质心的垂直平分线(文本图)

下面为最重要的结果,可在撰写结论使用。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第20张图片
标准化的判别函数(Fisher判别函数)。函数式为:函数1=-0.346*长度-0.525*宽度+0.846*身高+0.613*体重,函数2类似。对比一下非标准化的函数,少了常数项。

基于matlab的fisher线性判别及感知器判别_SPSS 判别分析_第21张图片
交叉验证表。【分类】中选择【留一分类】得到此结果,输出对每个观测量进行分类的结果,正确率为98%,说明该判别函数效果还不错。

——————————————————————————————————————

说明:借鉴网上多方材料整理,其中主要包括CSDN博主路易三十六,TOMOCAT及百度资源整合做的一份学习笔记,与大家共享。

你可能感兴趣的:(基于matlab的fisher线性判别及感知器判别_SPSS 判别分析)