Description Usage Arguments Value References Examples
View source: R/gp_diagnostics.R
Automatically validates a Gaussian process (GP) using a separate validation dataset not used in the fitting of the GP. The Bastos and O'Hagan (2009) empirical fit statistics are used to determine if the GP accurately predicts the validation data. It then determines roughly whether the model fits well enough. Currently, it uses the Mahalanobis distance (MD) p-value to determine the GP fit.
1 | gp_validate(design, response, model, type = "SK", verbose = FALSE)
|
design |
A matrix of |
response |
A column vector of length |
model |
A GP model of class |
type |
Kriging type: Simple Kriging "SK" or Universal Kriging "UK". |
verbose |
Print the conclusion of the validation? |
A logical. If TRUE
the GP is considered a valid emulator, otherwise further training data will need to be collected to improve the emulator fit.
Bastos, L. S., & O'Hagan, A. (2009). Diagnostics for gaussian process emulators. Technometrics, 51(4), 425–438, <doi:10.1198/TECH.2009.08019>.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #--- Simple iid Normal Example ---#
# model assumputions hold
set.seed(123)
# training data
x <- matrix(runif(20,0,1),ncol=1)
y <- matrix(rnorm(20),ncol = 1)
# validation data
v_x <- matrix(runif(20,-1,1),ncol=1)
v_y <- matrix(rnorm(20),ncol = 1)
my_model <- DiceKriging::km(formula=~1,
design=x,
response=y,
covtype='matern5_2',
optim.method='BFGS',
nugget.estim=TRUE)
gp_validate(v_x,v_y,my_model,verbose = TRUE)
#--- Bastos and O'Hagan (2009) Two-input Toy Model ---#
# needs more than 20 training points
set.seed(123)
# training data
x <- lhs::randomLHS(20,2)
y <- space_eval(x,bo09_toy)
# validation data
v_x <- lhs::randomLHS(25,2)
v_y <- space_eval(v_x,bo09_toy)
my_model <- DiceKriging::km(formula=~1,
design=x,
response=y,
covtype='matern5_2',
optim.method='BFGS',
nugget.estim=TRUE)
gp_validate(v_x,v_y,my_model,verbose = TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.