Пакет R psych - Сортировка корреляционной матрицы после PCA с использованием mat.sort()

После анализа основных компонентов я пытаюсь отсортировать переменные моей исходной корреляционной матрицы так же, как в (отсортированной) матрице нагрузок (как отображается с помощью print.psych). Я использовал следующие функции из пакета psych, но не могу совместить их.

pc <- principal(myCorrMatrix$correlations, nfactors=15, n.obs=49, rotate="oblimin")
print.psych(pc, cut=0.3, sort=TRUE)

sortedPC <- fa.sort(pc)
sortedMatrix <- mat.sort(myCorrMatrix$correlations, sortedPC)

Я не уверен на 100%, каким должен быть второй параметр mat.sort, но я попробовал несколько элементов sortedPC безрезультатно. Любые указатели будут высоко оценены!


person John    schedule 05.03.2014    source источник
comment
было бы лучше, если бы вы dput использовали myCorrMatrix$correlations, так как все команды, которые вы используете, относятся к пакету psych. см.: stackoverflow. com/questions/5963269/   -  person harkmug    schedule 05.03.2014
comment
@rmk: Я понимаю, что это облегчит задачу, но я бы предпочел не делиться данными...   -  person John    schedule 06.03.2014


Ответы (1)


Не передавать fa.sort() в mat.sort(). mat.sort() ожидает объект fa, в котором есть $loadings. Обратите внимание, что principal() также дает $loadings в результирующем объекте. Я думаю, что это должно работать:

sortedMatrix <- mat.sort(myCorrMatrix$correlations, pc)

Вот пример:

data(Bechtoldt.1)
sorted <- mat.sort(Bechtoldt.1,principal(Bechtoldt.1,5))
cor.plot(sorted)
person Jason French    schedule 24.04.2014