如何将新向量投影到PCA空间上?


21

执行主成分分析(PCA)之后,我想将一个新向量投影到PCA空间上(即在PCA坐标系中找到其坐标)。

我已经使用R计算了R语言的PCA prcomp。现在,我应该可以将向量乘以PCA旋转矩阵。该矩阵中的主要成分应该按行还是按列排列?

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 

Answers:


23

好吧,@ Srikant已经为您提供了正确的答案,因为旋转(或荷载)矩阵包含按列排列的特征向量,因此您只需要将(%*%矢量)向量或新数据矩阵与乘(使用)prcomp(X)$rotation。但是,在计算PCA EV时应小心使用任何额外的对中或缩放参数。

在R中,您可能还会发现有用的predict()功能,请参见?predict.prcomp。顺便说一句,您可以通过简单地输入以下内容来检查如何实现新数据的投影:

getS3method("predict", "prcomp")

24

只需添加@chl的奇妙答案(+1),您可以使用更轻巧的解决方案:

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

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

如果您不想保存整个pca对象以投影newdata到PCA空间,这将非常有用。


5

在SVD中,如果A是一个mxn矩阵,则右奇异矩阵V的前k行是A的原始列的k维表示,其中k <= n

A =UΣV
=>甲 =VΣ Ù =VΣU
=>甲 U =VΣU U =VΣ-----------(因为U是正交的
)=>甲- 1 =VΣΣ -1 = V

所以 -1V=AtUΣ

的行或的映射的列V的列
。如果新数据的矩阵在其上执行PCA为降维是Q,aqxn矩阵,然后使用公式计算 -如图1所示,结果R是期望的结果。R是n x n矩阵,R的前k行(可以看成ak x n矩阵)是k维空间中Q列的新表示。R=QtUΣ


2

我相信特征向量(即主要成分)应该排列成列。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.