【问题标题】:Principal component analysis in R with prcomp: Reduced number of dimensions after rotation使用 prcomp 在 R 中进行主成分分析:旋转后的维数减少
【发布时间】:2017-07-19 18:43:19
【问题描述】:

我有一个包含 900 个示例和 3600 个变量的数据集(参见示例 #1)。我使用 prcomp 做了一个 PCA(参见示例 #3)。然后我将它旋转#3。

data <- as.data.frame(replicate(3600, rnorm(900))); #1
pca <- prcomp(data, center = TRUE, scale. = TRUE) ;  #2
rot <- as.matrix(data) %*% pca$rotation; #3

现在 rot 的尺寸是 900x900,但应该是 900x3600。为什么会这样?

最好, 托斯滕

【问题讨论】:

    标签: r pca


    【解决方案1】:

    看起来%*% 根据给定的第一个矩阵的行号使矩阵“一致”:

    将两个矩阵相乘,如果它们是一致的。如果一个论点是 向量,它将被强制转换为行或列矩阵 两个参数一致。

    例如:

    dim(as.matrix(data) %*% pca$rotation) # 900 x 900
    dim(pca$rotation %*% as.matrix(data)) # 3600 x 3600
    

    你可以使用transpose(或类似的东西)给它们相同的尺寸:

    rot <- as.matrix(data) %*% t(pca$rotation);
    

    【讨论】:

      【解决方案2】:

      我只需要添加比变量更多的示例,一切正常。 princomp() 实际上是强制用户这样做,但 prcomp() 不是。

      最好, 托尔斯滕

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多