R: Wide Kernel PLS (Rännar et al.)

widekernelpls.fit {pls} | R Documentation

## Wide Kernel PLS (Rännar et al.)

### Description

Fits a PLSR model with the wide kernel algorithm.

### Usage

    widekernelpls.fit(X, Y, ncomp, stripped = FALSE,
                      tol = .Machine$double.eps^0.5, maxit = 100, ...)

### Arguments

`X` | a matrix of observations. `NA`s and `Inf`s are not allowed.
`Y` | a vector or matrix of responses. `NA`s and `Inf`s 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`.
`tol` | numeric. The tolerance used for determining convergence in the algorithm.
`maxit` | positive integer. The maximal number of iterations used in the internal Eigenvector calculation.
`...` | other arguments. Currently ignored.

### Details

This function should not be called directly, but through the generic functions `plsr` or `mvr` with the argument `method="widekernelpls"`. The wide kernel PLS algorithm is efficient when the number of variables is (much) larger than the number of observations. For very wide `X`, for instance 12x18000, it can be twice as fast as `kernelpls.fit` and `simpls.fit`. For other matrices, however, it can be much slower. The results are equal to the results of the NIPALS algorithm.

### 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.
`loading.weights` | a matrix of loading weights.
`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 component.
`Xtotvar` | Total variance in `X`.

If `stripped` is `TRUE`, only the components `coefficients`, `Xmeans` and `Ymeans` are returned.

### Note

The current implementation has not undergone extensive testing yet, and should perhaps be regarded as experimental. Specifically, the internal Eigenvector calculation does not always converge in extreme cases where the Eigenvalue is close to zero. However, when it does converge, it always converges to the same results as `kernelpls.fit`, up to numerical inacurracies.

The algorithm also has a bit of overhead, so when the number of observations is moderately high, `kernelpls.fit` can be faster even if the number of predictors is much higher. The relative speed of the algorithms can also depend greatly on which BLAS and/or LAPACK library R is linked against.

### Author(s)

Bjørn-Helge Mevik

### References

Rännar, S., Lindgren, F., Geladi, P. and Wold, S. (1994) A PLS Kernel Algorithm for Data Sets with Many Variables and Fewer Objects. Part 1: Theory and Algorithm. Journal of Chemometrics, 8, 111–125.

### See Also

`mvr` `plsr` `cppls` `pcr` `kernelpls.fit` `simpls.fit` `oscorespls.fit`

[Package pls version 2.6-0 Index]