Verwendung dieser Daten:
head(USArrests)
nrow(USArrests)
Ich kann eine PCA wie folgt durchführen:
plot(USArrests)
otherPCA <- princomp(USArrests)
Ich kann die neuen Komponenten bekommen
otherPCA$scores
und der Anteil der Varianz erklärt durch Komponenten mit
summary(otherPCA)
Aber was ist, wenn ich wissen möchte, welche Variablen hauptsächlich durch welche Hauptkomponenten erklärt werden? Und umgekehrt: Wird zB PC1 oder PC2 meistens durch erklärt murder
? Wie kann ich das machen?
Kann ich zum Beispiel sagen, dass PC1 zu 80% von murder
oder erklärt wird assault
?
Ich denke, die Ladungen helfen mir hier, aber sie zeigen die Richtwirkung und nicht die erklärte Varianz, wie ich sie verstehe, z
otherPCA$loadings
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4
Murder 0.995
Assault -0.995
UrbanPop -0.977 -0.201
Rape -0.201 0.974
r
pca
dimensionality-reduction
regression-strategies
user1320502
quelle
quelle
Antworten:
Sie haben recht, die Ladungen können Ihnen hier weiterhelfen. Sie können verwendet werden, um die Korrelation zwischen den Variablen und den Hauptkomponenten zu berechnen. Darüber hinaus ist die Summe der quadrierten Belastungen einer Variablen über alle Hauptkomponenten gleich 1. Die quadrierten Belastungen geben daher den Anteil der Varianz einer Variablen an, der durch eine Hauptkomponente erklärt wird.
Das Problem bei princomp ist, dass nur die "sehr hohen" Ladungen angezeigt werden. Da die Ladungen aber nur die Eigenvektoren der Kovarianzmatrix sind, kann man alle Ladungen mit dem
eigen
Befehl in R erhalten:Nun haben Sie die gewünschten Informationen in der Matrix
explvar
.quelle
assault
oderurban pop
könnten wir das tun? teilweise verwirrt, weil in der Matrix nur eine Korrelation fürassault
Ich denke, dass die akzeptierte Antwort gefährlich irreführend sein kann (-1). Im OP sind mindestens vier verschiedene Fragen vermischt. Ich werde sie nacheinander betrachten.
Diese beiden Fragen sind äquivalent und die Antwort wird durch das Quadrat des Korrelationskoeffizienten zwischen der Variablen und dem PC gegeben. Wenn PCA für die Korrelationen durchgeführt wird, wird der Korrelationskoeffizient r durch das entsprechende Element der Belastungen angegeben ( siehe hier ) . PC i ist einem Eigenvektor V i der Korrelationsmatrix und dem entsprechenden Eigenwert s i zugeordnet . Ein Ladungsvektorr2 r i Vi si ist gegeben durch L i =( s i ) 1 / 2 V iLi Li=(si)1/2Vi . Seine Elemente sind Korrelationen dieses PCs mit den jeweiligen Originalvariablen.
Es ist zu beachten, dass die Eigenvektoren und die Ladungen L i zwei verschiedene Dinge sind! In R werden Eigenvektoren verwirrenderweise "Ladungen" genannt; man sollte aufpassen: ihre elemente sind nicht die gewünschten korrelationen. [Die derzeit akzeptierte Antwort in diesem Thread verwechselt die beiden.]Vi Li
Wenn PCA für Kovarianzen (und nicht für Korrelationen) durchgeführt wird, erhalten Sie beim Laden auch Kovarianzen und keine Korrelationen. Um Korrelationen zu erhalten, müssen sie manuell nach PCA berechnet werden. [Die derzeit akzeptierte Antwort ist darüber unklar.]
@FrankHarrell (+1) schlug vor, wie eine Untergruppe ausgewählt werden soll, um die Abweichung zu erklären.
quelle
quelle
Die mit R gebündelten US-Verhaftungsdaten sind hier nur ein Beispiel, aber ich stelle fest, dass die in Frage kommenden Belastungsberechnungen von einer PCA der Kovarianzmatrix stammen . Das liegt irgendwo zwischen willkürlich und unsinnig, da die Variablen auf verschiedenen Skalen gemessen werden.
Die Stadtbevölkerung sieht aus wie ein Prozent. Kalifornien ist 91% und am höchsten.
Die drei Variablen für Straftaten scheinen die Anzahl der Festnahmen für Straftaten zu sein, die im Verhältnis zur Bevölkerungszahl (vermutlich für einen bestimmten Zeitraum) ausgedrückt werden. Vermutlich ist irgendwo dokumentiert, ob es sich um Festnahmen pro 1000 oder 10000 oder was auch immer handelt.
Der Mittelwert der Angriffsvariablen in den angegebenen Einheiten liegt bei 171 und der Mittelwert des Mordes bei 8. Die Erklärung Ihrer Ladungen lautet also, dass das Muster zu einem großen Teil ein Artefakt ist: Es hängt von der sehr unterschiedlichen Variabilität der Variablen ab.
Obwohl es in den Daten Sinn macht, dass es viel mehr Festnahmen für Angriffe als für Morde usw. gibt, dominiert diese bekannte (oder nicht überraschende) Tatsache die Analyse.
Dies zeigt, dass Sie wie überall in der Statistik darüber nachdenken müssen, was Sie in einem PCA tun.
Wenn Sie weiter gehen:
Ich würde argumentieren, dass Prozent der Stadtbewohner in der Analyse besser weggelassen werden. Es ist kein Verbrechen, urban zu sein. es könnte natürlich als Proxy für kriminalitätsbeeinflussende Variablen dienen.
Eine auf einer Korrelationsmatrix basierende PCA wäre aus meiner Sicht sinnvoller. Eine andere Möglichkeit besteht darin, mit Logarithmen der Verhaftungsraten zu arbeiten, nicht mit Verhaftungsraten (alle Werte sind positiv; siehe unten).
Hinweis: Bei der Antwort von @ random_guy wird bewusst die Kovarianzmatrix verwendet.
Hier sind einige zusammenfassende Statistiken. Ich habe Stata benutzt, aber das ist ziemlich unwichtig.
quelle