Hello,
I am training a basic Gaussian Process model:
gaussianProcess <- nimble::nimbleCode({
mu0 ~ dnorm(0, sd = 100)
sigma ~ dunif(0, 100)
rho ~ dunif(0, 5000)
ones[1:n] <- rep(1, n)
mu[1:n] <- mu0*ones[1:n]
cov[1:n, 1:n] <- expcov(sqDists[1:n, 1:n], rho, sigma, nugget)
s[1:n] ~ dmnorm(mu[1:n], cov = cov[1:n, 1:n])
})
I have observations for some subset of the `s`, and would like to use my MCMC run to sample the remainder. When I pass in `NA` values for the points I would like to sample, this doesn't work as expected, because, per the docs:
> Sometimes one needs a model variable to have a mix of data and non-data, often due to missing data values. In NIMBLE, when data values are provided, any nodes with NA values will not be labeled as data. A node following a multivariate distribution must be either entirely observed or entirely missing.
What is the recommended way to sample my posterior predictive distribution for the unobserved values of `s`? I could train this model on only the observed sites, then sample from the posterior predictive for `sigma`, `rho`, and `mu0`, and use those values to `rmnorm` for `s`, but this seems like a hassle. Is there a better way to accomplish this?
Cheers,
-Scott