gp | R Documentation |
This function builds and trains a GP emulator.
gp(
X,
Y,
name = "sexp",
lengthscale = rep(0.1, ncol(X)),
bounds = NULL,
prior = "ref",
nugget_est = FALSE,
nugget = ifelse(nugget_est, 0.01, 1e-08),
scale_est = TRUE,
scale = 1,
training = TRUE,
verb = TRUE,
vecchia = FALSE,
M = 25,
ord = NULL,
internal_input_idx = NULL,
linked_idx = NULL,
id = NULL
)
See further examples and tutorials at https://mingdeyu.github.io/dgpsi-R/.
An S3 class named gp
that contains five slots:
id
: A number or character string assigned through the id
argument.
data
: a list that contains two elements: X
and Y
which are the training input and output data respectively.
specs
: a list that contains seven elements:
kernel
: the type of the kernel function used. Either "sexp"
for squared exponential kernel or "matern2.5"
for Matérn-2.5 kernel.
lengthscales
: a vector of lengthscales in the kernel function.
scale
: the variance value in the kernel function.
nugget
: the nugget value in the kernel function.
internal_dims
: the column indices of X
that correspond to the linked emulators in the preceding layers of a linked system.
The slot will be removed in the next release.
external_dims
: the column indices of X
that correspond to global inputs to the linked system of emulators.
It is shown as FALSE
if internal_input_idx = NULL
. The slot will be removed in the next release.
linked_idx
: the value passed to argument linked_idx
. It is shown as FALSE
if the argument linked_idx
is NULL
.
The slot will be removed in the next release.
vecchia
: whether the Vecchia approximation is used for the GP emulator training.
M
: the size of the conditioning set for the Vecchia approximation in the GP emulator training.
constructor_obj
: a 'python' object that stores the information of the constructed GP emulator.
container_obj
: a 'python' object that stores the information for the linked emulation.
emulator_obj
: a 'python' object that stores the information for the predictions from the GP emulator.
The returned gp
object can be used by
predict()
for GP predictions.
validate()
for LOO and OOS validations.
plot()
for validation plots.
lgp()
for linked (D)GP emulator constructions.
summary()
to summarize the trained GP emulator.
write()
to save the GP emulator to a .pkl
file.
design()
for sequential designs.
update()
to update the GP emulator with new inputs and outputs.
alm()
, mice()
, and vigf()
to locate next design points.
Any R vector detected in X
and Y
will be treated as a column vector and automatically converted into a single-column
R matrix. Thus, if X
is a single data point with multiple dimensions, it must be given as a matrix.
Gu, M. (2019). Jointly robust prior for Gaussian stochastic process in emulation, calibration and variable selection. Bayesian Analysis, 14(3), 857-885.
Katzfuss, M., Guinness, J., & Lawrence, E. (2022). Scaled Vecchia approximation for fast computer-model emulation. SIAM/ASA Journal on Uncertainty Quantification, 10(2), 537-554.
## Not run:
# load the package and the Python env
library(dgpsi)
# construct a step function
f <- function(x) {
if (x < 0.5) return(-1)
if (x >= 0.5) return(1)
}
# generate training data
X <- seq(0, 1, length = 10)
Y <- sapply(X, f)
# training
m <- gp(X, Y)
# summarizing
summary(m)
# LOO cross validation
m <- validate(m)
plot(m)
# prediction
test_x <- seq(0, 1, length = 200)
m <- predict(m, x = test_x)
# OOS validation
validate_x <- sample(test_x, 10)
validate_y <- sapply(validate_x, f)
plot(m, validate_x, validate_y)
# write and read the constructed emulator
write(m, 'step_gp')
m <- read('step_gp')
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.