【问题标题】:standardization of data in RR中数据的标准化
【发布时间】:2013-01-21 12:45:51
【问题描述】:

我正在对大型电子表格进行一些 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)

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

谢谢,

【问题讨论】:

  • 取决于你所说的standardization...
  • 仅供参考,我想要princomp(按行PCA),而不是prcomp(按列)。对你来说不一定是个问题,但我会把这条评论留给像我这样天真的人。

标签: r


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我相信我正在寻找 SCALE = TRUE。谢谢保罗和加文。
    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 2020-08-02
    • 2016-09-18
    • 2018-05-19
    • 1970-01-01
    • 2021-03-13
    • 2018-12-10
    相关资源
    最近更新 更多