greta
greta.gp
extends greta to let you define Gaussian
processes as part of your model. It provides a syntax to create and
combine GP kernels, and use them to define either full rank or sparse
Gaussian processes.
You can install the current release version of greta.gp
from CRAN:
install.packages("greta.gp")
Or install the development version of greta.dynamics
from r-universe:
install.packages("greta.gp", repos = "https://greta-dev.r-universe.dev")
You can also install the development version of greta.gp
via GitHub:
::install_github("greta-dev/greta.gp") remotes
# simulate data
<- runif(20, 0, 10)
x <- sin(x) + rnorm(20, 0, 0.5)
y <- seq(-1, 11, length.out = 200) x_plot
library(greta)
library(greta.gp)
# hyperparameters
<- lognormal(0, 1)
rbf_var <- lognormal(0, 1)
rbf_len <- lognormal(0, 1)
obs_sd
# kernel & GP
<- rbf(rbf_len, rbf_var) + bias(1)
kernel <- gp(x, kernel)
f
# likelihood
distribution(y) <- normal(f, obs_sd)
# prediction
<- project(f, x_plot) f_plot
# fit the model by Hamiltonian Monte Carlo
<- model(f_plot)
m <- mcmc(m, n_samples = 250) draws
# plot 200 posterior samples
# plot 200 posterior samples
plot(
~ x,
y pch = 16,
col = grey(0.4),
xlim = c(0, 10),
ylim = c(-2.5, 2.5),
las = 1,
fg = grey(0.7),
)for (i in 1:200) {
lines(draws[[1]][i, ] ~ x_plot,
lwd = 2,
col = rgb(0.7, 0.1, 0.4, 0.1))
}
Please note that the greta.gp project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.