Schlussfolgerungen aus der Ausgabe einer Hauptkomponentenanalyse

9

Ich versuche, die Ausgabe der Hauptkomponentenanalyse wie folgt zu verstehen:

> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
> res = prcomp(iris[1:4], scale=T)
> res
Standard deviations:
[1] 1.7083611 0.9560494 0.3830886 0.1439265

Rotation:
                    PC1         PC2        PC3        PC4
Sepal.Length  0.5210659 -0.37741762  0.7195664  0.2612863
Sepal.Width  -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length  0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width   0.5648565 -0.06694199 -0.6342727  0.5235971
> 
> summary(res)
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.7084 0.9560 0.38309 0.14393
Proportion of Variance 0.7296 0.2285 0.03669 0.00518
Cumulative Proportion  0.7296 0.9581 0.99482 1.00000
> 

Ich neige dazu, aus der obigen Ausgabe folgendes zu schließen:

  1. Der Varianzanteil gibt an, wie viel Gesamtvarianz in der Varianz einer bestimmten Hauptkomponente vorhanden ist. Daher erklärt die PC1-Variabilität 73% der Gesamtvarianz der Daten.

  2. Die angezeigten Rotationswerte entsprechen den in einigen Beschreibungen genannten "Belastungen".

  3. In Anbetracht der Rotationen von PC1 kann man schließen, dass Sepal.Length, Petal.Length und Petal.Width in direktem Zusammenhang stehen und alle in umgekehrter Beziehung zu Sepal.Width stehen (was einen negativen Wert bei der Rotation von PC1 hat).

  4. In Pflanzen kann es einen Faktor geben (einige chemische / physikalische Funktionssysteme usw.), der alle diese Variablen beeinflusst (Sepal.Length, Petal.Length und Petal.Width in einer Richtung und Sepal.Width in der entgegengesetzten Richtung).

  5. Wenn ich alle Rotationen in einem Diagramm anzeigen möchte, kann ich ihren relativen Beitrag zur Gesamtvariation zeigen, indem ich jede Rotation mit dem Varianzanteil dieser Hauptkomponente multipliziere. Beispielsweise werden für PC1 die Umdrehungen von 0,52, -0,26, 0,58 und 0,56 alle mit 0,73 multipliziert (proportionale Varianz für PC1, gezeigt in der zusammenfassenden (res) Ausgabe.

Habe ich Recht mit den obigen Schlussfolgerungen?

Bearbeiten zu Frage 5: Ich möchte alle Rotationen in einem einfachen Balkendiagramm wie folgt anzeigen: Geben Sie hier die Bildbeschreibung ein

Ist es sinnvoll, die Belastungen der Variablen dort anzupassen (zu reduzieren), da PC2, PC3 und PC4 zunehmend weniger zur Variation beitragen?

rnso
quelle
Zu (5): Was Sie "Ladungen" nennen, sind eigentlich keine Ladungen, sondern Eigenvektoren der Kovarianzmatrix, auch bekannt als Hauptrichtungen, auch bekannt als Hauptachsen. "Ladungen" sind Eigenvektoren multipliziert mit Quadratwurzeln ihrer Eigenwerte, dh mit Quadratwurzeln des Anteils der erklärten Varianz. Ladungen haben viele schöne Eigenschaften und sind nützlich für die Interpretation, siehe z. B. diesen Thread: Ladungen gegen Eigenvektoren in PCA: Wann soll der eine oder andere verwendet werden? Also ja, es ist sehr sinnvoll, Ihre Eigenvektoren zu skalieren. Verwenden Sie einfach Quadratwurzeln der erklärten Varianz.
Amöbe
@amoeba: Was ist im Biplot von PCA, Rotationen oder Ladungen dargestellt?
rnso
Am häufigsten werden Ladungen aufgezeichnet, siehe meine Antwort hier zur weiteren Diskussion.
Amöbe

Antworten:

9
  1. Ja. Dies ist die richtige Interpretation.
  2. Ja, Rotationswerte geben die Komponentenladewerte an. Dies wird durch die prcomp Dokumentation bestätigt , obwohl ich nicht sicher bin, warum sie diesen Teil des Aspekts "Drehung" kennzeichnen, da dies impliziert, dass die Belastungen mit einer orthogonalen (wahrscheinlichen) oder schrägen (weniger wahrscheinlichen) Methode gedreht wurden.
  3. Es scheint zwar so zu sein, dass Sepal.Length, Petal.Length und Petal.Width alle positiv miteinander verbunden sind, aber ich würde nicht so viel Wert auf die kleine negative Belastung von Sepal.Width auf PC1 legen. es wird viel stärker (fast ausschließlich) auf PC2 geladen. Um klar zu sein, Sepal.Width ist wahrscheinlich immer noch negativ mit den anderen drei Variablen verbunden, aber es scheint einfach nicht stark mit der ersten Hauptkomponente verbunden zu sein.
  4. Aufgrund dieser Frage frage ich mich, ob Sie besser mit einer Common Factor (CF) -Analyse als mit einer Principal Components Analysis (PCA) bedient werden können. CF ist eher eine geeignete datenreduzierende Technik, wenn Ihr Ziel darin besteht, aussagekräftige theoretische Dimensionen aufzudecken - beispielsweise kann der von Ihnen angenommene Pflanzenfaktor die Sepal.Length, Petal.Length und Petal.Width beeinflussen. Ich schätze, dass Sie aus einer Art biologischer Wissenschaft stammen - vielleicht aus der Botanik -, aber in der Psychologie gibt es einige gute Schriften zur Unterscheidung zwischen PCA und CF von Fabrigar et al., 1999, Widaman, 2007 und anderen. Der Hauptunterschied zwischen beiden besteht darin, dass PCA davon ausgeht, dass alle Varianzen eine True-Score-Varianz sind - es wird kein Fehler angenommen -, während CF die True-Score-Varianz von der Fehlervarianz trennt, bevor Faktoren extrahiert und Faktorladungen geschätzt werden. Letztendlich erhalten Sie möglicherweise eine ähnlich aussehende Lösung - Menschen tun dies manchmal -, aber wenn sie voneinander abweichen, überschätzt PCA in der Regel die Belastungswerte und unterschätzt die Korrelationen zwischen Komponenten. Ein zusätzlicher Vorteil des CF-Ansatzes besteht darin, dass Sie die Maximum-Likelihood-Schätzung verwenden können, um Signifikanztests für Belastungswerte durchzuführen, und gleichzeitig einige Indizes erhalten, wie gut Ihre gewählte Lösung (1 Faktor, 2 Faktoren, 3 Faktoren oder 4 Faktoren) Ihre erklärt Daten.
  5. Ich würde die Faktorladewerte so darstellen, wie Sie es getan haben, ohne ihre Balken mit dem Varianzanteil für ihre jeweiligen Komponenten zu gewichten. Ich verstehe, was Sie mit einem solchen Ansatz zeigen möchten, aber ich denke, dies würde wahrscheinlich dazu führen, dass die Leser die Komponentenladewerte aus Ihrer Analyse falsch verstehen. Wenn Sie jedoch eine visuelle Methode zur Darstellung der relativen Varianzgröße der einzelnen Komponenten wünschen, können Sie die Deckkraft der Gruppenbalken ändern (wenn Sie ggplot2diese verwenden, wird dies meiner Meinung nach mit der Option ausgeführtalphaästhetisch), basierend auf dem Anteil der Varianz, der durch jede Komponente erklärt wird (dh mehr Volltonfarben = mehr erklärte Varianz). Nach meiner Erfahrung ist Ihre Zahl jedoch keine typische Art, die Ergebnisse einer PCA darzustellen. Ich denke, eine oder zwei Tabellen (Belastungen + Varianz in einer, Komponentenkorrelationen in einer anderen) wären viel einfacher.

Verweise

LR Fabrigar, DT Wegener, RC MacCallum & EJ Strahan (1999). Bewertung der Verwendung der exploratorischen Faktoranalyse in der psychologischen Forschung. Psychological Methods , 4 , 272 & ndash; 299.

Widaman, KF (2007). Gemeinsame Faktoren versus Komponenten: Prinzipien und Prinzipien, Fehler und Missverständnisse . In R. Cudeck & RC MacCallum (Hrsg.), Faktoranalyse bei 100: Historische Entwicklungen und zukünftige Richtungen (S. 177-203). Mahwah, NJ: Lawrence Erlbaum.

jsakaluk
quelle
2
+1, viele gute Punkte hier. Zu (2): Eigenvektoren der Kovarianzmatrix werden hier als "Rotation" bezeichnet, da PCA im Wesentlichen eine Rotation des Koordinatensystems ist, so dass das neue Koordinatensystem mit den Eigenvektoren ausgerichtet ist. Dies hat nichts mit "orthogonaler / schräger Rotation von Faktoren" in der Faktoranalyse zu tun. Zu (5): Ich bin nicht sicher, ob ich verstehe, was Sie hier gemeint haben, und ich verstehe auch nicht, wie OP die Eigenvektoren "in einem Graphen" "zeigen" will. Vielleicht hat OP so etwas wie einen Biplot im Sinn. Dann ja, Eigenvektoren werden oft durch die Eigenwerte skaliert, aber durch ihre Quadratwurzeln.
Amöbe
Obwohl schöne Handlung mit Blumenmotiven für Ihr Thema, @rnso :)
jsakaluk
1
  1. Nein, nicht die Gesamtvarianz der Daten. Die Gesamtvarianz der angegebenen Daten möchten Sie in 4 Hauptkomponenten ausdrücken. Sie können immer mehr Gesamtvarianz finden, indem Sie mehr Hauptkomponenten hinzufügen. Dies verfällt jedoch schnell.
Brad
quelle