多元统计分析:判别分析

2022-04-01 13:56:31 浏览数 (2)

简介

步骤

1. Fisher 判别(线性判别)

代码语言:javascript复制
fd4 <- lda(G~x1 x2 x3 x4, d4_uni);fd4
print('------------------------------------')
predict(fd4)$class  # 预测结果
print('------------------------------------')
ftab4 <- table(predict(fd4)$class, d4_uni$G);ftab4  # 判别矩阵
print('------------------------------------')
sum(diag(ftab4))/sum(ftab4) # 判对率

2. 非线性判别

代码语言:javascript复制
qd4 <- qda(G~x1 x2 x3 x4,d4_uni)    # 注意: 非线性判别使用 qda(),线性判别使用 lda()
qtab4 <- table(predict(qd4)$class, d4_uni$G);qtab4  # 判别矩阵
print('------------------------------------')
sum(diag(qtab4))/sum(qtab4) # 判对率

3. Bayes 判别

代码语言:javascript复制
bd4 <- lda(G~x1 x2 x3 x4,d4_uni,prior=c(1,1)/2);bd4
print('------------------------------------')
btab4 <- table(predict(bd4)$class, d4_uni$G);btab4 # 判别矩阵
print('------------------------------------')
sum(diag(btab4))/sum(btab4) # 判对率

PS: Bayes 判别 也使用 lda() 函数,但需要给出先验概率。 在进行 Bayes判别时,假定各类协方差阵相同,此时判别函数为线性。 先验概率 相等的 Bayes判别模型 ,此时判别函数类似于 Fisher 线性判别函数

4. 预测

代码语言:javascript复制
predict(fd4, newdata=data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))$class
predict(qd4, newdata=data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))$class
predict(bd4, newdata=data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))$class

案例

企业财务状况的判别分析

代码语言:javascript复制
library(openxlsx)

Case6 = read.xlsx("../Res/mvcase5.xlsx", 'Case6');Case6
代码语言:javascript复制
plot(Case6[,2:5], gap = 0)
代码语言:javascript复制
library(MASS)

ld = lda(G~., data = Case6);ld # 线性判别
plot(ld)
代码语言:javascript复制
Zld = predict(ld);Zld

data.frame(Case6$G, Zld$class, round(Zld$x, 3))
代码语言:javascript复制
tab1 = table(Case6$G, Zld$class);tab1
代码语言:javascript复制
sum(diag(tab1)) / sum(tab1)
代码语言:javascript复制
addmargins(tab1)
代码语言:javascript复制
qd = qda(G~., data = Case6);qd # 二次判别
代码语言:javascript复制
Zqd = predict(qd);Zqd # 预测
代码语言:javascript复制
data.frame(Case6$G, Zqd$class, round(Zqd$post, 3) * 100)
代码语言:javascript复制
tab2 = table(Case6$G, Zqd$class);tab2 # 判对阵
代码语言:javascript复制
sum(diag(tab2)) / sum(tab2) # 判对率
代码语言:javascript复制
addmargins(tab2)

Q&A

补充

参考

  • 本文作者: yiyun
  • 本文链接: https://moeci.com/posts/分类-数据分析/分类-杂记/discriminant-analysis/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

0 人点赞