Я пытаюсь выполнить следующий анализ в MATLAB:Как выполнить прямое Oblimin вращение в MATLAB
Прямая Oblimin вращения со значением Delta 0 и «Kaiser Нормализация»
Я знаю, что у MATLAB есть функция, называемая rotatefactors, однако не упоминается поворот омимина (ни «Нормализация кайзера»). Как я могу выполнить этот анализ в MATLAB?
Чтобы быть более конкретным, я пытаюсь выполнить точный вывод SPSS при выполнении этого анализа.
Здесь вы можете найти все алгоритмы, используемые в SPSS: link (см. Стр. 338 для вращения обмимина). К сожалению, я не могу понять уравнения и таким образом воспроизвести их в MATLAB.
В качестве примера, я использую следующие данные:
A = magic(10);
writetable(array2table(A),'test.xlsx') % This data can be imported to SPSS
я выполнить PCA (на корреляционной матрицы) и извлечь только два фактора. Вот как это делается в MATLAB, чтобы получить точно такую же Загрузка матрицы, как в SPSS (который они называют «Component Matrix»):
[eigvector,eigmatrix] = eig(corr(A));
[~,ind] = sort(diag(eigmatrix),'descend');
eigmatrix = eigmatrix(ind,ind);
eigvector = eigvector(:,ind);
eigvalues = diag(eigmatrix); % Eigeinvalues
loadings = eigvector*sqrt(eigmatrix);
loadings = loadings(:,1:2) % Extract only 2 factors
Далее, я должен выполнить поворот на loadings
матрице с помощью функция rotatefactors
, и вот где я застрял.
Вот синтаксис в SPSS:
FACTOR
/VARIABLES A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
/MISSING LISTWISE
/ANALYSIS A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
/PRINT INITIAL EXTRACTION ROTATION
/CRITERIA FACTORS(2) ITERATE(25)
/EXTRACTION PC
/CRITERIA ITERATE(25) DELTA(0)
/ROTATION OBLIMIN
/METHOD=CORRELATION.
Это выход из SPSS, который я пытаюсь воспроизвести в среде MATLAB:
и ваш вопрос будет? –
Что такое ... обмимин вращение? – rayryeng
@ Benoit_11how, чтобы выполнить прямой поворот obimin в MATLAB – mat