Skip to main content

Definitive Screening Design (DSD)

This repository provides a lightweight Python implementation for constructing definitive screening designs with numerical factors and optional two-level categorical factors. A DSD is an economical experimental plan for identifying the few important effects among many candidate factors while retaining information about curvature and selected second-order effects. The package generates the coded run matrix; the accompanying notebooks show how to turn that matrix into a randomized experimental run sheet, assess what a proposed model can estimate before collecting responses, and analyze the responses afterward. DSDs are screening tools rather than automatic model-selection procedures, so conclusions should be checked against subject-matter knowledge and, when necessary, confirmed or refined with augmented experiments.

Why the Definitive Screening Design?

ELI5

Imagine having many knobs and not knowing which ones matter. A DSD tests carefully chosen combinations of low, middle, and high settings so you can find the important knobs - and notice when "more" is not simply better - with relatively few experiments. It is a first-pass map, not a universal recipe: it works best when most knobs are numeric, can be adjusted independently, and only a few effects are important.

ELI Scientist/Engineer

A DSD is an economical early-stage experiment for screening several factors, especially continuous ones. The three levels expose curvature while the design keeps estimates of main effects clear of bias from two-factor interactions and quadratic effects; a classical DSD for m continuous factors needs only 2m + 1 runs. It can also accommodate a few two-level categorical factors. Use another design when the region is constrained, factors form a mixture, many factors are categorical, a split-plot structure is required, or higher-order effects are expected.

ELI Statistician

DSDs combine foldover pairs with a center run to produce a second-order-friendly screening design. Linear main effects are mutually orthogonal and orthogonal to quadratic effects and two-factor interactions; all pure quadratics are estimable, and no two-factor interaction is completely confounded with another interaction or a quadratic, although such terms may be correlated. This alias structure supports joint screening for active first- and second-order terms under effect sparsity, but model selection degrades as the number of active terms approaches the run count; augmentation is advisable when many terms may be active or reliable second-order identification is the goal.

Main References

  • Bradley Jones and Christopher J. Nachtsheim. "A Class of Three-Level Designs for Definitive Screening in the Presence of Second-Order Effects" Journal of Quality Technology (2011) 43, 1–15. 10.1080/00224065.2011.11917841
  • Lili Xiao, Dennis K. J. Lin, Fenghan Bai, "Constructing Definitive Screening Designs Using Conference Matrices" Journal of Quality Technology (2012) 44, 2-8. 10.1080/00224065.2012.11917877
  • Bradley Jones and Christopher J. Nachtsheim. "Definitive screening designs with added two-level categorical factors" Journal of Quality Technology (2013) 45, 121-129. 10.1080/00224065.2013.11917921

Further References about the practical use of this design

Installation

pip install definitive_screening_design

Example

Generate a Definitive Design screening with three numerical and two 2-levels categoricals factors, using the protocol presented in the 2013 paper. The result is a Pandas DataFrame.

import definitive_screening_design as dsd
dsd.generate(n_num=3, n_cat=2)
X01 X02 X03 C01 C02
1 0 1 1 2 2
2 -0 -1 -1 1 1
3 1 0 -1 2 2
4 -1 -0 1 1 1
5 1 -1 0 1 2
6 -1 1 -0 2 1
7 1 1 -1 2 1
8 -1 -1 1 1 2
9 1 1 1 1 2
10 -1 -1 -1 2 1
11 1 -1 1 2 1
12 -1 1 -1 1 2
13 0 0 0 1 1
14 0 0 0 2 2

See notebooks/ for examples using this package and notebooks_pydoe/ for paired examples using pydoe's DSD implementation. Both sets explain how design rows translate into experimental run sheets and distinguish design analysis from response-model selection.

Metadata

Release files for definitive-screening-design 0.5.1

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

Source distribution (sdist)

Source distribution for definitive-screening-design 0.5.1
File Size Uploaded Provenance
definitive_screening_design-0.5.1.tar.gz 15.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for definitive-screening-design 0.5.1
File Interpreter ABI Platform
definitive_screening_design-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 kB

Release files / definitive_screening_design-0.5.1.tar.gz

Download URL definitive_screening_design-0.5.1.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b9b193b875eabc5a965097481b0cac3bfc1b0a00672d5c4b5a03c2b4c900ec07
BLAKE2b-256 checksum
How to use checksums
73587cc81c2daf4ee39799cbba56f3a7263f31554ffcad6507b0176c68040bb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / definitive_screening_design-0.5.1-py3-none-any.whl

Download URL definitive_screening_design-0.5.1-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c419e342e7dc75714b6e71498c91569a3343396e14df02a4e179f45d2dfb33d8
BLAKE2b-256 checksum
How to use checksums
d9f28f2f65d34a474124b09326cb5d74cd7eee67ec82ef9ffffccdab94b69617
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for definitive-screening-design 0.5.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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