使用 prcomp() 在 r 中进行主成分分析

Principal Component Analysis in r using prcomp()

我的数据是 [478 x 4200] 矩阵。我正在考虑将 4200 个元素作为组件,并且我想减少需要处理的组件数量。 我使用了 prcomp() 并且不知何故它总是 returns 478 个主成分,即使我转置了矩阵。据我了解 prcomp() 使用列作为组件。我想我应该得到 4200 个主要组件。 我可以通过计算我需要的所有矩阵来手动完成,但我想检查这个函数。

稍微明确一点:

如果您对 p = 4200 个变量有 n = 478 个观察值,每个观察值您需要构建一个 478 x 4200 矩阵,其中每一行都是对这 4200 个变量的观察值。我们称这个矩阵为 m.

然后用

执行PCA
pca_result <- prcomp(m)

生成的主成分向量在矩阵 pca_result$rotation 中。每列都是一个主成分,列按方差递减顺序排列。

每个主成分的维度 p = 4200,将有 min(n-1, p) = 478 个信息性主成分。所以 pca_result$rotation 是一个 4200 x 478 矩阵。

PCA 得分向量是矩阵 pca_result$x 的列。因此也将有 478 个(=主成分数)每个维度为 478(=观察数)的得分向量。