这个问题是关于一种计算主成分的有效方法。
关于线性PCA的许多文章都主张对个案数据使用奇异值分解。也就是说,如果我们有数据并想用主成分替换变量(其列),则可以执行SVD:,奇异值(特征值的平方根)占据了主对角线,右特征向量是轴变量到轴分量的正交旋转矩阵,左特征向量像,仅在这种情况下。然后,我们可以将分量值计算为。X = û 小号V '小号V Ù V C ^ = X V = û 小号
进行变量PCA的另一种方法是通过分解方阵(即可以是变量之间的相关或协方差等)。分解可以是特征分解或奇异值分解:对于正方形对称正半定矩阵,它们将给出特征值与和的对角线相同的结果。组件值将为。- [R [R = V 大号V '大号V C ^ = X V
现在,我的问题是:如果数据是一个大矩阵,并且案例数(通常是一个案例)比变量数大得多,那么方法(1)会比方法(2)慢得多),因为方法(1)将相当昂贵的算法(例如SVD)应用于大矩阵;它计算并存储巨大的矩阵,这在我们的情况下是我们真正不需要的(变量的PCA)。如果是这样,那么为什么这么多texbook似乎主张或仅提及方式(1)?也许这很有效,但我缺少了什么?ü
Joliffe, Principal component analysis, 2nd ed.
实际上,Joliffe描述了两种方式,但是据我所记得,在PCA的核心章节中,他只谈到了方式1。
R
svd