Skip to main content

Microsynthesis using quasirandom sampling and/or IPF

Project description


CRAN_Status_Badge CRAN Downloads PyPI version Travis Build Status Appveyor Build status codecov License DOI status

humanleague is a python and an R package for microsynthesising populations from marginal and (optionally) seed data. The core code is implemented in C++, and the current release is version 2.

The package contains algorithms that use a number of different microsynthesis techniques:

The latter provides a bridge between deterministic reweighting and combinatorial optimisation, offering advantages of both techniques:

  • generates high-entropy integral populations
  • can be used to generate multiple populations for sensitivity analysis
  • goes some way to address the 'empty cells' issues that can occur in straight IPF
  • relatively fast compuation time

The algorithms:

  • support arbitrary dimensionality* for both the marginals and the seed.
  • produce statistical data to ascertain the likelihood/degeneracy of the population (where appropriate).

[* excluding the legacy functions retained for backward compatibility with version 1.0.1]

The package also contains the following utility functions:

  • a Sobol sequence generator
  • functionality to convert fractional to nearest-integer marginals (in 1D). This can also be achieved in multiple dimensions by using the QISI algorithm.
  • functionality to 'flatten' a population into a table: this converts a multidimensional array containing the population count for each state into a table listing individuals and their characteristics.

Version 1.0.1 reflects the work described in the Quasirandom Integer Sampling (QIS) paper.

R installation

Official release:

> install.packages("humanleague")

For development version

> devtools::install_github("virgesmith/humanleague")

Or, for the legacy version

> devtools::install_github("virgesmith/humanleague@1.0.1")

python installation

Requires Python 3 and numpy. PyPI package:

python3 -m pip install humanleague

[Conda pacakage is being worked on]

Build and test (from local cloned repo)

$ ./ build
$ python3 tests/

Install (from local repo)

$ ./ install

The latter command may require admin rights. On linux, sudo is unnecessary if you have group (e.g. staff) write access to /usr/local/lib.


Consult the package documentation, e.g.

> library(humanleague)
> ?humanleague

in R, or for python:

>>> import humanleague as hl
>>> help(hl)

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

humanleague-2.0.3.tar.gz (66.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page