NoiseKriging: Create a 'NoiseKriging' Object using 'libKriging'

View source: R/NoiseKrigingClass.R

NoiseKrigingR Documentation

Create a NoiseKriging Object using libKriging

Description

Create an object with S3 class "NoiseKriging" using the libKriging library.

Usage

NoiseKriging(
  y,
  noise,
  X,
  kernel,
  regmodel = c("constant", "linear", "interactive"),
  normalize = FALSE,
  optim = c("BFGS", "none"),
  objective = c("LL", "LMP"),
  parameters = NULL
)

Arguments

y

Numeric vector of response values.

noise

Numeric vector of response variances.

X

Numeric matrix of input design.

kernel

Character defining the covariance model: "exp", "gauss", "matern3_2", "matern5_2".

regmodel

Universal NoiseKriging linear trend.

normalize

Logical. If TRUE both the input matrix X and the response y in normalized to take values in the interval [0, 1].

optim

Character giving the Optimization method used to fit hyper-parameters. Possible values are: "BFGS" and "none", the later simply keeping the values given in parameters. The method "BFGS" uses the gradient of the objective.

objective

Character giving the objective function to optimize. Possible values are: "LL" for the Log-Likelihood.

parameters

Initial values for the hyper-parameters. When provided this must be named list with elements "sigma2" and "theta" containing the initial value(s) for the variance and for the range parameters. If theta is a matrix with more than one row, each row is used as a starting point for optimization.

Details

The hyper-parameters (variance and vector of correlation ranges) are estimated thanks to the optimization of a criterion given by objective, using the method given in optim.

Value

An object with S3 class "NoiseKriging". Should be used with its predict, simulate, update methods.

Author(s)

Yann Richet yann.richet@irsn.fr

Examples

f <- function(x) 1 - 1 / 2 * (sin(12 * x) / (1 + x) + 2 * cos(7 * x) * x^5 + 0.7)
set.seed(123)
X <- as.matrix(runif(10))
y <- f(X) + X/10 * rnorm(nrow(X)) # add noise dep. on X
## fit and print
k <- NoiseKriging(y, noise=(X/10)^2, X, kernel = "matern3_2")
print(k)

x <- as.matrix(seq(from = 0, to = 1, length.out = 101))
p <- predict(k,x = x, stdev = TRUE, cov = FALSE)

plot(f)
points(X, y)
lines(x, p$mean, col = "blue")
polygon(c(x, rev(x)), c(p$mean - 2 * p$stdev, rev(p$mean + 2 * p$stdev)),
border = NA, col = rgb(0, 0, 1, 0.2))

s <- simulate(k, nsim = 10, seed = 123, x = x)

matlines(x, s, col = rgb(0, 0, 1, 0.2), type = "l", lty = 1)

rlibkriging documentation built on Sept. 22, 2022, 5:07 p.m.