Ответ 1
В MATLAB еще не реализован метод вращения OBLIMIN, поскольку метод promax делает то же самое, только намного быстрее.
Вы не получите тот же результат с этим методом по сравнению с выходом SPSS OBLIMIN, но они должны быть довольно близкими, поскольку они делают то же самое. (На самом деле, promax также является наклонным вращением, за исключением того, что он сначала аппроксимируется ортогональным вращением до того, как ортогональность ослаблена)
Возможно, можно настроить ортогональное вращение внутри promax, но я не думаю, что вы когда-либо получите тот же результат.
Чтобы сделать промаксное вращение:
[B,T]=rotatefactors(loadings,'method','promax');
% Your pattern matrix is in B, to get the structure matrix, you can do :
S=B*inv(T'*T);
Обратите внимание, что вращения определяются по модулю угла pi, поэтому вы получите матрицу вывода, равную + - то, что вы хотите.
Запустив это в вашем примере, вы получите шаблон:
B =
-0.0178 0.9765
-0.9528 0.0563
-0.0305 -1.0124
0.9442 -0.0602
0.9897 -0.0155
-0.7625 0.1992
-0.8823 0.0333
-0.9776 -0.1919
-0.7797 0.0719
0.9950 0.0767
Наряду со структурной матрицей:
S =
-0.5740 0.9867
-0.9849 0.5990
0.5461 -0.9950
0.9785 -0.5980
0.9985 -0.5791
-0.8760 0.6335
-0.9013 0.5358
-0.8683 0.3649
-0.8206 0.5160
0.9513 -0.4899
Итак, это довольно близко, но все же отличается от вывода SPSS.
Мы можем видеть, однако, что большие различия для небольших значений. Поскольку каждый всегда принимает самые большие значения для корреляционного анализа, это не должно быть большой проблемой.