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
- Bradley Jones - "Simulating Responses and Fitting Definitive Screening Designs"
- Bradley Jones - "Proper and Improper use of Definitive Screening Designs"
- Douglas Montgomery - Coursera lesson on "General Structure of a DSD with m Factors"
- Paul Nelson - "The Evolution of Definitive Screening Designs from Optimal (Custom) DoE"
- Errore, Jones, Nachtsheim (2016) - "Using Definitive Screening Designs to Identify Active First- and Second-Order Factor Effects"
- Jones, Nachtesheim (2017) "Effective Design-Based Model Selection for Definitive Screening Designs"
- Weese, Ramsey, Montgomery (2018) - "Analysis of definitive screening designs: Screening vs prediction"
- Other applications of the DSD from Google Scholar, Semantic Scholar, Web Of Science
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file definitive_screening_design-0.5.1.tar.gz.
File metadata
- Download URL: definitive_screening_design-0.5.1.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9b193b875eabc5a965097481b0cac3bfc1b0a00672d5c4b5a03c2b4c900ec07
|
|
| MD5 |
1f0bb4136cd02b7cc19354364d10e86e
|
|
| BLAKE2b-256 |
73587cc81c2daf4ee39799cbba56f3a7263f31554ffcad6507b0176c68040bb4
|
File details
Details for the file definitive_screening_design-0.5.1-py3-none-any.whl.
File metadata
- Download URL: definitive_screening_design-0.5.1-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c419e342e7dc75714b6e71498c91569a3343396e14df02a4e179f45d2dfb33d8
|
|
| MD5 |
0a823e6251eba5c738a371778d53db49
|
|
| BLAKE2b-256 |
d9f28f2f65d34a474124b09326cb5d74cd7eee67ec82ef9ffffccdab94b69617
|