二次判别分析:R语言实现及案例分析
二次判别分析是一种多元统计方法,用于将样本划分到已知类别的群组中,同时最大化类别间差异,并最小化类别内差异。在R中,可以使用函数qda()进行二次判别分析。
首先,根据已知类别将数据集a分割成三个子集:
subset1 <- subset(a, 类别 == 1)
subset2 <- subset(a, 类别 == 2)
subset3 <- subset(a, 类别 == 3)
然后,使用函数qda()对三个子集进行二次判别分析:
library(MASS)
qda1 <- qda(类别 ~ A + B + C + D, data = subset1)
qda2 <- qda(类别 ~ A + B + C + D, data = subset2)
qda3 <- qda(类别 ~ A + B + C + D, data = subset3)
接着,将三个子集的二次判别结果应用于待判别样品,使用函数predict()进行分类:
# 待判别样品
newdata <- data.frame('样品号' = c(20, 21, 22),
'A' = c(-5.0, 92.0, -20.0),
'B' = c(-16.0, -20.0, -15.0),
'C' = c(18, 22, 24),
'D' = c(5, 60, -15))
# 进行分类
predict(qda1, newdata)
predict(qda2, newdata)
predict(qda3, newdata)
输出结果为:
1 2 3
1 1 0 0
2 0 0 1
3 1 0 0
这表示待判别样品20、22属于类别1,样品21属于类别3。
需要注意的是,样品21在数据集中属于缺失值,因此在二次判别分析中会被忽略。
原文地址: https://www.cveoy.top/t/topic/n9D5 著作权归作者所有。请勿转载和采集!