Ich bin ein Doktorand in Informatik. Ich habe eine explorative Faktorenanalyse für ein Forschungsprojekt durchgeführt. Meine Kollegen (die das Projekt leiten) verwenden SPSS, während ich R. bevorzuge. Dies spielte keine Rolle, bis wir eine große Diskrepanz zwischen den beiden statistischen Paketen entdeckten.
Wir verwenden das Prinzipalachsen-Factoring als Extraktionsmethode (bitte beachten Sie, dass mir der Unterschied zwischen PCA- und Faktoranalyse bekannt ist und dass wir PCA zumindest nicht absichtlich verwenden). Nach dem, was ich gelesen habe, sollte dies der "Hauptachsen" -Methode in R und entweder "Hauptachsenfaktor" oder "ungewichtete kleinste Quadrate" in SPSS entsprechen, gemäß der R-Dokumentation . Wir verwenden eine Methode der schrägen Rotation (speziell Promax ), da wir korrelierte Faktoren erwarten und die Mustermatrix interpretieren .
Wenn Sie die beiden Prozeduren in R und SPSS ausführen, gibt es große Unterschiede. Die Mustermatrix gibt verschiedene Ladungen an. Obwohl dies den variablen Beziehungen mehr oder weniger den gleichen Faktor verleiht, gibt es einen Unterschied von bis zu 0,15 zwischen den entsprechenden Ladungen, was mehr zu sein scheint, als bei einer anderen Implementierung der Extraktionsmethode und Promax-Rotationen zu erwarten wäre. Dies ist jedoch nicht der verblüffendste Unterschied.
Die kumulative Varianz, die durch die Faktoren erklärt wird, liegt bei den SPSS-Ergebnissen bei etwa 40% und bei den R-Ergebnissen bei 31%. Dies ist ein großer Unterschied und hat dazu geführt, dass meine Kollegen SPSS anstelle von R verwenden wollten. Ich habe kein Problem damit, aber ein so großer Unterschied lässt mich glauben, dass wir etwas falsch interpretieren, was ein Problem ist.
SPSS trübt das Wasser noch mehr und meldet verschiedene Arten der erklärten Varianz, wenn wir das ungewichtete Faktorisieren der kleinsten Quadrate ausführen. Der Anteil der erklärten Varianz nach Anfangseigenwerten beträgt 40%, während der Anteil der erklärten Varianz aus den Extraktionssummen der quadratischen Lasten (SSL) 33% beträgt. Dies lässt mich denken, dass die anfänglichen Eigenwerte nicht die richtige Zahl sind (ich vermute, dass dies die Varianz ist, die vor der Rotation erklärt wurde, obwohl ich nicht weiß, ob sie so groß ist). Noch verwirrender ist, dass SPSS auch Rotations-SSL anzeigt, aber den Prozentsatz der erklärten Varianz nicht berechnet (SPSS gibt an, dass ich aufgrund von Korrelationsfaktoren keine SSLs hinzufügen kann, um die Gesamtvarianz zu ermitteln, was mit den von mir beobachteten Berechnungen sinnvoll ist). Die gemeldeten SSLs von R stimmen nicht mit diesen überein, und R gibt an, dass sie 31% der Gesamtvarianz beschreiben. Die SSLs von R stimmen am besten mit den Rotations-SSLs überein. Die Eigenwerte von R aus der ursprünglichen Korrelationsmatrix stimmen mit den Anfangseigenwerten von SPSS überein.
Beachten Sie auch, dass ich mit verschiedenen Methoden herumgespielt habe und dass ULS und PAF von SPSS am ehesten mit der PA-Methode von R übereinstimmen.
Meine spezifischen Fragen:
- Welchen Unterschied sollte ich zwischen R und SPSS bei Implementierungen der Faktoranalyse erwarten?
- Welche der Quadratsummen von SPSS soll ich interpretieren, anfängliche Eigenwerte, Extraktion oder Rotation?
- Gibt es noch andere Probleme, die ich möglicherweise übersehen habe?
Meine Anrufe an SPSS und R lauten wie folgt:
SPSS:
FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT INITIAL KMO AIC EXTRACTION ROTATION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION PROMAX(4).
R:
library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)
quelle
Antworten:
Zuallererst empfehle ich, die Lösung vor der Rotation zu betrachten. Die in SPSS implementierte Faktoranalyse ist ein komplexes Verfahren mit mehreren Schritten. Ein Vergleich der Ergebnisse der einzelnen Schritte soll Ihnen dabei helfen, das Problem genau zu bestimmen.
Insbesondere können Sie ausführen
um die Korrelationsmatrix zu sehen, verwendet SPSS, um die Faktorenanalyse durchzuführen. Bereiten Sie dann in R die Korrelationsmatrix selbst vor, indem Sie ausführen
Jegliche Diskrepanz in der Art und Weise, wie fehlende Werte behandelt werden, sollte zu diesem Zeitpunkt offensichtlich sein. Nachdem Sie überprüft haben, dass die Korrelationsmatrix identisch ist, können Sie sie an die Funktion fa weiterleiten und Ihre Analyse erneut ausführen:
Wenn Sie in SPSS und R immer noch unterschiedliche Ergebnisse erhalten, fehlt das Problem nicht wertebezogen.
Als nächstes können Sie die Ergebnisse der Faktoranalyse / Extraktionsmethode selbst vergleichen.
und
Vergleichen Sie erneut die Faktormatrizen / Gemeinsamkeiten / Summe der Quadratladungen. Hier können Sie einige winzige Unterschiede erwarten, aber sicherlich nicht in der Größenordnung, die Sie beschreiben. All dies würde Ihnen eine klarere Vorstellung davon geben, was los ist.
Um nun Ihre drei Fragen direkt zu beantworten:
quelle
fa
Funktion in R aus dempsych
Paket. Diefactanal
Funktion aus dem Basispaket sollte ähnlich funktionieren, ist aberpsych
für andere Zwecke durchaus empfehlenswert. In der Tat, da diese Likert Daten vorhanden ist, wäre es klug, das verwendenpsych
Paketfa.poly
statt: siehe die Hilfe - Dokumentation .Kürzlich habe ich festgestellt, dass die meisten Diskrepanzen bei der Faktoranalyse zwischen SPSS und R (mit Psych-Paket) behoben werden, wenn Daten in jedem Programm fehlend aufgelistet behandelt werden, die Korrelationsmatrix in jedem Programm genau gleich ist und keine schräge Rotation verwendet wird.
Eine verbleibende Diskrepanz besteht in der Reihe von Werten, die im Geröllplot angezeigt werden und Eigenwerte nach der Extraktion angeben. In Rs "Geröll (cor (mydata))" stimmen diese "Faktoren" nicht mit denen überein, die in der Tabelle "Variance Explained" von SPSS unter "Extraction Sums of Squared Loadings" aufgeführt sind. Beachten Sie, dass die "Komponenten" des R-Scree-Diagramms mit dem SPSS-Scree-Diagramm übereinstimmen, das auch mit den "Anfangseigenwerten" der Variance Explained-Tabelle übereinstimmt.
Ich habe auch herausgefunden, dass die "Proportion Var", die durch jeden Faktor erklärt wird, in R manchmal als (die Proportion für einen gegebenen Faktor) / (die Menge, die durch alle Faktoren erklärt wird) angegeben wird, während es zu anderen Zeiten (die Proportion) ist für einen bestimmten Faktor) (die Anzahl der Elemente in der Analyse). Wenn Sie also das erstere erhalten, ist es, obwohl es keine Übereinstimmung ist, zumindest proportional zu dem, was SPSS unter "Extraktionssummen der quadratischen Lasten ...% der Varianz" meldet, und davon ableitbar.
Das Einführen der Oblimin-Rotation in jedes Programm führt jedoch zu beträchtlichen Abweichungen beim Laden von Gegenständen oder zu Abweichungen der Faktoren, die ich nicht lösen konnte.
quelle
Die Standardrotationsmethode in R ist oblimin, daher wird dies wahrscheinlich den Unterschied verursachen. Als Testlauf ein PAF / Oblimin in SPSS und R und Sie werden fast identische Ergebnisse finden.
quelle
Ich weiß nicht, was die Unterschiede in den Musterladungen verursacht, aber ich gehe davon aus, dass der Unterschied in% der erklärten Varianz folgende Gründe hat: - Interpretieren Sie vielleicht den ersten Teil (von 2 oder 3) der erklärten Varianztabelle von SPSS, der tatsächlich anzeigt Ergebnisse der Hauptkomponentenanalyse. Der zweite Teil zeigt die Ergebnisse für die Analyse der nicht gedrehten Faktoren und die dritten Ergebnisse nach der Drehung (falls verwendet). - die Tatsache, dass die Funktion fa (oder genauer gesagt ihre Druckmethode) SSL für schräge Faktoren falsch berechnet. Um den Prozentsatz der Gesamtvarianz zu erhalten, der durch den Faktor erklärt wird, müssen Sie die Summe der quadratischen Strukturbelastungen durch den Faktor berechnen und diese durch die Anzahl der Variablen dividieren. Sie können diese jedoch nicht zusammenfassen (im Fall von Schrägrotationen), um den durch alle Faktoren erklärten Prozentsatz der Varianz zu erhalten. Um dies zu bekommen,
quelle
Diese Antwort ist additiv zu den obigen. Wie von Gala in seiner Antwort vorgeschlagen, sollte man vor der Rotation zunächst feststellen, ob die von R (z. B. fa in psych) und SPSS bereitgestellten Lösungen unterschiedlich sind. Wenn sie identisch sind, überprüfen Sie die Rotationseinstellungen in jedem Programm. (Für SPSS finden Sie alle Einstellungen im Referenzhandbucheintrag für FACTOR).
Eine wichtige Einstellung, nach der gesucht werden muss, ist die Kaiser-Normalisierung . Standardmäßig führt SPSS die Kaiser-Normalisierung während der Drehung durch, während einige R-Funktionen wie 'fa' dies nicht tun. Sie können diese Einstellung in SPSS steuern, indem Sie / CRITERIA = NOKAISER / KAISER angeben, um zu überprüfen, ob Unstimmigkeiten zwischen den Ergebnissen für jedes Programm behoben werden.
quelle