Calculate Hessian for a GP with Gaussian correlation
Source:R/Gaussian_hessian.R
Gaussian_hessianR.RdCalculate Hessian for a GP with Gaussian correlation
Examples
set.seed(0)
n <- 40
x <- matrix(runif(n*2), ncol=2)
f1 <- function(a) {sin(2*pi*a[1]) + sin(6*pi*a[2])}
y <- apply(x,1,f1) + rnorm(n,0,.01)
gp <- GauPro(x,y, verbose=2, parallel=FALSE);gp$theta
#> Optimizing
#> Initial values:
#> $par
#> [1] 0 0 -6
#>
#> $value
#> [1] 230.1134
#>
#> Restart (parallel): starts pars = 0 0 -6
#> Restart (parallel): starts pars = 2.508166 1.544284 -4.654356
#> Restart (parallel): starts pars = -0.8496206 -0.8379602 -5.318771
#> Restart (parallel): starts pars = -0.5515561 2.512038 -5.517843
#> Restart (parallel): starts pars = 2.598625 -1.746524 -5.993321
#> Restart (parallel): starts pars = -1.761743 1.192518 -5.904707
#> start end value func_evals grad_evals
#> 1 0,0,-6 NA 230.1134 1 NA
#> 2 0,0,-6 0.662,-0.0899,0.0118 114.978 NA NA
#> 3 2.51,1.54,-4.65 0.527,1.45,-5.64 41.38313 NA NA
#> 4 -0.85,-0.838,-5.32 0.662,-0.0899,0.0118 114.978 NA NA
#> 5 -0.552,2.51,-5.52 0.528,1.45,-5.64 41.38313 NA NA
#> 6 2.6,-1.75,-5.99 0.527,1.45,-5.64 41.38313 NA NA
#> 7 -1.76,1.19,-5.9 0.654,-4.65,0.148 116.6973 NA NA
#> convergence message
#> 1 NA NA
#> 2 0 NA
#> 3 0 NA
#> 4 0 NA
#> 5 0 NA
#> 6 0 NA
#> 7 -1001 NA
#> [1] 3.368992 28.355167
gp$hessian(c(.2,.75), useC=FALSE) # Should be -38.3, -5.96, -5.96, -389.4 as 2x2 matrix
#> [,1] [,2]
#> [1,] -38.669255 8.040595
#> [2,] 8.040595 -319.909255