Answers:
下一篇文章:Cangelosi和Goriely将主要成分分析中的成分保留应用于cDNA微阵列数据,很好地概述了检测研究中成分数量的标准经验法则。(Scree图,解释的总方差比例,平均特征值规则,对数特征值图等。)大多数在R中都非常容易实现。
通常,如果您的碎石图没有定论,那么您只需要“摘下毒药”即可。任何数据都没有绝对对错,因为实际上使用的PC数量实际上取决于您对问题的理解。您唯一可以“真正”知道其维数的数据集就是您自己构建的数据集。:-)最终,主要成分可以在RSS度量标准下提供数据的最佳分解(作为副产品,您可以使每个成分代表主要的变化模式),并且可以包括或排除给定数量的成分决定您对问题的维度的看法。
出于个人喜好,我喜欢Minka在PCA维度自动选择上的方法,该方法基于对PCA的概率解释,但随后您又开始尝试为给定维度建模数据的可能性。(如果您希望遵循此基本原理,Link会提供Matlab代码。)
尝试更多地了解您的数据。例如。您是否真的相信数据集99.99%的变化是由于模型的协变量引起的?如果可能的话,您可能不需要包含占总方差很小的尺寸。您是否认为实际上组件反映的变化低于仅明显差异的阈值?同样,这可能意味着将该组件包括在您的分析中几乎没有相关性。
无论如何,祝您好运并仔细检查您的数据。(绘制它们也会产生奇迹。)
自从最初提出并回答该问题以来,过去几年中在此问题上进行了非常出色的后续工作。我强烈推荐Gavish和Donoho撰写的以下论文:奇异值的最佳硬阈值为4 / sqrt(3)
他们的结果基于渐近分析(即,随着您的数据矩阵变得无限大,有一个定义明确的最佳解决方案),但是它们显示了令人印象深刻的数值结果,即使在不同的噪声下,渐近最优程序也适用于小型且实际大小的数据集楷模。
本质上,最佳过程归结为估算添加到矩阵每个元素的噪声。基于此,您可以计算阈值并删除奇异值低于阈值的主成分。对于的平方矩阵,比例常数4 / sqrt(3)如标题中所示显示:Ñ × Ñ
他们还解释了本文中的非正方形情况。他们在这里有一个不错的代码补充(在MATLAB中),但是这些算法很容易在R或其他任何地方实现:https : //purl.stanford.edu/vg705qn9070
注意事项:
Kaiser准则(所有特征值均大于1)的问题在于,提取的因素数量通常约为电池中物品或秤的数量的三分之一,而与其他因素中是否有很多无关。并行分析和scree准则通常是确定要提取的因子数量的更准确的过程(根据Harmon和Ledyard Tucker的经典著作以及Wayne Velicer的最新著作)。
psy
或psych
包,以确定组件和因子的数量。更广泛地使用并行分析和Velicer的MAP测试。