StepMix
For StepMixR, please refer to this repository.
A Python package following the scikit-learn API for model-based clustering and generalized mixture modeling (latent class/profile analysis) of continuous and categorical data. StepMix handles missing values through Full Information Maximum Likelihood (FIML) and provides multiple stepwise Expectation-Maximization (EM) estimation methods based on pseudolikelihood theory. Additional features include support for covariates and distal outcomes, various simulation utilities, and non-parametric bootstrapping, which allows inference in semi-supervised and unsupervised settings.
Reference
If you find StepMix useful, please consider citing our arXiv preprint:
@article{morin2023stepmix,
title={StepMix: A Python Package for Pseudo-Likelihood Estimation of Generalized Mixture Models with External Variables},
author={Morin, Sacha and Legault, Robin and Bakk, Zsuzsa and Gigu{\`e}re, Charles-{\'E}douard and de la Sablonni{\`e}re, Roxane and Lacourse, {\'E}ric},
journal={arXiv preprint arXiv:2304.03853},
year={2023}
}
Install
You can install StepMix with pip, preferably in a virtual environment:
pip install stepmix
Quickstart
A StepMix mixture using categorical variables on a preloaded data matrix. StepMix accepts either numpy.arrayor
pandas.DataFrame. Categories should be integer-encoded and 0-indexed.
from stepmix.stepmix import StepMix
# Categorical StepMix Model with 3 latent classes
model = StepMix(n_components=3, measurement="categorical")
model.fit(data)
# Allow missing values
model_nan = StepMix(n_components=3, measurement="categorical_nan")
model_nan.fit(data_nan)
For binary data you can also use measurement="binary" or measurement="binary_nan". For continuous data, you can fit a Gaussian Mixture with diagonal covariances using measurement="continuous" or measurement="continuous_nan".
Set verbose=1 for a detailed output.
Please refer to the StepMix tutorials to learn how to combine continuous and categorical data in the same model.
Tutorials
Detailed tutorials are available in notebooks:
- Generalized Mixture Models with StepMix:
an in-depth look at how latent class models can be defined with StepMix. The tutorial uses the Iris Dataset as an example
and covers:
- Continuous LCA models (latent profile analysis/gaussian mixture model);
- Binary LCA models;
- Categorical LCA models;
- Mixed variables mixture models (continuous and categorical data);
- Missing Values through Full-Information Maximum Likelihood.
- Stepwise Estimation with StepMix:
a tutorial demonstrating how to define measurement and structural models. The tutorial discusses:
- LCA models with distal outcomes;
- LCA models with covariates;
- 1-step, 2-step and 3-step estimation;
- Corrections (BCH or ML) and other options for 3-step estimation.
- Model Selection:
a short tutorial discussing:
- Selecting the number of components in a mixture model (
n_components); - Comparing models with fit indices: AIC and BIC.
- Selecting the number of components in a mixture model (
- Parameters, Bootstrapping and CI:
a tutorial discussing how to:
- Access StepMix parameters;
- Bootstrap StepMix estimators;
- Quickly plot confidence intervals.
Metadata
Release files for stepmix 2.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| stepmix-2.1.2.tar.gz | 54.5 kB | Without provenance | Details for stepmix-2.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| stepmix-2.1.2-py3-none-any.whl | Python 3 | none | any | Details for stepmix-2.1.2-py3-none-any.whl |
Total release size: 94.9 kB
Release files / stepmix-2.1.2.tar.gz
| Download URL | stepmix-2.1.2.tar.gz |
|---|---|
| Size | 54.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60f93e45dd4f8aebf8eb6dc91ce4c6c5f56da8644eeec2eca54cd316ce065710
|
|
BLAKE2b-256 checksum How to use checksums |
5e1c9c2fcf3786bf5aaa331321510e51a9b6e9842d25afc70dad3dfff93a76a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.28.1
|
Release files / stepmix-2.1.2-py3-none-any.whl
| Download URL | stepmix-2.1.2-py3-none-any.whl |
|---|---|
| Size | 40.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a9b0b855c2ec9d0120ef424441d03bdeb1067c243144d0acdd5c75f260fea998
|
|
BLAKE2b-256 checksum How to use checksums |
77877cfd2ec09c67d4ca066bb7ef1a1fb0b3e8508ede903924c6f0416f1d2a38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.28.1
|
Security for stepmix 2.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.