This is a major release which includes a number of improvements, primarily aimed at providing more functionality for ``factor_analyzer``, and making it compatible with ``scikit-learn``.
What's New
Major Changes
- The ``factor_analyzer`` package now includes a ``confirmatory_factor_analyzer`` module, which allows enables to fit a CFA model by specifying the target factor loading matrix. This is not as full-featured as some CFA functions that may be available in other packages (such as R's ``sea`` or ``lavaan`` libraries), but it provides basic functionality to perform CFA. Some of the major limitations include (1) users cannot specify a target variance-covariance matrix for the factor loadings, and (2) users cannot specify other identification constraints. These are features that we may add in a future release.
- All major ``factor_analyzer`` classes are not fully compatible with ``scikit-learn``. This includes the ``Rotator``, ``FactorAnalyzer``, and ``ConfirmatoryFactorAnalyzer`` classes. These classes now inherit from ``scikit-learn``'s ``BaseEstimator`` class and implement ``fit()`` and ``transform()`` methods. Users can now use objects from these classes in ``sklearn`` pipelines.
- Along with the ``ConfirmatoryFactorAnalyzer`` class, ``factor_analyzer`` provides a ``ModelSpecification`` class (and an associated ``ModelSpecificationParser`` class) to encapsulate the model specification for CFA. This primarily involves the specification of a target factor loading matrix.
Other Minor Changes
- The ``transform()`` methods have been modified slightly to rely on the mean / standard deviation from the original data set when generating factor scores.
- The ``ConfirmatoryFactorAnalyzer`` class also provides standard error estimates.
- Various new utility functions have been added.