PCA旋转矩阵非方阵疑问:为何未计算全部247个主成分?
PCA加载矩阵非方阵的原因
- 核心原因:PCA能生成的最大主成分数量等于样本数(n)和变量数(p)中的较小值。你的数据集有96个样本、247个变量,所以最多只能得到96个主成分,因此加载矩阵是247行(对应变量)×96列(对应主成分),而非你预期的247×247方阵。
- 主成分的本质逻辑:主成分是原始变量的线性组合,其有效维度受限于样本量。当样本数少于变量数时,数据的秩最多为
n-1(无完全共线性的情况),无法生成超过n个线性无关的主成分——简单说,样本量不够支撑更多维度的线性组合。 - 软件实现的默认行为:以你用的R环境为例,
prcomp()这类PCA函数默认会返回所有可能的主成分(即min(n,p)个),不会强行生成与变量数相等的主成分(因为那没有统计意义)。你可以查看PCA结果中的sdev向量,它的长度应该是96,对应96个主成分的标准差。
内容的提问来源于stack exchange,提问作者Enrique
相关产品推荐
相关产品推荐

