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.

Installation

  • From Github: pip install git+https://github.com/alexwhitworth/pyimputeMulti.git
  • From PyPI: (coming soon)

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.1.tar.gz (82.3 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.1-cp313-cp313-macosx_11_0_arm64.whl (277.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: imputemulti-0.5.1.tar.gz
  • Upload date:
  • Size: 82.3 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.1.tar.gz
Algorithm Hash digest
SHA256 b6b9c8708d796175d167c21988912640bdff388888361cbb9baab4f0b542a77e
MD5 ccb8177dfec74612494daa786f028f6f
BLAKE2b-256 083f21743f3e5b25c892d354ecb38c76c02bfad734fb5f5acfa16f9128099ef2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: imputemulti-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 277.0 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.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61c512e1e467f93de57db87c4e25eaa562b2de8ef3197a6cce7d512d1022387e
MD5 ee3ddfc887559f131d0c32db272c1946
BLAKE2b-256 4af0053ff41da3aa5e5e52515d7d0b1000c4bb51c9d7c7376bcf96125d11a682

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