Penalised splines is one of two optional Bayesian smoothing prior methods
that can be selected and used in the model definition with
EpiStrainDynamics. The main benefit of selecting the penalised spline
method over random walks is that it can capture dynamical effects (fine
enough temporal resolution) while not being too computationally expensive.
See also
Other method:
random_walk()
Examples
# Valid usage
p_spline(spline_degree = 2L, days_per_knot = 5L)
#> $method
#> [1] "p-spline"
#>
#> $model_params
#> $model_params$spline_degree
#> [1] 2
#>
#> $model_params$days_per_knot
#> [1] 5
#>
#>
#> attr(,"class")
#> [1] "EpiStrainDynamics.method"
p_spline(spline_degree = 3, days_per_knot = 7)
#> $method
#> [1] "p-spline"
#>
#> $model_params
#> $model_params$spline_degree
#> [1] 3
#>
#> $model_params$days_per_knot
#> [1] 7
#>
#>
#> attr(,"class")
#> [1] "EpiStrainDynamics.method"
# These will produce validation errors (as intended):
# \donttest{
# Non-positive values
try(p_spline(spline_degree = 0, days_per_knot = 5))
#> Error in validate_positive_whole_number(spline_degree, "spline_degree") :
#> Argument spline_degree must be a positive number
try(p_spline(spline_degree = 3, days_per_knot = -1))
#> Error in validate_positive_whole_number(days_per_knot, "days_per_knot") :
#> Argument days_per_knot must be a positive number
# Non-whole numbers
try(p_spline(spline_degree = 2.5, days_per_knot = 5))
#> Error in validate_positive_whole_number(spline_degree, "spline_degree") :
#> Argument spline_degree must be a whole number
try(p_spline(spline_degree = 3, days_per_knot = 4.2))
#> Error in validate_positive_whole_number(days_per_knot, "days_per_knot") :
#> Argument days_per_knot must be a whole number
# Non-numeric values
try(p_spline(spline_degree = "invalid", days_per_knot = 5))
#> Error in validate_positive_whole_number(spline_degree, "spline_degree") :
#> Argument spline_degree must be numeric
# }
