精华内容
下载资源
问答
  • 2021-01-11 11:44:08

    鸢尾花数据的聚类分析和判别分析


    摘要:本文基于鸢尾花数据的公开数据集,根据鸢尾花的萼片长度和宽度,花瓣的长度和宽度,对鸢尾花的类别归属进行聚类分析和判别分析。本文使用 R 语言,对鸢尾花的种类进行了聚类分析,并分别使用三种判别分析方法,距离判别法、Bayes 判别法和 Fisher 判别法对鸢尾花的种类归属进行了判别分析。在讨论中,对三个判别模型的判别效果进行了评价,最后使用三个判别模型根据鸢尾花的属性对其类别归属进行了预测。

    关键字:聚类分析,距离判别,Bayes 判别,Fisher 判别,分类


    引言

    鸢尾花有很多种类,有时肉眼也难以辨别,需要专业的知识才能对其所属的种类进行判断。因此研究鸢尾花的分类,根据鸢尾花的某些属性,建立有效的数学模型,对鸢尾花的种类进行分类就显得十分重要。

    本文使用鸢尾花的公开数据集,其使用了鸢尾花的萼片长度和宽度,花瓣的长度和宽度等属性,作为鸢尾花种类归属的判别依据。在数据集中,共包含三个种类的鸢尾花,其中每个种类的鸢尾花包含50条数据。在本文的研究和分析中,从各个种类的鸢尾花中选取150条数据进行模型的建立和分析,并使用全部的训练数据进行鸢尾花的种类的分类预测,从而对模型的正确性进行分析。

    在现实问题中,对分类问题的分析可以大致分为两类:聚类分析和判别分析。这两者有一个明显的区别,那就是聚类分析是无监督分类,而判别分析是监督分类。判别分析的前提是类别已确定,由已确定的类别及相关数据来拟合模型,从而用模型去预测某一样本点所属的类别。但是聚类分析是对样本进行分类,在聚类分析之前是不知道关于类别的相关信息的,通过模型的拟合去给数据分类,这样我们会对数据有一个整体的印象。当然可以根据聚类的结果来预测新样本点所属的类别,但是判别分析往往可以得到比聚类分析更加精细的分类结果。

    在本文的研究中,首先使用聚类分析对数据的整体分类情况有一个大致的了解,后使用三种判别分析方法对数据的分类进行分析。

    另外,根据判别总体的数目,判别分析可以分为两个总体的判别分析,和多个总体的判别分析。在本文的研究中,共有三个鸢尾花的类别,所以属于多个总体的判别分析。

    聚类分析

    对研究对象进行适当的分类,进而发现其规律性,是人们认识世界的一种基本方法。研究怎样对事物进行合理分类的统计方法称为聚类分析。依据分类对象的不同,可以把聚类分析分为Q型聚类和R型聚类。其中Q型聚类是指对样本进行聚类,R型聚类是指对变量进行聚类。

    聚类分析的基本原理是将某种性质相似的对象归于同一类,而不同的类之间则存在较大的差异。为此,首先需要能刻画各个变量之间或者各个样本之间的相似性,Q型聚类一般使用"距离"度量样本点之间的相似性,R型聚类一般使用"相似系数"作为变量相似性的度量。而定义样本点之间的距离可以采用欧式距离、Minkowski 距离、马氏距离、Lance 距离等测度,定义各变量之间的相似系数则可以采用样本相关系数、夹角余弦等测度。

    系统聚类法是最常用的一种聚类方法。初始时先把要归类的n个对象各自视为一类,然后逐渐把关系最密切的两个类合并成一个新类,直到最后把n个对象都归为一类时停止。

    在本文的聚类分析中,使用系统聚类方法进行聚类分析。

    判别分析

    设样本x可能来自于m个总体,根据样本x的观察值判定其归属,这种统计方法称为判别分析。

    距离判别法

    距离判别的基本原理是:首先对样本到总体之间的距离进行合理规定,然后依据就近的原则判定样本的归属。为此,首先需要定义合理的距离概念。

    最简单的距离定义欧氏距离,其定义如下:

    d ( x , y ) = ∑ i = 1 n ( x i − y y ) 2 (1) d(x, y) = \sqrt{\sum^n_{i=1}(x_i-y_y)^2} \tag{1} d(x,y)=i=1n(xiyy)2 (1)

    但是欧式距离有两个缺点:

    (1)各项指标的量纲不同时,其平方和的意义不明。

    (2)x与y之间的距离会因各项指标标度单位的变化而变化。

    为了克服欧式距离的上述缺陷,可进行无量纲化,由此引入马氏距离,其定义如下:

    d ( x , y ) = ( x − y ) ′ Σ − 1 ( x − y ) (2) d(x, y) = \sqrt{(x-y)^{'}Σ^{-1}(x-y)} \tag{2} d(x,y)=(xy)Σ1(xy) (2)

    马氏距离有以下三个特点:

    (1)当 Σ = I p Σ=I_p Σ=Ip,即总体x的各项指标相互独立且方差相同时,马氏距离即为欧氏距离。

    (2)马氏距离是将x和y经过标准化后的欧式距离。

    (3)马氏距离不受变量的量纲的影响,是一个无量纲的量。

    在实际应用中,总体均值及协方差矩阵一般都是未知的,可以使用样本均值和样本协方差矩阵作为其估计。样本均值和样本协方差矩阵的无偏估计为:

    μ ^ j = 1 n j ∑ i = 1 n x i j , Σ ^ j = 1 n j − 1 ∑ i = 1 n ( x i j − x ‾ ) ( x i j − x ‾ ) ′ (3) \hat μ_j = \frac{1}{n_j} \sum^n_{i=1}x_{ij}, \hat Σ_j = \frac{1}{n_j-1} \sum^n_{i=1}(x_{ij}-\overline x)(x_{ij}-\overline x)^{'} \tag{3} μ^j=nj1i=1nxij,Σ^j=nj11i=1n(xijx)(xijx)(3)

    Bayes 判别法

    距离判别法易于理解,计算简单,且可以不涉及总体的分布类型,因此适用面很广。但是这种方法的不足,在于未考虑各个总体各自出现概率的大小,同时也未涉及错判所造成损失的影响。

    在实际情况中,在判断一个样品的归属时,既要考虑各个总体出现的概率大小,还需考虑错判所造成的损失影响。基于以上考虑,提出了一种使用先验概率和损失函数的判别方法,即 Bayes 判别法。

    设有m个总体 G 1 , G 2 , … … , G m G_1, G_2, ……, G_m G1,G2,,Gm,他们的密度函数 f 1 ( x ) , f 2 ( x ) , … … , f m ( x ) f_1(x), f_2(x), ……, f_m(x) f1(x),f2(x),,fm(x)是互不相同的。并且,假设m个总体各自发生的概率分别为 q 1 , q 2 , … … , q m q_1, q_2, ……, q_m q1,q2,,qm,称其为先验概率。

    用 C(j|i) 表示将本来属于总体 G i G_i Gi的样品x错判为属于总体 G j G_j Gj造成的损失,且由于正确判断时无损失,即 C(i|i)=0。

    对于判别规则,可以看做是对欧式空间的一个划分,即为 R 1 , R 2 , … … , R m R_1, R_2, ……, R_m R1,R2,,Rm,且满足任意两个划分的交集为空集,所有划分的并集为全集,将判别规则简记为 R = ( R 1 , R 2 , … … , R m ) R=(R_1, R_2, ……, R_m) R=(R1,R2,,Rm)

    错判概率可表示为:

    P ( j ∣ i , R ) = ∫ R j f i ( x ) d x , i ≠ j , i , j = 1 , 2 , … … , m (4) P(j|i, R) = \int_{R_j}f_i(x)dx, i ≠ j, i,j = 1,2,……,m \tag{4} P(ji,R)=Rjfi(x)dx,i=j,i,j=1,2,,m(4)

    由m个总体的先验概率,通过判别规则R进行判别可能造成的总平均错判损失为:

    E C M ( R ) = ∑ i = 1 m q i ∑ j = 1 m C ( j ∣ i ) P ( j ∣ i , R ) (5) ECM(R) = \sum^m_{i=1}q_i \sum^m_{j=1} C(j|i) P(j|i, R) \tag{5} ECM(R)=i=1mqij=1mC(ji)P(ji,R)(5)

    其中 ECM 为 Expected Cost of Misclassification,平均判别代价的缩写。

    使 ECM 损失最小的判别规则,即为 Bayes 判别规则。

    Fisher 判别法

    在距离判别分析和 Bayes 判别分析中,若两个总体服从协方差阵相同的正态分布,则可以导出线性判别函数。对一般的总体,也可以导出类似的线性判别函数,Fisher 判别分析就是这样一种利用投影,借助方差分析思想来导出判别函数的方法。Fisher 判别实际上也是一种降维处理方法。

    设有m个总体 G 1 , G 2 , … … , G m G_1, G_2, ……, G_m G1,G2,,Gm,其相应的总体均值和协方差阵分别为 μ 1 , μ 2 , … … , μ m μ_1, μ_2, ……, μ_m μ1,μ2,,μm Σ 1 , Σ 2 , … … , Σ m Σ_1, Σ_2, ……, Σ_m Σ1,Σ2,,Σm。考虑x的线性函数 y = a ′ x y=a^{'}x y=ax,其中a是待定向量。在几何上,可以将y看成是x在向量a方向上的投影,通过对y的判别,即可实现对x的分类。

    在方差分析中,其基本思想是将所有数据的总离差平方和分解成组内平方和和组间平方和,使用两者的比值大小来衡量总体间的差异大小。令:

    B 0 = a ′ [ ∑ i = 1 m ( μ i − μ ‾ ) ( μ i − μ ‾ ) ′ ] a = a ′ B a (6) B_0 = a^{'}[\sum^m_{i=1} (μ_i-\overline μ) (μ_i-\overline μ)^{'}]a = a^{'}Ba \tag{6} B0=a[i=1m(μiμ)(μiμ)]a=aBa(6)

    E 0 = a ′ ( ∑ i = 1 m Σ i ) a = a ′ E a (7) E_0 = a^{'}(\sum^m_{i=1} Σ_i)a = a^{'}Ea \tag{7} E0=a(i=1mΣi)a=aEa(7)

    其中 B 0 B_0 B0为组间平方和, E 0 E_0 E0为组内平方和。为了使判别函数 y = a ′ x y=a^{'}x y=ax能较好地判别样品x归属,应选择a尽可能地将各个总体区分开来,使组间平方和尽可能地大,组内平方和尽可能地小,即选取a使两者的比值达到极大。

    φ ( a ) = B 0 E 0 = a ′ B a a ′ E a (8) φ(a) = \frac{B_0}{E_0} = \frac{a^{'}Ba}{a^{'}Ea} \tag{8} φ(a)=E0B0=aEaaBa(8)

    由于使式(8)达到极大的a值不唯一,可加约束条件 a ′ E a = 1 a^{'}Ea=1 aEa=1,即转化为在约束条件 a ′ E a = 1 a^{'}Ea=1 aEa=1下,求a使 φ ( a ) = a ′ B a φ(a) = a^{'}Ba φ(a)=aBa,达到极大,求解带约束条件极值问题常用的是 Lagrange 乘数法。

    求得,λ是 E − 1 B E^{-1}B E1B的最大特征值,所对应的特征向量为α,则 α ′ E α = 1 α^{'}Eα = 1 αEα=1,且 m a x α ′ E α = 1 a ′ B a = α ′ B α = λ max_{α^{'}Eα = 1} a^{'}Ba = α^{'}Bα = λ maxαEα=1aBa=αBα=λ,则判别函数为 y = α ′ x y = α^{'}x y=αx.

    其中最大特征值的判别函数为第一判别函数,如果只使用第一判别函数还不能很好地区分各个总体,还可以使用第二大特征值建立第二判别函数,依次类推。

    此时,使用r个非零特征值,将原始数据x映射到互不相关的变量 y 1 , y 2 , … … , y r y_1, y_2, ……,y_r y1,y2,,yr来进行判别分析,即相当于把原始数据x的指标压缩成r维指标来进行判别。

    逐步判别法

    在实际问题中,很难确定哪些指标对于判别分析是主要的,哪些是次要的。考虑的指标过多,会引起计算量过大,而且很多对判别作用较小的指标会干扰视线、模糊认识。而考虑的指标过少,会使判别效果不好。因此,对有关指标变量进行适当筛选是一种很好的处理方法。

    具有筛选变量能力的判别法统称为逐步判别法,在本文的实验和分析中未曾实验,故不再赘述。

    判别效果的评价

    一旦建立了判别法,就要对判别效果进行合理评价。一个好的判别方法,其错判概率应当很小,因此可以用错判概率作为衡量判别法优劣性的标准。以下介绍三种基于错判概率的判别方法,这些方法既不依赖于总体分布,又适合于任何判别法。

    方法一:回报法。首先根据两个训练样本建立判别规则,然后对两个训练样本集中的样本逐个进行回报判别。回报法直观且容易计算,但是它往往低估错判概率,除非样本量很大。其根本原因是建立判别法和评价判别法使用的是同一样本。

    方法二:交叉验证法。为了克服建立和评价判别法使用同一样本的缺陷,可将样本分成训练样本和验证样本。训练样本用于建立判别法,验证样本用于评价判别法。交叉验证法优于回报法,但是仍存在三个缺陷:(1)要求样本容量很大;(2)训练样本和验证样本的选择有很大的不确定性;(3)因为建立判别规则只使用了部分样本信息,所以有可能漏掉重要信息。

    方法三:刀切法。每次剔除一个训练样本进行判别模型的建立,之后使用建立的判别规则对剔除的样本进行判别,重复上述过程直到对每个样本都进行了判别。这个方法优于回报法和交叉验证法,但是运算量较大。

    在本文的研究和分析中,使用刀切法,最每个样本的正确性都进行了分类判别和预测。

    判别法的优劣除了用错判概率来衡量外,在相当程度上还依赖于所考虑的两个总体之间的分离程度。直观上,两个总体离得越远,就越有可能建立有效的判别法。其中 Fisher 判别法就是基于最大分离原则的一种判别分析方法。


    解决问题的方法和计算结果

    聚类分析

    在对鸢尾花数据集进行判别分析之前,先对数据集的整体进行聚类分析,对数据有一个整体的印象,首先加载 iris 数据集,观察数据集的结构,代码如下:

    > # 导入数据
    > attach(iris)
    > # 查看数据结构
    > str(iris)
    'data.frame':	150 obs. of  5 variables:
     $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
     $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
     $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
     $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
     $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
    > 
    

    可以看到,鸢尾花数据集中共包含150个样本数据,每条样本包含5个数据,分别为鸢尾花的萼片长度和宽度,花瓣的长度和宽度,和鸢尾花的种类。

    首先对数据进行简单的分析,计算均值和标准差,而聚类分析为无监督分类,所以需要事先剔除分类属性,其代码如下:

    > # 首先剔除标签数据
    > data <- iris[, -5]
    > # 然后计算均值和标准差
    > mean <- sapply(data, mean)
    > sd <- sapply(data, sd)
    > mean
    Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
        5.843333     3.057333     3.758000     1.199333 
    > sd
    Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       0.8280661    0.4358663    1.7652982    0.7622377 
    > 
    

    之后使用层次聚类方法,对鸢尾花数据集进行聚类分析,由于欧式距离的量纲影响,需要先使用均值和方差对数据进行标准化,其代码如下:

    # 将数据进行标准化
    scaledata <- scale(data, center=mean, scale=sd)
    # 计算欧式距离
    dist <- dist(scaledata, method="euclidean")
    # 使用 Ward 方法层次聚类
    clustemodel <- hclust(dist, method='ward.D')
    # 绘制层次聚类图
    plot(clustemodel)
    

    绘制出的层次聚类图如下:

    在这里插入图片描述

    在上图的层次聚类图中可以看出,鸢尾花的种类可以大致分为三部分。

    判别分析和预测验证

    下面使用三种判别分析方法,分别对鸢尾花的种类进行判别分析。

    距离判别法

    距离判别法需要使用 R 语言的 wmd() 函数,首先需要加载 WMDB 库,其代码如下:

    > install.packages("WMDB")
    试开URL’https://cran.rstudio.com/bin/macosx/contrib/4.0/WMDB_1.0.tgz'
    Content type 'application/x-gzip' length 25581 bytes (24 KB)
    ==================================================
    downloaded 24 KB
    
    
    The downloaded binary packages are in
    	/var/folders/hh/4qjnrh952nxd77kzd0b4dv2m0000gn/T//RtmpmztD7B/downloaded_packages
    > 
    > library(WMDB)
    > 
    

    将 iris 数据集分为数据和标签两部分,调用 wmd() 函数进行距离判别分析,其代码如下:

    > data = iris[, 1:4]
    > data_label = gl(3, 50)
    > wmd(data, data_label)
          1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
    blong 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
          35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    blong  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2
          66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
    blong  2  2  2  3  2  2  2  3  2  2  2  2  3  2  2  2  2  2  3  2  2  2  2  2  2  2  2  2  2  2  2
          97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
    blong  2  2  2   2   3   3   3   3   3   3   2   3   3   3   3   3   3   3   3   3   3   3   3   3
          121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
    blong   3   3   3   3   3   3   3   3   3   2   3   3   3   2   2   3   3   3   3   3   3   3   3
          144 145 146 147 148 149 150
    blong   3   3   3   3   3   3   3
    [1] "num of wrong judgement"
    [1]  69  73  78  84 107 130 134 135
    [1] "samples divided to"
    [1] 3 3 3 3 2 2 2 2
    [1] "samples actually belongs to"
    [1] 2 2 2 2 3 3 3 3
    Levels: 1 2 3
    [1] "percent of right judgement"
    [1] 0.9466667
    > 
    

    Bayes 判别法

    Bayes 判别法需要使用 R 语言的 NaiveBayes() 函数,首先需要加载 klaR 库,其代码如下:

    > install.packages("klaR")
    also installing the dependencies ‘clipr’, ‘Rcpp’, ‘BH’, ‘assertthat’, ‘fansi’, ‘R.methodsS3’, ‘R.oo’, ‘R.utils’, ‘ellipsis’, ‘pkgconfig’, ‘forcats’, ‘hms’, ‘readr’, ‘tidyselect’, ‘generics’, ‘utf8’, ‘cpp11’, ‘httpuv’, ‘mime’, ‘jsonlite’, ‘xtable’, ‘digest’, ‘R6’, ‘sourcetools’, ‘later’, ‘promises’, ‘crayon’, ‘rlang’, ‘fastmap’, ‘withr’, ‘commonmark’, ‘glue’, ‘backports’, ‘cli’, ‘magrittr’, ‘purrr’, ‘R.cache’, ‘rematch2’, ‘rprojroot’, ‘tibble’, ‘xfun’, ‘e1071’, ‘base64enc’, ‘haven’, ‘dplyr’, ‘lifecycle’, ‘vctrs’, ‘pillar’, ‘tidyr’, ‘shiny’, ‘miniUI’, ‘rstudioapi’, ‘highr’, ‘styler’, ‘classInt’, ‘htmltools’, ‘labelled’, ‘combinat’, ‘questionr’
    
    
      There is a binary version available but the source version is later:
          binary source needs_compilation
    vctrs  0.3.5  0.3.6              TRUE
    
    Do you want to install from sources the package which needs compilation? (Yes/no/cancel) yes
    
    > library("klaR")
    载入需要的程辑包:MASS
    > 
    

    将 iris 数据集分为数据和标签两部分,调用 NaiveBayes() 函数进行距离判别分析,其代码如下:

    > data = iris[, 1:4]
    > data_label = gl(3, 50)
    > bayes <- NaiveBayes(data, data_label)
    > predict(bayes)
    $class
      [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
     [48] 1 1 1 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     [95] 2 2 2 2 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3
    [142] 3 3 3 3 3 3 3 3 3
    Levels: 1 2 3
    

    Fisher 判别法

    Fisher 判别法需要使用 R 语言的 lda() 函数,首先需要加载 MASS 库,其代码如下:

    > library(MASS)
    > 
    

    调用 lda() 函数建立统计模型,其代码如下:

    > fisher.mode <- lda(as.formula("Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"), data=iris)
    > fisher.mode
    Call:
    lda(as.formula("Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"), 
        data = iris)
    
    Prior probabilities of groups:
        setosa versicolor  virginica 
     0.3333333  0.3333333  0.3333333 
    
    Group means:
               Sepal.Length Sepal.Width Petal.Length Petal.Width
    setosa            5.006       3.428        1.462       0.246
    versicolor        5.936       2.770        4.260       1.326
    virginica         6.588       2.974        5.552       2.026
    
    Coefficients of linear discriminants:
                        LD1         LD2
    Sepal.Length  0.8293776  0.02410215
    Sepal.Width   1.5344731  2.16452123
    Petal.Length -2.2012117 -0.93192121
    Petal.Width  -2.8104603  2.83918785
    
    Proportion of trace:
       LD1    LD2 
    0.9912 0.0088 
    > 
    

    使用 Fisher 模型进行分类标签的预测和验证,其代码如下:

    > pre <- predict(fisher.mode, iris[, -5])
    > 
    > t <- table(pre$class, iris[, 5])
    > sum(diag(t)) / sum(t)
    [1] 0.98
    >
    > pre$class
      [1] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
      [9] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [17] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [25] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [33] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [41] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [49] setosa     setosa     versicolor versicolor versicolor versicolor versicolor versicolor
     [57] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [65] versicolor versicolor versicolor versicolor versicolor versicolor virginica  versicolor
     [73] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [81] versicolor versicolor versicolor virginica  versicolor versicolor versicolor versicolor
     [89] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [97] versicolor versicolor versicolor versicolor virginica  virginica  virginica  virginica 
    [105] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [113] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [121] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [129] virginica  virginica  virginica  virginica  virginica  versicolor virginica  virginica 
    [137] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [145] virginica  virginica  virginica  virginica  virginica  virginica 
    Levels: setosa versicolor virginica
    > t
                
                 setosa versicolor virginica
      setosa         50          0         0
      versicolor      0         48         1
      virginica       0          2        49
    > 
    

    讨论

    综上所述,使用以上的三种判别分析方法,其对鸢尾花的种类的预测分类结果的正确率均在 95% 以上。其中误判的样本主要分布在 versicolor 和 virginica 这两类,而对 setosa 种类的预测准确率接近 100%。

    由聚类分析的数据也可以得出,将鸢尾花种类的变量剔除掉之后,整体数据聚成两类更好。这主要是因为 versicolor 和 virginica 这两类很难用花瓣和花萼来区分。而在判别分析中,我们在已知三类的情况下拟合模型来预测新样本所属的类别,其反映就是在判别分析中就是这两类的误判率较高,而聚类分析中就是这两个被聚成一个大类。

    在这里插入图片描述


    参考文献

    [1] 鸢尾花数据集官网. https://archive.ics.uci.edu/ml/datasets/Iris
    [2] 鸢尾花数据集. https://gist.github.com/curran/a08a1080b88344b0c8a7
    [3] 孙海燕,周梦,李卫国,冯伟. 数理统计[M]. 北京:北京航空航天大学出版社, 2016.
    [4] 方小敏,齐德胜,张文霖,冯伟. 谁说菜鸟不会数据分析(R 语言篇)[M]. 电子工 业出版社, 2020.

    更多相关内容
  • 目录线性判别分析代码实现缺少一组数据的问题已解决!代码已更新! 线性判别分析 线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题.上因为最早由[Fisher, 1936]提出,亦称...
  • 判别分析程序 (DAP) 的目的是通过次性软件中协方差的稳健估计和建模结构促进(待)分组数据的判别和分类。 稳健的估计方法是 S 估计器和 Donoho-Stahel 估计器。 包含的协方差结构模型有Common Principal ...
  • 本文在自己编写梯度下降的逻辑斯蒂判别式算法的基础上,鸢尾花数据集实现多分类。 鸢尾花数据集公包含三类数据,每条数据四个特征,从中随机选取70%的数据作为训练集,30%的数据作为测试集。 主要包含三个函数:...
  • SAS数据分析之判别分析

    千次阅读 2019-02-26 21:56:41
    判别分析与聚类分析有非常类似的特性,因此,在多数数据分析的教材中,这两章是后出现的,简而言之,聚类分析,其实是判别分析的基础,即在聚类分析的基础上,总结出各类的权值,将待判样本与各类权值做对比,...

    判别分析与聚类分析有非常类似的特性,因此,在多数数据分析的教材中,这两章是一前一后出现的,简而言之,聚类分析,其实是判别分析的基础,即在聚类分析的基础上,总结出各类的权值,将待判样本与各类权值做对比,距离最近的,即为一类。
    以下,给出我在判别分析实验中做的一个小例子。

    判别分析

    人文与发展指数是联合国开发计划署于1990年5月发表的第一份《人类发展报告》中公布的。该报告建议,目前对人文发展的衡量指标应当以人生的三大要素为重点。衡量人生的三大要素的指标分别为:实际人均GDP指数、出生时的预期寿命指数、受教育程度指数(由成人识字率指数和综合总人学率指数按2/3、1/3的权重加权而得),将一生三个指数合成为一个指数就是人文发展指数。今从2007年世界各国人文发展指数(2005年)的排序中,选取高发展水平、中等发展水平和低发展水平国家各6个作为三组样品,另选四个国家作为待判样品,资料如下表所示。试用距离判别对以下数据资料进行判别分析,并据此对待选的四个国家进行判别归类,并使用Fisher 判别写出判别函数。
    G 国家 人均GDP(美元) 出生时的预期寿命(岁) 成人识字率(%) 初等、中等和高等教育入学率(%)
    第一类:高发展水平国家 1 美国 41890 77.9 99.5 93.3
    1 德国 29461 79.1 99.2 88
    1 希腊 23381 78.9 96 99
    1 新加坡 29663 79.4 92.5 87.3
    1 意大利 28529 80.3 98.4 90.6
    1 韩国 22029 77.9 99 96
    第二类:中等发展水平国家 2 古巴 6000 77.7 99.8 87.6
    2 罗马尼亚 9060 71.9 97.3 76.8
    2 巴西 8402 71.7 88.6 87.5
    2 泰国 8677 69.6 92.6 71.2
    2 菲律宾 5137 71 92.6 81.1
    2 土耳其 8407 71.4 87.4 68.7
    第三类:低发展水平国家 3 尼泊尔 1550 62.6 48.6 58.1
    3 尼日利亚 1128 46.5 69.1 56.2
    3 喀麦隆 2299 49.8 67.9 62.3
    3 巴基斯坦 2370 64.6 49.9 40
    3 越南 3071 73.7 90.3 63.9
    3 印度尼西亚 3843 69.7 90.4 68.2
    待判组 日本 31267 82.3 99 85.9
    印度 3452 63.7 61 63.8
    中国 6757 72.5 90.9 69.1
    南非 11110 50.8 82.4 77

    这是在判别分析中非常经典的例题,以下给出SAS代码:

    距离判别

    data exp; 
    /*生成训练样本数据集ex_6_2_1; 数据为坐标数据*/
    input g $ name $ x1 x2 x3 x4;
    cards;
    1	美国	41890	77.9	99.5	93.3
    1	德国	29461	79.1	99.2	88
    1	希腊	23381	78.9	96	99
    1	新加坡	29663	79.4	92.5	87.3
    1	意大利	28529	80.3	98.4	90.6
    1	韩国	22029	77.9	99	96
    2	古巴	6000	77.7	99.8	87.6
    2	罗马尼亚	9060	71.9	97.3	76.8
    2	巴西	8402	71.7	88.6	87.5
    2	泰国	8677	69.6	92.6	71.2
    2	菲律宾	5137	71	92.6	81.1
    2	土耳其	8407	71.4	87.4	68.7
    3	尼泊尔	1550	62.6	48.6	58.1
    3	尼日利亚	1128	46.5	69.1	56.2
    3	喀麦隆	2299	49.8	67.9	62.3
    3	巴基斯坦	2370	64.6	49.9	40
    3	越南	3071	73.7	90.3	63.9
    3	印度尼西亚	3843	69.7	90.4	68.2
    ;
    data testexp;    /*生成待判样品数据集ex1*/
    input name $ x1 x2 x3 x4;
    cards;
    日本	31267	82.3	99	85.9
    印度	3452	63.7	61	63.8
    中国	6757	72.5	90.9	69.1
    南非	11110	50.8	82.4	77
    ;
    proc discrim  data=exp testdata=testexp testout=fexp list listerr testlist testlisterr crosslist  crosslisterr ; 
    class g;
    var x1 x2 x3 x4;
    run;
    proc print data=fexp;run;
    

    以下是程序结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Fish判别

    data exp; 
    input g $ name $ x1 x2 x3 x4;
    cards;
    1	美国	41890	77.9	99.5	93.3
    1	德国	29461	79.1	99.2	88
    1	希腊	23381	78.9	96	99
    1	新加坡	29663	79.4	92.5	87.3
    1	意大利	28529	80.3	98.4	90.6
    1	韩国	22029	77.9	99	96
    2	古巴	6000	77.7	99.8	87.6
    2	罗马尼亚	9060	71.9	97.3	76.8
    2	巴西	8402	71.7	88.6	87.5
    2	泰国	8677	69.6	92.6	71.2
    2	菲律宾	5137	71	92.6	81.1
    2	土耳其	8407	71.4	87.4	68.7
    3	尼泊尔	1550	62.6	48.6	58.1
    3	尼日利亚	1128	46.5	69.1	56.2
    3	喀麦隆	2299	49.8	67.9	62.3
    3	巴基斯坦	2370	64.6	49.9	40
    3	越南	3071	73.7	90.3	63.9
    3	印度尼西亚	3843	69.7	90.4	68.2
    ;
    proc candisc data=exp out=outcan simple;
    class g;
    var x1 x2 x3 x4;
    proc print data=outcan;
    run;
    proc plot ;
    plot  can2*can1=g; /*如果不足两个典型变量则不产生散点图*/
    run; 
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最后四个观测的归类结果为19号(日本)观测为高发展水平国家,第20号(印度)为第3类,即低发展水平国家,21号(中国)和22号(南非)归为中等发展水平国家。

    展开全文
  • 提出种非线性分类方法--基于非线性映射的Fisher判别分析(NM-PDA).首先提取基向量;然后采用Nystrom方法,以基向量...最后映射数据进行线性Fisher判别分析.实验采用7标准数据集,结果显NM-FDA具有较强的分类能力.</p>
  • SPSS(十六)SPSS之判别分析(图文+数据集)

    万次阅读 多人点赞 2019-06-08 21:31:07
    判别分析又称“分辨法”,是在分类确定的条件下,根据某研究对象的各种特征值判别其类型归属问题的种多变量统计分析方法。 聚类分析与判别分析的区别与联系 都是研究分类的,在进行聚类分析前,总体到底有几...

    SPSS(十六)SPSS之判别分析(图文+数据集)

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

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

    判别分析概述
    判别分析的一般形式:y=a1x1+a2x2+……+anxn
    非常明确共有几个类别
    目的是从已知样本中训练出判别函数

    用途
    对客户进行信用预测
    寻找潜在客户

     

    判别分析常用判别方法

    • 最大似然法

    用于自变量均为分类变量的情况

    计算出这些情况的概率组合,基于这些组合大小进行判别

    • 距离判别

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

    • Fisher判别法

    与主成份分析有关
    对分布、方差等都没有什么限制

    按照类别与类别差异最大原则提取公因子然后使用公因子判别

    • Bayes判别

    计算该样品落入各个子域的概率
    强项是进行多类判别
    要求总体呈多元正态分布

    利用贝叶斯公式,概率分布逻辑衍生出来一个判别方法,计算这个样本落入这个类别的概率,概率最大就被归为一类

     

    判别分析适用条件(有点类似多重回归分析)

    • 各自变量为连续性或有序分类变量
    • 样本来自一个多元正态总体,该前提几乎做不到
    • 各组的协方差矩阵相等,类似与方差分析中的方差齐
    • 变量间独立,无共线性
    • 违反条件影响也不大,主要看预测准不准,准的话违反也无所谓
       

     

    判别函数效果的验证方法

    利用判别分析得出判别函数,那我们怎么其效果好不好?

    • 自身验证(拿训练数据直接预测验证,但是对预测样本预测好不代表对新样本预测好)
    • 外部数据验证(收集新的数据来验证,这是最客观最有效的,但是麻烦而且两次收集的数据不一定是同质的)
    • 样本二分法(一般划分2/3为训练集,1/3为验证集,但是浪费了1/3的样本)
    • 交互验证(Cross-Validation)----刀切法(10分法,数据划分为10个集合,每次挑选一个出来做验证集,其余9个做训练集,可以做10次,因为验证集可换10种可能)

     

    案例:鸢尾花数据(Fisher判别法)

    Fisher在研究有关判别分析方法的时候所使用的资料,包含了刚毛、变色、弗吉尼亚这三种鸢尾花的花萼长、宽和花瓣长、宽,分析目的是希望能够使用这4个变量来对花的种类进行区分。
    数据集如下

    1	1	50	33	14	2
    2	3	67	31	56	24
    3	3	89	31	51	23
    4	1	46	36	10	2
    5	3	65	30	52	20
    6	3	58	27	51	19
    7	2	57	28	45	13
    8	2	63	33	47	16
    9	3	49	25	45	17
    10	2	70	32	47	14
    11	1	48	31	16	2
    12	3	63	25	50	19
    13	1	49	36	14	1
    14	1	44	32	13	2
    15	2	58	26	40	12
    16	3	63	27	49	18
    17	2	50	23	33	10
    18	1	51	38	16	2
    19	1	50	30	16	2
    20	3	64	28	56	21
    21	1	51	38	19	4
    22	1	49	30	14	2
    23	2	58	27	41	10
    24	2	60	29	45	15
    25	1	50	36	14	2
    26	3	58	37	51	19
    27	3	64	28	56	22
    28	3	63	28	51	15
    29	2	62	22	45	15
    30	2	61	30	46	14
    31	2	56	25	39	11
    32	3	68	32	59	23
    33	3	62	34	54	23
    34	3	67	33	57	25
    35	1	55	35	13	2
    36	2	64	32	45	15
    37	3	59	30	51	18
    38	3	64	32	53	23
    39	2	54	30	45	15
    40	3	67	33	57	21
    41	1	44	30	13	2
    42	1	47	32	16	2
    43	3	72	32	60	18
    44	3	61	30	49	18
    45	1	50	32	12	2
    46	1	43	30	11	1
    47	2	67	31	44	14
    48	1	51	35	14	2
    49	1	50	34	16	4
    50	2	57	26	35	10
    51	3	77	30	61	23
    52	2	57	29	42	13
    53	2	65	26	46	15
    54	1	46	34	14	3
    55	2	59	32	48	18
    56	2	60	27	51	16
    57	3	65	30	55	18
    58	1	51	33	17	5
    59	3	77	36	67	22
    60	3	76	30	66	21
    61	3	67	30	52	23
    62	2	61	28	40	13
    63	2	55	24	38	11
    64	1	52	34	14	2
    65	3	79	36	64	20
    66	1	50	35	16	6
    67	3	77	28	67	20
    68	2	55	26	44	12
    69	1	48	30	14	3
    70	1	48	34	19	2
    71	3	61	26	56	14
    72	1	58	40	12	2
    73	3	62	28	48	18
    74	2	56	30	45	15
    75	1	46	32	14	2
    76	1	57	44	15	4
    77	3	68	34	58	24
    78	3	72	30	58	16
    79	1	54	34	15	4
    80	3	64	31	55	18
    81	2	49	24	33	10
    82	1	55	42	14	2
    83	3	60	22	50	15
    84	2	52	27	39	14
    85	1	44	29	14	2
    86	2	58	27	39	12
    87	3	69	32	57	23
    88	2	59	30	42	15
    89	3	56	26	49	20
    90	3	67	25	58	18
    91	2	63	23	44	13
    92	2	63	25	49	15
    93	2	51	25	30	11
    94	3	69	31	54	21
    95	3	72	36	61	25
    96	2	56	29	36	13
    97	3	68	30	55	21
    98	1	48	30	14	1
    99	1	57	38	17	3
    100	2	66	30	44	14
    101	1	51	37	15	4
    102	2	67	30	50	17
    103	1	52	41	15	1
    104	3	60	30	48	18
    105	2	56	27	42	13
    106	1	49	31	15	2
    107	1	54	39	17	4
    108	2	60	34	45	16
    109	2	50	20	35	10
    110	1	47	32	13	2
    111	2	62	29	43	13
    112	1	51	34	15	2
    113	2	60	22	40	10
    114	1	49	31	15	1
    115	1	54	37	15	2
    116	2	61	28	47	12
    117	2	57	28	41	13
    118	1	54	39	13	4
    119	3	65	32	51	20
    120	2	69	31	49	15
    121	2	55	25	40	13
    122	1	45	23	13	3
    123	1	51	38	15	3
    124	2	68	28	48	14
    125	1	52	35	15	2
    126	3	63	33	60	25
    127	3	71	30	59	21
    128	3	63	29	58	18
    129	2	57	30	42	12
    130	3	77	26	69	23
    131	2	66	29	46	13
    132	1	50	34	15	2
    133	2	55	24	37	10
    134	1	46	31	15	2
    135	3	74	28	61	19
    136	1	50	35	13	3
    137	3	73	29	63	18
    138	2	67	31	47	15
    139	2	56	30	41	13
    140	2	64	29	43	13
    141	3	65	30	58	22
    142	1	51	35	14	3
    143	2	61	29	47	14
    144	3	64	27	53	19
    145	1	48	34	16	2
    146	3	57	25	50	20
    147	2	55	23	40	13
    148	1	54	34	17	2
    149	3	58	28	51	24
    150	1	53	37	15	2

    总共是三类

    典型判别式函数摘要:类似于提取主成分/公因子,方差的%携带了原始信息的多少百分比

    函数1:携带原始信息的99%

    函数1:携带原始信息的1%

     

    Wilks的Lambda:对函数判定有无价值的检验

    我们看到两个函数的Sig.<0.05的,所以都有统计意义

    标准化的典型判别式函数系数:判别函数如何写

    函数1=-0.346*花萼长(标准化的)-0.525*花萼宽(标准化的)+0.846*花瓣长(标准化的)+0.613*花瓣宽(标准化的)

    函数2同理就不书写了

    结构矩阵:类似于因子分析里面的载荷,判断函数与变量之间的关联

    组质心处的函数:各分类对应的中心坐标 

    但是这些结果看起来非常枯燥,有图像可以辅助

    合并图:三个类别放在一组图

    分组图:一个类别一张图

    区域图(领域图):类与类之间如何划分?两个质心的垂直平分线(文本图)

     

    验证判别函数好坏

    输出--不考虑该个案时的分类(交互验证--刀切法)

    由于判别分析师不允许有缺失值的,所以勾选上使用均值替换缺失值,但是缺失值缺失大于10%,不介意这么做

    看到其正确率为98%,是相当好的判别函数了 

     

    多元正态性的检验(BOX‘s M)

    Sig.<0.05证明多元方差齐性是不齐的,证明判别分析适用条件可以违背只要预测效果好就可以 

    单变量ANOVA:各个自变量在各类别之间是否有差异,四个Sig.<0.05,证明是有差异的

     

    非标准化的判别函数

    之前的判别函数都是标准化的,看起来不方便,输出非标准化之前的结果

    这个就可以直接写出两个判别函数了,对比一下标化的函数,多了常数项 

     

    贝叶斯判别

    对每一个类别都会给函数式,扔一个样本进去计算,哪个得分高,算哪一个类,不过这里不改先验概率等参数和典型判别分析结果是一致的 

     

     

    判别分析也可以做变量筛选(不推荐)

    一般我们做判别分析前已经做了相关的预分析

    展开全文
  • 为了克服因数据不足而造成较难提取稳定的长时特征的问题, 提出种基于群稀疏约束的混合判别分析方法。该方法首先采用高斯混合模型描述数据的分布, 在此基础上利用 2 次变分的形式进行群稀疏的表示, 得到基于群...
  • 针对利用局部化思想解决多模数据判别分析问题时,根据经验局部邻域大小进行全局统一设定,无法体现局部几何结构差异性的不足,提出种邻域自适应半监督局部Fisher判别分析(neighborhood adaptive semi-...
  • 如何使用SPSS进行判别分析

    千次阅读 2021-11-24 19:40:06
    今天将为大家讲解使用spss进行判别分析的相关步骤。 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant Analysis 主对话框 (1)选择分类变量及其范围 在主对话框中左面...

    今天将为大家讲解使用spss进行判别分析的相关步骤。

    1.Discriminant Analysis判别分析主对话框    如图 1-1 所示

     

    spss进行判别分析步骤_spss进行判别分析

    spss进行判别分析步骤_spss进行判别分析

    图 1-1    Discriminant Analysis 主对话框

    (1)选择分类变量及其范围

    在主对话框中左面的矩形框中选择表明已知的观测量所属类别的变量(一定是离散变量), 

    按上面的一个向右的箭头按钮,使该变量名移到右面的Grouping Variable 框中。

    此时矩形框下面的Define Range 按钮加亮,按该按钮屏幕显示一个小对话框如图1-2 所示,供指定该分类变量的数值范围。

    spss进行判别分析步骤_spss进行判别分析

    图 1-2   Define Range 对话框

    在Minimum 框中输入该分类变量的最小值在Maximum 框中输入该分类变量的最大值。按Continue 按钮返回主对话框。

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

    spss进行判别分析步骤_spss进行判别分析

    图 1-3    展开 Selection Variable 对话框的主对话框

    在主对话框的左面的变量表中选择表明观测量特征的变量,按下面一个箭头按钮。

    把选中的变量移到Independents 矩形框中,作为参与判别分析的变量。

    (3) 选择观测量

     

    spss进行判别分析步骤_spss进行判别分析

    图 1-4    Set Value 子对话框

    如果希望使用一部分观测量进行判别函数的推导而且有一个变量的某个值可以作为这些观测量的标识,

    则用Select 功能进行选择,操作方法是单击Select 按钮展开Selection Variable。选择框如图1-3 所示。

    并从变量列表框中选择变量移入该框中再单击Selection Variable 选择框右侧的Value按钮,

    展开Set Value(子对话框)对话框,如图1-4 所示,键入标识参与分析的观测量所具有的该变量值,

    一般均使用数据文件中的所有合法观测量此步骤可以省略。

    (4) 选择分析方法

    spss进行判别分析步骤_spss进行判别分析

    在主对话框中自变量矩形框下面有两个选择项,被选中的方法前面的圆圈中加有黑点。这两个选择项是用于选择判别分析方法的

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

    l      Use stepwise method 选项,当不认为所有自变量都能对观测量特性提供丰富的信息时,使用该选择项。因此需要判别贡献的大小,再进行选择当鼠标单击该项时Method 按钮加亮,可以进一步选择判别分析方法。

    2.Method对话框 如图 1-5 所示:

     

    spss进行判别分析步骤_spss进行判别分析

    图 1-5    Stepwise Method 对话框

    单击“Method”按钮展开Stepwise Method对话框。

    (1)Method 栏选择进行逐步判别分析的方法

    可供选择的判别分析方法有:

    l   Wilks’lambda 选项,每步都是Wilk 的概计量最小的进入判别函数

    l   Unexplained variance 选项,每步都是使各类不可解释的方差和最小的变量进入判别函数。

    l   Mahalanobis’distance 选项,每步都使靠得最近的两类间的Mahalanobis 距离最大的变量进入判别函数

    l   Smallest F ratio 选项,每步都使任何两类间的最小的F 值最大的变量进入判刑函数

    l   Rao’s V 选项,每步都会使Rao V 统计量产生最大增量的变量进入判别函数。可以对一个要加入到模型中的变量的V 值指定一个最小增量。选择此种方法后,应该在该项下面的V-to-enter 后的矩形框中输入这个增量的指定值。当某变量导致的V值增量大于指定值的变量后进入判别函数。

    (2) Criteria 栏选择逐步判别停止的判据

    可供选择的判据有:

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

    l    Use Probability of F选项,用F检验的概率决定变量是否加入函数或被剔除而不是用F值。加入变量的F值概率的默认值是0.05(5%);移出变量的F 值概率是0.10(10%)。Removal值(移出变量的F值概率) >Entry值(加入变量的F值概率)。

    (3) Display栏显示选择的内容

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

    l    Summary of steps 复选项,要求在逐步选择变量过程中的每一步之后显示每个变量的统计量。

    l    F for Pairwise distances 复选项,要求显示两两类之间的两两F 值矩阵。

    3.Statistics对话框 指定输出的统计量如图1-6 所示:

     

    spss进行判别分析步骤_spss进行判别分析

    图 1-6    Statistics 对话框

    可以选择的输出统计量分为以下3 类:

    (l) 描述统计量

    在 Descriptives 栏中选择对原始数据的描述统计量的输出:

    l  Means 复选项,可以输出各类中各自变量的均值MEAN、标准差std Dev 和各自变量总样本的均值和标准差。

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

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

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

    l  Fisherh’s 复选项,可以直接用于对新样本进行判别分类的费雪系数。对每一类给出一组系数。并给出该组中判别分数最大的观测量。

    l  Unstandardized 复选项,未经标准化处理的判别系数。

    (3) Matrices 栏:选择自变量的系数矩阵

    l  Within-groups correlation matrix复选项,即类内相关矩阵,

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

    l   Within-groups covariance matrix复选项,即计算并显示合并类内协方差矩阵,

    是将各组(类)协方差矩阵平均后计算的。区别于总协方差阵。

    l   Separate-groups covariance matrices复选项,对每类输出显示一个协方差矩阵。

    l   Total covariance matrix复选项,计算并显示总样本的协方差矩阵。

    4.Classification 对话框指定分类参数和判别结果 如图1-7 所示

    spss进行判别分析步骤_spss进行判别分析

    图 1-7    Classification 对话框

    5.Save对话框,指定生成并保存在数据文件中的新变量。如图1-8 所示:

    spss进行判别分析步骤_spss进行判别分析

    图 1-8    Save 对话框

    6.选择好各选择项之后,点击“OK”按钮,提交运行Discriminant过程。

    以上就是使用SPSS进行判别分析的相关步骤了,大家可以按照以上步骤尝试操作起来。

    展开全文
  • R语言进行判别分析

    千次阅读 2021-06-14 17:24:25
    本文中分三个方法介绍判别分析,Bayes判别,距离判别,Fisher判别。前两种判别方法都要考虑两个、或多个总体协方差(这里是算方差,方差是协方差的种)相等或不等的情况,由var.equal=的逻辑参数表示,默认是FALSE...
  • SPSS判别分析

    千次阅读 2020-12-19 00:47:13
    、定义判别分析又称“分辨法”,是在分类确定的条件下,根据某研究对象的各种特征值判别其类型归属问题的种多变量统计分析方法。二、判别分析的一般形式y=a1x1+a2x2+……+anxn(a1为系数,Xn为变量)。事先非常...
  • 16种常用的数据分析方法-判别分析

    千次阅读 2021-11-17 17:45:09
    判别分析的目的是已知分类的数据建立由数值指标构成的分类规则,然后把这样的 规则应用到未知分类的样本去分类。 例如,我们有了患胃炎的病人和健康人的一些化验指标 ,就可以从这些化验指标发现两类人的区别,...
  • 针对隧道围岩分类问题,基于Fisher判别分析理论,选用岩石质量指标、完整性指数、饱和单轴抗压强度、纵波波速、弹性抗力系数和结构面摩擦因数等6个指标作为判别因子,以30隧洞围岩数据作为学习样本进行训练,建立相应...
  • 线性判别分析用于基于一组变量把响应变量分为俩类或更多的算法。但线性判别算法对数据有一些要求: 响应变量必须是类别变量。线性判别是分类算法,因此响应变量应该是类别变量。 预测变量应遵循正太分布。首先...
  • SPSS分析技术:判别分析

    千次阅读 2020-12-13 10:57:45
    数据处理中,有这样种情况:现在已经有若干样本被正确地分类了,但不清楚分类的依据是什么。...判别分析是为了解决未来个案归属问题而提出的数据分类技术,它基于已有的分类个案寻求有效...
  • 本文考虑了时间、天气、出行日期等多因素的影响,选用车速、密度作为高速公路服务水平 评价指标,结合最小二乘支持向量机与聚类分析相关算法,提出了种基于多维数据的高速 公路服务水平实时判别模型,以实现高速...
  • Matlab聚类分析/判别分析

    千次阅读 2019-07-09 14:56:43
    、聚类分析/判别分析 二、分类数的确定原则 三、Matlab系统聚类 四、K-均值聚类(K-means聚类) 五、Matlab判别分析 1.距离判别法 2.贝叶斯判别 、聚类分析/判别分析 聚类分析就是把没有分类信息的资料...
  • 、导入数据并查看数据情况: 1、数据总体状况: 其中Group表示病人胃病...可以看到数据的分布没有特别的离异点,也没有缺失值和不合理的分布,从而可以用该数据做接下来的距离判别分析。 4、由于后续做判别...
  • 医务工作者的医学统计词典品质源于专注 服务源于真心在SPSS中进行Fisher判别分析的具体操作及研究意义关键词:SPSS、判别分析导 读临床研究中,常常需要根据患者的主诉、体征、检查结果等作出诊断,如对于腹痛的患者...
  • 线性判别分析(Linear Discriminate Analysis, LDA)通过正交变换将一组可能存在相关性的变量降维变量,目标是将高维数据投影至低维后,同类的数据之间距离尽可能近、不同类数据之间距离尽可能远。 应用场景: ...
  • 判别分析

    千次阅读 2020-07-22 18:08:34
    判别分析是在已知分类的前提下,将给定的新样品按照某种分类规则判入某个类中,它是研究如何将个体"归类”的种统计分析方法。 多重共线性:在解释变量中,有某解释变量可由其他解释变量线性表出。 多重共...
  • 在故障诊断中,我们常常会面对大量的且维数很高的数组,通过我们需要先对数据进行划分及预处理,而预处理阶段极为重要的一步就是对数据进行降维特征提取,通过某种数学变换将原始高维空间转变成一个低维的子空间。...
  • 我们要将数据在低维度上进行投影,投影后希望每种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。 二、LDA vs PCA LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此...
  • 文章目录判别分析判别分析的基本思想距离判别两总体情况多总体情况贝叶斯判别费歇判别逐步判别 判别分析 本章介绍的判别分析适用于被解释变量是非度量变量的情形。在这种情况下,人们对于预测和解释影响个对象...
  • matlab距离判别分析的应用

    千次阅读 2019-07-25 19:25:50
    距离判别法:距离判别分析方法是判别样品所属类别的应用性很强的多因素决方法,其中包括两个样本总体距离判别法,多个样本距离判别法。 多个总体距离判别法:多个总体距离判别法是距离判别法的种,是两个总体距离...
  • 通过判别分析对数据中的变量的各类特征值判别确定其类型属性。 实验内容: 为研究某地区人口死亡状况,已按某种方法将15个一直样品分为3类,指标及原始数据如下,试建立判别函数并判定另外4个待判样品属于哪类。...
  • spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant Analysis 主对话框 (1)选择分类变量及其范围 在主对话框中...
  • 为了验证模型的有效性,首先利用15实测数据作为学习样本模型进行训练,采用回代估计法检验模型的有效性,回判的误判率为0,然后将建立的模型应用于同一地区的实际工程数据判别中,判别效果较好。结果表明,FDA模型简单...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,531
精华内容 12,212
关键字:

对一组数据进行判别分析