R语言学习笔记(八)判别分析

本文深入探讨了判别分析的基本概念,介绍了线性判别分析、距离判别和Bayes判别法,详细讲解了每种方法的计算步骤和R语言实现,为读者提供了丰富的实例和理论知识。

判别分析

基本介绍

判别分析是多变量统计分析中用于判别样品所属类型的一种统计分析方法,用于研究在一些已知研究对象已经用某种方法分成若干类的情况下,确定新的样品属于已知类别中的哪一类的问题。

其基本思想是:按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标,从而确定某一样本属于何类。

主要分类

判别分析方法 { 距离判别 线性判别 非线性判别 } ( 属 于 确 定 性 判 别 ) Bayes判别(属于概率性判别) \text{判别分析方法} \begin{cases} \left. \begin{aligned} &\text{距离判别}\\ &\text{线性判别}\\ &\text{非线性判别} \end{aligned} \right\}(属于确定性判别) \\ \text{Bayes判别(属于概率性判别)} \end{cases} 判别分析方法距离判别线性判别非线性判别()Bayes判别(属于概率性判别)

线性判别分析

设欲建立的线性判别函数为: Y = a 1 X 1 + a 2 X 2 + ⋯ + a p X p = a ′ X Y=a_1X_1+a_2X_2+\cdots+a_pX_p=a'X Y=a1X1+a2X2++apXp=aX.

步骤

  1. 求Fisher线性判别函数

分离度 λ \lambda λ要求:

λ = ( Y 1 ‾ − Y 2 ‾ ) 2 S p 2 \lambda=\frac{(\overline{Y_1}-\overline{Y_2})^2}{S_p^2} λ=Sp2(Y1Y2)2
其中 S p 2 S_p^2 Sp2为合并协方差矩阵,且

S p 2 = ( n 1 − 1 ) S 1 2 + ( n 2 − 1 ) S 2 2 n 1 + n 2 − 2 S_p^2=\frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2} Sp2=n1+n22(n11)S12+(n21)S22

S 1 2 S_1^2 S12 S 2 2 S_2^2 S22为各组的协方差矩阵。

Fisher判别目的是选择合适的 x x x的线性组合,使得均值 Y 1 ‾ \overline{Y_1} Y1 Y 2 ‾ \overline{Y_2} Y2之间的分离度达到最大。

  1. 计算判别界值 Y 0 Y_0 Y0

Y 0 = a ′ ( X 1 ‾ + X 2 ‾ ) 2 Y_0=\frac{a'(\overline{X_1}+\overline{X_2})}2 Y0=2a(X1+X2)

  1. 建立判别标准

{ 当 Y 1 ‾ < Y 2 ‾ 时 ,   若 Y < Y 0 ,   则 X ∈ G 1 ,   否则 X ∈ G 2 ; 当 Y 1 ‾ > Y 2 ‾ 时 ,   若 Y < Y 0 ,   则 X ∈ G 2 ,   否则 X ∈ G 1 ; 当   Y = Y 0   时 ,   待判 . \begin{cases} \text{当}\overline{Y_1}<\overline{Y_2}\text{时},\,\text{若}Y<Y_0,\,\text{则}X\in G_1,\,\text{否则}X\in G_2;\\ \text{当}\overline{Y_1}>\overline{Y_2}\text{时},\,\text{若}Y<Y_0,\,\text{则}X\in G_2,\,\text{否则}X\in G_1;\\ \text{当}\,Y=Y_0\,\text{时},\,\text{待判}.\\ \end{cases} Y1<Y2,Y<Y0,XG1,否则XG2;Y1>Y2,Y<Y0,XG2,否则XG1;Y=Y0,待判.

R语言实现

使用R语言进行线性判别的函数lda()

lda(formula, data, ...)
# 导入数据
d6.1 <- read.csv("d6.1.csv"); 
attach(d6.1)
plot(x1, x2)
text(x1, x2, G, adj=-.5)
library(MASS)
# 线性判别模型
lda.sol <- lda(G~x1+x2)
lda.sol
Z <- predict(lda.sol)
newG<- Z$class # 得到预测的所属类别结果
cbind(G, Z$x, newG) # 按列组合并显示对应的预测结果
sum(diag(prop.table(tab))) # 计算符合率

距离判别法

其思想是:根据已知分类的数据,分别计算各类的重心,即各组的均值。

其准则是:对任给的一次观测,若它与第 i i i类的重心距离最近,就认为它来自第 i i i类。

两总体距离判别

按距离最近准则判别归类,即:

{ 当 D ( X ,   G 1 ) < D ( X ,   G 2 ) ,   则 X ∈ G 1 ; 当 D ( X ,   G 1 ) > D ( X ,   G 2 ) ,   则 X ∈ G 2 ; 当 D ( X ,   G 1 ) = D ( X ,   G 2 ) ,   待判 . \begin{cases} \text{当}D(X,\,G_1)<D(X,\,G_2),\,\text{则}X\in G_1;\\ \text{当}D(X,\,G_1)>D(X,\,G_2),\,\text{则}X\in G_2;\\ \text{当}D(X,\,G_1)=D(X,\,G_2),\,\text{待判}.\\ \end{cases} D(X,G1)<D(X,G2),XG1;D(X,G1)>D(X,G2),XG2;D(X,G1)=D(X,G2),待判.

R实现

使用二次判别函数qda()进行判别分析。

多总体距离判别

可分为协方差矩阵相同和协方差矩阵不同两种情况。

Bayes判别法

由于上述的判别方法存在两个缺点:未考虑概率以及错判后造成的损失,Bayes判别则考虑了上述的两个因素。

判别准则:以个体归属于某类的概率(或某类的判别函数值)最大或错判总平均损失最小。

正态总体的Bayes判别

同样考虑协方差矩阵是否相等的情况。

主要参考

[1]《多元统计分析及R语言建模(第四版)》王斌会。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zorchp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值