I am trying to create a spatiotemporal Gaussian Process Regression model where I am interested in prediction in both space and time.

So, I assume the models follow the form:

$$ Y(s; t) \sim GP (\mu(s; t), \Sigma(s; t)) $$

This is for all $(s; t)$ in our space-time domain where $\mu$ is the process mean and $\Sigma$ is the covariance function. So, my spatial data is denoted by 2-dimensional indexes and there is a time index.

I am wondering how such a covariance function can be specified. I am just starting out and wanted to just fit a GP with 0 mean and an RBF kernel which is smooth in both space and time. Also, currently $Y(s; t)$ is a scalar quantity. However, I am not sure how to specify this kernel. Should I create 3 kernels one for spatial x-dimension and one for spatial y-dimension and one for time and combine them by adding or multiplication? However, this does not seem right as I am not sure if I can use this to predict in $(x, y, t)$.

On more thinking, I think this should be a blocked covariance kernel where each diagonal block is the kernel for $x$, $y$ and $t$ respectively. This way I can even introduce correlations among the dimensions. Does that sound reasonable?

  • $\begingroup$ STGP (arxiv.org/pdf/1901.04030.pdf) might be useful here. I have never used it, but I want to use it. I am still trying to understand how to use it. $\endgroup$ – Dushyant Sahoo Sep 29 '19 at 17:32

I'm not too familiar with the usage of GPs in a spatiotemporal setting, but as such, the composition of certain kernels using additional and multiplication does result in other kernels. In his thesis, David Duvenaud talks about composition of kernels for automatic model building. You should be able to find common practice in the field by searching for "spatiotemporal kernels for kriging" or something similar.

Note that most kernels allow multivariate indices. For example, the RBF kernel can be written as:

$$k({\bf x_i}, {\bf x_j}) = \sigma^2 \exp \left( -\sum_{d = 1}^D (x_{i;d} - x_{j;d})^2/l_d^2 \right)$$

In this case, the lengthscale parameter $l_d$ can be different along each dimension to account for different units. In your case, $D = 3$, and $(x_1, x_2, x_3) \equiv (x, y, t)$. Notice that, for the RBF as a special case, you can interpret the kernel as the multiplication of three individual RBF kernels.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.