我正在尝试对几何形态测量数据进行最小判别分析。由于几何形态测量数据通常会产生大量变量,并且判别分析需要比变量更多的数据点才能准确分类标本,因此文献中的常见解决方案是执行主成分分析,然后使用数量可变的 PC,代表少于 99%的累积方差,但返回最高的重新分类率作为 LDA 的输入。
现在我这样做的方式是在 R 中运行 LDA(使用Morpho
和MASS
包中的函数)在每个可能使用的 PC 数量下,并手动记录分类精度,直到我找到返回最高精度的最少数量的 PC ,但这是非常低效的。
我想知道是否有任何方法可以编写一个函数来为前 N 个 PC 的所有可能数量运行 LDA(直到某个用户定义的级别,代表累积方差的 99%)并返回百分比重新分类率每个级别,产生如下内容:
PCs percent_accuracy
20 72.2
19 76.3
18 77.4
17 80.1
16 75.4
15 50.7
... ...
1 20.2
因此,第 1 行是使用前 20 台 PC 时的重新分类率,第 2 行是使用前 19 台 PC 时的重新分类率,依此类推。