判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

这篇具有很好参考价值的文章主要介绍了判别分析之Fisher判别、Bayes判别、距离判别的R实现案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        某企生产的产品,其造型、性能和价位及所属级别数据如下表所示:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

某企业产品的造型、性能、价位、级别等指标

  题目来自《多元统计分析-基于R》课后习题

          下面分别用Fisher判别法和Bayes判别法进行判别分析。

           先进性Fisher判别,R程序如下:

#Fisher判别
ex5.3<-read.csv("ex5.3.csv",header = T)
ex5.3
library(MASS) #加载MASS程序包,以便使用其中lda函数
ld=lda(G~x1+x2+x3,data=ex5.3)
ld

       运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

       程序输出了lda()所用的函数,各组的先验概率,各组的均值向量,第一及第二判别函数的系数

,两个判别2函数对判别的贡献大小。

下面我们用predict()函数对原始数据进行回判,将lda()函数的分类与原数据分类进行对比,考察误差的大小,R程序如下:

Z=predict(ld)
Z
newG=Z$class
cbind(G=ex5.3[,4],newG,Z$post)

       运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

        运行结果G列表示原始数据分类,newG表示回判分类,,后三列给出了每个样本判如每个类的后验概率。Fisher判别法把样本判如后验概率最大的那一类,这也是3、6、8、13误判的原因。

若需要进一步判别两个新产品的类别,它们的指标分别为(17,46,79),(77,54,84),利用predict()函数对它们进行判别,R程序如下:

newdata=data.frame(x1=c(17,77),x2=c(46,54),x3=c(79,84))
(predict(ld,newdata))

        运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

        判别结果表明,这两个产品分别被判入了第一类和第二类。

下面进行Bayes判别,R程序如下:

ex5.3<-read.csv("ex5.3.csv",header = T)
attach(ex5.3)
library(MASS) #加载MASS程序包,以便使用其中lda函数
ld=lda(G~x1+x2+x3,prior=c(5,9)/14) #用先验概率进行判别
ld

        运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

       再用predict进行回判,并且与原始数据分类对比:

Z=predict(ld)
newG=Z$class
cbind(G,newG,Z$post,Z$x)

        运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

        运行结果表明,第3、6、8、13组样本被误判 ,若需要进一步判别两个新产品的类别,它们的指标分别为(17,46,79),(77,54,84),利用predict()函数对它们进行判别,R程序如下

若需要进一步判别两个新产品的类别,它们的指标分别为(17,46,79),(77,54,84),利用predict()函数对它们进行判别,R程序如下

        运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

         两个新产品分别被判如第一类和第三类,第二个产品的判别结果与Fisher判别的判别结果不同。

下面式距离判别案例

        根据经验今天和昨天的湿温差x1和气温差x2是预报明天下雨或者不下雨的重要因子,根据下表数据用距离判别法进行判别:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

       R程序如下:

# 距离判别
setwd("D:/学习资料/R软件/多元统计分析 基于R》  14797268/多元统计分析——基于R(第2版) R-data")
ex5.2<-read.csv("ex5.2.csv",header = T)
classG1=ex5.2[1:10,2:3]
classG2=ex5.2[11:17,2:3]
newdata=ex5.3[1:20,2:3]

#进行距离判别
source("DDA2.R") #载入自编程序DDA2.R
DDA2(classG1,classG2)

       运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

       下面对newdata进行判定,R程序如下:

#进行距离判别
source("DDA2.R") #载入自编程序DDA2.R
DDA2(classG1,classG2,newdata)

        运行结果如下:

判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

 第18,19,20号样本都被分入第二类,与原始数据分类一致。

附录:DDA2.R程序文章来源地址https://www.toymoban.com/news/detail-453595.html

 DDA2<-function (TrnG1, TrnG2, TstG = NULL, var.equal = FALSE){
    if (is.null(TstG) == TRUE) TstG<-rbind(TrnG1,TrnG2)
    if (is.vector(TstG) == TRUE)  TstG<-t(as.matrix(TstG)) else if (is.matrix(TstG) != TRUE)
       TstG<-as.matrix(TstG)
    if (is.matrix(TrnG1) != TRUE) TrnG1<-as.matrix(TrnG1)
    if (is.matrix(TrnG2) != TRUE) TrnG2<-as.matrix(TrnG2); 
    nx<-nrow(TstG)
    blong<-matrix(rep(0, nx), nrow=1, byrow=TRUE, dimnames=list("blong", 1:nx))
    mu1<-colMeans(TrnG1); mu2<-colMeans(TrnG2) 
    if (var.equal == TRUE  || var.equal == T){
        S<-var(rbind(TrnG1,TrnG2))
       w<-mahalanobis(TstG, mu2, S)-mahalanobis(TstG, mu1, S)
        } else{
        S1<-var(TrnG1); S2<-var(TrnG2)
       w<-mahalanobis(TstG, mu2, S2)-mahalanobis(TstG, mu1, S1)
        }
    for (i in 1:nx){if (w[i]>0) blong[i]<-1 else blong[i]<-2}; blong
}

到了这里,关于判别分析之Fisher判别、Bayes判别、距离判别的R实现案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【应用多元统计分析】CH5 判别分析3——贝叶斯判别

    目录 前言——距离判别不适合的一个例子 一、最大后验概率法  1.含义 ​编辑 2.【例5.3.1】 3.先验概率的赋值方法 4.皆为正态组的情形 (1)先验概率相等,协方差矩阵相等时 (2)仅先验概率相等时 (3)仅协方差矩阵相等时  5.【例5.3.2】 二、最小期望误判代价法 1.例子

    2024年02月12日
    浏览(51)
  • 线性判别分析(LDA)

    线性判别分析(Linear Discriminant Analysis,简称LDA)是一种常用的多元统计分析方法,通常被用于分类和特征提取。它的目的是在给定一组带有标签的数据的情况下,找到一个线性变换,将数据投影到一个低维空间中,使得不同类别的数据点在该低维空间中能够更加容易地区分开

    2024年02月03日
    浏览(66)
  • 线性判别分析(LDA)详解

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、LDA简介 二、数学原理(以二分类为例子) 1、设定 2、每一类的均值和方差 3、目标函数 4、目标函数的求解 5、最终的实践所求 三、多分类LDA 四、

    2023年04月15日
    浏览(36)
  • 【多元统计分析】判别分析——SPSS上机实验

    参考文献:何晓群.《多元统计分析》中国人民大学出版社第五版(82-105) 公众号中还有更多的理论知识、个人笔记整理和资源放送,欢迎阅读哦~ 通过判别分析,对数据中的变量的各类特征值判别确定其类型属性。 为研究某地区人口死亡状况,已按某种方法将15个一直样品分为

    2024年02月04日
    浏览(40)
  • 线性判别分析法(LDA)

            在主成分分析法(PCA)中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有

    2023年04月08日
    浏览(43)
  • 线性判别分析LDA计算例题详解

    线性判别分析 (Linear Discriminant Analysis, LDA) 的核心思想是:将给定训练集投影到特征空间的一个超平面上,并设法使同类样本投影点尽可能接近,异类样本投影点尽可能远离 由于做题时针对的是解题过程,因此原理相关方面省略,具体可参考👉从协方差的角度详解线性判别分

    2024年02月02日
    浏览(46)
  • 基于spss的多元统计分析 之 聚类分析+判别分析(3/8)

    实验目的: 1. 掌握多元数据的相关性、正态性、可视化表征的基本原理; 2.熟悉掌握SPSS软件/R软件的基本用法和基本操作; 3.利用实验指导中及软件中内置的实例数据,上机熟悉相关性检验+正态性检验+可视化数据方法。 实验内容: 1.实验数据为女性汗液+ 32名学生核心课

    2024年02月09日
    浏览(37)
  • 机器学习之线性判别分析(Linear Discriminant Analysis)

    线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的监督学习算法,也称\\\"Fisher 判别分析\\\"。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用。 LDA的核心思想是给定训练样本集,设法将样例投影到一条直线上。使得同类样例的

    2024年02月15日
    浏览(38)
  • R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析

    在自然和社会科学领域有大量与地理或空间有关的数据,这一类数据一般具有严重的空间异质性,而通常的统计学方法并不能处理空间异质性,因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法:经典地理加权回归,半参数地理加权回归、多尺度地理加权回

    2024年02月14日
    浏览(47)
  • 数学建模-最优包衣厚度终点判别法(主成分分析)

    💞💞 前言 hello hello~ ,这里是viperrrrrrr~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:viperrrrrrr的博客 💥 欢迎学习数学建模算法、大数据、前端等知识,让我们一起向目标进发!        包衣是将片剂的外表面均匀地包裹上一层衣膜的过程,旨在控制药

    2024年04月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包