Hat das Vorzeichen von Punktzahlen oder Ladungen in PCA oder FA eine Bedeutung? Darf ich das Vorzeichen umkehren?

37

Ich führte eine Hauptkomponentenanalyse (PCA) mit R mit zwei verschiedenen Funktionen ( prcompund princomp) durch und stellte fest, dass sich die PCA-Werte im Vorzeichen unterschieden. Wie kann es sein?

Bedenken Sie:

set.seed(999)
prcomp(data.frame(1:10,rnorm(10)))$x

            PC1        PC2
 [1,] -4.508620 -0.2567655
 [2,] -3.373772 -1.1369417
 [3,] -2.679669  1.0903445
 [4,] -1.615837  0.7108631
 [5,] -0.548879  0.3093389
 [6,]  0.481756  0.1639112
 [7,]  1.656178 -0.9952875
 [8,]  2.560345 -0.2490548
 [9,]  3.508442  0.1874520
[10,]  4.520055  0.1761397

set.seed(999)
princomp(data.frame(1:10,rnorm(10)))$scores
         Comp.1     Comp.2
 [1,]  4.508620  0.2567655
 [2,]  3.373772  1.1369417
 [3,]  2.679669 -1.0903445
 [4,]  1.615837 -0.7108631
 [5,]  0.548879 -0.3093389
 [6,] -0.481756 -0.1639112
 [7,] -1.656178  0.9952875
 [8,] -2.560345  0.2490548
 [9,] -3.508442 -0.1874520
[10,] -4.520055 -0.1761397

Warum unterscheiden sich die Vorzeichen ( +/-) für die beiden Analysen? Wenn ich dann Hauptkomponenten PC1und PC2Prädiktoren in einer Regression verwenden lm(y ~ PC1 + PC2)würde, würde dies mein Verständnis der Wirkung der beiden Variablen yje nachdem, welche Methode ich verwendet habe , völlig verändern ! Wie könnte ich dann sagen, dass sich PC1das zB positiv yund PC2negativ auswirkt y?


Außerdem: Wenn das Vorzeichen von PCA-Komponenten bedeutungslos ist, gilt dies auch für die Faktoranalyse (FA)? Ist es akzeptabel, das Vorzeichen einzelner PCA / FA-Komponentenwerte (oder von Belastungen als Spalte der Belastungsmatrix) umzukehren (umzukehren)?

user1320502
quelle
10
+1. Diese Frage wird gebeten , eine Menge auf diesem Forum, in verschiedenen Variationen (manchmal über PCA, manchmal über Faktoranalyse). Dies ist der beliebteste Thread, der das Problem behandelt (dank der hervorragenden Antwort von @ January). Es ist daher praktisch, andere vorhandene und zukünftige Fragen als Duplikate dieses Themas zu kennzeichnen. Ich habe mir erlaubt, Ihre Frage etwas allgemeiner zu gestalten, indem ich den Titel geändert und am Ende die Faktorenanalyse erwähnt habe. Ich hoffe es macht dir nichts aus. Ich habe auch eine zusätzliche Antwort gegeben.
Amöbe sagt Reinstate Monica
1
Zeichen ist beliebig; Die inhaltliche Bedeutung hängt logischerweise vom Vorzeichen ab. Sie können das Vorzeichen jedes Faktors, der mit "X" gekennzeichnet ist, immer in das entgegengesetzte Vorzeichen ändern und es dann mit "entgegengesetztem X" kennzeichnen. Es gilt für Ladungen, für Partituren. Einige Implementierungen würden - der Einfachheit halber - das Vorzeichen eines Faktors so ändern, dass die positiven Werte (in Punktzahlen oder Ladungen) in Summe dominieren. Andere Implementierungen tun nichts und überlassen Ihnen die Entscheidung, ob Sie das Vorzeichen umkehren sollen - wenn es Sie interessiert. Die statistische Bedeutung (wie zB die Effektstärke) ändert sich nicht, abgesehen davon, dass ihre "Richtung" umgekehrt wird.
TTNPHNS

Antworten:

38

PCA ist eine einfache mathematische Transformation. Wenn Sie die Vorzeichen der Komponente (n) ändern, ändern Sie nicht die Varianz, die in der ersten Komponente enthalten ist. Wenn Sie außerdem die Vorzeichen ändern, ändern die Gewichte ( prcomp( ... )$rotation) auch das Vorzeichen, sodass die Interpretation genau gleich bleibt:

set.seed( 999 )
a <- data.frame(1:10,rnorm(10))
pca1 <- prcomp( a )
pca2 <- princomp( a )
pca1$rotation

zeigt an

                 PC1       PC2
X1.10      0.9900908 0.1404287
rnorm.10. -0.1404287 0.9900908

und pca2$loadingszeigen

Loadings:
          Comp.1 Comp.2
X1.10     -0.99  -0.14 
rnorm.10.  0.14  -0.99 

               Comp.1 Comp.2
SS loadings       1.0    1.0
Proportion Var    0.5    0.5
Cumulative Var    0.5    1.0

Also, warum bleibt die Interpretation gleich?

Sie führen die PCA-Regression für yKomponente 1 durch. In der ersten Version ( prcomp) ist der Koeffizient beispielsweise positiv: Je größer die Komponente 1 ist, desto größer ist das y. Was bedeutet es, wenn es um die ursprünglichen Variablen geht? Da das Gewicht der Variablen 1 ( 1:10in a) positiv ist, zeigt dies, dass y umso größer ist, je größer die Variable 1 ist.

Verwenden Sie jetzt die zweite Version ( princomp). Da sich das Vorzeichen der Komponente geändert hat, ist der Koeffizient von y <über PC1 jetzt negativ, je größer das y, desto kleiner die Komponente 1. Aber so ist das Laden der Variablen 1; das heißt, je größer die Variable 1 ist, desto kleiner ist die Komponente 1, desto größer ist y - die Interpretation ist dieselbe.

Möglicherweise ist die Verwendung eines Biplots der einfachste Weg, dies zu erkennen.

library( pca3d )
pca2d( pca1, biplot= TRUE, shape= 19, col= "black"  )

zeigt an

Bildbeschreibung hier eingeben

Das gleiche Biplot für die zweite Variante zeigt

pca2d( pca2$scores, biplot= pca2$loadings[,], shape= 19, col= "black" )

Wie Sie sehen, werden die Bilder um 180 ° gedreht. Das Verhältnis zwischen den Gewichten / Belastungen (die roten Pfeile) und den Datenpunkten (die schwarzen Punkte) ist jedoch genau das gleiche. Somit bleibt die Interpretation der Komponenten unverändert.

Bildbeschreibung hier eingeben

Januar
quelle
I - Bilder sogar hinzugefügt jetzt :-)
Januar
1
Dies ist wahr, aber was ist mit den Projektionen in PCA? Ich programmiere selbst PCA und einige meiner Eigenvektoren sind im Vergleich zu MATLAB gespiegelt princomp. Während der Projektion werden meine projizierten Daten in einigen Dimensionen auch im Vorzeichen gespiegelt. Mein Ziel ist es, die Koeffizienten zu klassifizieren. Das Schild spielt hier noch keine Rolle?
Sibbs Gambling
Wenn ich also nur aus Gründen des einfacheren Verständnisses meiner PCs die Vorzeichen der Partituren austauschen möchte, ist das gültig?
13

Diese Frage wird gebeten , eine Menge auf diesem Forum, so dass ich @ im Januar mit etwas allgemeinere Überlegungen ausgezeichneter Antwort ergänzen möchte.

Sowohl in der Hauptkomponentenanalyse (PCA) als auch in der Faktoranalyse (FA) verwenden wir die ursprünglichen Variablen , um mehrere latente Komponenten (oder latente Variablen) . Diese latenten Komponenten werden durch PCA- oder FA-Komponentenbewertungen angegeben. Jede Originalvariable ist eine lineare Kombination dieser Komponenten mit einigen Gewichten: Beispielsweise könnte die erste Originalvariable gut durch zweimal plus dreimal approximiert werden , so dass . Wenn die Bewertungen standardisiert sind, werden diese Gewichte ( und ) als Belastungen bezeichnet. Informell kann man das also sagenx1,x2,...xdz1,z2,...zkx1z1z2x12z1+3z223

OriginalvariablesScoresLoadings.

Hier können wir sehen, dass, wenn wir eine latente Komponente, z. B. , nehmen und das Vorzeichen ihrer Bewertungen und ihrer Ladungen umdrehen , dies keinen Einfluss auf das Ergebnis (oder die Interpretation) hat, weil - 1 - 1 = 1.z1

11=1.

Die Schlussfolgerung ist, dass für jede PCA- oder FA-Komponente das Vorzeichen ihrer Bewertungen und ihrer Ladungen willkürlich und bedeutungslos ist. Es kann umgedreht werden, aber nur, wenn das Vorzeichen von Partitur und Aufladung gleichzeitig umgekehrt wird.

Amöbe sagt Reinstate Monica
quelle
Dies ist wahr, aber was ist mit den Projektionen in PCA? Ich programmiere selbst PCA und einige meiner Eigenvektoren sind im Vergleich zu MATLAB gespiegelt princomp. Während der Projektion werden meine projizierten Daten in einigen Dimensionen auch im Vorzeichen gespiegelt. Mein Ziel ist es, die Koeffizienten zu klassifizieren. Das Schild spielt hier noch keine Rolle?
Sibbs Gambling
1
Macht immer noch nichts. Warum sollte es? Umgedrehte Daten sind für alle Zwecke, einschließlich der Klassifizierung, genau gleichbedeutend mit nicht umgedrehten Daten.
Amöbe sagt Reinstate Monica
Nun, nicht für alle Zwecke. Aus Gründen der Übereinstimmung zwischen den Algorithmen möchte auch ich wirklich die Vorzeichen abgleichen. Es ist jedoch nicht alles umgedreht, wenn man sich die Komponenten ansieht. Wie wählt R das Zeichen, damit ich dasselbe tun kann?
Myoch
1
@Myoch Ich würde empfehlen, Ihre eigene Konvention zu erfinden und überall anzuwenden, anstatt herauszufinden, was R tut. Sie können das Vorzeichen so wählen, dass der erste Wert positiv ist oder dass mehr als die Hälfte der Werte positiv ist usw.
Amöbe sagt Reinstate Monica
1
@user_anon Es gibt keine Umkehrung.
Amöbe sagt Reinstate Monica
7

Dies wurde oben gut beantwortet. Um eine weitere mathematische Relevanz bereitzustellen, entsprechen die Richtungen, in denen die Hauptkomponenten wirken, den Eigenvektoren des Systems. Wenn Sie einen positiven oder negativen PC haben, bedeutet dies nur, dass Sie auf einen Eigenvektor projizieren, der in die eine Richtung zeigt oder in die andere Richtung um . Unabhängig davon bleibt die Interpretation gleich! Es sollte auch hinzugefügt werden, dass die Längen Ihrer Hauptkomponenten einfach die Eigenwerte sind.180

user130327
quelle