Skip to contents

Modelling the spectral density as a mixture of Gaussians and inverting Bochner's theorem gives the kernel below, with the factor 2 pi^2 in the exponent (checked against the arXiv PDF; a version printed as exp(-tau^2 v) circulates without it). It matters: without it the mu = 0 case is not a squared exponential with lengthscale 1/(2 pi sqrt(v)), and that mapping is the anchor the tests use.

Usage

Gpsps(
  X,
  y,
  X_test = NULL,
  Q = 1,
  weights = NULL,
  variances = NULL,
  means = NULL,
  noise = 0.01
)

Arguments

X

One-dimensional training inputs.

y

Training responses.

X_test

Test inputs; the training inputs by default.

Q

Number of mixture components.

weights, variances, means

Length-Q mixture parameters.

noise

Observation noise variance.

Value

List with estimate, mean, variance, k_zero, loglik, n, method.

Details

Formula: k(tau) = sum_q w_q exp(-2 pi^2 tau^2 v_q) cos(2 pi tau mu_q).

References

Wilson and Adams (2013), Gaussian process kernels for pattern discovery and extrapolation, ICML 2013, PMLR 28(3):1067-1075. arXiv:1302.4245

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
Gpsps(V, V)
#> $estimate
#> [1] 0.9956724
#> 
#> $mean
#> [1] 0.9956724 1.9894746 2.9869585 3.9779442 4.9809397 5.9612809 6.9842301
#> [8] 7.9299861
#> 
#> $variance
#> [1] 0.009857961 0.009796809 0.009777658 0.009772611 0.009772611 0.009777658
#> [7] 0.009796809 0.009857961
#> 
#> $k_zero
#> [1] 1
#> 
#> $loglik
#> [1] -63.73294
#> 
#> $n
#> [1] 8
#> 
#> $method
#> [1] "k(tau) = sum_q w_q exp(-2 pi^2 tau^2 v_q) cos(2 pi tau mu_q), Wilson & Adams (2013)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"