Skip to contents

[Stable] Defines a list specifying the structure of the approximate Gaussian process. Custom settings can be supplied which override the defaults.

Usage

gp_opts(
  basis_prop = 0.2,
  boundary_scale = 1.5,
  ls_mean = 21,
  ls_sd = 7,
  ls_min = 0,
  ls_max = 60,
  alpha_mean = 0,
  alpha_sd = 0.01,
  kernel = c("matern", "se", "ou", "periodic"),
  matern_order = 3/2,
  matern_type,
  w0 = 1
)

Arguments

basis_prop

Numeric, the proportion of time points to use as basis functions. Defaults to 0.2. Decreasing this value results in a decrease in accuracy but a faster compute time (with increasing it having the first effect). In general smaller posterior length scales require a higher proportion of basis functions. See (Riutort-Mayol et al. 2020 https://arxiv.org/abs/2004.11408) for advice on updating this default.

boundary_scale

Numeric, defaults to 1.5. Boundary scale of the approximate Gaussian process. See (Riutort-Mayol et al. 2020 https://arxiv.org/abs/2004.11408) for advice on updating this default.

ls_mean

Numeric, defaults to 21 days. The mean of the lognormal length scale.

ls_sd

Numeric, defaults to 7 days. The standard deviation of the log normal length scale. If ls_sd = 0, inverse-gamma prior on Gaussian process length scale will be used with recommended parameters inv_gamma(1.499007, 0.057277 * ls_max).

ls_min

Numeric, defaults to 0. The minimum value of the length scale.

ls_max

Numeric, defaults to 60. The maximum value of the length scale. Updated in create_gp_data() to be the length of the input data if this is smaller.

alpha_mean

Numeric, defaults to 0. The mean of the magnitude parameter of the Gaussian process kernel. Should be approximately the expected variance of the logged Rt.

alpha_sd

Numeric, defaults to 0.01. The standard deviation of the magnitude parameter of the Gaussian process kernel. Should be approximately the expected standard deviation of the logged Rt.

kernel

Character string, the type of kernel required. Currently supporting the Matern kernel ("matern"), squared exponential kernel ("se"), periodic kernel, Ornstein-Uhlenbeck #' kernel ("ou"), and the periodic kernel ("periodic").

matern_order

Numeric, defaults to 3/2. Order of Matérn Kernel to use. Common choices are 1/2, 3/2, and 5/2. If kernel is set to "ou", matern_order will be automatically set to 1/2. Only used if the kernel is set to "matern".

matern_type

Deprecated; Numeric, defaults to 3/2. Order of Matérn Kernel to use. Currently, the orders 1/2, 3/2, 5/2 and Inf are supported.

w0

Numeric, defaults to 1.0. Fundamental frequency for periodic kernel. They are only used if kernel is set to "periodic".

Value

A <gp_opts> object of settings defining the Gaussian process

Examples

# default settings
gp_opts()
#> $basis_prop
#> [1] 0.2
#> 
#> $boundary_scale
#> [1] 1.5
#> 
#> $ls_mean
#> [1] 21
#> 
#> $ls_sd
#> [1] 7
#> 
#> $ls_min
#> [1] 0
#> 
#> $ls_max
#> [1] 60
#> 
#> $alpha_mean
#> [1] 0
#> 
#> $alpha_sd
#> [1] 0.01
#> 
#> $kernel
#> [1] "matern"
#> 
#> $matern_order
#> [1] 1.5
#> 
#> $w0
#> [1] 1
#> 
#> attr(,"class")
#> [1] "gp_opts" "list"   

# add a custom length scale
gp_opts(ls_mean = 4)
#> $basis_prop
#> [1] 0.2
#> 
#> $boundary_scale
#> [1] 1.5
#> 
#> $ls_mean
#> [1] 4
#> 
#> $ls_sd
#> [1] 7
#> 
#> $ls_min
#> [1] 0
#> 
#> $ls_max
#> [1] 60
#> 
#> $alpha_mean
#> [1] 0
#> 
#> $alpha_sd
#> [1] 0.01
#> 
#> $kernel
#> [1] "matern"
#> 
#> $matern_order
#> [1] 1.5
#> 
#> $w0
#> [1] 1
#> 
#> attr(,"class")
#> [1] "gp_opts" "list"   

# use linear kernel
gp_opts(kernel = "periodic")
#> $basis_prop
#> [1] 0.2
#> 
#> $boundary_scale
#> [1] 1.5
#> 
#> $ls_mean
#> [1] 21
#> 
#> $ls_sd
#> [1] 7
#> 
#> $ls_min
#> [1] 0
#> 
#> $ls_max
#> [1] 60
#> 
#> $alpha_mean
#> [1] 0
#> 
#> $alpha_sd
#> [1] 0.01
#> 
#> $kernel
#> [1] "periodic"
#> 
#> $matern_order
#> [1] 1.5
#> 
#> $w0
#> [1] 1
#> 
#> attr(,"class")
#> [1] "gp_opts" "list"