[R] Scaling in predict.prcomp

From: Gad Abraham <gabraham_at_csse.unimelb.edu.au>
Date: Sun, 20 Apr 2008 16:36:51 +1000


Say x.train is a matrix of covariates that I want to do PCA on, so I can do regression on its principal components, and x.test is a test set of the same covariates on which I want to evaluate the regression fit. I would like the covariates to be centred and scaled:

p <- prcomp(x.train, center=TRUE, scale=TRUE) x.train.pc <- predict(p)

Now I want to get the PCs from the test set. Should I use the same center and scale vectors from the training set:

x.test.pc <- predict(p, newdata=x.test, center=p$center, scale=p$center)

or use the training set's own centers and scales:

x.test.pc <- predict(p, newdata=x.test, center=TRUE, scale=TRUE)


Gad Abraham
Dept. CSSE and NICTA
The University of Melbourne
Parkville 3010, Victoria, Australia
email: gabraham_at_csse.unimelb.edu.au
web: http://www.csse.unimelb.edu.au/~gabraham

R-help_at_r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Sun 20 Apr 2008 - 06:39:26 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 20 Apr 2008 - 17:30:35 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive