FactorAnalysis Class

Represents a Factor Analysis.

Definition

Namespace: Extreme.Statistics.Multivariate
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23
C#
public class FactorAnalysis : TransformationModel<double>
Inheritance
Object  →  Model  →  TransformationModel<Double>  →  FactorAnalysis

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.

Constructors

FactorAnalysis(Matrix<Double>) Constructs a new factor analysis object.
FactorAnalysis(Vector<Double>[]) Constructs a new factor analysis object.
FactorAnalysis(IDataFrame, String) Constructs a new FactorAnalysis.
FactorAnalysis(IDataFrame, String[]) Constructs a new FactorAnalysis.
FactorAnalysis(SymmetricMatrix<Double>, FactorMethod) Constructs a new factor analysis object.

Properties

BaseFeatureIndex Gets an index containing the keys of the columns that are required inputs to the model.
(Inherited from Model)
Communalities Gets a vector containing the proportion of the common variance of each variable associated with the factors.
Computed Gets whether the model has been computed.
(Inherited from Model)
Obsolete.
CumulativeVarianceExplained Gets a vector containing the variance explained by each factor.
Data Gets an object that contains all the data used as input to the model.
(Inherited from Model)
Eigenvalues Gets a vector containing the eigenvalues corresponding to the factors.
ExtractionMethod Gets or sets the method for extracting factors.
ExtractionPhaseMaxIterations Gets or sets the maximum number of iterations allowed for factor extraction.
ExtractionPhaseTolerance Gets or sets the difference in successive approximations of the communalities that signals convergence when extracting the factors.
FactorCorrelationMatrix Gets a matrix that contains the correlations between the factors.
FactorCountMethod Gets or sets a value that specifies how the number of factors is determined.
FactorScoreCoefficientMatrix Gets the matrix of factor score coefficients.
FactorScoreMethod Gets or sets the method for computing factor score coefficients.
FactorThreshold Gets or sets the threshold value for automatically determining the number of factors to be extracted.
FactorTransformationMatrix Gets the matrix that transforms the original factors to the rotated factors.
Features Gets a matrix that contains the features.
(Inherited from TransformationModel<T>)
Fitted Gets whether the model has been computed.
(Inherited from Model)
InitialCommunalities Gets a vector containing the initial values of the communalities.
InputSchema Gets the schema for the features used for fitting the model.
(Inherited from Model)
IsObliqueRotation Gets whether the factor rotation is oblique.
IsOrthogonalRotation Gets whether the factor rotation is orthogonal.
LoadingsMatrix Gets the matrix of unrotated factor loadings.
MaxDegreeOfParallelism Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from Model)
Method Gets or sets whether the factor analysis is based on a correlation matrix or a covariance matrix.
ModelSchema Gets the collection of variables used in the model.
(Inherited from Model)
NumberOfFactors Gets or sets the number of factors to be extracted.
NumberOfObservations Gets the number of observations the model is based on.
(Inherited from Model)
ParallelOptions Gets or sets an object that specifies how the calculation of the model should be parallelized.
(Inherited from Model)
PatternMatrix Gets the matrix of contributions of each factor to the variance of each variable.
PromaxPower Gets or sets the exponent used in promax rotation.
RotatedLoadingsMatrix Gets the matrix of rotated factor loadings, the correlations between factors and variables after rotation.
RotationMethod Gets or sets the method for rotating factors.
RotationPhaseMaxIterations Gets or sets the maximum number of iterations allowed for factor rotation.
RotationPhaseTolerance Gets or sets the threshold value of the convergence measure for factor rotations.
Standardize Gets or sets whether the variables should be standardized before the clustering is computed.
Status Gets the status of the model, which determines which information is available.
(Inherited from Model)
StructureMatrix Gets the matrix of the correlations between factors and variables.
SupportsWeights Indicates whether the model supports case weights.
(Inherited from Model)
Uniqueness Gets a vector containing the proportion of the common variance of each variable not associated with the factors.
VarianceExplained Gets a vector containing the variance explained by each factor.
Weights Gets or sets the actual weights.
(Inherited from Model)

Methods

Compute() Computes the model.
(Inherited from Model)
Obsolete.
Compute(ParallelOptions) Computes the model.
(Inherited from Model)
Obsolete.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Fit() Fits the model to the data.
(Inherited from Model)
Fit(ParallelOptions) Fits the model to the data.
(Inherited from Model)
FitCore Computes the factor analysis.
(Overrides Model.FitCore(ModelInput, ParallelOptions))
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetRotatedFactors Gets a read-only collection of the factors after rotation.
GetTypeGets the Type of the current instance.
(Inherited from Object)
GetUnrotatedFactors Gets a read-only collection of the factors before rotation.
InverseTransform(Matrix<Double>) Applies the inverse transformation to a set of observations.
(Inherited from TransformationModel<T>)
InverseTransform(Vector<Double>) Applies the inverse transformation to a set of observations.
(Inherited from TransformationModel<T>)
InverseTransformInto(Matrix<Double>, Matrix<Double>) Applies the inverse transformation to a set of observations.
(Inherited from TransformationModel<T>)
InverseTransformInto(Vector<Double>, Vector<Double>) Applies the inverse transformation to a set of observations.
(Overrides TransformationModel<T>.InverseTransformInto(Vector<Double>, Vector<Double>))
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
ResetComputation Clears all fitted model parameters.
(Inherited from Model)
Obsolete.
ResetFit Clears all fitted model parameters.
(Inherited from Model)
SetDataSource Uses the specified data frame as the source for all input variables.
(Inherited from Model)
Summarize() Returns a string containing a human-readable summary of the object using default options.
(Inherited from Model)
Summarize(SummaryOptions) Returns a string containing a human-readable summary of the object using the specified options.
(Inherited from Model)
ToStringReturns a string that represents the current object.
(Inherited from Model)
Transform(Matrix<Double>) Applies the transformation to a set of observations.
(Inherited from TransformationModel<T>)
Transform(Vector<Double>) Applies the transformation to a single observation.
(Inherited from TransformationModel<T>)
TransformInto(Matrix<Double>, Matrix<Double>) Applies the transformation to a set of observations.
(Inherited from TransformationModel<T>)
TransformInto(Vector<Double>, Vector<Double>) Applies the transformation to a single observation.
(Overrides TransformationModel<T>.TransformInto(Vector<Double>, Vector<Double>))

See Also