Skip to main content

A Python package for multi-step estimation of latent class models with measurement and structural components. The package can also be used to fit mixture models with various observed random variables.

Project description

StepMix

PyPI version Build Status Documentation Status Code style: black

A Python package for multi-step estimation of latent class models with measurement and structural components. The package can also be used to fit mixture models with various observed random variables. Largely based on Bakk & Kuha, 2018.

Install

You can install StepMix with pip, preferably in a virtual environment :

pip install stepmix

Usage

A simple example for 3-step estimation on simulated data :

from stepmix.datasets import data_bakk_response
from stepmix.stepmix import StepMix

# Soft 3-step 
X, Y, _ = data_bakk_response(n_samples=1000, sep_level=.7, random_state=42)
model = StepMix(n_components=3, n_steps=3, measurement='bernoulli', structural='gaussian_unit', assignment='soft',
            random_state=42)
model.fit(X, Y)
print(model.score(X, Y))  # Average log-likelihood

# Equivalently, each step can be performed individually. See the code of the fit method for details.
model = StepMix(n_components=3, measurement='bernoulli', structural='gaussian_unit', random_state=42)
model.em(X)  # Step 1
probs = model.predict_proba(X)  # Step 2
model.m_step_structural(probs, Y)  # Step 3
print(model.score(X, Y))

1-step and 2-step estimation are simply a matter of changing of the n_steps argument. Additionally, some bias correction methods are available for 3-step estimation.

References

  • Bolck, A., Croon, M., and Hagenaars, J. Estimating latent structure models with categorical variables: One-step versus three-step estimators. Political analysis, 12(1): 3–27, 2004.

  • Vermunt, J. K. Latent class modeling with covariates: Two improved three-step approaches. Political analysis, 18 (4):450–469, 2010.

  • Bakk, Z., Tekle, F. B., and Vermunt, J. K. Estimating the association between latent class membership and external variables using bias-adjusted three-step approaches. Sociological Methodology, 43(1):272–311, 2013.

  • Bakk, Z. and Kuha, J. Two-step estimation of models between latent classes and external variables. Psychometrika, 83(4):871–892, 2018

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stepmix-0.1.0.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

stepmix-0.1.0-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file stepmix-0.1.0.tar.gz.

File metadata

  • Download URL: stepmix-0.1.0.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for stepmix-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0de65d881aa56c1a049a1959d4397c9ab776571b4e8a04a70a6a6d40045b3598
MD5 912c8e63eb92e65571f87e7b9a0bb09b
BLAKE2b-256 0b4067f903b41ace3ed3f48ec410a29a20d5f7e9c1f31ec9010630acdce7778f

See more details on using hashes here.

File details

Details for the file stepmix-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: stepmix-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for stepmix-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb58ad8058acb3940f392ea3123841ede40365915e004d966ec0a85aa01a2409
MD5 782a7be9043f8dd9302b6a0f323a4196
BLAKE2b-256 c4cf1382af6dfeedf5a2af65f435eba68333cbc71f472f7e923c94d742638281

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page