Ich habe einen großen Datensatz und möchte eine Dimensionsreduktion durchführen.
Jetzt lese ich überall, dass ich PCA dafür verwenden kann. Ich scheine jedoch immer noch nicht zu verstehen, was ich tun soll, nachdem ich die PCA berechnet / durchgeführt habe. In R ist dies mit dem Befehl einfach zu bewerkstelligen princomp
.
Aber was ist nach der Berechnung des PCA zu tun? Wie kann ich meinen Datensatz genau reduzieren, wenn ich die ersten Hauptkomponenten verwenden möchte?
Antworten:
Ich glaube, was Sie in Ihrer Frage ansprechen, betrifft das Abschneiden von Daten mit einer geringeren Anzahl von Hauptkomponenten (PC). Für solche Operationen halte ich die Funktion
prcomp
für anschaulicher, da es einfacher ist, die bei der Rekonstruktion verwendete Matrixmultiplikation zu visualisieren.Geben Sie zunächst einen synthetischen Datensatz an,
Xt
und führen Sie die PCA durch (in der Regel zentrieren Sie Stichproben, um PCs zu beschreiben, die sich auf eine Kovarianzmatrix beziehen):In den Ergebnissen oder sehen
prcomp
Sie die PC's (res$x
), die Eigenwerte (res$sdev
), die Informationen zur Größe der einzelnen PCs und die Ladungen (res$rotation
).Durch Quadrieren der Eigenwerte erhalten Sie die von jedem PC erklärte Varianz:
Schließlich können Sie eine abgeschnittene Version Ihrer Daten erstellen, indem Sie nur die führenden (wichtigen) PCs verwenden:
Sie sehen, dass das Ergebnis eine etwas glattere Datenmatrix mit herausgefilterten Funktionen im kleinen Maßstab ist:
Und hier ist ein sehr grundlegender Ansatz, den Sie außerhalb der Funktion prcomp ausführen können:
Die Entscheidung, welche PCs aufbewahrt werden sollen, ist eine separate Frage , die mich vor einiger Zeit interessiert hat . Hoffentlich hilft das.
quelle
prcomp
erledigt er für Sie. Schauen Sie sichres$center
und anres$scale
. IMHO ist es weniger fehleranfällig, diese zu verwenden (kein zufälliger Unterschied bezüglich Zentrierung oder nicht / Skalierung oder nicht zwischen dem expliziten Aufruf anscale
und demprcomp
Aufruf).what to do after calculating the PCA
oderhow do I reduce my dataset exactly
? Beantwortet . Angesichts der Tatsache, dass das OP eine PCA für seine Stichprobe durchgeführt hat, ist seine Frage, was damit zu tun ist und was mit diesen Teilstichproben tatsächlich vor sich geht. nicht, wie man PCA macht. Wir könnten genauso gut vorschlagenE <- eigen(cov(Sample)); A<- scale(scale=F, Sample) %*% E$vectors
, einen weiteren Weg zu finden, um auch die Scores zu erhalten (was genau das ist, was princomp tutstats:::princomp.default
).Diese anderen Antworten sind sehr gut und detailliert, aber ich frage mich, ob Sie tatsächlich eine wesentlich grundlegendere Frage stellen: Was machen Sie, wenn Sie Ihre PCs haben?
Jeder PC wird einfach zu einer neuen Variablen. Angenommen, PC1 macht 60% der gesamten Variation aus und PC2 30%. Da dies 90% der gesamten Variation ausmacht, können Sie diese beiden neuen Variablen (PCs) einfach als vereinfachte Version Ihrer ursprünglichen Variablen verwenden. Das bedeutet, sie an Modelle anzupassen, wenn Sie daran interessiert sind. Wenn es an der Zeit ist, Ihre Ergebnisse zu interpretieren, tun Sie dies im Kontext der ursprünglichen Variablen, die mit jedem PC korrelieren.
Entschuldigung, wenn ich den Umfang der Frage unterschätzt habe!
quelle
Praktisch mit PCA verwenden Sie die Projektionen der PCs (die "Scores") als Ersatzdaten für Ihre Originalprobe. Sie analysieren alle Ergebnisse und rekonstruieren anschließend Ihre Originalprobe mithilfe der PCs, um herauszufinden, was in Ihrem ursprünglichen Bereich passiert ist (das ist im Grunde genommen die Regression der Hauptkomponenten ). Wenn Sie in der Lage sind, Ihre Eigenvektoren ("Ladungen") aussagekräftig zu interpretieren, sind Sie in einer noch besseren Position: Sie können beschreiben, was mit Ihrer Stichprobe in der durch diese Belastung dargestellten Variationsart geschieht, indem Sie direkt auf diese Belastung schließen und kümmert sich überhaupt nicht um den Wiederaufbau. :)
Was Sie "nach der Berechnung des PCA" tun, hängt im Allgemeinen vom Ziel Ihrer Analyse ab. PCA gibt Ihnen lediglich eine linear unabhängige Teilstichprobe Ihrer Daten, die unter einem RSS-Rekonstruktionskriterium optimal ist. Sie können es zur Klassifizierung oder Regression oder für beide Zwecke verwenden, oder Sie möchten, wie bereits erwähnt, sinnvolle orthogonale Variationsmodi in Ihrer Stichprobe erkennen.
Ein Kommentar : Ich denke, die beste naive Möglichkeit, die Anzahl der beizubehaltenden Komponenten zu bestimmen, besteht darin, Ihre Schätzung auf einen Schwellenwert für die Variation der Stichprobe zu stützen, den Sie in Ihrer Stichprobe mit reduzierter Dimension beibehalten möchten, anstatt nur auf eine beliebige Zahl, z. 3, 100, 200. Wie der Benutzer 4959 erklärte, können Sie diese kumulative Variation überprüfen, indem Sie das relevante Feld der Liste unter dem
$loadings
Feld im Listenobjekt überprüfen, das von erstellt wurdeprincomp
.quelle
pls
princomp {stats}
Nach der PCA können Sie die ersten beiden Komponenten auswählen und grafisch darstellen. Sie können die Variation der Komponenten anhand eines Gerölldiagramms in R sehen. Auch mithilfe der Zusammenfassungsfunktion mit Belastungen = T können Sie die Variation der Merkmale mit den Komponenten definieren.
Sie können auch http://www.statmethods.net/advstats/factor.html und http://statmath.wu.ac.at/~hornik/QFS1/principal_component-vignette.pdf aufrufen
Versuchen Sie zu überlegen, was Sie wollen. Mit der PCA-Analyse können Sie viele Dinge interpretieren.
Bester Abhik
quelle