2014-11-26 3 views
0

Я пытаюсь запустить анализ главных компонент (PCA) с указанием количественных данных и качественных данных, но я получаю эту ошибку при выполнении:0 х 0 матрица при выполнении PCA в FactoMineR

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

Не могли бы вы отредактировать свой вопрос, включив головку (данные)? Похоже, вы указали все свои переменные в качестве дополнительных переменных. – LJW

+0

Да, я делал это. Исправлено, теперь я получаю другую ошибку при выполнении 'hcpc <- hcpc (pca, nb.clust = 0, conso = 0, min = 3, max = 10) Ошибка в hcpc (pca, nb.clust = 0, conso = 0, min = 3, max = 10): Объект 'res.consol' не найден' @LJW Вы знаете, почему это так? –

+0

Я думаю, что вы должны внимательно прочитать [documentation for FactoMineR] (http://cran.r-project.org/web/packages/FactoMineR/FactoMineR.pdf), и если у вас все еще есть новый вопрос, отправьте его как таковой , Обязательно [включить воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – LJW

ответ

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).

Смежные вопросы