loocv_thresh_gam applies a LOOCV on a threshold-GAM and its corresponding GAM and returns TRUE if the threshold-GAM has a lower estimate, else FALSE (see for more infos on the LOOCV procedure the details section in test_interaction).

loocv_thresh_gam(
model,
ind_vec,
press_vec,
t_var_vec,
name_t_var,
k,
a,
b,
time
)

## Arguments

model A single GAM object from the model tibble needed to extract the family and the link function. A vector with the IND training observations (including or excluding defined outliers). A vector with the training observations (including or excluding defined outliers) of pressure 1 (i.e. the original significant pressure in the GAM(M)). The name of the threshold variable (pressure 2). t_var will be named after this string in the model formula. Choice of knots (for the smoothing function s); the default is 4 to avoid over-parameterization. The lower quantile value of the selected threshold variable, which the estimated threshold is not allowed to exceed; the default is 0.2. The upper quantile value of the selected threshold variable, which the estimated threshold is not allowed to exceed; the default is 0.8. A vector containing the actual time series.

## Value

The function returns a list with the following 2 sublists:

result

logical; if TRUE, at least one thresh_gam performs better than its corresponding gam based on LOOCV value.

error

A string capturing potential error messages that occurred as side effects when fitting the threshold GAM for the LOOCV.

thresh_gam which creates a threshold-GAM object and test_interaction which applies thresh_gam and loocv_thresh_gam

## Examples

if (FALSE) {
# Using the first model in the Baltic Sea demo data
loocv_thresh_gam(model = model_gam_ex$model[[1]], ind_vec = ind_init_ex$ind_train[[1]],
press_vec = ind_init_ex$press_train[[1]], t_var_vec = ind_init_ex$press_train[[2]],
name_t_var = "Swin",
k = 4, a = 0.2, b = 0.8,
time = ind_init_ex\$time_train[[1]])
}