Description: libPLS is an integrated library for facilitating the use of PLS written in MATLAB.  It includes a whole set of functions for data pretreatment, outlier detection, variable selection, model building, cross validation and prediction.


CitationLi H.-D., Xu Q.-S., Liang Y.-Z. (2014) libPLS: An Integrated Library for Partial Least Squares Regression and Discriminant Analysis. PeerJ PrePrints 2:e190v1, source codes available at



12 thoughts on “libPLS

  1. parisa

    It has been a while since I have started surfing the net for finding a matlab code to perform Opls! once I came across to this toolbox, it was really unbelievable for me. Softwares like Unscrambler and Simca were not as advantageous as this toolbox was for me!
    Showing my appreciation is the least thing I could do.
    Thank you a million 100000000000000000000000000000000 😉

    1. Alin

      could you tell me the performance of the libpls toolbox compared with that available in off the shelf packages such as The Unscrambler, please?

  2. Kishore

    How can i save the created model from the PLS? I want to use the saved model for unknown sample. Is there any way to save the model changing th following lines:

    PLS=pls(Xcal,ycal,10); %+++ Build a PLS regression model using training set
    [ypred,RMSEP]=plsval(PLS,Xtest,ytest); %+++ make predictions on test set

    Looking forward for your reply,

    Thanks & Regards,


  3. qianqian

    I would like to ask how libplsda for multi-classification, multi-categorical variables how to filter, thank you.

  4. Jwei JIa

    Steps to build a PLSR model using the LibPLS tool to build
    1) Outliers detection
    2) Cross validation to choose the optimal numbers of LVs
    3) Build a PLS regression model
    I want to konw whether the steps are right or not?
    I confused to the selection of the optimal numbers of LVs in the example, A=6,optlvs=6, if A=30 the optlvs=24,
    So I do not konw what initial value of A ,I should set.
    Look forward Your Reply!
    Best Wishes!
    Yours Jia!

    1. L Post author

      Steps for building a PLS model or any models by any methods are in general flexible and often an iterative process(not simply a single step, but a process).

      The steps above are just one possible version(not fixed). For example, if your data are known to be of high quality, outlier detection would be omitted.

      Regarding initial value of A, it is, again, data-dependent. The key is not about the settting of initial A, but about the selection of the optimal A by CV. If you are not certain, a large A can be initialized though the optimal A may be small, say 3.


Leave a Reply

Your email address will not be published. Required fields are marked *