Я новичок в R и работаю над проблемой * переноса и работы с корреляционной матрицей как единственным источником данных в PCA и PCF в R
Я сослался на банки ответов переполнения стека и даже книги, я не смог найти никаких подсказок, он заставляет R работать только с файлом данных переменных, тогда как в SAS вы можете просто ввести матрицу корреляции и получить результаты PCA и PCF без труда. Надеюсь, я ошибаюсь.
Я попытался взглянуть на банки ответов переполнения стека, и они в основном касаются того, как вычислить матрицу коров или разложение по собственным значениям.
Ниже мои попытки:
setwd ("D: / BlueHDD / MAQAB / RStudio / R / PCA / Intelligence")
mydata <- read.csv ("Intelligence.csv", na.strings = ".") </p>
голова (MYDATA)
X M P C E H F
1 M 1.000 0.620 0.540 0.320 0.284 0.370
2 P 0.620 1.000 0.510 0.380 0.351 0.430
3 C 0.540 0.510 1.000 0.360 0.336 0.405
4 E 0.320 0.380 0.360 1.000 0.686 0.730
5 H 0.284 0.351 0.336 0.686 1.000 0.735
6 F 0.370 0.430 0.405 0.730 0.735 1.000
ii <- as.matrix (mydata [, 2: 7]) </p>
имена строк (ii) <- c («M», «P», «C», «E», «H», «F») </p>
имена (ii) <- c («M», «P», «C», «E», «H», «F») </p>
головка (II) * * тысяча двадцать пять
M P C E H F
M 1.000 0.620 0.540 0.320 0.284 0.370
P 0.620 1.000 0.510 0.380 0.351 0.430
C 0.540 0.510 1.000 0.360 0.336 0.405
E 0.320 0.380 0.360 1.000 0.686 0.730
H 0.284 0.351 0.336 0.686 1.000 0.735
F 0.370 0.430 0.405 0.730 0.735 1.000
myPCA <- eigen (ii) </p>
голова (myPCA)
$ значения
[1] 3.3670861 1.1941791 0.5070061 0.3718472 0.3131559 0.2467257
$ векторов
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -0.3677678 -0.5098401 0.266985551 0.72768020 0.047584025 -0.04178482
[2,] -0.3913477 -0.4092063 0.485916591 -0.66464527 -0.005392018 -0.03872816
[3,] -0.3719504 -0.3825819 -0.831626240 -0.15204371 -0.003331423 -0.02352388
[4,] -0.4321872 0.3748248 0.021531885 0.06531777 -0.742970281 -0.34056682
[5,] -0.4219572 0.4214599 0.002730054 0.01174474 0.665109730 -0.44922966
[6,] -0.4565228 0.3288196 0.023032686 0.03473540 0.057617669 0.82365511
myPCA $ значения
[1] 3.3670861 1.1941791 0.5070061 0.3718472 0.3131559 0.2467257
myPCA $ векторов
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -0.3677678 -0.5098401 0.266985551 0.72768020 0.047584025 -0.04178482
[2,] -0.3913477 -0.4092063 0.485916591 -0.66464527 -0.005392018 -0.03872816
[3,] -0.3719504 -0.3825819 -0.831626240 -0.15204371 -0.003331423 -0.02352388
[4,] -0.4321872 0.3748248 0.021531885 0.06531777 -0.742970281 -0.34056682
[5,] -0.4219572 0.4214599 0.002730054 0.01174474 0.665109730 -0.44922966
[6,] -0.4565228 0.3288196 0.023032686 0.03473540 0.057617669 0.82365511
Проблема теперь в векторе, все "+" и "-" противоположны!
Кроме того, отсюда я не знаю, как получить матрицу загрузки. Я пробовал ниже, но не получается:
fit <- princomp(ii)
summary(fit) # print variance accounted for
loadings(fit) # pc loadings
plot(fit,type="lines") # scree plot
fit$scores # the principal components
biplot(fit)