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
- See
docs/
References:
- Schafer, Joseph L. Analysis of incomplete multivariate data. Chapter 7. CRC press, 1997.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b9c8708d796175d167c21988912640bdff388888361cbb9baab4f0b542a77e
|
|
| MD5 |
ccb8177dfec74612494daa786f028f6f
|
|
| BLAKE2b-256 |
083f21743f3e5b25c892d354ecb38c76c02bfad734fb5f5acfa16f9128099ef2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c512e1e467f93de57db87c4e25eaa562b2de8ef3197a6cce7d512d1022387e
|
|
| MD5 |
ee3ddfc887559f131d0c32db272c1946
|
|
| BLAKE2b-256 |
4af0053ff41da3aa5e5e52515d7d0b1000c4bb51c9d7c7376bcf96125d11a682
|