| Title: | Evaluate Trending Models | 
| Version: | 0.1.1 | 
| Description: | Provides a coherent interface for evaluating models fit with the trending package. This package is part of the RECON (https://www.repidemicsconsortium.org/) toolkit for outbreak analysis. | 
| URL: | https://github.com/reconverse/trendeval | 
| BugReports: | https://github.com/reconverse/trendeval/issues | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| Imports: | trending, yardstick, rsample, stats, tibble, utils | 
| Suggests: | testthat (≥ 3.0.0), dplyr, outbreaks | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | no | 
| Packaged: | 2025-04-25 09:15:45 UTC; thiba | 
| Author: | Dirk Schumacher [aut],
  Thibaut Jombart [aut, cre],
  Tim Taylor | 
| Maintainer: | Thibaut Jombart <thibautjombart@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-04-25 15:20:02 UTC | 
Generic for calculating the AIC
Description
Generic calculate_aic() returns the Akaike's 'An Information Criterion' for
the given input.
Usage
calculate_aic(x, ...)
## Default S3 method:
calculate_aic(x, ...)
## S3 method for class 'trending_model'
calculate_aic(x, data, as_tibble = FALSE, ...)
## S3 method for class 'list'
calculate_aic(x, data, ...)
## S3 method for class 'trending_fit'
calculate_aic(x, as_tibble = FALSE, ...)
## S3 method for class 'trending_fit_tbl'
calculate_aic(x, ...)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| as_tibble | Should the result be returned as tibble
( | 
Details
Specific methods are given for
trending_fit and
trending_fit_tbl objects. The default
method applies stats::AIC() directly.
Value
For a single trending_fit input, if
as_tibble = FALSE the object returned will be a list with entries:
- metric: "AIC" 
- result: the resulting AIC value fit (NULL if the calculation failed) 
- warnings: any warnings generated during calculation 
- errors: any errors generated during calculation 
If as_tibble = TRUE, or the input is a
trending_fit_tbl, then the output
will be a tibble with one row for each fitted model
columns corresponding to output generated with single model input.
Author(s)
Tim Taylor
#' @examples x = rnorm(100, mean = 0) y = rpois(n = 100, lambda = exp(1.5 + 0.5*x)) dat <- data.frame(x = x, y = y) poisson_model <- glm_model(y ~ x , family = "poisson") negbin_model <- glm_nb_model(y ~ x) fitted_model <- fit(poisson_model, dat) fitted_models <- fit(list(poisson_model, negbin_model), data = dat)
calculate_aic(poisson_model, dat) calculate_aic(fitted_model) calculate_aic(fitted_model, as_tibble = TRUE) calculate_aic(fitted_models)
Generic for calculating the root mean squared error
Description
Generic calculate_mae() returns the root mean square error for the given
input.
Usage
calculate_mae(x, ...)
## Default S3 method:
calculate_mae(x, ...)
## S3 method for class 'trending_model'
calculate_mae(x, data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'list'
calculate_mae(x, data, na.rm = TRUE, ...)
## S3 method for class 'trending_fit'
calculate_mae(x, new_data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_fit_tbl'
calculate_mae(x, new_data, na.rm = TRUE, ...)
## S3 method for class 'trending_predict'
calculate_mae(x, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_predict_tbl'
calculate_mae(x, na.rm = TRUE, ...)
## S3 method for class 'trending_prediction'
calculate_mae(x, na.rm = TRUE, as_tibble = TRUE, ...)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| na.rm | Should NA values should be removed before calculation of metric (passed to the underlying function yardstick::mae_vec). | 
| as_tibble | Should the result be returned as tibble
( | 
| new_data | a  | 
Details
Specific methods are given for
trending_model
(and lists of these), trending_fit,
trending_fit_tbl,
trending_predict_tbl,
trending_predict_tbl and
trending_prediction objects. Each of these are simply wrappers around the
yardstick::mae_vec with the addition of explicit error handling.
Value
For a single trending_fit input, if
as_tibble = FALSE the object returned will be a list with entries:
- metric: "mae" 
- result: the resulting mae value (NULL if the calculation failed) 
- warnings: any warnings generated during calculation 
- errors: any errors generated during calculation 
If as_tibble = TRUE, or for the other trending classes, then the output
will be a tibble with one row for each fitted model
columns corresponding to output generated with single model input.
Author(s)
Tim Taylor
#' @examples x = rnorm(100, mean = 0) y = rpois(n = 100, lambda = exp(1.5 + 0.5*x)) dat <- data.frame(x = x, y = y) poisson_model <- glm_model(y ~ x , family = "poisson") negbin_model <- glm_nb_model(y ~ x) fitted_model <- fit(poisson_model, dat) fitted_models <- fit(list(poisson_model, negbin_model), data = dat)
calculate_mae(poisson_model, dat) calculate_mae(fitted_model) calculate_mae(fitted_model, as_tibble = TRUE) calculate_mae(fitted_models)
Generic for calculating the root mean squared error
Description
Generic calculate_rmse() returns the root mean square error for the given
input.
Usage
calculate_rmse(x, ...)
## Default S3 method:
calculate_rmse(x, ...)
## S3 method for class 'trending_model'
calculate_rmse(x, data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'list'
calculate_rmse(x, data, na.rm = TRUE, ...)
## S3 method for class 'trending_fit'
calculate_rmse(x, new_data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_fit_tbl'
calculate_rmse(x, new_data, na.rm = TRUE, ...)
## S3 method for class 'trending_predict'
calculate_rmse(x, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_predict_tbl'
calculate_rmse(x, na.rm = TRUE, ...)
## S3 method for class 'trending_prediction'
calculate_rmse(x, na.rm = TRUE, as_tibble = TRUE, ...)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| na.rm | Should NA values should be removed before calculation of metric (passed to the underlying function yardstick::rmse_vec). | 
| as_tibble | Should the result be returned as tibble
( | 
| new_data | a  | 
Details
Specific methods are given for
trending_model
(and lists of these), trending_fit,
trending_fit_tbl,
trending_predict_tbl,
trending_predict_tbl and
trending_prediction objects. Each of these are simply wrappers around the
yardstick::rmse_vec with the addition of explicit error handling.
Value
For a single trending_fit input, if
as_tibble = FALSE the object returned will be a list with entries:
- metric: "rmse" 
- result: the resulting rmse value (NULL if the calculation failed) 
- warnings: any warnings generated during calculation 
- errors: any errors generated during calculation 
If as_tibble = TRUE, or for the other trending classes, then the output
will be a tibble with one row for each fitted model
columns corresponding to output generated with single model input.
Author(s)
Tim Taylor
#' @examples x = rnorm(100, mean = 0) y = rpois(n = 100, lambda = exp(1.5 + 0.5*x)) dat <- data.frame(x = x, y = y) poisson_model <- glm_model(y ~ x , family = "poisson") negbin_model <- glm_nb_model(y ~ x) fitted_model <- fit(poisson_model, dat) fitted_models <- fit(list(poisson_model, negbin_model), data = dat)
calculate_rmse(poisson_model, dat) calculate_rmse(fitted_model) calculate_rmse(fitted_model, as_tibble = TRUE) calculate_rmse(fitted_models)
Generic for calculating the root mean squared error
Description
Generic calculate_rsq() returns the root mean square error for the given
input.
Usage
calculate_rsq(x, ...)
## Default S3 method:
calculate_rsq(x, ...)
## S3 method for class 'trending_model'
calculate_rsq(x, data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'list'
calculate_rsq(x, data, na.rm = TRUE, ...)
## S3 method for class 'trending_fit'
calculate_rsq(x, new_data, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_fit_tbl'
calculate_rsq(x, new_data, na.rm = TRUE, ...)
## S3 method for class 'trending_predict'
calculate_rsq(x, na.rm = TRUE, as_tibble = TRUE, ...)
## S3 method for class 'trending_predict_tbl'
calculate_rsq(x, na.rm = TRUE, ...)
## S3 method for class 'trending_prediction'
calculate_rsq(x, na.rm = TRUE, as_tibble = TRUE, ...)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| na.rm | Should NA values should be removed before calculation of metric (passed to the underlying function yardstick::rsq_vec). | 
| as_tibble | Should the result be returned as tibble
( | 
| new_data | a  | 
Details
Specific methods are given for
trending_model
(and lists of these), trending_fit,
trending_fit_tbl,
trending_predict_tbl,
trending_predict_tbl and
trending_prediction objects. Each of these are simply wrappers around the
yardstick::rsq_vec with the addition of explicit error handling.
Value
For a single trending_fit input, if
as_tibble = FALSE the object returned will be a list with entries:
- metric: "rsq" 
- result: the resulting rsq value (NULL if the calculation failed) 
- warnings: any warnings generated during calculation 
- errors: any errors generated during calculation 
If as_tibble = TRUE, or for the other trending classes, then the output
will be a tibble with one row for each fitted model
columns corresponding to output generated with single model input.
Author(s)
Tim Taylor
#' @examples x = rnorm(100, mean = 0) y = rpois(n = 100, lambda = exp(1.5 + 0.5*x)) dat <- data.frame(x = x, y = y) poisson_model <- glm_model(y ~ x , family = "poisson") negbin_model <- glm_nb_model(y ~ x) fitted_model <- fit(poisson_model, dat) fitted_models <- fit(list(poisson_model, negbin_model), data = dat)
calculate_rsq(poisson_model, dat) calculate_rsq(fitted_model) calculate_rsq(fitted_model, as_tibble = TRUE) calculate_rsq(fitted_models)
Generic for calculating the AIC
Description
evaluate_aic() is a a generic for evaluating the Akaike's
'An Information Criterion' for a given input
Usage
evaluate_aic(x, ...)
## Default S3 method:
evaluate_aic(x, ...)
## S3 method for class 'trending_model'
evaluate_aic(x, data, as_tibble = FALSE, ...)
## S3 method for class 'list'
evaluate_aic(x, data, ...)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| as_tibble | Should the result be returned as tibble
( | 
Details
Specific methods are given for
trending_fit and lists of these
models.
Value
If as_tibble = TRUE, or the input is a list of models then the
output will be a tibble with one row for each fitted
model columns corresponding to output generated with single model input.
Author(s)
Tim Taylor
#' @examples x = rnorm(100, mean = 0) y = rpois(n = 100, lambda = exp(1.5 + 0.5*x)) dat <- data.frame(x = x, y = y) poisson_model <- glm_model(y ~ x , family = "poisson") negbin_model <- glm_nb_model(y ~ x)
evaluate_aic(poisson_model, dat) evaluate_aic(list(poisson_model, negbin_model), data = dat)
Resampling approach for model evaluation
Description
evaluate_resampling() uses repeated K-fold cross-validation and
the Root Mean Square Error (RMSE) of testing sets to measure the predictive
power of a single model. Methods are provided for
trending::trending_model (and lists of these) objects.
Usage
evaluate_resampling(x, ...)
## Default S3 method:
evaluate_resampling(x, ...)
## S3 method for class 'trending_model'
evaluate_resampling(
  x,
  data,
  metric = c("rmse", "rsq", "mae"),
  metric_arguments = list(na.rm = TRUE),
  v = 5,
  repeats = 1,
  ...
)
## S3 method for class 'list'
evaluate_resampling(
  x,
  data,
  metric = c("rmse", "rsq", "mae"),
  metric_arguments = list(na.rm = TRUE),
  v = 5,
  repeats = 1,
  ...
)
Arguments
| x | An R object. | 
| ... | Not currently used. | 
| data | a  | 
| metric | One of "rmse" (see calculate_rmse), "mae" (see calculate_mae) and "rsq" (see calculate_rsq). | 
| metric_arguments | A named list of arguments passed to the underlying functions that calculate the metrics. | 
| v | the number of equally sized data partitions to be used for K-fold
cross-validation;  | 
| repeats | the number of times the random K-fold cross validation should be repeated for; defaults to 1; larger values are likely to yield more reliable / stable results, at the expense of computational time | 
Details
These functions wrap around existing functions from several
packages.  evaluate_resampling.trending_model() and
evaluate_resampling.list() both use rsample::vfold_cv() for sampling
and, for the calculating the different metrics, the
yardstick package.
See Also
calculate_aic(), calculate_rmse(), calculate_mae() and
calculate_rsq().
Examples
x <- rnorm(100, mean = 0)
y <- rpois(n = 100, lambda = exp(x + 1))
dat <- data.frame(x = x, y = y)
model <- trending::glm_model(y ~ x, poisson)
models <- list(
  poisson_model = trending::glm_model(y ~ x, poisson),
  linear_model = trending::lm_model(y ~ x)
)
evaluate_resampling(model, dat)
evaluate_resampling(models, dat)
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- trending