其他
R包ade4的模糊主成分分析(FPCA)及模糊对应分析(FCA)
library(ade4)
#查看帮助文档
?dudi.fpca
#或者
?dudi.fca
#二者弹出的是同一篇文档,作者将两个命令放在一起介绍了
R文档中间部分的参数信息,可自行浏览。
查看最下方的示例,简介分析方法。使用ade4自带的数据集“bsetal97”展示。
data(bsetal97)w <- prep.fuzzy.var(bsetal97$biol, bsetal97$biol.blo)
#注:FPCA 或 FCA 前,缺失值需要首先全部转为 0
#FPCA
fpca <- dudi.fpca(w, scann = FALSE, nf = 3)
#FCA
fca <- dudi.fca(w, scann = FALSE, nf = 3)
#概要,以 FPCA 为例
fpca
summary(fpca)
参数nf = 3,在排序结果中显示3个排序轴的坐标(实际计算还是将得到全部的排序轴,该参数仅为在全部结果中提取前n轴的坐标作为展示而已),若想展示更多的排序轴(如第四轴等),可更改此参数,此处示例只展示前3个轴。
dudi.fpca()或dudi.fca()返回一个类列表,记录了排序空间维度、排序坐标(对象,li;变量因子,co)、特征值(Eigenvalues)、解释量(Projected inertia)、累计解释量(Cumulative projected inertia)等信息。
#查看特征值(显示前 4 轴)
fpca$eig[1:4]
#查看排序轴解释量(%,显示前 4 轴)
round(fpca$eig / sum(fpca$eig) * 100, 2)[1:4]
#对象和变量坐标
#上述 dudi.fpca() 中,参数 nf = 3,故默认显示了前三个排序轴
head(fpca$li)
head(fpca$co)
#断棍模型评估各轴特征值
fpca_eig <- fpca$eig
n <- length(fpca_eig)
bsm <- data.frame(j=seq(1:n), p = 0)
bsm$p[1] <- 1/n
for (i in 2:n) bsm$p[i] <- bsm$p[i-1] + (1/(n + 1 - i))
bsm$p <- 100*bsm$p/n
barplot(t(cbind(100 * fpca_eig/sum(fpca_eig), bsm$p[n:1])), beside = TRUE, main = '% 变差', col = c('orange', 'bisque'), las = 2)
abline(h = mean(100 * fpca_eig/sum(fpca_eig)), col = 'red')
legend('topright', c('% 特征根', '断棍模型', '平均特征根'), pch = c(15, 15, NA), col = c('orange', 'bisque', 'red'), lwd = c(NA, NA, 1), bty = 'n')
ade4自带了一些可视化函数,如:
#scatter() 可视化scatter(fpca, csub = 3, clab.moda = 1.5)
scatter(fca, csub = 3, clab.moda = 1.5)
对应分析(CA)和去趋势对应分析(DCA)在群落分析中的应用