discopt-doe#
discopt-doe is the design-of-experiments plugin for the
discopt modeling language. It installs
as the discopt.doe namespace package, so from discopt.doe import ... works
exactly as it did when the module lived in the base package.
The package has three complementary entry points, each tailored to a different question:
“What is the best operating condition?” —
optimize_roundruns one active-learning round: fit a surrogate to the experiments completed so far, recommend the next batch via an acquisition function (expected improvement, UCB, steepest ascent) [Jones et al., 1998, Snoek et al., 2012], and append the batch to an Excel workbook for execution.“Does this factor matter?” — 2-level full and fractional factorial screening designs [Box et al., 2005, Montgomery, 2017], signed main-effect estimates, and ANOVA F-tables [Fisher, 1935]. Mixture designs [Cornell, 2002, Scheffé, 1958] and Latin / Graeco-Latin squares [Cochran and Cox, 1957] round out the classical toolbox.
“How precisely can I estimate the model parameters?” — exact D/A/E-optimal design [Atkinson et al., 2007, Franceschini and Macchietto, 2008] using the Fisher Information Matrix computed with JAX autodiff, plus identifiability [Miao et al., 2011, Raue et al., 2009] and estimability [Brun et al., 2001, Yao et al., 2003] diagnostics, model discrimination [Buzzi-Ferraris et al., 1984, Hunter and Reiner, 1965], and sequential model-based DoE [Franceschini and Macchietto, 2008, Galvanin et al., 2009].
Parameter estimation itself (discopt.estimate) lives in the base discopt
package; both share the same Experiment interface.
Install#
Both discopt-doe and its discopt>=0.9 dependency are published on
PyPI, so pip resolves everything:
pip install discopt-doe # core: FIM design, screening, workbooks
pip install "discopt-doe[gui]" # + Streamlit workbook GUI
pip install "discopt-doe[ml]" # + scikit-learn surrogates for active learning
Or with uv:
uv pip install "discopt-doe[gui]"
To work on the package itself, install from source:
git clone https://github.com/jkitchin/discopt-doe
cd discopt-doe
uv sync --all-extras # core + gui + ml + dev
The discopt doe ... command-line workflow (workbook campaigns:
templates, new, status, fit, extend, optimize, anova, gui)
registers itself with the base discopt CLI automatically when this package
is installed.
Where to start#
New to DoE with discopt? Start with the tutorial.
Running lab campaigns from a spreadsheet? See the CLI workflow.
Optimizing a process with unknown model structure? See active learning.
Estimating parameters precisely? See model-based DoE.