Skip to main content

Experimental designs for discrete choice models.

Project description

ChoiceDesign

Tests Documentation

ChoiceDesign is a Python package tool to construct efficient designs for Discrete Choice Experiments. ChoiceDesign combines enough flexibility to construct from simple 2-alternative designs with few attributes, to more complex settings that may involve conditions between attributes. ChoiceDesign is a revamped version of EDT, a project I created some years ago for the same purpose. ChoiceDesign includes improvements over EDT such as class-based syntax, coding improvements, better documentation and making this package available to install via pip.

Installation

ChoiceDesign is available to install via the regular syntax of pip:

  • python3 -m pip install choicedesign

Features

The main features of ChoiceDesign are:

  • D-efficient, A-efficient, and C-efficient designs — minimise D-error (determinant), A-error (average variance), or C-error (WTP variance sum)
  • Db-efficient (Bayesian) designs via Parameter(prior_std=...) and bayes_draws argument
  • Three optimisation algorithms — random swapping, RSC (Relabelling, Swapping, Cycling), and Modified Federov
  • Customisable utility functions (no external dependencies — expressions rewritten from scratch)
  • Designs with conditions over different attribute levels
  • Designs with blocks
  • Full-factorial designs
  • Multiple stopping criteria (fixed number of iterations, iterations without improvement, or fixed time)

Documentation

Full documentation, including a getting started guide, concepts, and example notebooks, is available at choicedesign.readthedocs.io.

Examples

Jupyter notebooks illustrating different design scenarios are available in the examples/ folder of this repo and rendered in the documentation.

How to contribute?

Any contributions to ChoiceDesign are welcome via this Git, or to my email joseignaciohernandezh at gmail dot com.

Acknowledgements

Parts of this project were developed with the assistance of Claude by Anthropic.

Disclaimer

This software is provided for free and as it is, say with no warranty, and neither me nor my current institution is liable of any consequence of the use of it. In any case, integrity checks have been performed by comparing results with alternative software.

References

  • Bierlaire, M. (2003). BIOGEME: A free package for the estimation of discrete choice models. In Swiss transport research conference.
  • Kuhfeld, W. F. (2005). Experimental design, efficiency, coding, and choice designs. Marketing research methods in SAS: Experimental design, choice, conjoint, and graphical techniques, 47-97.
  • Quan, W., Rose, J. M., Collins, A. T., & Bliemer, M. C. (2011). A comparison of algorithms for generating efficient choice experiments.

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

choicedesign-1.1.0.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

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

choicedesign-1.1.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file choicedesign-1.1.0.tar.gz.

File metadata

  • Download URL: choicedesign-1.1.0.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.13.1 Darwin/25.4.0

File hashes

Hashes for choicedesign-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9083788d6a93b3371651a49b0fcb9ac0a5bfca6e46277e8f9e829b82ecf1f315
MD5 44847bee6f937bcc474ec757fd33bf27
BLAKE2b-256 1816edbbf35e45b6de1413ad9dbbdb4bfd5adbc76e68f4fecaf556ee988e5e9d

See more details on using hashes here.

File details

Details for the file choicedesign-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: choicedesign-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.13.1 Darwin/25.4.0

File hashes

Hashes for choicedesign-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d33e759c8b86f8a230e9d5e958c5142e10742ea46a08e9dcea3cd7ccfe5077a
MD5 2461bfb6b4795e9838b1d4e645f71c74
BLAKE2b-256 dec0edf245540944fe9b469db556269d33bfb5c12f70484697893137102b6f86

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