fitGPModel | R Documentation |
GPModel
Estimates the parameters of a GPModel
by maximizing the marginal likelihood
fitGPModel(likelihood = "gaussian", group_data = NULL,
group_rand_coef_data = NULL, ind_effect_group_rand_coef = NULL,
drop_intercept_group_rand_effect = NULL, gp_coords = NULL,
gp_rand_coef_data = NULL, cov_function = "exponential",
cov_fct_shape = 0.5, gp_approx = "none", cov_fct_taper_range = 1,
cov_fct_taper_shape = 0, num_neighbors = 20L,
vecchia_ordering = "random", ind_points_selection = "kmeans++",
num_ind_points = 500L, cover_tree_radius = 1,
matrix_inversion_method = "cholesky", seed = 0L, cluster_ids = NULL,
free_raw_data = FALSE, y, X = NULL, params = list(),
vecchia_approx = NULL, vecchia_pred_type = NULL,
num_neighbors_pred = NULL, offset = NULL, fixed_effects = NULL)
likelihood |
A
|
group_data |
A |
group_rand_coef_data |
A |
ind_effect_group_rand_coef |
A |
drop_intercept_group_rand_effect |
A |
gp_coords |
A |
gp_rand_coef_data |
A |
cov_function |
A
|
cov_fct_shape |
A |
gp_approx |
A
|
cov_fct_taper_range |
A |
cov_fct_taper_shape |
A |
num_neighbors |
An |
vecchia_ordering |
A
|
ind_points_selection |
A
|
num_ind_points |
An |
cover_tree_radius |
A |
matrix_inversion_method |
A
|
seed |
An |
cluster_ids |
A |
free_raw_data |
A |
y |
A |
X |
A |
params |
A
|
vecchia_approx |
Discontinued. Use the argument |
vecchia_pred_type |
A |
num_neighbors_pred |
an |
offset |
A |
fixed_effects |
This is discontinued. Use the renamed equivalent argument |
A fitted GPModel
Fabio Sigrist
# See https://github.com/fabsig/GPBoost/tree/master/R-package for more examples
data(GPBoost_data, package = "gpboost")
# Add intercept column
X1 <- cbind(rep(1,dim(X)[1]),X)
X_test1 <- cbind(rep(1,dim(X_test)[1]),X_test)
#--------------------Grouped random effects model: single-level random effect----------------
gp_model <- fitGPModel(group_data = group_data[,1], y = y, X = X1,
likelihood="gaussian", params = list(std_dev = TRUE))
summary(gp_model)
# Make predictions
pred <- predict(gp_model, group_data_pred = group_data_test[,1],
X_pred = X_test1, predict_var = TRUE)
pred$mu # Predicted mean
pred$var # Predicted variances
# Also predict covariance matrix
pred <- predict(gp_model, group_data_pred = group_data_test[,1],
X_pred = X_test1, predict_cov_mat = TRUE)
pred$mu # Predicted mean
pred$cov # Predicted covariance
#--------------------Two crossed random effects and a random slope----------------
gp_model <- fitGPModel(group_data = group_data, likelihood="gaussian",
group_rand_coef_data = X[,2],
ind_effect_group_rand_coef = 1,
y = y, X = X1, params = list(std_dev = TRUE))
summary(gp_model)
#--------------------Gaussian process model----------------
gp_model <- fitGPModel(gp_coords = coords, cov_function = "exponential",
likelihood="gaussian", y = y, X = X1, params = list(std_dev = TRUE))
summary(gp_model)
# Make predictions
pred <- predict(gp_model, gp_coords_pred = coords_test,
X_pred = X_test1, predict_cov_mat = TRUE)
pred$mu # Predicted (posterior) mean of GP
pred$cov # Predicted (posterior) covariance matrix of GP
#--------------------Gaussian process model with Vecchia approximation----------------
gp_model <- fitGPModel(gp_coords = coords, cov_function = "exponential",
gp_approx = "vecchia", num_neighbors = 20,
likelihood="gaussian", y = y)
summary(gp_model)
#--------------------Gaussian process model with random coefficients----------------
gp_model <- fitGPModel(gp_coords = coords, cov_function = "exponential",
gp_rand_coef_data = X[,2], y=y,
likelihood = "gaussian", params = list(std_dev = TRUE))
summary(gp_model)
#--------------------Combine Gaussian process with grouped random effects----------------
gp_model <- fitGPModel(group_data = group_data,
gp_coords = coords, cov_function = "exponential",
likelihood = "gaussian", y = y, X = X1, params = list(std_dev = TRUE))
summary(gp_model)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.