Skip to main content

Scalable probabilistic impact modeling

Project description

aimz: Scalable probabilistic impact modeling

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Run Pytest PyPI Conda Python License: Apache 2.0 Code style: ruff codecov JOSS DOI

Installation | Tutorial | User Guide | FAQs | Changelog

Overview

aimz is a Python library for scalable probabilistic impact modeling—estimating how interventions affect outcomes while quantifying uncertainty.

It provides a high-level, object-oriented interface on top of NumPyro and JAX for building, fitting, and scaling Bayesian models: a user-defined NumPyro model is wrapped as a "kernel" inside a single class, augmented with capabilities for scalable predictive sampling, structured outputs, and experiment tracking.

Key capabilities

  • Object-oriented interface for NumPyro models: Bring any NumPyro model as a "kernel" and access fit, predict, sample, and related methods through a single class—aimz does not enforce a fixed architecture.
  • Scalable predictive sampling: JIT-compiled, sharded sampling streams results to chunked Zarr stores, enabling large-scale posterior predictive simulations that do not need to fit in memory.
  • Structured outputs: Predictions, samples, and effect estimates are materialized as Xarray objects backed by Zarr, integrating cleanly with the scientific Python ecosystem.
  • Intervention handling and impact modeling: Specify interventions declaratively and estimate effects from posterior predictive distributions.
  • Experiment tracking: MLflow integration for logging runs, parameters, metrics, and model artifacts with full lineage.

Installation

Install aimz using either pip or conda:

pip install -U aimz
conda install -c conda-forge aimz

For additional details, see the full installation guide.

Quick start

from aimz import ImpactModel

# Define a probabilistic model (kernel) using NumPyro primitives
def model(X, y=None):
    ...

# Load or prepare data
X, y = ...

# Initialize ImpactModel with SVI or MCMC inference
im = ImpactModel(
    model,
    rng_key=...,      # e.g., jax.random.key(0)
    inference=...,    # e.g., SVI (or MCMC)
)

# Fit model and draw posterior samples
im.fit(X, y)

# Generate posterior predictive samples
dt = im.predict(X)

# Estimate intervention effects
dt_baseline = im.predict(X)
dt_intervention = im.predict(X, intervention={"treatment": 1.0})
effect = im.estimate_effect(dt_baseline, dt_intervention)

Contributing

See the Contributing Guide to get started.

Citation

If you use aimz in your work, please cite the accompanying paper in the Journal of Open Source Software:

@article{Kim2026,
  title        = {aimz: Scalable probabilistic impact modeling},
  author       = {Kim, Eunseop},
  year         = 2026,
  journal      = {Journal of Open Source Software},
  publisher    = {The Open Journal},
  volume       = 11,
  number       = 120,
  pages        = 9738,
  doi          = {10.21105/joss.09738},
  url          = {https://doi.org/10.21105/joss.09738}
}

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

aimz-0.12.0.tar.gz (54.5 kB view details)

Uploaded Source

Built Distribution

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

aimz-0.12.0-py3-none-any.whl (57.7 kB view details)

Uploaded Python 3

File details

Details for the file aimz-0.12.0.tar.gz.

File metadata

  • Download URL: aimz-0.12.0.tar.gz
  • Upload date:
  • Size: 54.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aimz-0.12.0.tar.gz
Algorithm Hash digest
SHA256 108c037ad504b3d26b3be039ef56b46271073dcbb88c52a4b0242688c0dae3d8
MD5 4626b55fc6a3dee15bb04042126ee353
BLAKE2b-256 0b9100e56247f6030d466ba02c6ce4b943a1d0f2cd6976ae4dd772b9346fd68a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aimz-0.12.0.tar.gz:

Publisher: publish.yaml on markean/aimz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aimz-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: aimz-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 57.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aimz-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 88773f754aa79a60cbed3fdc530c5f546a7e48f7299f71d3c1b5ecf1b7790a02
MD5 05828b55000d483d2cf5928ba17ed98c
BLAKE2b-256 0fb6be15bcf9605149d68d6ac9027b31f9f07ba4316ee1dfc8e455acec7ff14f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aimz-0.12.0-py3-none-any.whl:

Publisher: publish.yaml on markean/aimz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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