Fits a PLSR model with the SIMPLS algorithm, modified to allow a weighted analysis.

simpls(X, Y, ncomp, stripped = FALSE, ...)

Arguments

X

a matrix of observations. NAs and Infs are not allowed.

Y

a vector or matrix of responses. NAs and Infs are not allowed.

ncomp

the number of components to be used in the modelling.

stripped

logical. If TRUE the calculations are stripped as much as possible for speed; this is meant for use with cross-validation or simulations when only the coefficients are needed. Defaults to FALSE.

...

other arguments. Currently ignored.

Details

This function is a modified version of simpls.fit from package pls. Four modification have been made:

  1. The input matrices X and Y are not centered,

  2. The scores (tt in the code) are not centered,

  3. Added code to calculate the total variance in the Y matrix, Ytotvar, and the variance in Y accounted for by each PLS axis, Yvar (See Value below), and

  4. Additional components are returned if argument stripped is TRUE.

This function should not be called directly, but through the generic function coca.

SIMPLS is much faster than the NIPALS algorithm, especially when the number of X variables increases, but gives slightly different results in the case of multivariate Y. SIMPLS truly maximises the covariance criterion. According to de Jong, the standard PLS2 algorithms lie closer to ordinary least-squares regression where a precise fit is sought; SIMPLS lies closer to PCR with stable predictions.

Value

A list containing the following components is returned:

coefficients

an array of regression coefficients for 1, ..., ncomp components. The dimensions of coefficients are c(nvar, npred, ncomp) with nvar the number of X variables and npred the number of variables to be predicted in Y.

scores

a matrix of scores.

loadings

a matrix of loadings.

Yscores

a matrix of Y-scores.

Yloadings

a matrix of Y-loadings.

projection

the projection matrix used to convert X to scores.

Xmeans

a vector of means of the X variables.

Ymeans

a vector of means of the Y variables.

fitted.values

an array of fitted values. The dimensions of fitted.values are c(nobj, npred, ncomp) with nobj the number samples and npred the number of Y variables.

residuals

an array of regression residuals. It has the same dimensions as fitted.values.

Xvar

a vector with the amount of X-variance explained by each number of components.

Yvar

a vector with the amount of Y-variance explained by each number of components.

Xtotvar

Total variance in X.

Ytotvar

Total variance in Y.

If stripped is TRUE, only the components coefficients, Xmeans and Ymeans, Xvar and Yvar, and Xtotvar and Ytotvar are returned.

References

de Jong, S. (1993) SIMPLS: an alternative approach to partial least squares regression. Chemometrics and Intelligent Laboratory Systems, 18, 251--263.

Author

Based on simpls.fit by Ron Wehrens and Bjorn-Helge Mevik, with simple modifications by Gavin L. Simpson.

See also