1

I want to compute the components for a set of variables using the loadings (weights) from a PLSR using the plsr function.

I thought that the components were computed by summing the values of each variable multiplied by the estimated loading (weight).

However, using the output from plsr and doing that doesn't give me the expected values:

Example:

library("pls")
data(oliveoil)
sens.pcr <- plsr(sensory ~ chemical, ncomp = 4, scale = F, data = oliveoil)

Extract loadings/weights:

df <- cbind(sens.pcr$loadings[,1],sens.pcr$loadings[,2],sens.pcr$loadings[,3],sens.pcr$loadings[,4])

One test observation:

firstrow <- oliveoil$chemical[1,]

Extract the components (scores):

scores <- sens.pcr$scores

Do the linear combination:

sum(firstrow*df[,1])
[1] -12.81924

Which is not equal to the first score scores[1,1] = 0.5100166

What is it that I am missing?

Using the sense.pcr$loadings.weigths didn't make any big difference either.

GabrielMontenegro
  • 683
  • 1
  • 6
  • 21

0 Answers0