2

我正在对大型电子表格进行一些 PCA 分析,并根据负载选择我的 PC。据我所知,由于我的数据有不同的单位,因此在进行 PCA 分析之前必须进行标准化。

该功能是否prcomp()固有地执行标准化?

我正在阅读prcomp()帮助文件,并在以下参数下看到了这个prcomp()

scale. a logical value indicating whether the variables should be scaled to have
       unit variance before the analysis takes place. The default is FALSE for 
       consistency with S, but in general scaling is advisable. Alternatively, a
       vector of length equal the number of columns of x can be supplied. The
       value is passed to scale.

“缩放变量以具有单位方差”是否意味着标准化?

我目前正在使用这个命令:

prcomp(formula = ~., data=file, center = TRUE, scale = TRUE, na.action = na.omit)

够了吗?还是我应该做一个单独的标准化步骤?

谢谢,

4

2 回答 2

5

是的,scale = TRUE将导致所有变量都被缩放为具有单位方差(即方差为 1,因此标准差为 1)。这是“标准化”的常见定义,但还有其他方法可以做到这一点等。center = TRUE平均中心数据,即从该变量的每个观察值中减去变量的平均值。

当您执行此操作 ( scale = TRUE, center = TRUE) 而不是 PCA 位于数据集的协方差矩阵上时,它位于相关矩阵上。因此,PCA 找到了解释变量之间相关性而不是协方差的轴。

于 2013-01-21T12:52:09.863 回答
3

如果您通过标准化的意思是每列除以它们的标准差,然后减去每列的平均值,那么使用scale = TRUEandcenter = TRUE就是您想要的。

于 2013-01-21T12:49:37.220 回答