PRTools contents |
PLS_TRAIN
[B,XRes,YRes,Options] = pls_train(X,Y)
[B,XRes,YRes,Options] = pls_train(X,Y,Options)
Input | |
X | [N -by- d_X] the training (input) data matrix, N samples, d_X variables |
Y | [N -by- d_Y] the training (output) data matrix, N samples, d_Y variables |
X_centering do nothing (=[] or 0), do mean centering (=nan), center
around some vaue v (=v);
by default =[]
Y_centering do nothing (=[] or 0), do mean centering (=nan), center
around some vaue v (=v);
by default =[]
X_scaling do nothing (=[] or 1), divide each col by std (=nan),
divide by some v (=v);
by default =[]
Y_scaling do nothing (=[] or 1), divide each col by std (=nan),
divide by some v (=v);
by default =[]
Output | |
B | [d_X -by- d_Y -by- nLV] collection of regression matrices: Y_new = X_new*B(:,:,n) represents regression on the first n latent variables (X_new here after preprocessing, Y_new before un-preprocessing) XRes. ssq [1 -by- nLV] the part of explaind sum of squares of (preprocessed) X matrix |
T | [N -by- nLV] scores (transformed (preprocessed) X) |
R | [d_X -by- nLV] weights (transformation matrix) |
P | [d_X -by- nLV] loadings (back-transformation matrix) P(:,k) are the regression coef of (preprocessed) X on T(:,k) |
W | [d_X -by- nLV] local weights (local transformation matrix); |
ONLY | FOR NIPALS |
V | [d_X -by- nLV] first k columns of this matrix are the orthornormal basis of the space spanned by k first columns of P; ONLY FOR SIMPLS YRes. ssq [1 -by- nLV] the part of explained sum of squares of (preprocessed) Y matrix |
U | [N -by- nLV] scores (transformed (preprocessed) Y) |
Q | [d_Y -by- nLV] weights (transformation matrix) |
C | [d_Y -by- nLV] C(:,k) are the regression coeff of (preprocessed) Y on T(:,k) bin [1 -by- nLV] bin(k) is the regression coeff of U(:,k) on T(:,k) |
Trains PLS (Partial Least Squares) regression model
Relations between matrices (X end Y are assumed to be preprocessed)
NIPALS
T = X*R (columns of T are orthogonal) R = W*prinv(P'*W) P = X'*T*prinv(T'*T) U = Y*Q - T*(C'*Q-tril(C'*Q)) C = Y'*T*prinv(T'*T) = Q*diag(bin) bin = sqrt(diag(T'*Y*Y'*T))'*prinv(T'*T)) B = R*C' = W*prinv(P'*W)*C'
SIMPLS
T = X*R (columns of T are orthonormal) P = X'*T U = Y*Q C = Y'*T = Q*diag(bin) bin = sqrt(diag(T'*Y*Y'*T))' B = R*C'
BOTH
T_new = X_new*R Y_new = X_new*B
PRTools contents |