2015-09-29 35 views
12
執行直接Oblimin旋轉

我試圖執行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重現輸出:

rotated ouput (SPSS)

+0

和你的問題是? –

+0

什麼是......忽略旋轉? – rayryeng

+0

@ Benoit_11如何在MATLAB中執行直接閉環旋轉 – mat

回答

3

MATLAB沒有OBLIMIN旋轉方法的實現,因爲promax方法做同樣的事情,只有它快得多。

你將無法獲得這種方法的準確相同輸出相比SPSS OBLIMIN輸出,但他們應該是相當接近,因爲他們正在做同樣的事情。 (實際上,promax也是一種傾斜旋轉,除非它首先通過在正交旋轉之前進行正交旋轉來近似)

可能可以定製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輸出仍然是不同的。

雖然我們可以看到,很大的差異是相當小的值。因爲人們總是爲相關性分析採取最大的價值觀,所以不應該是那麼大的問題。

+0

它真的接近我正在尋找的東西,但它還不完全一樣。我會再等幾天,看看是否有新的迴應,否則我會接受你的。謝謝! – mat

+0

不客氣,這是一個很好的問題 – BillBokeey

+0

@Adriaan:對不起,英語不是我的母語,是'歡呼'太不正式?什麼是首字母縮寫? – BillBokeey