Skip to main content

Implements imputation methods using EM and Data Augmentation for multinomial data following the work of Schafer 1997 <ISBN: 978-0-412-04061-0>.

Project description

imputemulti

A Python library for multivariate multinomial data imputation using Expectation-Maximization (EM) and Data Augmentation (DA) algorithms, with a high-performance Rust core.

Features

  • Multivariate multinomial imputation: Fill missing values in categorical datasets.
  • Algorithms:
    • Expectation-Maximization (EM) algorithm.
    • Data Augmentation (DA) algorithm.
  • Priors: Conjugate priors (Dirichlet) and data-dependent priors.
  • Performance: High-performance Rust implementation for core counting and comparison functions.
    • Benchmarking: 10x - 100x faster than the original R/C++ implementation

Installation

  • From Github: pip install git+https://github.com/alexwhitworth/pyimputeMulti.git
  • From PyPI: pip install imputemulti

Usage

from imputemulti import multinomial_impute, load_tract2221

# Load example data
df = load_tract2221()

# Perform imputation
em_result = multinomial_impute(df, method="EM", conj_prior="none")
da_result = multinomial_impute(df, method="DA", conj_prior="none")

# Access imputed data
em_imputed_df = em_result.data[1]
da_imputed_df = da_result.data[1]

Detailed Examples

References:

  1. Schafer, Joseph L. Analysis of incomplete multivariate data. Chapter 7. CRC press, 1997.
  2. Darnieder, William Francis. Bayesian methods for data-dependent priors. Diss. The Ohio State University, 2011.

Citation

If you use imputeMulti in your work, please cite the following:

@Manual{imputemulti_py,
    title = {{imputeMulti}: Imputation Methods for Multivariate Multinomial Data},
    author = {Alex Whitworth},
    year = {2021},
    howpublished = {\url{https://github.com/alexwhitworth/imputeMulti}},
    note         = {R package version 0.8.3; migrated to Python in 2026. Accessed: <Month DD, YYYY>}
}

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

imputemulti-0.5.2.tar.gz (82.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imputemulti-0.5.2-cp313-cp313-macosx_11_0_arm64.whl (277.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file imputemulti-0.5.2.tar.gz.

File metadata

  • Download URL: imputemulti-0.5.2.tar.gz
  • Upload date:
  • Size: 82.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for imputemulti-0.5.2.tar.gz
Algorithm Hash digest
SHA256 7838033a1c0da2a4bcde5433ba567cabc46abad9d60a01f29584a60b235cb11a
MD5 0ef8b8cf6862ed8c9d3bd057bbf17cd6
BLAKE2b-256 8a1d6b3d356e5718daa9aaaf8f6b8d327092ad6fda681c12acb6ffa14f5bf09a

See more details on using hashes here.

File details

Details for the file imputemulti-0.5.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: imputemulti-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 277.1 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for imputemulti-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3756d0fdcca7d67e474359d2870d3b6b6bedb4e2d61e9fc5f98c9c770802a07
MD5 d83f4f19665b123074af4994e7a066f3
BLAKE2b-256 5c81bb4d2773c919b977c02994edeeb715fe912a36d9fe2c9f80a539fec8bbd4

See more details on using hashes here.

Supported by

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