Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.Distributed.Cuda
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.FSharp
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.Generic.LinearAlgebra
    • Extreme.Mathematics.Generic.LinearAlgebra.Implementation
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers
    • Extreme.Mathematics.Generic.SignalProcessing
    • Extreme.Mathematics.Implementation
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Complex
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IO
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.LinearAlgebra.Providers
    • Extreme.Mathematics.LinearAlgebra.Sparse
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.Genetic
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Numerics.FSharp
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.IO
    • Extreme.Statistics.Linq
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Random
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Statistics.Multivariate
    • DendrogramNode Class
    • DistanceMeasures Class
    • Factor Class
    • FactorAnalysis Class
    • FactorCountMethod Enumeration
    • FactorExtractionMethod Enumeration
    • FactorMethod Enumeration
    • FactorRotationMethod Enumeration
    • FactorScoreMethod Enumeration
    • HierarchicalCluster Class
    • HierarchicalClusterAnalysis Class
    • HierarchicalClusterCollection Class
    • KMeansCluster Class
    • KMeansClusterAnalysis Class
    • KMeansClusterCollection Class
    • KMeansInitializationMethod Enumeration
    • LinearDiscriminantAnalysis Class
    • LinearDiscriminantFunction Class
    • LinkageMethod Enumeration
    • MultivariateModel Class
    • PartialLeastSquaresMethod Enumeration
    • PartialLeastSquaresModel Class
    • PrincipalComponent Class
    • PrincipalComponentAnalysis Class
    • PrincipalComponentCollection Class
    • ScalingMethod Enumeration
    • SimilarityMatrix Class
  • PrincipalComponentAnalysis Class
    • PrincipalComponentAnalysis Constructors
    • Properties
    • Methods
PrincipalComponentAnalysis ClassExtreme Optimization Numerical Libraries for .NET Professional
Represents the Principal Component Analysis (PCA) of a set of data.
Inheritance Hierarchy

SystemObject
  Extreme.StatisticsModel
    Extreme.StatisticsTransformationModel
      Extreme.Statistics.MultivariatePrincipalComponentAnalysis

Namespace: Extreme.Statistics.Multivariate
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.17058.0)
Syntax

C#
VB
C++
F#
Copy
public sealed class PrincipalComponentAnalysis : TransformationModel
Public NotInheritable Class PrincipalComponentAnalysis
	Inherits TransformationModel
public ref class PrincipalComponentAnalysis sealed : public TransformationModel
[<SealedAttribute>]
type PrincipalComponentAnalysis =  
    class
        inherit TransformationModel
    end

The PrincipalComponentAnalysis type exposes the following members.

Constructors

  NameDescription
Public methodPrincipalComponentAnalysis(IDataFrame)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(MatrixDouble)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(Matrix)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(NumericalVariable)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(VectorDouble)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(DataTable, String)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(IDataFrame, String)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(IDataFrame, String)
Constructs a new PrincipalComponentAnalysis object.
Public methodPrincipalComponentAnalysis(VariableCollection, String)
Constructs a new PrincipalComponentAnalysis object.
Top
Properties

  NameDescription
Public propertyBaseFeatureIndex
Gets an index containing the keys of the columns that are required inputs to the model.
(Inherited from Model.)
Public propertyComponentMatrix
Gets the matrix whose columns contain the principal components.
Public propertyComponents
Returns the collection of principal components.
Public propertyComputed
Gets whether the regression model has been computed.
(Inherited from Model.)
Public propertyCumulativeVarianceProportions
Returns the cumulative proportion of the variance that is explained by the components.
Public propertyData
Gets an object that contains all the data used as input to the model.
(Inherited from Model.)
Public propertyDependentVariables
Gets the collection of dependent variables associated with this model.
(Inherited from Model.)
Public propertyFeatures
Gets a matrix that contains the features.
(Inherited from TransformationModel.)
Public propertyIndependentVariables
Gets the collection of independent variables associated with this model.
(Inherited from Model.)
Public propertyInputSchema
Gets the schema for the features used for fitting the model.
(Inherited from Model.)
Public propertyMaxDegreeOfParallelism
Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from Model.)
Public propertyModelSchema
Gets the collection of variables used in the model.
(Inherited from Model.)
Public propertyNumberOfComponents
Gets or sets the number of components to retain.
Public propertyNumberOfObservations
Gets the number of observations the model is based on.
(Inherited from MultivariateModel.)
Public propertyRowCount
Gets the number of observations.
Public propertyScalingMethod
Gets or sets the method used to scale the variables.
Public propertyScoreMatrix
Gets the matrix of component scores.
Public propertyStandardize Obsolete.
Gets or sets whether the variables should be standardized prior to computing the principal components.
Public propertyStatus
Gets the status of the model, which determines which information is available.
(Inherited from Model.)
Public propertySupportsWeights
Indicates whether the model supports case weights.
(Inherited from Model.)
Public propertyVarianceProportions
Returns the proportion of the variance that is explained by each of the components.
Public propertyWeights
Gets or sets the actual weights.
(Inherited from Model.)
Top
Methods

  NameDescription
Public methodCompute
Computes the model.
(Inherited from Model.)
Public methodCompute(ParallelOptions)
Computes the model.
(Inherited from Model.)
Public methodContains
Returns whether another UnivariateModel is nested within this instance.
(Inherited from Model.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodFit
Fits the model to the data.
(Inherited from Model.)
Public methodFit(ParallelOptions)
Fits the model to the data.
(Inherited from Model.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetPredictions
Returns the predicted values of the variables based on the specified number of components.
Public methodGetPredictionsMatrix
Returns the predicted values of the variables based on the specified number of components as a matrix.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetVarianceThreshold
Returns the number of components needed to explain the requested proportion of the variance in the data.
Public methodInverseTransform
Applies the inverse transformation to a set of observations.
(Overrides TransformationModelInverseTransform(MatrixDouble).)
Public methodResetComputation
Clears all computed model parameters.
(Inherited from Model.)
Public methodSetDataSource
Uses the specified data frame as the source for all input variables.
(Inherited from Model.)
Public methodSummarize
Returns a string containing a human-readable summary of the object using default options.
(Inherited from Model.)
Public methodSummarize(SummaryOptions)
Returns a string containing a human-readable summary of the object using the specified options.
(Inherited from Model.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Model.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTransform
Applies the transformation to a set of observations.
(Overrides TransformationModelTransform(MatrixDouble).)
Top
Remarks

Use the PrincipalComponentAnalysis class to obtain information about the components that contribute the most to the variation in a dataset. The data for the analysis can be supplied in a variety of formats, including as a data frame, a DataTable, an array of numerical vectors, or a matrix.

The Standardize property determines whether each variable should be rescaled to have zero mean and unit standard deviation. The Compute(ParallelOptions) method performs the actual calculation.

Once the analysis has been completed, the Components property provides access to a collection of PrincipalComponent objects that provide details about each of the principal components. The components are sorted in order of their contribution to the variance in the data, in descending order. The ComponentMatrix property returns the components as the columns of a matrix. The ScoreMatrix property expresses the observations in terms of the components. The GetPredictions(Int32) method returns the observations if only the specified number of components is taken into account.

The VarianceProportions and CumulativeVarianceProportions summarize the contribution of each component. The GetVarianceThreshold(Double) calculates how many components are needed to explain a certain proportion of the variation.

Version Information

Numerical Libraries

Supported in: 6.0, 5.x, 4.x
See Also

Reference

Extreme.Statistics.Multivariate Namespace
Extreme.Statistics.MultivariatePrincipalComponent
Extreme.Statistics.MultivariatePrincipalComponentCollection

Copyright (c) 2004-2016 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2018, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.