Kriging::leaveOneOutFun
Description
Compute the Leave-One-Out (LOO) Sum of Squares of Errors
for a Kriging
Object and a Vector \(\boldsymbol{\theta}\)
of Correlation Ranges
Usage
Python
# k = Kriging(...) k.leaveOneOutFun(theta, return_grad = False)
R
# k = Kriging(...) k$leaveOneOutFun(theta, return_grad = FALSE)
Matlab/Octave
% k = Kriging(...) k.leaveOneOutFun(theta, return_grad = false)
Arguments
Argument |
Description |
---|---|
|
A numeric vector of range parameters at which the LOO sum of squares will be evaluated. |
|
Logical. Should the gradient (w.r.t. |
Details
The Leave-One-Out (LOO) sum of squares is defined by \(\texttt{SS}_{\texttt{LOO}}(\boldsymbol{\theta}) := \sum_{i=1}^n \{y_i - \widehat{y}_{i\vert -i}\}^2\) where \(\widehat{y}_{i\vert -i}\) denotes the prediction of \(y_i\) based on the observations \(y_j\) with \(j \neq i\). The vector \(\widehat{\mathbf{y}}_{\texttt{LOO}}\) of LOO predictions is computed efficiently, see here for details.
Value
The value \(\texttt{SSE}_{\texttt{LOO}}(\boldsymbol{\theta})\) of the Leave-One-Out Sum of Squares for the given vector \(\boldsymbol{\theta}\) of correlation ranges.
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)
k <- Kriging(y, X, kernel = "matern3_2", objective = "LOO", optim="BFGS")
print(k)
loo <- function(theta) k$leaveOneOutFun(theta)$leaveOneOut
t <- seq(from = 0.001, to = 2, length.out = 101)
plot(t, loo(t), type = "l")
abline(v = k$theta(), col = "blue")
Results
* data: 10x[0.0455565,0.940467] -> 10x[0.194057,1.00912]
* trend constant (est.): 0.406331
* variance (est.): 0.118139
* covariance:
* kernel: matern3_2
* range (est.): 0.284722
* fit:
* objective: LOO
* optim: BFGS