我試圖執行MATLAB如下分析:爲0的差異值爲和「凱撒 正常化」如何在MATLAB
直接Oblimin旋轉
我知道MATLAB有一個名爲rotatefactors功能,但是oblimin旋轉沒有提到(既不是「凱澤正常化」)。我如何在MATLAB中執行此分析?
更具體地講,我想這種分析時要匹配SPSS的準確輸出。
在這裏,你可以找到在SPSS中使用的所有算法:link(查看頁面338的oblimin旋轉)。不幸的是,我無法理解方程,從而在MATLAB中重現它們。
作爲一個例子,我使用以下數據:
A = magic(10); writetable(array2table(A),'test.xlsx') % This data can be imported to SPSS
我執行PCA(在相關矩陣)和僅提取2的因素。下面是它是如何在MATLAB做是爲了獲得完全相同的載荷矩陣如SPSS(他們稱之爲「成分矩陣」):
[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_11如何在MATLAB中執行直接閉環旋轉 – mat