Kirstine.jl
Bayesian Optimal Design for Nonlinear Regression.
Version 0.7.1
Project Status
Beta. Mostly stable, breaking changes will be mostly cosmetic.
Features
- arbitrary nonlinear regression models
- scalar or vector-valued response variable
- variance-covariance matrix may depend on covariate
- Bayesian and locally optimal design
- design criteria: D, A
- composite design problems
- separation of design variables and model covariates
- particle swarm optimization
- direct maximization and exchange algorithm
- modular and extendable
- minimal dependencies
Installation
Kirstine.jl is in the General Julia package registry. You can install it with
Pkg.add("Kirstine")
Alternatively, you can get it directly from sourcehut:
Pkg.add(url = "https://git.sr.ht/~lsandig/Kirstine.jl")
To install the development branch:
Pkg.add(url = "https://git.sr.ht/~lsandig/Kirstine.jl", rev = "develop")
Documentation
To get started, read the tutorial.
Familiarity with the following topics is required:
Nonlinear design theory, e.g.
- Chapter 2 from Fedorov/Leonov's book[FL13] for the general theory
- Chaloner/Verdinelli's review article[CV95] for the Bayesian approach
(There is also an overview of the notation used in this package.)
Julia's type system and adding methods for user-defined types.
For a change log, see the list of annotated tags.
There is also a separate repository with additional examples.
License
Kirstine.jl is free and open source software. The code is licensed under GPL-3.0 or later, and the documentation under GFDL-1.3 or later.
Citing
Kirstine.jl is published in the Journal of Open Source Software. You can cite the package like this:
@article{,
author = {Ludger Sandig},
title = {Kirstine.jl: A Julia Package for Bayesian Optimal Design of Experiments},
journal = {Journal of Open Source Software},
volume = 9,
number = 97,
pages = 6424,
year = 2024,
doi = {10.21105/joss.06424},
}
Rationale
Why yet another package for optimal design?
In R
, there is already the ICAOD package for finding optimal designs in any model of which you can implement the Fisher information matrix. However, it is not as efficient as it could be and the code base is hard to extend for more complicated design problems. There are also various other packages (e.g., DoseFinding or PopED) for optimal design with special criteria or special kinds of nonlinear regression models. In Julia
, there is already ExperimentalDesign.jl for block, factorial and response-surface designs in linear regression/ANOVA and polynomial regression models.
Kirstine.jl is an attempt to provide applied statisticians with a Julia
package for optimal design in arbitrary nonlinear regression models. Its development goals are speed and modularity, as well as a small, stable and well-documented code base.
Contributing
The source code of Kirstine.jl is managed on sourcehut.
Please post usage questions and general discussion on the kirstine-users mailing list.
Only bug reports should be filed on the issue tracker.
Patches are welcome and should be submitted via git send-email
to the kirstine-devel mailing list. Please make sure that your patch does not break any existing tests and includes new tests for any functionality it adds.
- FL13Valerii V. Fedorov and Sergei L. Leonov (2013). Optimal design for nonlinear response models. CRC Press. doi:10.1201/b15054
- CV95Kathryn Chaloner and Isabella Verdinelli (1995). Bayesian experimental design: a review. Statistical Science, 10(3), 273–304. doi:10.1214/ss/1177009939