widekernelpls.fit.Rd
Fits a PLSR model with the wide kernel algorithm.
widekernelpls.fit(X, Y, ncomp, center = TRUE, stripped = FALSE, tol = .Machine$double.eps^0.5, maxit = 100, ...)
X | a matrix of observations. |
---|---|
Y | a vector or matrix of responses. |
ncomp | the number of components to be used in the modelling. |
center | logical, determines if the \(X\) and \(Y\) matrices are mean centered or not. Default is to perform mean centering. |
stripped | logical. If |
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. |
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.
A list containing the following components is returned:
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
.
a matrix of scores.
a matrix of loadings.
a matrix of loading weights.
a matrix of Y-scores.
a matrix of Y-loadings.
the projection matrix used to convert X to scores.
a vector of means of the X variables.
a vector of means of the Y variables.
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.
an array of regression residuals. It has the same
dimensions as fitted.values
.
a vector with the amount of X-variance explained by each component.
Total variance in X
.
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.
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.