Ich habe versucht, einige Forschungen (mit PCA) von SPSS in R zu reproduzieren. Nach meiner Erfahrung war die principal()
Funktion aus Paket psych
die einzige Funktion, die der Ausgabe entsprach (oder wenn mein Gedächtnis richtig funktioniert). Um die gleichen Ergebnisse wie in SPSS zu erzielen, musste ich parameter verwenden principal(..., rotate = "varimax")
. Ich habe Zeitungen darüber sprechen sehen, wie sie PCA gemacht haben, aber basierend auf der Ausgabe von SPSS und der Verwendung von Rotation klingt es eher wie eine Faktoranalyse.
Frage: Ist PCA auch nach dem Drehen (mit varimax
) noch PCA? Ich hatte den Eindruck, dass dies tatsächlich eine Faktorenanalyse sein könnte ... Falls nicht, welche Details fehlen mir?
r
spss
pca
factor-analysis
factor-rotation
Roman Luštrik
quelle
quelle
principal
Funktion erwähnt, nach der Sie gefragt haben. Wenn seine Antwort tatsächlich Ihre Frage beantwortet hat, ist Ihre Frage möglicherweise nicht angemessen formuliert. Würden Sie eine Bearbeitung in Betracht ziehen? Ansonsten ist die Antwort der Promotion meiner Meinung nach viel näher an der tatsächlichen Beantwortung Ihrer Frage. Beachten Sie, dass Sie die akzeptierte Antwort jederzeit ändern können.Antworten:
Bei dieser Frage geht es hauptsächlich um Definitionen von PCA / FA, daher können sich die Meinungen unterscheiden. Meiner Meinung nach sollte PCA + varimax nicht als PCA oder FA bezeichnet werden, sondern eher explizit als "varimax-gedrehtes PCA" bezeichnet werden.
Ich sollte hinzufügen, dass dies ein ziemlich verwirrendes Thema ist. In dieser Antwort möchte ich erklären, was eine Rotation tatsächlich ist . Dies erfordert etwas Mathematik. Ein gelegentlicher Leser kann direkt zur Abbildung springen. Nur dann können wir diskutieren, ob PCA + Rotation als "PCA" bezeichnet werden soll oder nicht.
Eine Referenz ist Jolliffes Buch "Principal Component Analysis", Abschnitt 11.1 "Rotation von Hauptkomponenten", aber ich finde, es könnte klarer sein.
Sei eine n × p- Datenmatrix, von der wir annehmen, dass sie zentriert ist. PCA ergibt ( siehe meine Antwort hier ) eine Singulärwertzerlegung: X = U S V ⊤ . Es gibt zwei äquivalente, aber komplementäre Ansichten zu dieser Zerlegung: eine eher PCA-artige "Projektions" -Ansicht und eine eher FA-artige "latente Variablen" -Ansicht.X n×p X=USV⊤
Gemäß der PCA-Stil - Ansicht, fanden wir eine Reihe von orthogonalen Richtungen (diese sind Eigenvektoren der Kovarianz - Matrix, die auch „Hauptrichtungen“ oder „Achsen“ bezeichnet), und „principal components“ U S (auch als Hauptbestandteil " Scores ") sind Projektionen der Daten in diese Richtungen. Hauptkomponenten sind unkorreliert, die erste hat maximal mögliche Varianz etc. kann man schreiben: X = U S ⋅ V ⊤ = Scores ⋅ Hauptrichtungen .V U S
Nach Ansicht des FA-Stils fanden wir einige unkorrelierte "latente Faktoren" der Einheitsvarianz, die über "Ladungen" zu den beobachteten Variablen führen. Tatsächlich ist sind standardisierte Hauptkomponenten (unkorreliert und mit Einheitsvarianz), und wenn wir Belastungen alsL=VS/ √ definierenU˜= n - 1-----√U , dann ist X= √L = V S / n - 1-----√ (Beachten Sie, dass S ⊤=S ist.) Beide Ansichten sind äquivalent. Beachten Sie, dass Ladungen Eigenvektoren sind, die mit den jeweiligen Eigenwerten (S/ √
(Ich sollte in Klammern hinzufügen, dass PCA FA≠ ; FA explizit darauf abzielt, latente Faktoren zu finden, die über Ladevorgänge linear auf die beobachteten Variablen abgebildet werden. Es ist flexibler als PCA und liefert unterschiedliche Ladevorgänge. Aus diesem Grund ziehe ich es vor, das Obige zu bezeichnen. " FA-artige Ansicht auf PCA "und nicht FA, obwohl manche Leute es als eine der FA-Methoden ansehen.)
Was macht nun eine Rotation? ZB eine orthogonale Rotation wie Varimax. Erstens, es hält nur Komponenten, dh: X ≈ U k S k V ⊤ k = ~ U k L ⊤ k . Dann nimmt man eine quadratische orthogonale k × k- Matrix T und setzt T T ⊤ = I in diese Zerlegung ein: X ≈ U k S k V ⊤ k = Uk < p
Es ist zu beachten, dass Folgendes gedreht wird: (1) standardisierte Bewertungen, (2) Ladungen. Aber nicht die rohen Noten und nicht die Hauptrichtungen! Die Rotation findet also im latenten Raum statt, nicht im ursprünglichen Raum. Das ist absolut entscheidend.
Aus Sicht des FA-Stils ist nicht viel passiert. (A) Die latenten Faktoren sind immer noch unkorreliert und standardisiert. (B) Sie werden weiterhin über (gedrehte) Ladungen auf die beobachteten Variablen abgebildet. (C) Die Menge der Varianz von jeder Komponente / Faktor erfaßt wird durch die Summe der quadrierten Werte der entsprechenden Beladungen Spalte in gegebenen . (D) Geometrisch überspannen Ladungen immer noch den gleichen k- dimensionalen Unterraum in R p (den von den ersten k PCA-Eigenvektoren aufgespannten Unterraum ). (E) Die Annäherung an X und der Rekonstruktionsfehler änderten sich überhaupt nicht. (F) Die Kovarianzmatrix approximiert wird noch ebenso gut: & Sigma; ≈ LLr o t k Rp k X
Aber die Sichtweise im PCA-Stil ist praktisch zusammengebrochen. Gedrehte Lasten entsprechen nicht mehr den orthogonalen Richtungen / Achsen in , dh Spalten von sind nicht orthogonal! Schlimmer noch, wenn Sie die Daten [orthogonal] auf die Richtungen projizieren, die durch die gedrehten Ladungen vorgegeben sind, erhalten Sie korrelierte (!) Projektionen und können die Ergebnisse nicht wiederherstellen. [Um die standardisierten Ergebnisse nach der Rotation zu berechnen, muss die Datenmatrix mit dem Pseudo-Inversen der Ladungen multipliziert werden. . Alternativ kann man einfach die ursprünglichen standardisierten Punktzahlen mit der Rotationsmatrix drehen:L R o t ~ U r o t = X ( L + R o t ) ⊤ ~ U r o t = ~ U T kkRp Lr o t U˜r o t= X ( L+r o t)⊤ U˜r o t= U˜T ] Außerdem erfassen die gedrehten Komponenten nicht nacheinander den maximalen Betrag der Varianz: Die Varianz wird zwischen den Komponenten (gerade) neu verteilt obwohl alle gedrehten Komponenten genau so viel Varianz erfassen wie alle ursprünglichen Hauptkomponenten).k k
Hier ist eine Illustration. Die Daten sind eine 2D-Ellipse, die sich entlang der Hauptdiagonale erstreckt. Die erste Hauptrichtung ist die Hauptdiagonale, die zweite ist orthogonal dazu. PCA-Ladevektoren (mit den Eigenwerten skalierte Eigenvektoren) werden in roter Farbe angezeigt, wobei sie in beide Richtungen weisen und für die Sichtbarkeit auch um einen konstanten Faktor gedehnt sind. Dann habe ich den Ladungen eine orthogonale Drehung um . Die resultierenden Ladevektoren werden in Magenta angezeigt. Beachten Sie, dass sie nicht orthogonal sind (!).30∘
Eine FA-artige Intuition ist hier wie folgt: Stellen Sie sich einen "latenten Raum" vor, in dem Punkte einen kleinen Kreis füllen (stammen aus einem 2D-Gaußschen mit Einheitsvarianzen). Diese Punkteverteilung wird dann entlang der PCA-Ladungen (rot) gestreckt , um die Datenellipse zu erhalten, die wir in dieser Abbildung sehen. Die gleiche Verteilung von Punkten kann jedoch gedreht und dann entlang der gedrehten PCA-Ladungen (Magenta) gestreckt werden, um die gleiche Datenellipse zu erhalten .
[Um zu sehen, dass eine orthogonale Rotation von Ladungen eine Rotation ist , muss ein PCA-Biplot betrachtet werden. dort drehen sich die Vektoren / Strahlen, die den ursprünglichen Variablen entsprechen, einfach.]
Fassen wir zusammen. Nach einer orthogonalen Drehung (z. B. Varimax) sind die Hauptachsen nicht orthogonal, und orthogonale Projektionen darauf sind nicht sinnvoll. Man sollte also eher diesen ganzen Achsen- / Projektionsgesichtspunkt fallen lassen. Es wäre seltsam, es immer noch PCA zu nennen (das sind Projektionen mit maximaler Varianz usw.).
Aus Sicht des FA-Stils haben wir einfach unsere (standardisierten und unkorrelierten) latenten Faktoren gedreht, was eine gültige Operation ist. Es gibt keine "Projektionen" in FA; Stattdessen erzeugen latente Faktoren die beobachteten Variablen über Ladungen. Diese Logik bleibt erhalten. Wir haben jedoch mit Hauptkomponenten begonnen, die eigentlich keine Faktoren sind (da PCA nicht mit FA identisch ist). Es wäre also seltsam, es auch FA zu nennen.
Anstatt zu diskutieren, ob man es lieber als PCA oder FA bezeichnen sollte, würde ich empfehlen, das genau verwendete Verfahren akribisch zu spezifizieren: "PCA gefolgt von einer Varimax-Rotation".
quelle
PCA loading vectors... are shown in red
,stretched along the rotated PCA loadings (magenta)
. Ich frage mich, wie "Ladungen" oder deren "Vektor" als Achsen im Datenstreudiagramm dargestellt werden könnten. Können Sie das bitte klarer machen? Und die Idee des "Dehnens"? Vielen Dank.Die Hauptkomponentenanalyse (PCA) und die Common Factor Analysis (CFA) sind unterschiedliche Methoden. Häufig führen sie zu ähnlichen Ergebnissen, und PCA wird als Standardextraktionsmethode in den SPSS-Faktoranalyse-Routinen verwendet. Dies führt zweifellos zu einer Menge Verwirrung über die Unterscheidung zwischen den beiden.
Unterm Strich sind dies konzeptionell zwei verschiedene Modelle. In PCA sind die Komponenten tatsächliche orthogonale Linearkombinationen, die die Gesamtvarianz maximieren. In FA sind die Faktoren Linearkombinationen, die den gemeinsamen Teil der Varianz maximieren - zugrunde liegende "latente Konstrukte". Deshalb wird FA oft als "Common Factor Analysis" bezeichnet. FA verwendet eine Vielzahl von Optimierungsroutinen und das Ergebnis hängt im Gegensatz zu PCA von der verwendeten Optimierungsroutine und den Startpunkten für diese Routinen ab. Es gibt einfach keine einzige Lösung.
In R bietet die factanal () -Funktion CFA eine maximale Wahrscheinlichkeitsextraktion. Sie sollten also nicht erwarten, dass es ein SPSS-Ergebnis reproduziert, das auf einer PCA-Extraktion basiert. Es ist einfach nicht dasselbe Modell oder dieselbe Logik. Ich bin mir nicht sicher, ob Sie dasselbe Ergebnis erzielen würden, wenn Sie die SPSS-Maximum-Likelihood-Extraktion verwenden, da diese möglicherweise nicht denselben Algorithmus verwenden.
In R können Sie jedoch die vertauschte "Faktoranalyse" reproduzieren, die SPSS standardmäßig bereitstellt. Hier ist der Prozess in R. Mit diesem Code kann ich das Ergebnis der SPSS-Hauptkomponente "Faktoranalyse" mithilfe dieses Datensatzes reproduzieren. (Mit Ausnahme des Zeichens, das nicht bestimmbar ist). Dieses Ergebnis könnte dann auch mit einer der verfügbaren Rotationsmethoden gedreht werden.
quelle
prcomp
oder imprincomp
Vergleich zum gemischten Ansatz von SPSS? Was macht SPSS eigentlich beim Extrahieren?zz <- scale(attitude,T,T)
undpc1 <- zz %*% solve(cor(attitude),lamba[,1])
. Wobei Lambda das Ergebnis der letzten Zeile von @Brett Magills Beispiel ist.Diese Antwort soll in Form eines Pfaddiagramms zeigen, worüber @amoeba in seiner tiefen (aber etwas komplizierten) Antwort auf diesen Thread argumentiert hat (ich bin damit zu 95% einverstanden) und wie sie mir erscheinen .
In der Grafik nehme ich ein einfaches Beispiel für zwei Variablen
p=2
und verwende beide extrahierten Hauptkomponenten. Obwohl wir normalerweise nur wenige erstem<p
Komponenten behalten , spielt es für die theoretische Frage, die wir uns stellen ("Ist PCA mit Rotation eine PCA oder was?"), Keine Rolle, obm
oder allep
beibehalten werden sollen. Zumindest in meiner speziellen Antwort.Diese zuletzt skizzierten Aktionen (die größtenteils sinnlos sind) erinnern uns daran, dass Eigenvektoren, nicht nur Ladungen, im Allgemeinen gedreht werden könnten. Zum Beispiel könnte das Varimax-Verfahren auf sie angewendet werden , um ihre Struktur zu vereinfachen . Da Eigenvektoren jedoch bei der Interpretation der Bedeutung der Komponenten nicht so hilfreich sind wie die Ladungen, wird die Drehung der Eigenvektoren selten durchgeführt.
Also, PCA mit anschließender Varimax (oder anderer) Rotation ist
Ich habe in dieser Antwort nicht auf die Faktorenanalyse Bezug genommen. Es scheint mir, dass @ amoebas Verwendung des Wortes "latenter Raum" im Kontext der gestellten Frage ein bisschen riskant ist. Ich werde, schließe jedoch, dass PCA + analytische Rotation „FA- nennen könnte Stil Blick auf PCA“.
quelle
In
psych::principal()
Sie verschiedene Arten von Drehungen / Transformationen extrahieren Principal Component tun können (n) oder '' PC '' die Verwendung vonrotate=
Argumente, wie:"none"
,"varimax"
(Default),"quatimax"
,"promax"
,"oblimin"
,"simplimax"
, und"cluster"
. Sie müssen empirisch entscheiden, welches in Ihrem Fall sinnvoll sein sollte, falls dies erforderlich ist, abhängig von Ihrer eigenen Einschätzung und Kenntnis des zu untersuchenden Gegenstands. Eine Schlüsselfrage, die Ihnen einen Hinweis geben könnte: Welche ist interpretierbarer (bei Bedarf erneut)?In der Hilfe finden Sie möglicherweise auch Folgendes hilfreich:
quelle
Ich verstehe, dass die Unterscheidung zwischen PCA- und Faktoranalyse in erster Linie darin besteht, ob ein Fehlerbegriff vorliegt. Auf diese Weise kann und wird PCA die Daten getreu wiedergeben, wohingegen die Faktorenanalyse den Daten, auf denen sie trainiert wurde, weniger treu ist, sondern versucht, zugrunde liegende Trends oder Gemeinsamkeiten in den Daten darzustellen. Bei einem Standardansatz wird PCA nicht gedreht, aber es ist mathematisch möglich, so dass die Leute es von Zeit zu Zeit tun. Ich stimme den Kommentatoren darin zu, dass die "Bedeutung" dieser Methoden etwas zu gewinnen ist und dass es wahrscheinlich sinnvoll ist, sicher zu sein, dass die von Ihnen verwendete Funktion das tut, was Sie beabsichtigen - zum Beispiel, wenn Sie feststellen, dass R einige Funktionen hat, die funktionieren Eine andere Art von PCA als Benutzer von SPSS.
quelle
Dank des Chaos in den Definitionen von beiden sind sie praktisch ein Synonym. Glauben Sie keinen Worten und schauen Sie tief in die Docks, um die Gleichungen zu finden.
quelle
Obwohl diese Frage bereits eine akzeptierte Antwort hat, möchte ich dem Punkt der Frage etwas hinzufügen.
"PCA" - wenn ich mich richtig erinnere - bedeutet "Hauptkomponentenanalyse"; Solange Sie die Hauptkomponenten analysieren, sei es ohne Drehung oder mit Drehung, befinden wir uns immer noch in der Analyse der "Hauptkomponenten" (die durch die entsprechende anfängliche Matrixzerlegung gefunden wurden).
Ich würde formulieren, dass wir nach der "Varimax" -Rotation der ersten beiden Hauptkomponenten die "Varimax-Lösung der beiden ersten PCs" (oder etwas anderes) haben, aber immer noch im Rahmen der Analyse der Hauptkomponenten sind. oder kürzer, sind im Rahmen von "pca".
Um meinen Standpunkt noch klarer zu machen: Ich glaube nicht, dass die einfache Frage der Rotation das Problem der Unterscheidung zwischen EFA und CFA aufwirft (letzteres wurde zum Beispiel in der Antwort von Brett erwähnt / in das Problem eingeführt).
quelle
Ich fand dies die hilfreich sein: Abdi & Williams, 2010, Hauptkomponentenanalyse .
(Definition von Q siehe Papier).
quelle