Latent Gaussian Processes with input uncertainties

I’m working on a project which uses a Latent Gaussian Process prior, but while my observations have uncertainties which can be accounted for easily, the locations at which the observations are made also have an uncertainty (i.e. the X in my GP.prior(X=X) has its own error). Is there a sensible way to handle this with pymc3, or is there a sensible way I could implement this?

Something like:

Xmu = pm.Normal('latent_mu', 0., 100., shape=X.shape)
Xobs = pm.Normal('X', Xmu, 1., observed=X)
... GP.prior(X=Xmu)

it is a bit cumbersome. Maybe

Xerror = pm.Normal('X_error', 0., 1., shape=X.shape)
Xmu = X - Xerror
... GP.prior(X=Xmu)

Also works?

1 Like

Ahh, cool, I guess I’d thought that the X parameter of GP.prior needed to be a vector of actual numbers. I’ll give this a go. Thanks!