Classcentroid

From Eigenvector Research Documentation Wiki
Revision as of 12:48, 2 October 2012 by imported>Donal (→‎Optional Inputs)
Jump to navigation Jump to search

Purpose

Centers data to the centroid of all classes.

Synopsis

[ccx,mn] = classcentroid(x,options); %calibrate, centers the data
[ccx,mn,pstd] = classcentroid(x,options); %calibrate, centers and scales
ccx = classcentroid(x,mn); %apply, centers new data
ccx = classcentroid(x,mn,pstd); %apply, centers and scales

Description

Rows in the input data are centered to the centroid of all the classes. The centroid is equivalent to a weighted mean where each class is given the same weight. For example, if two classes A and B are present the centroid is

  mn = mean([mean(Class A); mean(Class B)]);

If only two outputs are requested, then the data is centered only. If three outputs are requested, than the data is both centered and scaled (scaling based on the pooled standard devation of the classes). For more details, see Advanced_Preprocessing:_Variable_Centering.

Inputs

  • x = DataSet object to be class-centered.

Optional Inputs

  • mn = Means from previous call to classcentroid. Must be passed with associated classes (see next input).
  • classset = Class set (from rows) which should be used to center data. Default is class set 1.
  • pstd = Pooled standard deviation of the classes. e.g., pstd = mean([std(Class A).^2/MA; std(Class B).^2/MB]); where MA and MB are the number of samples in each class.
  • offset = scales by pstd = pstd+offset (default = 0).

Outputs

  • ccx = Class-centered x. Dataset where each class has been centered.
  • mn = Row vector of the centroids for each class.
  • pstd = Row vector of pooled standard deviation of the classes.

Use in Multilevel Classification and Regression

Classcentroid can be used in multi-level classification. Multi-level data are data where samples have a class set and where samples within each class are also associated with a secondary class set. Patient data is an example where measurements are taken from each patient before and after treatment. The primary class is patientID and the secondary class is "untreated"/"treated", as discussed in J.A. Westerhuis, Ewoud J.J., van Velzen H. C., Hoefsloot J., and Smilde A.K., "Multivariate paired data analysis: multilevel PLSDA versus OPLSDA" Metabolomics (2010) 6:119-128. Classcentroid can similarly be used to perform class-centered regression.

Steps to do multilevel PLS

  1. assign classes to samples in x-block where each pair of measurements for a subject have the same class (i.e. measurements which have a common offset have same class)
  2. add class centering to preprocessing ("Class Centroid Centering" or "Class Centroid Centering and Scaling")
  3. use PLS / PLSDA / OPLS / OPLSDA to build model as usual

See Also

mncn, rescale, scale, classcenter