rpls.cv             package:plsgenomics             R Documentation

_D_e_t_e_r_m_i_n_a_t_i_o_n _o_f _t_h_e _r_i_d_g_e _r_e_g_u_l_a_r_i_z_a_t_i_o_n _p_a_r_a_m_e_t_e_r _a_n_d _t_h_e _n_u_m_b_e_r _o_f _P_L_S 
_c_o_m_p_o_n_e_n_t_s _t_o _b_e _u_s_e_d _f_o_r _c_l_a_s_s_i_f_i_c_a_t_i_o_n _w_i_t_h _R_P_L_S _f_o_r _b_i_n_a_r_y _d_a_t_a

_D_e_s_c_r_i_p_t_i_o_n:

     The function 'rpls.cv' determines the best ridge regularization
     parameter and the best number of PLS components to be used for
     classification for Fort and Lambert-Lacroix (2005) RPLS algorithm.

_U_s_a_g_e:

     rpls.cv(Ytrain,Xtrain,LambdaRange,ncompMax,NbIterMax=50)

_A_r_g_u_m_e_n_t_s:

  Xtrain: a (ntrain x p) data matrix of predictors. 'Xtrain' must be a
          matrix.  Each row corresponds to an observation and each
          column to a predictor variable.

  Ytrain: a ntrain vector of responses. 'Ytrain' must be a vector. 
          'Ytrain' is a {1,2}-valued vector and contains the response
          variable for each observation.

LambdaRange: the vector of positive real value from which the best
          ridge regularization parameter has to be chosen by
          cross-validation.

ncompMax: a positive integer. the best number of components is chosen
          from  1,...,'ncompMax'.  If 'ncompMax'=0,then the Ridge
          regression is performed without reduction  dimension. 

NbIterMax: a positive integer. 'NbIterMax' is the maximal number of
          iterations in the  Newton-Rapson parts.

_D_e_t_a_i_l_s:

     A cross-validation procedure is used to determine the best ridge
     regularization parameter and  number of PLS components to be used
     for classification with RPLS for binary data  (for categorical
     data see 'mrpls' and 'mrpls.cv'). At each cross-validation run,
     'Xtrain' is split into a pseudo training set (ntrain-1 samples)
     and a pseudo test set (1 sample) and the classification error rate
     is determined for each value of ridge regularization parameter and
     number of components. Finally, the function  'mrpls.cv' returns
     the values of the ridge regularization parameter and  bandwidth
     for which the mean classification error rate is minimal.

_V_a_l_u_e:

     A list with the following components: 

  Lambda: the optimal regularization parameter.

   ncomp: the optimal number of PLS components.

_A_u_t_h_o_r(_s):

     Sophie Lambert-Lacroix (<URL:
     http://www-lmc.imag.fr/lmc-sms/Sophie.Lambert>).

_R_e_f_e_r_e_n_c_e_s:

     G. Fort and S. Lambert-Lacroix (2005). Classification using
     Partial Least Squares with  Penalized Logistic Regression,
     Bioinformatics, vol 21,  n 8, 1104-1111.

_S_e_e _A_l_s_o:

     'rpls', 'mrpls', 'mrpls.cv'.

_E_x_a_m_p_l_e_s:

     # load plsgenomics library
     # load plsgenomics library
     library(plsgenomics)

     # load Colon data
     data(Colon)
     IndexLearn <- c(sample(which(Colon$Y==2),12),sample(which(Colon$Y==1),8))

     # preprocess data
     res <- preprocess(Xtrain= Colon$X[IndexLearn,], Xtest=Colon$X[-IndexLearn,],Threshold = c(100,16000),Filtering=c(5,500),log10.scale=TRUE,row.stand=TRUE)
     # the results are given in res$pXtrain and res$pXtest

     # Determine optimum ncomp and lambda
     nl <- rpls.cv(Ytrain=Colon$Y[IndexLearn],Xtrain=res$pXtrain,LambdaRange=c(0.1,1),ncompMax=3)

     # perform prediction by RPLS
     resrpls <- rpls(Ytrain=Colon$Y[IndexLearn],Xtrain=res$pXtrain,Lambda=nl$Lambda,ncomp=nl$ncomp,Xtest=res$pXtest)
     sum(resrpls$Ytest!=Colon$Y[-IndexLearn])

