annie Zhang <annie.zhang2...@gmail.com> writes:

> ## the predicted scores from the model
> (pred <- predict(data.cpls,n.comp=1:2,newdata=x.new,type="score"))
> ## the predicted scores using x%*%projection
> cbind(x.new.centered%*%data.cpls$projection[,1],x.new.centered%*%data.cpls$projection[,2])
>
> Can someone please tell me why the two predicted scores don't match?

If you look at the code that does the prediction:

> pls:::predict.mvr
function (object, newdata, ncomp = 1:object$ncomp, comps, type = c("response", 
    "scores"), na.action = na.pass, ...) 
{
[...]
           TT <- (newX - rep(object$Xmeans, each = nobs)) %*% 
                object$projection[, comps]

you will see that it subtracts the _old X_ coloumn means from the new X
matrix, not the _new X_ coloumn means.  So

sweep(x.new, 2, data.cpls$Xmeans, "-") %*% data.cpls$projection[,1:2]

will reproduce the values from predict().

-- 
Regards,
Bjørn-Helge Mevik

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to