bpp-core3
3.0.0
|
This class allows to perform a principal component analysis. More...
#include <Bpp/Numeric/Stat/Mva/PrincipalComponentAnalysis.h>
Public Member Functions | |
PrincipalComponentAnalysis (const Matrix< double > &data, unsigned int nbAxes, const std::vector< double > &rowW, const std::vector< double > &colW, bool centered=true, bool scaled=true, double tol=0.0000001, bool verbose=true) | |
Build a new PrincipalComponentAnalysis object. More... | |
PrincipalComponentAnalysis (const Matrix< double > &data, unsigned int nbAxes, bool centered=true, bool scaled=true, double tol=0.0000001, bool verbose=true) | |
Build a new PrincipalComponentAnalysis object and specify default row and column weights. More... | |
virtual | ~PrincipalComponentAnalysis () |
PrincipalComponentAnalysis * | clone () const |
Create a copy of this object and send a pointer to it. More... | |
const std::vector< double > & | getColumnMeans () const |
const std::vector< double > & | getColumnSd () const |
void | setData (const Matrix< double > &matrix, const std::vector< double > &rowWeights, const std::vector< double > &colWeights, unsigned int nbAxes, double tol=0.0000001, bool verbose=true) |
Set the data and perform computations. More... | |
std::vector< double > | computeVariancePercentagePerAxis () |
size_t | getNbOfKeptAxes () const |
const std::vector< double > | getRowWeights () const |
const std::vector< double > | getColumnWeights () const |
const std::vector< double > & | getEigenValues () const |
const RowMatrix< double > & | getRowCoordinates () const |
const RowMatrix< double > & | getColCoordinates () const |
const RowMatrix< double > & | getPrincipalAxes () const |
const RowMatrix< double > & | getPrincipalComponents () const |
Static Public Member Functions | |
static void | center (Matrix< double > &matrix, const std::vector< double > &rowW) |
This function allows to center an input matrix from its column means. More... | |
static void | scale (Matrix< double > &matrix, const std::vector< double > &rowW) |
This function allows to center an input matrix from its column means. More... | |
Private Attributes | |
std::vector< double > | columnMeans_ |
std::vector< double > | columnSd_ |
This class allows to perform a principal component analysis.
Two constructors are available. The first one allows the user to specify the row and column weights. The second one specify default weights: uniform weights unit weights are created for rows and columns respectively.
The code of this class is deeply inspired from the R code of the dudi.pca function available in the ade4 package.
Definition at line 22 of file PrincipalComponentAnalysis.h.
PrincipalComponentAnalysis::PrincipalComponentAnalysis | ( | const Matrix< double > & | data, |
unsigned int | nbAxes, | ||
const std::vector< double > & | rowW, | ||
const std::vector< double > & | colW, | ||
bool | centered = true , |
||
bool | scaled = true , |
||
double | tol = 0.0000001 , |
||
bool | verbose = true |
||
) |
Build a new PrincipalComponentAnalysis object.
data | The input data (a RowMatrix) to analyse. |
nbAxes | The number of kept axes during the analysis. |
rowW | A vector of values specifying the weights of rows. |
colW | A vector of values specifying the weights of columns. |
centered | If true the input matrix is centered according to the column means. |
scaled | If true the input matrix is normalized according to the standard deviations of columns. |
tol | Tolerance threshold for null eigenvalues (a value less than tol times the first one is considered as null) |
verbose | Should warnings be dispayed. |
Exception | if an error occured. |
Definition at line 16 of file PrincipalComponentAnalysis.cpp.
References center(), scale(), and bpp::DualityDiagram::setData().
Referenced by clone().
PrincipalComponentAnalysis::PrincipalComponentAnalysis | ( | const Matrix< double > & | data, |
unsigned int | nbAxes, | ||
bool | centered = true , |
||
bool | scaled = true , |
||
double | tol = 0.0000001 , |
||
bool | verbose = true |
||
) |
Build a new PrincipalComponentAnalysis object and specify default row and column weights.
data | The input data (a RowMatrix) to analyse. |
nbAxes | The number of kept axes during the analysis. |
centered | If true the input matrix is centered according to the column means. |
scaled | If true the input matrix is normalized according to the standard deviations of columns. |
tol | Tolerance threshold for null eigenvalues (a value less than tol times the first one is considered as null) |
verbose | Should warnings be dispayed. |
Exception | if an error occured. |
Definition at line 48 of file PrincipalComponentAnalysis.cpp.
References center(), bpp::VectorTools::fill(), bpp::Matrix< Scalar >::getNumberOfColumns(), bpp::Matrix< Scalar >::getNumberOfRows(), scale(), and bpp::DualityDiagram::setData().
|
inlinevirtual |
Definition at line 72 of file PrincipalComponentAnalysis.h.
|
static |
This function allows to center an input matrix from its column means.
matrix | The input data (a Matrix) to center. |
rowW | A vector with row weights. |
Definition at line 86 of file PrincipalComponentAnalysis.cpp.
References bpp::Matrix< Scalar >::getNumberOfColumns(), bpp::Matrix< Scalar >::getNumberOfRows(), and bpp::VectorTools::sum().
Referenced by clone(), and PrincipalComponentAnalysis().
|
inlinevirtual |
Create a copy of this object and send a pointer to it.
Reimplemented from bpp::DualityDiagram.
Definition at line 74 of file PrincipalComponentAnalysis.h.
References center(), PrincipalComponentAnalysis(), and scale().
|
inherited |
Referenced by bpp::DualityDiagram::clone().
|
inlineinherited |
Definition at line 110 of file DualityDiagram.h.
References bpp::DualityDiagram::colCoord_.
|
inline |
Definition at line 94 of file PrincipalComponentAnalysis.h.
References columnMeans_.
|
inline |
Definition at line 95 of file PrincipalComponentAnalysis.h.
References columnSd_.
|
inlineinherited |
Definition at line 107 of file DualityDiagram.h.
References bpp::DualityDiagram::colWeights_.
|
inlineinherited |
Definition at line 108 of file DualityDiagram.h.
References bpp::DualityDiagram::eigenValues_.
|
inlineinherited |
Definition at line 105 of file DualityDiagram.h.
References bpp::DualityDiagram::nbAxes_.
|
inlineinherited |
Definition at line 111 of file DualityDiagram.h.
References bpp::DualityDiagram::ppalAxes_.
|
inlineinherited |
Definition at line 112 of file DualityDiagram.h.
References bpp::DualityDiagram::ppalComponents_.
|
inlineinherited |
Definition at line 109 of file DualityDiagram.h.
References bpp::DualityDiagram::rowCoord_.
|
inlineinherited |
Definition at line 106 of file DualityDiagram.h.
References bpp::DualityDiagram::rowWeights_.
|
static |
This function allows to center an input matrix from its column means.
matrix | The input data (a Matrix) to center. |
rowW | A vector with row weights. |
Definition at line 117 of file PrincipalComponentAnalysis.cpp.
References bpp::Matrix< Scalar >::getNumberOfColumns(), bpp::Matrix< Scalar >::getNumberOfRows(), and bpp::VectorTools::sum().
Referenced by clone(), and PrincipalComponentAnalysis().
|
inherited |
Set the data and perform computations.
matrix | The input data to analyse. |
rowWeights | A vector of values specifying the weights of rows. |
colWeights | A vector of values specifying the weights of columns. |
nbAxes | The number of kept axes during the analysis. |
tol | Tolerance threshold for null eigenvalues (a value less than tol times the first one is considered as null) |
verbose | Should warnings be dispayed. |
Exception | if an error occured. |
Definition at line 66 of file DualityDiagram.cpp.
References bpp::DualityDiagram::check_(), bpp::DualityDiagram::colWeights_, bpp::DualityDiagram::compute_(), bpp::DualityDiagram::nbAxes_, and bpp::DualityDiagram::rowWeights_.
Referenced by bpp::DualityDiagram::clone(), bpp::CorrespondenceAnalysis::CorrespondenceAnalysis(), and PrincipalComponentAnalysis().
|
private |
Definition at line 26 of file PrincipalComponentAnalysis.h.
Referenced by getColumnMeans().
|
private |
Definition at line 27 of file PrincipalComponentAnalysis.h.
Referenced by getColumnSd().