Использование функции factanal () в R дает факторные корреляции:
> set.seed(500)
> tmp = cbind(rnorm(200,2,1.5),rnorm(200,2,1.5),rnorm(200,2,1.5),rnorm(200,2,1.5),rnorm(200,2,1.5),rnorm(200,2,1.5))
> print(factanal(tmp, 3, rotation="promax"))
Call:
factanal(x = tmp, factors = 3, rotation = "promax")
Uniquenesses:
[1] 0.796 0.889 0.966 0.935 0.740 0.005
Loadings:
Factor1 Factor2 Factor3
[1,] 0.441
[2,] 0.311 -0.114
[3,] 0.139
[4,] 0.258
[5,] 0.495
[6,] 0.999
Factor1 Factor2 Factor3
SS loadings 1.010 0.353 0.300
Proportion Var 0.168 0.059 0.050
Cumulative Var 0.168 0.227 0.277
Factor Correlations:
Factor1 Factor2 Factor3
Factor1 1.000 -0.128 0.117
Factor2 -0.128 1.000 0.118
Factor3 0.117 0.118 1.000
The degrees of freedom for the model is 0 and the fit was 8e-04
После некоторого поиска я обнаружил, что следующий код производит факторные корреляции:
tmat <- solve(tmp$rotmat)
R <- tmat %*% t(tmat)
Может кто-нибудь пожалуйстаОбъясните мне, как функция solve (), использующая матрицу вращения, выдает коэффициенты корреляции факторовИ почему это приводит к различным факторным корреляциям по сравнению с непосредственно коррелирующими факторными показателями?