对相关矩阵和协方差矩阵执行主成分分析 (PCA) 的主要区别是什么?他们给出相同的结果吗?
PCA关于相关性或协方差?
当变量尺度相似时,您倾向于使用协方差矩阵,而当变量处于不同尺度时,您倾向于使用相关矩阵。
使用相关矩阵等同于标准化每个变量(平均为 0,标准差为 1)。一般来说,有和没有标准化的 PCA 会给出不同的结果。特别是当尺度不同时。
例如,看看这个 Rheptathlon
数据集。一些变量的平均值约为 1.8(跳高),而其他变量(跑 800 米)的平均值约为 120。
library(HSAUR)
heptathlon[,-8] # look at heptathlon data (excluding 'score' variable)
这输出:
hurdles highjump shot run200m longjump javelin run800m
Joyner-Kersee (USA) 12.69 1.86 15.80 22.56 7.27 45.66 128.51
John (GDR) 12.85 1.80 16.23 23.65 6.71 42.56 126.12
Behmer (GDR) 13.20 1.83 14.20 23.10 6.68 44.54 124.20
Sablovskaite (URS) 13.61 1.80 15.23 23.92 6.25 42.78 132.24
Choubenkova (URS) 13.51 1.74 14.76 23.93 6.32 47.46 127.90
...
现在让我们对协方差和相关性进行 PCA:
# scale=T bases the PCA on the correlation matrix
hep.PC.cor = prcomp(heptathlon[,-8], scale=TRUE)
hep.PC.cov = prcomp(heptathlon[,-8], scale=FALSE)
biplot(hep.PC.cov)
biplot(hep.PC.cor)
请注意,协方差上的 PCA 由run800m
和支配javelin
:PC1 几乎等于run800m
(并解释了的方差),而 PC2 几乎等于(它们一起解释了)。关于相关性的 PCA 提供的信息要多得多,并揭示了数据中的一些结构和变量之间的关系(但请注意,解释的方差下降到和)。javelin
另请注意,无论是否使用协方差或相关矩阵,离群个体(在此数据集中)都是离群值。
Bernard Flury 在他介绍多元分析的优秀著作中,将其描述为主成分的反属性。它实际上比在相关性或协方差之间进行选择更糟糕。如果您更改了单位(例如,美式加仑、英寸等和欧式升、厘米),您将获得截然不同的数据预测。
反对自动使用相关矩阵的论点是,它是标准化数据的一种非常残酷的方式。自动使用协方差矩阵的问题,这在 heptathalon 数据中非常明显,是具有最高方差的变量将支配第一个主成分(方差最大化属性)。
因此,使用“最佳”方法是基于主观选择、仔细考虑和一些经验。
未转换(原始)数据:如果您有原始、未转换数据的尺度变化很大的变量,即每天的热量摄入、基因表达、ELISA/Luminex,以 ug/dl、ng/dl 为单位,基于几个数量级蛋白质表达的大小,然后使用相关性作为 PCA 的输入。但是,如果您的所有数据都基于来自同一平台的具有相似范围和规模的基因表达,或者您正在处理对数股权资产回报,那么使用相关性将抛出大量信息。
您实际上不需要考虑使用相关矩阵或协方差矩阵作为 PCA 输入的区别,而是查看的对角线值和。您可能会观察到一个变量的方差为,而另一个变量它们位于的对角线上。但是在查看相关性时,对角线包含所有相关性,因此当您使用矩阵时,每个变量的方差本质上都变为
转换数据:如果数据已通过归一化、百分位数或均值零标准化(即分数)进行转换,以便所有连续变量的范围和尺度相同,则可以使用协方差矩阵没有任何问题。(相关性将意味着零标准化变量)。但是请回想一下,这些转换不会在运行 PCA 之前消除变量中的偏度(即直方图中的左尾或右尾) 。典型的 PCA 分析不涉及消除偏度;然而,一些读者可能需要消除偏度以满足严格的正态性约束。
总之,当变量范围和尺度差异很大时 ,如果变量的范围和尺度相似或单位相同,则保留方差措施。
偏斜变量:如果任何变量在其直方图中左尾或右尾偏斜,即 Shapiro-Wilk 或 Lilliefors 正态性检验显着,那么如果您需要应用正态性,则可能存在一些问题假设。在这种情况下,使用从每个变量确定的范德瓦尔登分数(变换)。单个观察的范德瓦尔登 (VDW) 分数仅仅是观察百分位值的逆累积(标准)正态映射。例如,假设您对连续变量
- 首先,按升序对值进行排序,然后分配等级,这样您将获得
- 接下来,将每个观察的百分位数确定为。
- 一旦获得百分位值,将它们输入到标准正态分布的 CDF 的逆映射函数中,即,以获得每个的分数,使用。
例如,如果您插入值 0.025,您将得到。的插件值也是如此,您将得到。
VDW 分数的使用在遗传学中非常流行,其中许多变量被转换为 VDW 分数,然后输入到分析中。使用 VDW 分数的优点是可以从数据中消除偏斜和异常值影响,如果目标是在正态性约束下执行分析,则可以使用它——并且每个变量都需要是纯标准正态分布,没有偏斜或异常值。
一个常见的答案是建议当变量处于相同尺度时使用协方差,而当它们的尺度不同时使用相关性。但是,只有当变量的规模不是一个因素时,这才是正确的。否则,为什么有人会做协方差 PCA?始终执行相关 PCA 会更安全。
假设您的变量具有不同的度量单位,例如米和千克。在这种情况下,使用米还是厘米并不重要,因此您可以争辩说应该使用相关矩阵。
现在考虑不同州的人口。测量单位是相同的 - 人数(人数)。现在,规模可能会有所不同:DC 有 600K 和 CA - 3800 万人。我们应该在这里使用相关矩阵吗?这取决于。在某些应用程序中,我们确实希望调整状态的大小。使用协方差矩阵是构建考虑状态大小的因素的一种方法。
因此,我的答案是在原始变量的方差很重要时使用协方差矩阵,而在不重要时使用相关性。