2015-09-04 2 views
1

Я использую пакет rela, чтобы проверить, могу ли я использовать PCA в своих данных.Анализ PCA

paf.neur2 <- paf(neur2) 
summary(paf.neur2) 
# [1] "Your dataset is not a numeric object." 

Я хочу видеть КМО (The Kaiser-Meyer-Olkin меру теста адекватности выборки). Как это сделать?

Выход Str (neur2)

'data.frame': 1457 obs. of 66 variables: 
    $ userid : int 200 387 458 649 931 991 1044 1075 1347 1360 ... 
    $ funct : num 3.73 3.79 3.54 3.04 3.81 ... 
    $ pronoun: num 2.26 2.55 2.49 1.98 2.71 ... 
     . 
     . 
     . 
    $ time : num 1.68 1.87 1.51 1.03 1.74 ... 
    $ work : num 0.7419 0.2311 -0.1985 -1.6094 -0.0619 ... 
    $ achieve: num 0.174 0.2469 0.1823 -0.478 -0.0513 ... 
    $ leisure: num 0.2852 0.0296 0.0583 -0.3567 -0.0408 ... 
    $ home : num -0.844 -0.58 -0.844 -2.207 -1.079 ... 
     . 

Переменные все числовые.

+0

Пожалуйста размещает выход 'Str (neur2)'. –

+0

Опубликовано. Выход слишком длинный, но все переменные являются числовыми. – Lucia

+0

После того, как вы закончите работу с PCA, я хотел бы предложить сравнить процент вариаций, полученных каждым из ваших основных компонентов, с результатами модели с палочкой. – Ouistiti

ответ

4

Согласно ?paf, object является числового набора данных (обычно принуждают матрицу из предыдущего кадра данных)

Так что вам нужно, чтобы превратить ваш data.frame neur2 в матрицу: as.matrix(neur2).

Вот воспроизведение вашей проблемы с помощью Seatbelts набора данных:

library(rela) 

Belts <- Seatbelts[,1:7] 
class(Belts) 
# [1] "mts" "ts"  "matrix" 

Belts <- as.data.frame(Belts) 
# [1] "data.frame" 

paf.belt <- paf(Belts) 
[1] "Your dataset is not a numeric object." 

Belts <- as.matrix(Belts) 
class(Belts) 
# [1] "matrix" 

paf.belt <- paf(Belts) # Works 
1

два варианта, которые могут сделать это для вас:

kmo_DIY <- function(df){ 
csq = cor(df)^2 
csumsq = (sum(csq)-dim(csq)[1])/2 
library(corpcor) 
pcsq = cor2pcor(cor(df))^2 
pcsumsq = (sum(pcsq)-dim(pcsq)[1])/2 
kmo = csumsq/(csumsq+pcsumsq) 
return(kmo) 
} 

или

функция КМО() из пакета психологически.

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