【发布时间】:2020-11-04 22:15:18
【问题描述】:
我想对 R 中的 CAP 执行“留一法交叉验证”(LOO-CV)。CAP 是使用 R 包 vegan 中的 capscale 计算的,是对主坐标,类似于 rda 或 cca,但基于另一个相似矩阵,在我的例子中是 Bray-Curtis。我发现在predict.cca 中有函数calibrate.cca,但我不能让它工作。
https://www.rdocumentation.org/packages/vegan/versions/2.4-2/topics/predict.cca
这就是我所拥有的(基于 vegan 中可用的示例数据 mite)
library(vegan)
data(mite, mite.env)
str(mite.env) #"SubsDens", "WatrCont", "Substrate", "Shrub", "Topo"
miteBC <- vegdist(mite, method="bray") #Bray-Curtis similarity matrix
miteCAP <-capscale(miteBC~Substrate + Shrub + Topo, data=mite.env, #CAP in capscale
distance = "bray", metaMDSdist = F)
summary(miteCAP)
anova(miteCAP)
anova(miteCAP, by = "axis")
anova(miteCAP, by = "margin")
calibrate.cca(miteCAP, type = c("response")) #error cannot find function calibrate.cca
在程序 Primer 中,它是在 CAP 函数中自动完成的(“将观察结果分配给组”),其中它自动将每个样本分配给一个组并得到一个错误分类错误(类似于分类randomForest,我已经做过了),但我想用R,用vegan::capscale应该是可能的。
非常感谢任何帮助!
【问题讨论】:
标签: r classification cross-validation predict vegan