在FactoMineR中运行PCA时,0 x 0矩阵

时间:2014-11-26 21:23:04

标签: r pca

我正在尝试运行主成分分析(PCA)来指示定量数据和定性数据,但我在执行时遇到此错误:

library(FactoMineR)
pca(data, quanti.sup = 4:12, quali.sup = 1:3, scale.unit = FALSE, ncp=2)

Error in eigen(t(X)%*%X, symmetric = TRUE): = 0x0 matrix

我的数据是带有名称的2980 x 12数据框,所以它真的很奇怪。 任何建议都将非常感谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是因为您在调用PCA()时已将所有变量指定为补充变量。

为了举例说明,我们可以使用内置数据集USJudgeRatings

head(USJudgeRatings)
               CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN
AARONSON,L.H.   5.7  7.9  7.7  7.3  7.1  7.4  7.1  7.1  7.1  7.0  8.3  7.8
ALEXANDER,J.M.  6.8  8.9  8.8  8.5  7.8  8.1  8.0  8.0  7.8  7.9  8.5  8.7
ARMENTANO,A.J.  7.2  8.1  7.8  7.8  7.5  7.6  7.5  7.5  7.3  7.4  7.9  7.8
BERDON,R.I.     6.8  8.8  8.5  8.8  8.3  8.5  8.7  8.7  8.4  8.5  8.8  8.7
BRACKEN,J.J.    7.3  6.4  4.3  6.5  6.0  6.2  5.7  5.7  5.1  5.3  5.5  4.8
BURNS,E.B.      6.2  8.8  8.7  8.5  7.9  8.0  8.1  8.0  8.0  8.0  8.6  8.6

在这些数据中,有43名法官被律师列为11个品质(第2:12列)。第1栏是律师与法官的联系人数。

如果指定所有变量都是补充的,则PCA将不起作用。

library(FactoMineR)
result <- PCA(USJudgeRatings, ncp = 3, quanti.sup = 1:12)
# Error in eigen(t(X) %*% X, symmetric = TRUE) : 0 x 0 matrix

我们必须给PCA一些变量。相反,我们让我们的11个变量进入PCA并仅指定律师与法官作为定量补充变量的联系人数量:

result <- PCA(USJudgeRatings, ncp = 3, quanti.sup = 1)

此操作会运行,然后您可以使用summary.PCA(result)查看结果。