Plsda: Difference between revisions

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search
imported>Jeremy
(Importing text file)
imported>Jeremy
(Importing text file)
Line 1: Line 1:
===Purpose===
===Purpose===
Partial least squares discriminate analysis.
Partial least squares discriminate analysis.
===Synopsis===
===Synopsis===
:model = plsda(x,y,ncomp,''options'')
:model = plsda(x,y,ncomp,''options'')
:model = plsda(x,ncomp,''options'')
:model = plsda(x,ncomp,''options'')
:pred  = plsda(x,model,''options'')
:pred  = plsda(x,model,''options'')
:valid = plsda(x,y,model,''options'')
:valid = plsda(x,y,model,''options'')
:options = plsda('options')
:options = plsda('options')
===Description===
===Description===
PLSDA is a multivariate inverse least squares discrimination method used to classify samples. The y-block in a PLSDA model indicates which samples are in the class(es) of interest through either:
PLSDA is a multivariate inverse least squares discrimination method used to classify samples. The y-block in a PLSDA model indicates which samples are in the class(es) of interest through either:
  (A) a column vector of class numbers indicating class asignments:
  (A) a column vector of class numbers indicating class asignments:
     y = [1 1 3 2]';
     y = [1 1 3 2]';
  (B) a matrix of one or more columns containing a logical zero (= not in class) or one (= in class) for each sample (row):
  (B) a matrix of one or more columns containing a logical zero (= not in class) or one (= in class) for each sample (row):
*    '''y''' = [1 0 0;
*    '''y''' = [1 0 0;
*        '''1''' 0 0;
*        '''1''' 0 0;
*        '''0''' 0 1;
*        '''0''' 0 1;
*        '''0''' 1 0]
*        '''0''' 1 0]
NOTE: When a vector of class numbers is used (case A, above), class zero (0) is reserved for "unknown" samples and, thus, samples of class zero are never used when calibrating a PLSDA model. The model will include predictions for these samples.
NOTE: When a vector of class numbers is used (case A, above), class zero (0) is reserved for "unknown" samples and, thus, samples of class zero are never used when calibrating a PLSDA model. The model will include predictions for these samples.
The prediction from a PLSDA model is a value of nominally zero or one. A value closer to zero indicates the new sample is NOT in the modeled class; a value of one indicates a sample is in the modeled class. In practice a threshold between zero and one is determined above which a sample is in the class and below which a sample is not in the class (See, for example, PLSDTHRES). Similarly, a probability of a sample being inside or outside the class can be calculated using DISCRIMPROB. The predicted probability of each class is included in the output model structure in the field:
The prediction from a PLSDA model is a value of nominally zero or one. A value closer to zero indicates the new sample is NOT in the modeled class; a value of one indicates a sample is in the modeled class. In practice a threshold between zero and one is determined above which a sample is in the class and below which a sample is not in the class (See, for example, PLSDTHRES). Similarly, a probability of a sample being inside or outside the class can be calculated using DISCRIMPROB. The predicted probability of each class is included in the output model structure in the field:
:model.details.predprobability
:model.details.predprobability
*'''INPUTS
*'''INPUTS
**''''''''''''''' x = X-block (predictor block) class "double" or "dataset",
**''''''''''''''' x = X-block (predictor block) class "double" or "dataset",
*        '''y''' = Y-block - OPTIONAL if x is a dataset containing classes for
*        '''y''' = Y-block - OPTIONAL if x is a dataset containing classes for
*        '''sample''' mode (mode 1) otherwise, y is one of:
*        '''sample''' mode (mode 1) otherwise, y is one of:
*          '''(A)''' column vector of sample classes for each sample in x -OPTIONAL if x is a dataset containing classes for sample mode (mode 1)  
*          '''(A)''' column vector of sample classes for each sample in x -OPTIONAL if x is a dataset containing classes for sample mode (mode 1)  
* '''or''' (B) a logical array with 1 indicating class membership for each sample (rows) in one or more classes (columns)  
* '''or''' (B) a logical array with 1 indicating class membership for each sample (rows) in one or more classes (columns)  
*    '''ncomp''' =  the number of latent variables to be calculated (positive integer scalar).
*    '''ncomp''' =  the number of latent variables to be calculated (positive integer scalar).
*'''OUTPUT
*'''OUTPUT
**''''''''''''''' model =  standard model structure containing the PLSDA model (See MODELSTRUCT).
**''''''''''''''' model =  standard model structure containing the PLSDA model (See MODELSTRUCT).
*      '''pred''' =  structure array with predictions
*      '''pred''' =  structure array with predictions
*    '''valid''' =  structure array with predictionsz
*    '''valid''' =  structure array with predictionsz
Note: Calling plsda with no inputs starts the graphical user interface (GUI) for this analysis method.  
Note: Calling plsda with no inputs starts the graphical user interface (GUI) for this analysis method.  
===Options===
===Options===
         display: [ 'off' | {'on'} ]      governs level of display to command window.
         display: [ 'off' | {'on'} ]      governs level of display to command window.
           plots: [ 'none' | {'final'} ]  governs level of plotting.
           plots: [ 'none' | {'final'} ]  governs level of plotting.
   preprocessing: {[] []}  preprocessing structures for x and y blocks (see PREPROCESS).
   preprocessing: {[] []}  preprocessing structures for x and y blocks (see PREPROCESS).
       algorithm: [ 'nip' | {'sim'} ]    PLS algorithm to use: NIPALS or SIMPLS
       algorithm: [ 'nip' | {'sim'} ]    PLS algorithm to use: NIPALS or SIMPLS
     blockdetails: [ 'compact' | {'standard'} | 'all' ]  Extent of detail included in model.
     blockdetails: [ 'compact' | {'standard'} | 'all' ]  Extent of detail included in model.
                     'standard' keeps only y-block, 'all' keeps both x- and y- blocks
                     'standard' keeps only y-block, 'all' keeps both x- and y- blocks
===See Also===
===See Also===
[[class2logical]], [[crossval]], [[pls]], [[plsdthres]], [[simca]]
[[class2logical]], [[crossval]], [[pls]], [[plsdthres]], [[simca]]

Revision as of 15:26, 3 September 2008

Purpose

Partial least squares discriminate analysis.

Synopsis

model = plsda(x,y,ncomp,options)
model = plsda(x,ncomp,options)
pred = plsda(x,model,options)
valid = plsda(x,y,model,options)
options = plsda('options')

Description

PLSDA is a multivariate inverse least squares discrimination method used to classify samples. The y-block in a PLSDA model indicates which samples are in the class(es) of interest through either:

(A) a column vector of class numbers indicating class asignments:
   y = [1 1 3 2]';
(B) a matrix of one or more columns containing a logical zero (= not in class) or one (= in class) for each sample (row):
  • y = [1 0 0;
  • 1 0 0;
  • 0 0 1;
  • 0 1 0]

NOTE: When a vector of class numbers is used (case A, above), class zero (0) is reserved for "unknown" samples and, thus, samples of class zero are never used when calibrating a PLSDA model. The model will include predictions for these samples.

The prediction from a PLSDA model is a value of nominally zero or one. A value closer to zero indicates the new sample is NOT in the modeled class; a value of one indicates a sample is in the modeled class. In practice a threshold between zero and one is determined above which a sample is in the class and below which a sample is not in the class (See, for example, PLSDTHRES). Similarly, a probability of a sample being inside or outside the class can be calculated using DISCRIMPROB. The predicted probability of each class is included in the output model structure in the field:

model.details.predprobability
  • INPUTS
    • '''''''''' x = X-block (predictor block) class "double" or "dataset",
  • y = Y-block - OPTIONAL if x is a dataset containing classes for
  • sample mode (mode 1) otherwise, y is one of:
  • (A) column vector of sample classes for each sample in x -OPTIONAL if x is a dataset containing classes for sample mode (mode 1)
  • or (B) a logical array with 1 indicating class membership for each sample (rows) in one or more classes (columns)
  • ncomp = the number of latent variables to be calculated (positive integer scalar).
  • OUTPUT
    • '''''''''' model = standard model structure containing the PLSDA model (See MODELSTRUCT).
  • pred = structure array with predictions
  • valid = structure array with predictionsz

Note: Calling plsda with no inputs starts the graphical user interface (GUI) for this analysis method.

Options

        display: [ 'off' | {'on'} ]      governs level of display to command window.
          plots: [ 'none' | {'final'} ]  governs level of plotting.
  preprocessing: {[] []}  preprocessing structures for x and y blocks (see PREPROCESS).
      algorithm: [ 'nip' | {'sim'} ]     PLS algorithm to use: NIPALS or SIMPLS
   blockdetails: [ 'compact' | {'standard'} | 'all' ]  Extent of detail included in model.
                   'standard' keeps only y-block, 'all' keeps both x- and y- blocks

See Also

class2logical, crossval, pls, plsdthres, simca