2015-11-18 2 views
2

Это мой код в IBM SPSS:Разница между результатами MATLAB и SPSS факторного анализа (ФА)

FACTOR 
    /VARIABLES VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 
    /MISSING LISTWISE 
    /ANALYSIS VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 
    /PRINT UNIVARIATE INITIAL CORRELATION SIG DET KMO INV REPR AIC EXTRACTION ROTATION 
    /PLOT EIGEN ROTATION 
    /CRITERIA MINEIGEN(1) ITERATE(25) 
    /EXTRACTION PC 
    /CRITERIA ITERATE(25) 
    /ROTATION VARIMAX 
    /METHOD=CORRELATION. 

и это код MATLAB R2015b сделать то же самое:

[lambda,psi,T,stats,F]=factoran(DATA,2,'rotate','varimax'); 

SPSS выход для roteted матрицы компонентов:

Rotated Component Matrix  
       Component 
       1  2 
VAR00001 .973 -.062 
VAR00002 .911 -.134 
VAR00003 .833 -.035 
VAR00004 .972 -.102 
VAR00005 -.236 .823 
VAR00006 .062 .878 
Extraction Method: Principal Component Analysis. 
Rotation Method: Varimax with Kaiser Normalization.   
a Rotation converged in 3 iterations.  

MATLAB lambda выход:

0.993085200854508 -0.0537771548307969 
0.875990644597448 -0.147112975689921 
0.748570753047806 -0.0343768914779775 
0.987459815125692 -0.0988807726538385 
-0.203059229288894 0.976610007465447 
0.00719025397609984 0.475514010080256 

Почему эти выходы разные? Я хочу получить те же результаты в MATLAB. Как вы знаете, SPSS игнорирует собственные значения, меньшие 1. Я хочу такую ​​же структуру в MATLAB. Как я могу это сделать?

PS.

MATLAB T выход:

0.622170579007477 -0.782881709211232 
0.782881709211232 0.622170579007477 

psi MATLAB, выход:

0.0108898014620571 
0.210998162961140 
0.438460057014266 
0.0151457063113246 
0.00500000000002244 
0.773834726466399 

Другие выходы SPSS:

Component Matrix   
    Component 
       1  2 
VAR00001 .964 .144 
VAR00002 .919 .061 
VAR00003 .821 .141 
VAR00004 .971 .105 
VAR00005 -.404 .755 
VAR00006 -.124 .871 
Extraction Method: Principal Component Analysis.   
a 2 components extracted.  


Component Transformation Matrix  
Component 1 2 
1 .977 -.211 
2 .211 .977 
Extraction Method: Principal Component Analysis. 
Rotation Method: Varimax with Kaiser Normalization.   
+0

Часть вашего кода говорит, что «Вращение сходится в 3 итерации». Это заставляет меня подозревать, что алгоритм, который вы используете, является стохастическим (не дает одинакового результата каждый раз), или он дает другой ответ в зависимости от того, как вы его инициализируете. Это так? Если это так, это может объяснить разные результаты. – mikkola

+0

@mikkola Спасибо за ответ. Я повторяю процесс в SPSS, но каждый раз, когда у меня такие же результаты. – user2991243

+0

Есть так много вариантов настройки, что трудно сказать. Например, SPSS говорит, что он использует нормализацию Кайзера, но Matlab не (?). Кроме того, начальная точка кажется случайной в соответствии с параметрами в Matlab. – Oleg

ответ

1

Matlab извлекает факторы с использованием метода максимального правдоподобия. Я не думаю, что вы можете это изменить. SPSS извлекает методы с использованием основных компонентов по умолчанию, и это метод, который вы выбрали для анализа SPSS. Это еще одна разница ...

Смежные вопросы