Skip to main content

maxent_disaggregation

PyPI Status Python Version License

Read the documentation at https://maxent_disaggregation.readthedocs.io/ Tests

Black

maxent_disaggregation is a python package to help with the propagation of uncertainty when disaggregating data, based on the maximum entropy principle. It samples from various forms of the Dirichlet distribution, maximising the entropy based on the available information.

Installation

You can install maxent_disaggregation via pip from PyPI:

$ pip install maxent_disaggregation

The goal of maxent_disaggregation is to provide an easy to use Python tool that helps you with uncertainty propagation when data disaggregation is involved. Data disaggregation usually involves splitting one data point $$Y_0$$ into $$K$$ disaggregate quantities $$Y_1, Y_2, ..., Y_K$$ using proxy data. It is a common problem in many different research disciplines.

flowchart-elk TD
    %% Define node classes
    classDef Aggregate fill:#eeeee4,color:black,stroke:none;
    classDef DisAgg1 fill:#abdbe3,color:black,stroke:none;
    classDef DisAgg2 fill:#e28743,color:black,stroke:none;
    classDef DisAgg3 fill:#abdbe3,color:black,stroke:none;

    agg("Y_0"):::Aggregate
    disagg1("Y_1=x_1 Y_0"):::DisAgg1
    disagg2("Y_2=x_2 Y_0"):::DisAgg1
    disagg3("Y_3=x_3 Y_0"):::DisAgg1
   

    %% Define connections
    agg  --> disagg1
    agg  --> disagg2
    agg  --> disagg3

For more detailed description of the package, theory please see the documentation page. For a quickstart see below:

Quick start

from maxent_disaggregation import maxent_disagg
import numpy as np

# best guess or mean of the total quantity Y_0 (if available)
mean_aggregate = 10
# best guess of the standard deviation of the total quantity Y_0 (if available)
sd_aggregate = 1
# min/max value of the total quantity Y_o (if applicable/available) (optional)
min_aggregate = 0
max_aggregate = np.inf
# best guess values and uncertainties from proxy data for the shares (x_i) if available (of not available put in np.nan)
shares_disaggregates = [0.4, 0.25, 0.2, 0.15]
sds_shares = [0.1, np.nan, 0.04, 0.001]

# Now draw 10000 samples
samples, _ = maxent_disagg(n=10000, 
                        mean_0=mean_aggregate,
                        sd_0=sd_aggregate,
                        min_0=min_aggregate,
                        max_0=max_aggregate, 
                        shares=shares_disaggregates, 
                        sds=sds_shares, 
                        )

# Now plot the sampled distributions
from maxent_disaggregation import plot_samples_hist
# the input values are provided for the legend
plot_samples_hist(samples, 
                  mean_0=mean_aggregate,
                  sd_0=sd_aggregate, 
                  shares=shares_disaggregates, 
                  sds=sds_shares)

Histograms of the samples for both the disaggregate and aggregate values.

We can also easily plot the covariances between the different disaggrate quantities:

# Plot the covariances between the disaggregates
from maxent_disaggregation import plot_covariances
plot_covariances(samples)

Covariances of the samples for the disaggregate quantities.

Reference

If you find this package useful please share and cite our paper.: DOI: 10.1007/s44498-026-00048-6

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, maxent_disaggregation is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Release files for maxent-disaggregation 1.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maxent-disaggregation 1.3.4
File Size Uploaded
maxent_disaggregation-1.3.4.tar.gz 23.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maxent-disaggregation 1.3.4
File Interpreter ABI Platform
maxent_disaggregation-1.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 46.0 kB

Release files / maxent_disaggregation-1.3.4.tar.gz

Download URL maxent_disaggregation-1.3.4.tar.gz
Size 23.3 kB
Tags Source
SHA-256 checksum
How to use checksums
886439452e3ce2233168b9d6746024afa4cf360d8aa98d2dd2d45e1509c137b7
BLAKE2b-256 checksum
How to use checksums
a0ff256614abf3095d7e1026fb997c06324c1b3e4d18077fac162e4e815f8135
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release files / maxent_disaggregation-1.3.4-py3-none-any.whl

Download URL maxent_disaggregation-1.3.4-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18ac18b142ed721cfa364250b661547b120ab1506409d0146a7c0ee814528226
BLAKE2b-256 checksum
How to use checksums
74183e74134115ceec302a368a64bed362bcf41a740c7f30bcc7df5ae40c0d0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.4 This release

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.10

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page