我对数据集进行了归一化处理,然后运行了3个分量PCA,以获得较小的解释方差比([0.50,0.1,0.05])。
当我不进行标准化但变白的数据集然后运行3分量PCA时,我得到了较高的解释方差比([0.86,0.06,0.01])。
由于我想将尽可能多的数据保留为3个组成部分,因此我不应该对数据进行规范化吗?据我了解,我们应该始终在PCA之前将其标准化。
通过归一化:将均值设置为0并具有单位方差。
我对数据集进行了归一化处理,然后运行了3个分量PCA,以获得较小的解释方差比([0.50,0.1,0.05])。
当我不进行标准化但变白的数据集然后运行3分量PCA时,我得到了较高的解释方差比([0.86,0.06,0.01])。
由于我想将尽可能多的数据保留为3个组成部分,因此我不应该对数据进行规范化吗?据我了解,我们应该始终在PCA之前将其标准化。
通过归一化:将均值设置为0并具有单位方差。
Answers:
取决于您的分析目标。一些常见的做法,在whuber的链接中提到了一些:
直观的例子:
假设您有两个变量:一棵树的高度和同一棵树的围长。我们将体积转换为一个因子:如果树的体积大于20立方英尺,则树的体积将为高,否则为零。我们将使用预装在R中的树木数据集。
>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))
现在假设高度实际上是用英里而不是英尺来度量的。
>tree.height<-tree.height/5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
>summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 3.0871086 1.014551e-03
Proportion of Variance 0.9999999 1.080050e-07
Cumulative Proportion 0.9999999 1.000000e+00
第一部分解释了数据中几乎100%的可变性。负载:
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -1
tree.girth 1
图形评估:
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
我们看到高树木的树木往往有很高的周长,但是这三个高度并没有提供有关树木体积的任何信息。这可能是错误的,并且是两种不同的单位度量的结果。
我们可以使用相同的单位,也可以标准化变量。我希望两者都会使变异性更加平衡。当然,在这种情况下,如果不是我们要测量两个不同的事物,则可以认为变量应该具有相同的单位,但不能标准化,这可能是一个有效的论据。(当我们要测量树的重量和树的周长时,测量树的尺度不再是很明确的。在这种情况下,我们有明确的论据可以对标准化变量进行研究。)
>tree.height<-tree.height*5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 6.5088696 2.5407042
Proportion of Variance 0.8677775 0.1322225
Cumulative Proportion 0.8677775 1.0000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -0.956 0.293
tree.girth -0.293 -0.956
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
现在,我们看到高大且周长大的树木的体积大(左下角),而小体积大树的低周长和低高度(右上角)相比。从直觉上讲这很有意义。
但是,如果仔细观察,我们会发现高/低音量之间的对比度在周长方向上最强,而在高度方向上最强。让我们看看我们标准化时会发生什么:
>tree<-scale(tree,center=F,scale=T)
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 0.2275561 0.06779544
Proportion of Variance 0.9184749 0.08152510
Cumulative Proportion 0.9184749 1.00000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height 0.203 -0.979
tree.girth 0.979 0.203
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
实际上,周长可以解释高音量和低音量树木的大部分差异!(双线图中箭头的长度指示原始变量的方差。)因此,即使以相同的比例进行度量,标准化也可能有用。例如,当我们比较不同树种的长度时,建议不要进行标准化,因为这是完全相同的度量。