Learn R Programming

Gaussian processes for complex code evaluation: the emulator package

Overview

To cite the emulator package in publications please use Hankin 2005. The emulator package provides R-centric functionality for working with Gaussian processes. The focus is on approximate evaluation of complex computer codes. The package is part of the the BACCO suite of software.

Installation

You can install the released version of permutations from CRAN with:

# install.packages("emulator")  # uncomment this to use the package
library("emulator")
#> Loading required package: mvtnorm

The package is maintained on github.

The emulator package in use

Suppose we have a complicated computer program which takes three parameters as input, and we can run it a total of seven times at different points in parameter space:

val
#>       alpha   beta  gamma
#> [1,] 0.7857 0.9286 0.6429
#> [2,] 0.0714 0.3571 0.2143
#> [3,] 0.5000 0.2143 0.7857
#> [4,] 0.3571 0.7857 0.3571
#> [5,] 0.9286 0.5000 0.0714
#> [6,] 0.2143 0.0714 0.5000
#> [7,] 0.6429 0.6429 0.9286
d
#> [1] 3.96 1.06 2.93 2.49 2.11 1.26 4.61

Above, val shows the seven points in parameter space at which we have run the code, and d shows the output at those points. Now suppose we wish to know what the code would have produced at point $p=(0.5, 0.5, 0.5)$, at which the point has not actually been run. This is straightforward with the package:

p <- c(0.5,0.5,0.)
fish <- c(1,1,4)
A <- corr.matrix(val,scales=fish)
interpolant(p, d, val, A = A, scales=fish, give=TRUE)
#> $betahat
#>  const  alpha   beta  gamma 
#> -0.363  1.221  1.905  3.072 
#> 
#> $prior
#>      [,1]
#> [1,]  1.2
#> 
#> $beta.var
#>        const  alpha   beta  gamma
#> const  0.995 -0.510 -0.184 -0.713
#> alpha -0.510  0.950 -0.275  0.172
#> beta  -0.184 -0.275  0.914 -0.192
#> gamma -0.713  0.172 -0.192  1.524
#> 
#> $beta.marginal.sd
#> const alpha  beta gamma 
#> 0.997 0.975 0.956 1.234 
#> 
#> $sigmahat.square
#> [1] 0.64
#> 
#> $mstar.star
#>      [,1]
#> [1,] 1.42
#> 
#> $cstar
#> [1] 0.165
#> 
#> $cstar.star
#> [1] 0.2
#> 
#> $Z
#> [1] 0.358

Above, object fish is a vector of roughness length (“scales”) corresponding to the small-scale covariance properties of our function. This may be estimated from the problem or from the datapoints. Matrix A is a normalized variance-covariance matrix for the points of val.

The output gives various aspects of the Gaussian process associated with the original observations. The most interesting one is mstar.star which indicates that the best estimate for the code’s output, if it were to be run at point $p$, would be about 2.41.

References

R. K. S. Hankin 2005. “Introducing BACCO, an R bundle for Bayesian analysis of computer code output”. Journal of Statistical Software, 14(16)

Copy Link

Version

Install

install.packages('emulator')

Monthly Downloads

1,417

Version

1.2-24

License

GPL

Issues

Pull Requests

Stars

Forks

Last Published

March 22nd, 2024

Functions in emulator (1.2-24)

quad.form

Evaluate a quadratic form efficiently
sample.n.fit

Sample from a Gaussian process and fit an emulator to the points
optimal.scales

Use optimization techniques to find the optimal scales
s.chi

Variance estimator
prior.b

Prior linear fits
regressor.basis

Regressor basis function
sigmahatsquared

Estimator for sigma squared
tr

Trace of a matrix
results.table

Results from 100 Goldstein runs
pad

Simple pad function
scales.likelihood

Likelihood of roughness parameters
toy

A toy dataset
latin.hypercube

Latin hypercube design matrix
expert.estimates

Expert estimates for Goldstein input parameters
estimator

Estimates each known datapoint using the others as datapoints
OO2002

Implementation of the ideas of Oakley and O'Hagan 2002
makeinputfiles

Makes input files for condor runs of goldstein
betahat.fun

Calculates MLE coefficients of linear fit
interpolant

Interpolates between known points using Bayesian estimation
corr

correlation function for calculating A
emulator-package

tools:::Rd_package_title("emulator")
model

Simple model for concept checking