判别分析
基本介绍
判别分析是多变量统计分析中用于判别样品所属类型的一种统计分析方法,用于研究在一些已知研究对象已经用某种方法分成若干类的情况下,确定新的样品属于已知类别中的哪一类的问题。
其基本思想是:按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标,从而确定某一样本属于何类。
主要分类
判别分析方法 { 距离判别 线性判别 非线性判别 } ( 属 于 确 定 性 判 别 ) 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=a′X.
步骤
- 求Fisher线性判别函数
分离度 λ \lambda λ要求:
λ
=
(
Y
1
‾
−
Y
2
‾
)
2
S
p
2
\lambda=\frac{(\overline{Y_1}-\overline{Y_2})^2}{S_p^2}
λ=Sp2(Y1−Y2)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+n2−2(n1−1)S12+(n2−1)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之间的分离度达到最大。
- 计算判别界值 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)
- 建立判别标准
{ 当 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,则X∈G1,否则X∈G2;当Y1>Y2时,若Y<Y0,则X∈G2,否则X∈G1;当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),则X∈G1;当D(X,G1)>D(X,G2),则X∈G2;当D(X,G1)=D(X,G2),待判.
R实现
使用二次判别函数qda()进行判别分析。
多总体距离判别
可分为协方差矩阵相同和协方差矩阵不同两种情况。
Bayes判别法
由于上述的判别方法存在两个缺点:未考虑概率以及错判后造成的损失,Bayes判别则考虑了上述的两个因素。
判别准则:以个体归属于某类的概率(或某类的判别函数值)最大或错判总平均损失最小。
正态总体的Bayes判别
同样考虑协方差矩阵是否相等的情况。
主要参考
[1]《多元统计分析及R语言建模(第四版)》王斌会。
本文深入探讨了判别分析的基本概念,介绍了线性判别分析、距离判别和Bayes判别法,详细讲解了每种方法的计算步骤和R语言实现,为读者提供了丰富的实例和理论知识。
202

被折叠的 条评论
为什么被折叠?



