question about Principal Component Analysis in R?
Michael wrote:
pca=prcomp(training_data, center=TRUE, scale=FALSE, retx=TRUE);
Then I want to rotate the test data set using the
d1=scale(test_data, center=TRUE, scale=FALSE) %*% pca$rotation; d2=predict(pca, test_data, center=TRUE, scale=FALSE);
these two values are different
min(d2-d1)
[1] -1.976152
max(d2-d1)
[1] 1.535222
This is because you have subtracted a different means vector. You should use the coloumn means of the training data (as predict does; see the last line of stats:::predict.prcomp): d1=scale(test_data, center=pca$center, scale=FALSE) %*% pca$rotation;
Bj??rn-Helge Mevik