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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

definitive_screening_design-0.5.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

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

definitive_screening_design-0.5.1-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file definitive_screening_design-0.5.1.tar.gz.

File metadata

File hashes

Hashes for definitive_screening_design-0.5.1.tar.gz
Algorithm Hash digest
SHA256 b9b193b875eabc5a965097481b0cac3bfc1b0a00672d5c4b5a03c2b4c900ec07
MD5 1f0bb4136cd02b7cc19354364d10e86e
BLAKE2b-256 73587cc81c2daf4ee39799cbba56f3a7263f31554ffcad6507b0176c68040bb4

See more details on using hashes here.

File details

Details for the file definitive_screening_design-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for definitive_screening_design-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c419e342e7dc75714b6e71498c91569a3343396e14df02a4e179f45d2dfb33d8
MD5 0a823e6251eba5c738a371778d53db49
BLAKE2b-256 d9f28f2f65d34a474124b09326cb5d74cd7eee67ec82ef9ffffccdab94b69617

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 files

0.5.0

1 file

0.4.0

1 file

0.3.1

1 file

0.3.0

1 file

0.2.0

1 file

0.1.1

1 file

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