discopt.doe#
discopt.doe – Design of Experiments.
This package has three complementary entry points, each tailored to a different question:
“What is the best operating condition?”
optimize_round()runs 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), append the batch to a workbook for execution. See theactive-learningtutorial notebook.“Does this factor matter?”
factorial_2level_design()builds 2-level full factorial screening designs;effects_estimates()gives signed main-effect estimates;anova_report()produces the F-table.“How precisely can I estimate the model parameters?”
optimal_experiment()andbatch_optimal_experiment()solve for an exact D/A/E-optimal design using the Fisher Information Matrix computed with JAX autodiff;diagnose_identifiability()andestimability_rank()warn when the chosen experiments cannot identify the parameters.
Quick start (FIM-based parameter-estimation design)#
>>> from discopt.doe import compute_fim, optimal_experiment, DesignCriterion
>>> fim_result = compute_fim(experiment, param_values, design_values)
>>> design = optimal_experiment(experiment, param_values, design_bounds)
>>> print(design.summary())
Quick start (active-learning optimization)#
>>> from discopt.doe import optimize_round, OptimizationCriterion
>>> result = optimize_round(
... workbook="opt.xlsx",
... criterion=OptimizationCriterion.MAXIMIZE,
... surrogate="gp", # or sklearn estimator, or Surrogate
... acquisition="expected_improvement",
... batch_size=4,
... )
>>> print(result.next_designs)
Identifiability and estimability diagnostics#
>>> from discopt.doe import diagnose_identifiability, estimability_rank, profile_likelihood
>>> diag = diagnose_identifiability(experiment, param_values)
>>> est = estimability_rank(experiment, param_values)
>>> profile = profile_likelihood(experiment, data, "k")
See Also#
discopt.estimate : Parameter estimation using the same Experiment interface. discopt.doe.surrogate : Surrogate model protocol + sklearn adapter. discopt.doe.acquisition : Acquisition functions (EI, UCB, steepest ascent).
Submodules#
- discopt.doe.acquisition
- discopt.doe.anova
- discopt.doe.cli
- discopt.doe.design
- discopt.doe.discrimination
- discopt.doe.discrimination_sequential
- discopt.doe.estimability
- discopt.doe.exploration
- discopt.doe.fim
- discopt.doe.fractional
- discopt.doe.gui
- discopt.doe.latin
- discopt.doe.model_based
- discopt.doe.optimize
- discopt.doe.profile
- discopt.doe.screening
- discopt.doe.selection
- discopt.doe.sequential
- discopt.doe.surrogate
- discopt.doe.templates
- discopt.doe.workbook