[R] PLS: problem transforming scores to variable space
rainer grohmann
rainer.grohmann at gmx.net
Tue Jul 5 12:22:24 CEST 2005
Dear List!
I am trying to calculate the distance between original data points and their
position in the PLS model. In order to do this, I tried to predict the
scores using the predict.mvr function and calculate the corresponding
positions in variable space.
The prediction of scores works perfectly:
------
data(trees)
# build model
t<-plsr(Volume~.,data=trees)
# predict scores for training data and compare:
# column 1: scores from model building
# column 2: scores obtained with predict.mvr
# column 3: scores from the corresponding matrix-multiplication
# only the first dimension is compared here.
# However, results the other component agrees as well
cbind(t$scores[,1],
predict(t,trees,type="scores")[,1],
(scale(as.matrix(trees[,-3]),scale=FALSE,center=TRUE)%*%
t$projection)[,1])
------
However, when I try to map the scores back to variable space, I ran into
problems:
My guess was to use the loadings matrix.
In order to check the results, I took the scores from the model, mapped them
to variable space and mapped them back to scores using the predict function.
The result of this procedure should again be the scores.
I know the last step - prediting scores - works (see above). Therefore, if I
ended up with the original scores after my transformations, I knew my
first step - mapping of scores to variable space - was correct too, I would
indeed obtain the original scores.
Obviously, I am mistaken (otherwise, I wouldn't ask you for help).
Here is, what I did (based on the code above)
------
# map scores to variable space and back to scores and compare:
# column 1: original scores from model building
# column 2: incorrectly mapped scores
# only the first dimension is compared here.
# However, results the other component disagrees as well
cbind(t$scores[,1],(t$scores%*%(t$loadings)%*%t$projection)[,1])
------
Any help or hint would be appreciated!
Rainer
> R.version
_
platform i686-pc-linux-gnu
arch i686
os linux-gnu
system i686, linux-gnu
status
major 2
minor 1.0
year 2005
month 04
day 18
language R
--
More information about the R-help
mailing list