R 判别分析

article/2025/9/17 19:33:34

判别分析

  • 1. 数据描述
  • 2. 调入数据
  • 3.Fisher线性判别
    • 3.1 计算Fisher线性判别函数
    • 3.2 根据线性判别模型对原数据进行预测,并分析预测结果。
    • 3.3 对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)进行判定。
  • 4.距离判别(协方差矩阵不相等时二次判别)
    • 4.1根据二次判别模型对原数据进行预测,并分析预测结果。
    • 4.2对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)进行判定。
  • 5. Bayes判别
    • 5.1 先验概率相等的Bayes判别(prior=c(1,1)/2),包括判别模型,回判结果,判对率。
    • 5.2 先验概率不相等的Bayes判别(prior=c(2,3)/5),包括判别模型,回判结果,判对率。
    • 5.3对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)分别在两种情况下进行判定。

1. 数据描述

对21个破产企业收集它们在破产前两年的财务数据,对25个财务良好的企业也收集同一时期的数据。数据涉及四个变量:
CF_TD(现金流量/总债务);
NI_TA(净收入/总资产);
CA_CL(流动资产/流动债务);
CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。

2. 调入数据

操作步骤:

Case5=read.table("clipboard",header=T) #加载数据
attach(Case5)#绑定数据

结果:
在这里插入图片描述

结果解释:
将数据以剪切板进行加载数据。

3.Fisher线性判别

3.1 计算Fisher线性判别函数

操作步骤:

library(MASS)
(ld=lda(G~CF_TD+NI_TA+CA_CL+CA_NS))#线性判别模型
ld #查看函数结果

结果:
在这里插入图片描述

结果解释:
使用lda函数求线性判别模型

3.2 根据线性判别模型对原数据进行预测,并分析预测结果。

操作步骤:

Z=predict(ld)#根据线性判别模型预测所属类别
names(Z)
newG=Z$class#预测的所属类别结果
cbind(G,Z$x,newG)#显示结果
(tab=table(G,newG))#混淆矩阵        
sum(diag(prop.table(tab)))#判对率   

结果:
在这里插入图片描述

结果解释:
根据线性判别模型预测所属类别,然后预测的所属类别结果。

3.3 对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)进行判定。

操作步骤:

predict(ld,data.frame(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)) #判定

结果:
在这里插入图片描述

结果解释:
对新的样本数据进行判定

4.距离判别(协方差矩阵不相等时二次判别)

4.1根据二次判别模型对原数据进行预测,并分析预测结果。

操作步骤:

library(MASS)
qd=qda(G~CF_TD+NI_TA+CA_CL+CA_NS);qd#协方差矩阵不相等时用二次判别
cbind(G,newG=predict(qd)$class)

结果:
在这里插入图片描述

结果解释:
当协方差矩阵不相等时用二次判别

4.2对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)进行判定。

操作步骤:

predict(qd,data.frame(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62))

结果:
在这里插入图片描述

结果解释:
对新的样本数据进行预测分类结果

5. Bayes判别

5.1 先验概率相等的Bayes判别(prior=c(1,1)/2),包括判别模型,回判结果,判对率。

操作步骤:

#beyes
(ld1=lda(G~CF_TD+NI_TA+CA_CL+CA_NS,prior=c(1,1)/2))#先验概率相等的Bayes判别模型
Z1=predict(ld1)#预测所属类别        
cbind(G,round(Z1$x,3),newG=Z1$class)#显示结果 
table1=table(G,Z1$class)#混淆矩阵
round(Z1$post,3) #ld1模型后验概率
sum(diag(prop.table(table1)))#判对率 

结果:
在这里插入图片描述

结果解释:
求先验概率相等的Bayes判别模型,然后预测所属分类,求判对率,判对率为0.913

5.2 先验概率不相等的Bayes判别(prior=c(2,3)/5),包括判别模型,回判结果,判对率。

操作步骤:

(ld2=lda(G~CF_TD+NI_TA+CA_CL+CA_NS,prior=c(2,3)/5))#先验概率不相等的Bayes判别模型        
Z2=predict(ld2)#预测所属类别
cbind(G,round(Z2$x,3),newG=Z2$class)#显示结果
table2=table(G,Z2$class)#混淆矩阵
round(Z2$post,3) #ld2模型后验概率
sum(diag(prop.table(table2)))#判对率

结果:
在这里插入图片描述

结果解释:
求先验概率不相等的Bayes判别模型,,然后预测所属分类,求判对率,判对率为0.869

5.3对新的数据(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62)分别在两种情况下进行判定。

操作步骤:

predict(ld1,data.frame(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62))  # ld1模型的判定
predict(ld2,data.frame(CF_TD=0.31,NI_TA=0.06, CA_CL=4.23, CA_NS=0.62))  # ld2模型的判定

结果:
在这里插入图片描述

结果解释:
分别使用先验概率相等的贝叶斯模型和先验概率不相等的贝叶斯模型对新的相同数据进行预测,发现判定类别相同,都为1,但是两个归为1类的后验概率不相同。


http://chatgpt.dhexx.cn/article/yAiVlN9n.shtml

相关文章

16种常用的数据分析方法-判别分析

判别分析又称为线性判别分析(Linear Discriminant Analysis)。产生于20世纪30年代,是利用已知类别的样本建立判别模型,为未知类别的样本判别的一种统计方法。 ​ 判别分析方法目的与特点 目的 判别分析的目的是对已知分类的数据建…

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

SPSS(十六)SPSS之判别分析(图文数据集) 判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。 聚类分析与判别分析的区别与联系 都是…

HTML5清除浮动方式,多种方式CSS清除浮动

以下展示了四种方式进行清除浮动 先看一段代码 css .box { border: 1px solid #f00; } .fl { float: left; width: 50px; height: 50px; background: #0f0; margin: 5px; } html 下面是结果 效果展示 因为没有清除浮动,所以子元素没有将父元素撑开,出现上…

清除浮动的四种方式及其原理

前言: 什么是浮动,浮动给我们造成了什么困扰,我们该使用什么方式来解决它。下面会介绍到为什么要清除浮动以及清除浮动的四种方式。 目录: 前言:一、为什么要清除浮动二、清除浮动的第一种方式---给父级盒子添加高度三、清除浮动…

清除浮动的五种方法详解

前言:   在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度&…

清除浮动的几种方法

浮动的布局比标准流高了半个层级,因此它并不占标准流下,如果子元素浮动了,父元素又没有设置高度,此时子元素无法撑开盒子,就如同下面这种情况 没加浮动之前 给son加上浮动之后 可以看到,父元素pink的颜色消…

BFC以及清除浮动四种方式

什么是BFC 先了解常见的三种定位方案: bfc是普通流: 可以将bfc看作是一个属性 2.如何触发bfc 1.根元素() 2.浮动元素(元素的float不是none) 3.绝对定位元素(元素的position为absolute 或 fixed) 4.display为inline-block、tabl…

html清除浮动有几种方法,HTML中清除浮动的几种方法

清除float的常见几种方式: 清除浮动方法(1)在浮动元素后面使用一个空的自身清除浮动的元素。 例如 实例:清除容器中子元素的浮动,让父元素塌陷的高度恢复。 CSS代码: .content{width:100px; border:1px dotted red; } .div-test{width:100px; height:100px; border:1px dot…

css清除浮动的几种方式

前言: CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。 Float(浮动),往往是用于图像,但它在布局时一样非常有用。 css浮动 但是使用了 float …

清除浮动的4种方式

为什么要清除浮动? 清除浮动主要是为了解决,父元素因为子级元素浮动引起的内部高度为0的问题 如下: 给父盒子设置一个boder,内部放两个盒子一个big 一个small,未给big和small设置浮动,则他们会默认撑开父盒子。 当我给…

左联,右联和内联的区别(图示)

感谢midy! 转载于:https://www.cnblogs.com/0633shj/archive/2008/05/12/1193660.html

左联接、右联接、内联接、自然联接

前几日面试。面试小哥问我左联接、右联接是什么。一时语塞。好像根本没用到过,也就没在意过,一直都是简单的自然连接。 左联接:也叫左外联接。就是以左表为主,右表为辐,ON 后跟的条件对右表生效。结果中包含全部左表数…

SQL的左联,右联,内联的关系

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大家能带来帮助。 首先,我们创建示例数据库和表。同时…

sql语句中内联左联右联的区别?

内联查询: inner join ... on ... ,不以谁为主,列出满足条件的查询结果集; 左联查询:left join .... on ... , 以昨表为主,列出满足条件的结果集; 右联查询:right join…

SQL内联、左联、右联、全联查询语法

概述:   联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right outer join 、全联full outer join 的好处及用法。   联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联…

mysql多表左联分组查询

在做项目的时候需要实现一个多表左联加分组查询的逻辑。 下图是前端要显示的数据: 数据来源于三张表: ETC表:cap_etc车辆表:cap_vehicleETC消费表:cap_etc_record 下图是后台的三张数据表: cap_etc: ca…

左联右联内联

left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。 right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。 inner join (等值连接或者叫内连接…

uniapp使用scroll-view实现菜单的左联右和右联左

左联右 <!-- 左 菜品分类--><view class"order-left"><scroll-view scroll-y"true" class"scroll-Hei" :scroll-with-animation"true" :enhanced"true":show-scrollbar"false"><block v-fo…

join操作-内联,左外联,右外联,交叉联,全联

在数据库中新建三张表格&#xff1a; T1 T2 T3 普通查询&#xff1a; select * from T1, T3 where T1.user_id T3.user_id 结果&#xff1a; --------------------------------------------------------------- join就是把两张表格等效当做一张表来查 内联(inner join)&a…

mysql的左联、右联、内联查询

内联查询&#xff1a;where会作用到两张表 左联查询&#xff1a;where作用在右表&#xff0c;左表全部数据都会被检索出来&#xff0c;右表只有满足where里面条件的才会被检索出来 右联查询&#xff1a;where作用在左表&#xff0c;右表全部数据都会被检索出来&#xff0c;左表…