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
Nuget packages
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
    • Nuget packages
    • 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.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • 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
    • KMeansInitializationMethod Enumeration
    • LinearDiscriminantAnalysis Class
    • LinearDiscriminantFunction Class
    • LinkageMethod Enumeration
    • PartialLeastSquaresMethod Enumeration
    • PartialLeastSquaresModel Class
    • PrincipalComponent Class
    • PrincipalComponentAnalysis Class
    • PrincipalComponentCollection Class
    • ScalingMethod Enumeration
    • SimilarityMatrix Class
  • FactorAnalysis Class
    • FactorAnalysis Constructors
    • Properties
    • Methods

FactorAnalysis Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents a Factor Analysis.
Inheritance Hierarchy

SystemObject
  Extreme.DataAnalysis.ModelsModel
    Extreme.DataAnalysis.ModelsTransformationModelDouble
      Extreme.Statistics.MultivariateFactorAnalysis

Namespace:  Extreme.Statistics.Multivariate
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public class FactorAnalysis : TransformationModel<double>
Public Class FactorAnalysis
	Inherits TransformationModel(Of Double)
public ref class FactorAnalysis : public TransformationModel<double>
type FactorAnalysis =  
    class
        inherit TransformationModel<float>
    end

The FactorAnalysis type exposes the following members.

Constructors

  NameDescription
Public methodFactorAnalysis(MatrixDouble)
Constructs a new factor analysis object.
Public methodFactorAnalysis(VectorDouble)
Constructs a new factor analysis object.
Public methodFactorAnalysis(IDataFrame, String)
Constructs a new FactorAnalysis.
Public methodFactorAnalysis(IDataFrame, String)
Constructs a new FactorAnalysis.
Public methodFactorAnalysis(SymmetricMatrixDouble, FactorMethod)
Constructs a new factor analysis 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 propertyCommunalities
Gets a vector containing the proportion of the common variance of each variable associated with the factors.
Public propertyComputed Obsolete.
Gets whether the model has been computed.
(Inherited from Model.)
Public propertyCumulativeVarianceExplained
Gets a vector containing the variance explained by each factor.
Public propertyData
Gets an object that contains all the data used as input to the model.
(Inherited from Model.)
Public propertyEigenvalues
Gets a vector containing the eigenvalues corresponding to the factors.
Public propertyExtractionMethod
Gets or sets the method for extracting factors.
Public propertyExtractionPhaseMaxIterations
Gets or sets the maximum number of iterations allowed for factor extraction.
Public propertyExtractionPhaseTolerance
Gets or sets the difference in successive approximations of the communalities that signals convergence when extracting the factors.
Public propertyFactorCorrelationMatrix
Gets a matrix that contains the correlations between the factors.
Public propertyFactorCountMethod
Gets or sets a value that specifies how the number of factors is determined.
Public propertyFactorScoreCoefficientMatrix
Gets the matrix of factor score coefficients.
Public propertyFactorScoreMethod
Gets or sets the method for computing factor score coefficients.
Public propertyFactorThreshold
Gets or sets the threshold value for automatically determining the number of factors to be extracted.
Public propertyFactorTransformationMatrix
Gets the matrix that transforms the original factors to the rotated factors.
Public propertyFeatures
Gets a matrix that contains the features.
(Inherited from TransformationModelT.)
Public propertyFitted
Gets whether the model has been computed.
(Inherited from Model.)
Public propertyInitialCommunalities
Gets a vector containing the initial values of the communalities.
Public propertyInputSchema
Gets the schema for the features used for fitting the model.
(Inherited from Model.)
Public propertyIsObliqueRotation
Gets whether the factor rotation is oblique.
Public propertyIsOrthogonalRotation
Gets whether the factor rotation is orthogonal.
Public propertyLoadingsMatrix
Gets the matrix of unrotated factor loadings.
Public propertyMaxDegreeOfParallelism
Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from Model.)
Public propertyMethod
Gets or sets whether the factor analysis is based on a correlation matrix or a covariance matrix.
Public propertyModelSchema
Gets the collection of variables used in the model.
(Inherited from Model.)
Public propertyNumberOfFactors
Gets or sets the number of factors to be extracted.
Public propertyNumberOfObservations
Gets the number of observations the model is based on.
(Inherited from Model.)
Protected propertyParallelOptions
Gets or sets an object that specifies how the calculation of the model should be parallelized.
(Inherited from Model.)
Public propertyPatternMatrix
Gets the matrix of contributions of each factor to the variance of each variable.
Public propertyPromaxPower
Gets or sets the exponent used in promax rotation.
Public propertyRotatedLoadingsMatrix
Gets the matrix of rotated factor loadings, the correlations between factors and variables after rotation.
Public propertyRotationMethod
Gets or sets the method for rotating factors.
Public propertyRotationPhaseMaxIterations
Gets or sets the maximum number of iterations allowed for factor rotation.
Public propertyRotationPhaseTolerance
Gets or sets the threshold value of the convergence measure for factor rotations.
Public propertyStandardize
Gets or sets whether the variables should be standardized before the clustering is computed.
Public propertyStatus
Gets the status of the model, which determines which information is available.
(Inherited from Model.)
Public propertyStructureMatrix
Gets the matrix of the correlations between factors and variables.
Public propertySupportsWeights
Indicates whether the model supports case weights.
(Inherited from Model.)
Public propertyUniqueness
Gets a vector containing the proportion of the common variance of each variable not associated with the factors.
Public propertyVarianceExplained
Gets a vector containing the variance explained by each factor.
Public propertyWeights
Gets or sets the actual weights.
(Inherited from Model.)
Top
Methods

  NameDescription
Public methodCompute Obsolete.
Computes the model.
(Inherited from Model.)
Public methodCompute(ParallelOptions) Obsolete.
Computes the model.
(Inherited from Model.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(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.)
Protected methodFitCore
Computes the factor analysis.
(Overrides ModelFitCore(ModelInput, ParallelOptions).)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetRotatedFactors
Gets a read-only collection of the factors after rotation.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetUnrotatedFactors
Gets a read-only collection of the factors before rotation.
Public methodInverseTransform
Applies the inverse transformation to a set of observations.
(Overrides TransformationModelTInverseTransform(MatrixDouble).)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodResetComputation Obsolete.
Clears all fitted model parameters.
(Inherited from Model.)
Public methodResetFit
Clears all fitted 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 methodTransform
Applies the transformation to a set of observations.
(Overrides TransformationModelTTransform(MatrixDouble).)
Top
Remarks

Use the FactorAnalysis class to perform a factor analysis on a set of variables or directly on a correlation matrix or a covariance matrix.

The number of factors can be set in advance, or may be determined automatically based on the eigenvalues of the correlation matrix.

The ExtractionMethod property determines the algorithm for determining the factors. It is of type FactorExtractionMethod. A variety of factor extraction methods is available: principal components, principal axis, maximum likelihood, unweighted least squares (ULS), generalized least squares (GLS), alpha factoring, and image factoring. Several extraction methods use an iterative process. You can set the tolerance and iteration limit for this phase using the ExtractionPhaseTolerance and ExtractionPhaseMaxIterations properties, respectively.

After the factors have been determined, they may be rotated. Again, a number of methods are available, including orthogonal (varimax, equamax, quartimax) and oblique (promax). The default is varimax. The method is specified by the RotationMethod property, which is of type FactorRotationMethod. Factor rotation is usually an iterative process. You can set the tolerance and iteration limit for this phase using the RotationPhaseTolerance and RotationPhaseMaxIterations properties, respectively.

Once the analysis is complete, the Communalities property contains the communalities of the variables, while the Uniqueness property contains its complement. The LoadingsMatrix property returns a matrix whose columns are the correlations of the factor with the corresponding variables before rotation. The FactorScoreCoefficientMatrix contains the coefficients of the factor scores.

Depending on whether the rotation is orthogonal or oblique, a number of properties are available. For orthogonal rotations, the RotatedLoadingsMatrix returns the loadings matrix after rotation. For oblique rotations, the PatternMatrix property contains the matrix of contributions of each factor to the variance of each variable. The StructureMatrix contains the matrix of correlations between factors and variables. For orthogonal rotations, both these matrices are equal and the same as the RotatedLoadingsMatrix.

See Also

Reference

Extreme.Statistics.Multivariate Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, 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.