【问题标题】:Label points on individuals factor map (PCA) using FactoMineR使用 FactoMineR 在个体因子图 (PCA) 上标记点
【发布时间】:2015-10-05 13:43:38
【问题描述】:

我正在使用 FactoMineR 运行 PCA,但似乎无法在个人因子图上标记各个点。我的数据集(“ExData.csv”)包含一个矩阵中的值,该矩阵有 13 行(标记为 A 到 M)和 10 列(标记为 N 到 W)。我正在运行以下命令:

mydata <- read.csv("ExData.csv",header=TRUE,row.names=1)
attach(mydata)

library(FactoMineR)
X <- cbind(N,O,P,Q,R,S,T,U,V,W)
res.pca <- PCA(X)

当 PCA 运行时,我得到带有标记为 1-13 的点的个体因子图 (PCA),而不是 A 到 M。变量因子图 (PCA) 正确地标记了载荷 N 到 W。

如何正确标记个人因子图 (PCA) 图上的各个点(即 A 到 J)?

【问题讨论】:

  • 这个问题似乎没有任何统计内容,它只是关于如何用特定的编程语言来实现一些东西。因此,我投票将其移至 StackOverflow。
  • 我投票结束这个问题,因为它是关于如何在没有可重现示例的情况下使用 R。
  • 请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。

标签: r pca labeling


【解决方案1】:

问题是您的矩阵X 有列名但没有行名。因此,列标签出现在您的 PCA 图中,但您只获得行 indices 作为图中观察值的标识,而不是行名称。

这是一个例子:

#install.packages("FactoMineR")
library(FactoMineR)
set.seed(1)

df <- data.frame(matrix(runif(13 * 10),
                        nrow = 13,
                        ncol = 10,
                        dimnames = list(LETTERS[1:13], LETTERS[14:23])))

attach(df)
X <- cbind(N, O, P, Q, R, S, T, U, V, W)

此时rownames(X)NULLPCA(X) 只能使用行索引来识别其图中的观察。

要解决此问题,只需将行名称添加到矩阵 X 中,该矩阵将传递给 PCA()

# restore row names
rownames(X) <- rownames(df)   # or something similar in your actual program
res.pca <- PCA(X)

结果如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多