psych: основные компоненты нагрузки

Мой вопрос касается функции принципал() в пакете psych.

set.seed(0)
x <- replicate(8, rnorm(10))
pca.x <- principal(x, nf=4, rotate="varimax")

Я знаю, что если я хочу увидеть таблицу загрузок, я могу использовать loading.x <-loadings(pca.x), тогда у меня будут следующие результаты.

> loading.x
Loadings:
     RC1    RC3    RC4    RC2   
[1,]        -0.892 -0.205  0.123
[2,]  0.154  0.158  0.909       
[3,] -0.660  0.255 -0.249  0.392
[4,] -0.352  0.412  0.614 -0.481
[5,]  0.950 -0.208  0.117       
[6,] -0.302  0.111         0.860
[7,]  0.852        -0.195 -0.358
[8,] -0.109  0.903         0.265

                 RC1   RC3   RC4   RC2
SS loadings    2.323 1.934 1.373 1.342
Proportion Var 0.290 0.242 0.172 0.168
Cumulative Var 0.290 0.532 0.704 0.871

Мое первое замешательство - объект загрузок. Технически это матрица, но посмотрите на ее размер, он 8*4, а значит нижняя часть не включена.

По сути, я хочу извлечь только эту часть:

                 RC1   RC3   RC4   RC2
SS loadings    2.323 1.934 1.373 1.342
Proportion Var 0.290 0.242 0.172 0.168
Cumulative Var 0.290 0.532 0.704 0.871

Либо поместите его в data.frame, либо в матрицу, а не смотрите на него в консоли. Кажется, ответ Уильяма Ревеля в сообщении Извлечение вывода из основной функции в пакете psych в виде фрейма данных. может извлечь только эту нижнюю часть, но функция print по-прежнему дает мне все это.

На самом деле, мне также любопытно, как разработчики могут создавать загрузочный объект (я не могу понять это, глядя на исходный код). Кроме того, часть, которая мне нужна, я не могу найти в другом месте в списке «pca.x», по крайней мере, не отформатированную таблицу. Я использую Rstudio версии 0.98.1102, R 3.1.2 на Mac и psych 1.5.1.

Заранее спасибо!


person Novus    schedule 20.02.2015    source источник
comment
Здесь будет полезен воспроизводимый пример. Включите пример кода для создания объекта, с которым вы работаете, и точно опишите, что вы хотите извлечь из него.   -  person MrFlick    schedule 20.02.2015
comment
Пример Уильяма Ревелла все еще работает. Можете ли вы использовать пример Thurstone из его ответа, чтобы показать, что вам нужно. ты   -  person user20650    schedule 20.02.2015
comment
Используя форму ответа на связанный вопрос: для загрузки попробуйте loadings(pca.x)[], а для SS/var и т. д.: p <- print(pca.x); p[[1]]. Что касается вашего вопроса об объектах, многое из этого будет рассчитано/произведено методом print. Взгляните на функцию print.psych, которая выводит на экран разные выходные данные в зависимости от того, какой объект ей передается (я еще не прошел через все это)   -  person user20650    schedule 21.02.2015
comment
Это очень помогает. Большое спасибо!   -  person Novus    schedule 21.02.2015


Ответы (1)


На это частично ответили, но так как это мой пакет, я дам несколько более полный ответ.

Сводная таблица таблиц факторных нагрузок PCA или FA рассчитывается в функции печати. Он возвращается (невидимо печатью). Однако он доступен как объект Vaccounted.

т.е. сводная таблица выхода ППШ или ТВС

set.seed(0)
x <- replicate(8, rnorm(10))
pca.x <- principal(x, nf=4, rotate="varimax")
p <- print(pca.x)

round(p$Vaccounted,2)   #shows the summary of the loadings table
                       PC1  PC3  PC4  PC2
SS loadings           2.32 1.93 1.37 1.34
Proportion Var        0.29 0.24 0.17 0.17
Cumulative Var        0.29 0.53 0.70 0.87
Proportion Explained  0.33 0.28 0.20 0.19
Cumulative Proportion 0.33 0.61 0.81 1.00

Это работает и для функции fa.

person William Revelle    schedule 24.02.2015
comment
Большое спасибо, Уильям. Объясняется ли это в виньетке или подобном где-либо вообще? Я искал какое-то время - person Bonono; 27.10.2016
comment
Я добавил это в документацию для psych 1. 6.12 (скоро). - person William Revelle; 05.12.2016
comment
Это работает и для меня, но то, что он делает, это то, что он печатает все это, что в моем случае использования не требуется. Как я могу использовать объект Vaccounted без его печати - person Neeraj Komuravalli; 27.03.2017
comment
В настоящее время это невозможно. Я добавлю это как запрошенную функцию для следующего выпуска. - person William Revelle; 28.03.2017