6.13 Gaussian Process Covariance Functions

The Gaussian process covariance functions compute the covariance between observations in an input data set or the cross-covariance between two input data sets.

For one dimensional GPs, the input data sets are arrays of scalars. The covariance matrix is given by \(K_{ij} = k(x_i, x_j)\) (where \(x_i\) is the \(i^{th}\) element of the array \(x\)) and the cross-covariance is given by \(K_{ij} = k(x_i, y_j)\).

For multi-dimensional GPs, the input data sets are arrays of vectors. The covariance matrix is given by \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\) (where \(\mathbf{x}_i\) is the \(i^{th}\) vector in the array \(x\)) and the cross-covariance is given by \(K_{ij} = k(\mathbf{x}_i, \mathbf{y}_j)\).

6.13.1 Exponentiated quadratic kernel

With magnitude \(\sigma\) and length scale \(l\), the exponentiated quadratic kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma^2 \exp \left( -\frac{|\mathbf{x}_i - \mathbf{x}_j|^2}{2l^2} \right) \]

matrix gp_exp_quad_cov(array[] real x, real sigma, real length_scale)

Gaussian process covariance with exponentiated quadratic kernel in one dimension.
Available since 2.20

matrix gp_exp_quad_cov(array[] real x1, array[] real x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponentiated quadratic kernel in one dimension.
Available since 2.20

matrix gp_exp_quad_cov(vectors x, real sigma, real length_scale)

Gaussian process covariance with exponentiated quadratic kernel in multiple dimensions.
Available since 2.20

matrix gp_exp_quad_cov(vectors x, real sigma, array[] real length_scale)

Gaussian process covariance with exponentiated quadratic kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

matrix gp_exp_quad_cov(vectors x1, vectors x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponentiated quadratic kernel in multiple dimensions.
Available since 2.20

matrix gp_exp_quad_cov(vectors x1, vectors x2, real sigma, array[] real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponentiated quadratic kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

6.13.2 Dot product kernel

With bias \(\sigma_0\) the dot product kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma_0^2 + \mathbf{x}_i^T \mathbf{x}_j \]

matrix gp_dot_prod_cov(array[] real x, real sigma)

Gaussian process covariance with dot product kernel in one dimension.
Available since 2.20

matrix gp_dot_prod_cov(array[] real x1, array[] real x2, real sigma)

Gaussian process cross-covariance of x1 and x2 with dot product kernel in one dimension.
Available since 2.20

matrix gp_dot_prod_cov(vectors x, real sigma)

Gaussian process covariance with dot product kernel in multiple dimensions.
Available since 2.20

matrix gp_dot_prod_cov(vectors x1, vectors x2, real sigma)

Gaussian process cross-covariance of x1 and x2 with dot product kernel in multiple dimensions.
Available since 2.20

6.13.3 Exponential kernel

With magnitude \(\sigma\) and length scale \(l\), the exponential kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma^2 \exp \left( -\frac{|\mathbf{x}_i - \mathbf{x}_j|}{l} \right) \]

matrix gp_exponential_cov(array[] real x, real sigma, real length_scale)

Gaussian process covariance with exponential kernel in one dimension.
Available since 2.20

matrix gp_exponential_cov(array[] real x1, array[] real x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponential kernel in one dimension.
Available since 2.20

matrix gp_exponential_cov(vectors x, real sigma, real length_scale)

Gaussian process covariance with exponential kernel in multiple dimensions.
Available since 2.20

matrix gp_exponential_cov(vectors x, real sigma, array[] real length_scale)

Gaussian process covariance with exponential kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

matrix gp_exponential_cov(vectors x1, vectors x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponential kernel in multiple dimensions.
Available since 2.20

matrix gp_exponential_cov(vectors x1, vectors x2, real sigma, array[] real length_scale)

Gaussian process cross-covariance of x1 and x2 with exponential kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

6.13.4 Matern 3/2 kernel

With magnitude \(\sigma\) and length scale \(l\), the Matern 3/2 kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma^2 \left( 1 + \frac{\sqrt{3}|\mathbf{x}_i - \mathbf{x}_j|}{l} \right) \exp \left( -\frac{\sqrt{3}|\mathbf{x}_i - \mathbf{x}_j|}{l} \right) \]

matrix gp_matern32_cov(array[] real x, real sigma, real length_scale)

Gaussian process covariance with Matern 3/2 kernel in one dimension.
Available since 2.20

matrix gp_matern32_cov(array[] real x1, array[] real x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 3/2 kernel in one dimension.
Available since 2.20

matrix gp_matern32_cov(vectors x, real sigma, real length_scale)

Gaussian process covariance with Matern 3/2 kernel in multiple dimensions.
Available since 2.20

matrix gp_matern32_cov(vectors x, real sigma, array[] real length_scale)

Gaussian process covariance with Matern 3/2 kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

matrix gp_matern32_cov(vectors x1, vectors x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 3/2 kernel in multiple dimensions.
Available since 2.20

matrix gp_matern32_cov(vectors x1, vectors x2, real sigma, array[] real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 3/2 kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

6.13.5 Matern 5/2 kernel

With magnitude \(\sigma\) and length scale \(l\), the Matern 5/2 kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma^2 \left( 1 + \frac{\sqrt{5}|\mathbf{x}_i - \mathbf{x}_j|}{l} + \frac{5 |\mathbf{x}_i - \mathbf{x}_j|^2}{3l^2} \right) \exp \left( -\frac{\sqrt{5} |\mathbf{x}_i - \mathbf{x}_j|}{l} \right) \]

matrix gp_matern52_cov(array[] real x, real sigma, real length_scale)

Gaussian process covariance with Matern 5/2 kernel in one dimension.
Available since 2.20

matrix gp_matern52_cov(array[] real x1, array[] real x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 5/2 kernel in one dimension.
Available since 2.20

matrix gp_matern52_cov(vectors x, real sigma, real length_scale)

Gaussian process covariance with Matern 5/2 kernel in multiple dimensions.
Available since 2.20

matrix gp_matern52_cov(vectors x, real sigma, array[] real length_scale)

Gaussian process covariance with Matern 5/2 kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

matrix gp_matern52_cov(vectors x1, vectors x2, real sigma, real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 5/2 kernel in multiple dimensions.
Available since 2.20

matrix gp_matern52_cov(vectors x1, vectors x2, real sigma, array[] real length_scale)

Gaussian process cross-covariance of x1 and x2 with Matern 5/2 kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20

6.13.6 Periodic kernel

With magnitude \(\sigma\), length scale \(l\), and period \(p\), the periodic kernel is:

\[ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma^2 \exp \left(-\frac{2 \sin^2 \left( \pi \frac{|\mathbf{x}_i - \mathbf{x}_j|}{p} \right) }{l^2} \right) \]

matrix gp_periodic_cov(array[] real x, real sigma, real length_scale, real period)

Gaussian process covariance with periodic kernel in one dimension.
Available since 2.20

matrix gp_periodic_cov(array[] real x1, array[] real x2, real sigma, real length_scale, real period)

Gaussian process cross-covariance of x1 and x2 with periodic kernel in one dimension.
Available since 2.20

matrix gp_periodic_cov(vectors x, real sigma, real length_scale, real period)

Gaussian process covariance with periodic kernel in multiple dimensions.
Available since 2.20

matrix gp_periodic_cov(vectors x1, vectors x2, real sigma, real length_scale, real period)

Gaussian process cross-covariance of x1 and x2 with periodic kernel in multiple dimensions with a length scale for each dimension.
Available since 2.20