This is a comparison of statistical analysis software that allows doing inference with Gaussian processes often using approximations.
This article is written from the point of view of Bayesian statistics, which may use a terminology different from the one commonly used in kriging. The next section should clarify the mathematical/computational meaning of the information provided in the table independently of contextual terminology.
This section details the meaning of the columns in the table below.
These columns are about the algorithms used to solve the linear system defined by the prior covariance matrix, i.e., the matrix built by evaluating the kernel.
These columns are about the points on which the Gaussian process is evaluated, i.e.
x
f(x)
These columns are about the values yielded by the process, and how they are connected to the data used in the fit.
These columns are about finding values of variables which enter somehow in the definition of the specific problem but that can not be inferred by the Gaussian process fit, for example parameters in the formula of the kernel.
If both the "Prior" and "Posterior" cells contain "Manually", the software provides an interface for computing the marginal likelihood and its gradient w.r.t. hyperparameters, which can be feed into an optimization/sampling algorithm, e.g., gradient descent or Markov chain Monte Carlo.
These columns are about the possibility of fitting datapoints simultaneously to a process and to linear transformations of it.
Rn\toRm
Name | License | Language | Solvers | Input | Output | Hyperparameters | Linear transformations | Name | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Exact | Specialized | Approximate | ND | Non-real | Likelihood | Errors | Prior | Posterior | Deriv. | Finite | Sum | |||||
PyMC | Python | PyMC | ||||||||||||||
Stan | custom | Stan | ||||||||||||||
scikit-learn | Python | scikit-learn | ||||||||||||||
fbm | C | fbm | ||||||||||||||
GPML | MATLAB | GPML | ||||||||||||||
GPstuff | MATLAB, R | GPstuff | ||||||||||||||
GPy | Python | GPy | ||||||||||||||
GPflow | Python | GPflow | ||||||||||||||
GPyTorch | Python | GPyTorch | ||||||||||||||
GPvecchia | R | GPvecchia | ||||||||||||||
pyGPs | Python | pyGPs | ||||||||||||||
gptk | R | gptk | ||||||||||||||
celerite | Python, Julia, C++ | celerite | ||||||||||||||
george | Python, C++ | george | ||||||||||||||
neural-tangents | Python | neural-tangents | ||||||||||||||
DiceKriging | R | DiceKriging | ||||||||||||||
OpenTURNS | Python, C++ | OpenTURNS | ||||||||||||||
UQLab | MATLAB | UQLab | ||||||||||||||
ooDACE | MATLAB | ooDACE | ||||||||||||||
DACE | MATLAB | DACE | ||||||||||||||
GpGp | R | GpGp | ||||||||||||||
SuperGauss | R, C++ | SuperGauss | ||||||||||||||
STK | MATLAB | STK | ||||||||||||||
GSTools | Python | GSTools | ||||||||||||||
PyKrige | Python | PyKrige | ||||||||||||||
GPR | C++ | GPR | ||||||||||||||
celerite2 | Python | celerite2 | ||||||||||||||
SMT | Python | SMT | ||||||||||||||
GPJax | Python | GPJax | ||||||||||||||
Stheno | Python | Stheno | ||||||||||||||
CODES | MATLAB | CODES | ||||||||||||||
Egobox-gp | Rust | Egobox-gp | ||||||||||||||
Name | License | Language | Exact | Specialized | Approximate | ND | Non-real | Likelihood | Errors | Prior | Posterior | Deriv. | Finite | Sum | Name | |
Solvers | Input | Output | Hyperparameters | Linear transformations |