Wie projiziert man einen neuen Vektor auf den PCA-Raum?


21

Nach der Durchführung der Hauptkomponentenanalyse (PCA) möchte ich einen neuen Vektor auf den PCA-Raum projizieren (dh seine Koordinaten im PCA-Koordinatensystem finden).

Ich habe PCA in R-Sprache mit berechnet prcomp. Jetzt sollte ich meinen Vektor mit der PCA-Rotationsmatrix multiplizieren können. Sollen die Hauptkomponenten in dieser Matrix in Zeilen oder Spalten angeordnet werden?

r  pca  r  variance  heteroscedasticity  misspecification  distributions  time-series  data-visualization  modeling  histogram  kolmogorov-smirnov  negative-binomial  likelihood-ratio  econometrics  panel-data  categorical-data  scales  survey  distributions  pdf  histogram  correlation  algorithms  r  gpu  parallel-computing  approximation  mean  median  references  sample-size  normality-assumption  central-limit-theorem  rule-of-thumb  confidence-interval  estimation  mixed-model  psychometrics  random-effects-model  hypothesis-testing  sample-size  dataset  large-data  regression  standard-deviation  variance  approximation  hypothesis-testing  variance  central-limit-theorem  kernel-trick  kernel-smoothing  error  sampling  hypothesis-testing  normality-assumption  philosophical  confidence-interval  modeling  model-selection  experiment-design  hypothesis-testing  statistical-significance  power  asymptotics  information-retrieval  anova  multiple-comparisons  ancova  classification  clustering  factor-analysis  psychometrics  r  sampling  expectation-maximization  markov-process  r  data-visualization  correlation  regression  statistical-significance  degrees-of-freedom  experiment-design  r  regression  curve-fitting  change-point  loess  machine-learning  classification  self-study  monte-carlo  markov-process  references  mathematical-statistics  data-visualization  python  cart  boosting  regression  classification  robust  cart  survey  binomial  psychometrics  likert  psychology  asymptotics  multinomial 

Antworten:


23

Nun, @Srikant hat Ihnen bereits die richtige Antwort gegeben, da die Rotationsmatrix (oder Ladematrix) spaltenweise angeordnete Eigenvektoren enthält, so dass Sie nur %*%Ihren Vektor oder Ihre Matrix neuer Daten mit z prcomp(X)$rotation. Seien Sie jedoch vorsichtig mit zusätzlichen Zentrierungs- oder Skalierungsparametern, die beim Berechnen von PCA-EVs angewendet wurden.

In R kann auch die predict()Funktion nützlich sein , siehe ?predict.prcomp. Übrigens können Sie überprüfen, wie die Projektion neuer Daten implementiert wird, indem Sie einfach Folgendes eingeben:

getS3method("predict", "prcomp")

24

Um die fantastische Antwort von @ chl (+1) zu ergänzen, können Sie eine einfachere Lösung verwenden:

# perform principal components analysis
pca <- prcomp(data) 

# project new data onto the PCA space
scale(newdata, pca$center, pca$scale) %*% pca$rotation 

Dies ist sehr nützlich, wenn Sie nicht das gesamte pcaObjekt für die Projektion newdataauf den PCA-Bereich speichern möchten .


5

Wenn in SVD A eine mxn-Matrix ist, sind die oberen k Zeilen der rechten singulären Matrix V eine k-dimensionale Darstellung der ursprünglichen Spalten von A, wobei k <= n ist

A = UΣV t
=> A t = VΣ t U t = VΣU t
=> A t U = VΣU t U = VΣ ----------- (weil U orthogonal ist)
=> A t- 1 = VΣΣ -1 = V

Also ist -1V=EINtUΣ

Die Zeilen von A t oder die Spalten von A werden den Spalten von V zugeordnet.
Wenn die Matrix der neuen Daten, für die PCA zur Dimensionsreduktion durchgeführt werden soll, Q, aqxn-Matrix ist, verwenden Sie die Formel zur Berechnung von - In 1 ist das Ergebnis R das gewünschte Ergebnis. R ist eine Matrix von n mal n, und die oberen k Zeilen von R (können als eine Matrix von n angesehen werden) sind eine neue Darstellung der Spalten von Q im Raum der k-Dimension.R=Q.tUΣ


2

Ich glaube, dass die Eigenvektoren (dh die Hauptkomponenten) als Spalten angeordnet werden sollten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.