From cc07ab0d620ea4e67eb19bfa7c413626c291398b Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Wed, 11 Dec 2024 13:07:44 -0500 Subject: [PATCH 01/31] rm genlasso --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index e894f099..9973d9b8 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -44,7 +44,6 @@ Imports: data.table, dplyr (>= 1.1.0), epidatasets, - genlasso, ggplot2, glue, lifecycle (>= 1.0.1), @@ -63,6 +62,7 @@ Imports: Suggests: devtools, epidatr, + genlasso, here, knitr, outbreaks, From 975e7832475abf07f3ef8a2f59acd9fa2fa73e2d Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Mon, 20 Jan 2025 08:30:49 -0800 Subject: [PATCH 02/31] fix trendfilter + growth_rate --- DESCRIPTION | 4 +- R/growth_rate.R | 76 +++++++++++++++---------------- man/growth_rate.Rd | 8 ++-- tests/testthat/test-growth_rate.R | 4 ++ 4 files changed, 47 insertions(+), 45 deletions(-) create mode 100644 tests/testthat/test-growth_rate.R diff --git a/DESCRIPTION b/DESCRIPTION index 9973d9b8..7eed6579 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -62,7 +62,7 @@ Imports: Suggests: devtools, epidatr, - genlasso, + trendfilter, here, knitr, outbreaks, @@ -76,7 +76,7 @@ Remotes: cmu-delphi/delphidocs, cmu-delphi/epidatasets, cmu-delphi/epidatr, - glmgen/genlasso, + glmgen/trendfilter, reconverse/outbreaks Config/Needs/website: cmu-delphi/delphidocs Config/testthat/edition: 3 diff --git a/R/growth_rate.R b/R/growth_rate.R index 307309b5..ec602420 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -53,7 +53,7 @@ #' fitted value of the spline at `x0`. #' * "trend_filter": uses the estimated derivative at `x0` from polynomial trend #' filtering (a discrete spline) fit to `x` and `y`, via -#' `genlasso::trendfilter()`, divided by the fitted value of the discrete +#' `trendfilter::trendfilter()`, divided by the fitted value of the discrete #' spline at `x0`. #' #' ## Log Scale @@ -85,15 +85,13 @@ #' passed directly to `stats::smooth.spline()` (and the defaults are exactly #' as in this function). The trend filtering case works a bit differently: #' here, a custom set of arguments is allowed (which are distributed -#' internally to `genlasso::trendfilter()` and `genlasso::cv.trendfilter()`): +#' internally to `trendfilter::trendfilter()` and `trendfilter::cv_trendfilter()`): #' #' * `ord`: order of piecewise polynomial for the trend filtering fit. Default #' is 3. -#' * `maxsteps`: maximum number of steps to take in the solution path before -#' terminating. Default is 1000. #' * `cv`: should cross-validation be used to choose an effective degrees of #' freedom for the fit? Default is `TRUE`. -#' * `k`: number of folds if cross-validation is to be used. Default is 3. +#' * `nfolds`: number of folds if cross-validation is to be used. Default is 5. #' * `df`: desired effective degrees of freedom for the trend filtering fit. If #' `cv = FALSE`, then `df` must be a positive integer; if `cv = TRUE`, then #' `df` must be one of "min" or "1se" indicating the selection rule to use @@ -109,10 +107,12 @@ #' group_by(geo_value) %>% #' mutate(cases_gr = growth_rate(x = time_value, y = cases)) #' -#' # Log scale, degree 4 polynomial and 6-fold cross validation +#' # Log scale, degree 3 polynomial and 5-fold cross validation #' cases_deaths_subset %>% #' group_by(geo_value) %>% -#' mutate(gr_poly = growth_rate(x = time_value, y = cases, log_scale = TRUE, ord = 4, k = 6)) +#' mutate(gr_poly = growth_rate( +#' x = time_value, y = cases, method = "trend_filter", log_scale = TRUE +#' )) growth_rate <- function(x = seq_along(y), y, x0 = x, method = c( "rel_change", "linear_reg", @@ -124,6 +124,14 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") if (!all(x0 %in% x)) cli_abort("`x0` must be a subset of `x`.") method <- rlang::arg_match(method) + if (method == "trend_filter" && !requireNamespace("trendfilter", quietly = TRUE)) { + method <- "rel_change" + cli_warn(c( + 'The {.pkg trendfilter} package must be installed to use this option.', + i = 'It is available at {.url https://github.com/glmgen/trendfilter}.', + i = 'The computation will proceed using `method = "rel_change"` instead.' + )) + } # Arrange in increasing order of x o <- order(x) @@ -149,8 +157,8 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, # Remove NAs if we need to - if (na_rm) { - o <- !(is.na(x) & is.na(y)) + if (na_rm || method == "trend_filter") { + o <- !(is.na(x) | is.na(y)) x <- x[o] y <- y[o] } @@ -222,43 +230,35 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, } } else { # Trend filtering - ord <- params$ord - maxsteps <- params$maxsteps - cv <- params$cv - df <- params$df - k <- params$k - - # Default parameters - ord <- ord %||% 3 - maxsteps <- maxsteps %||% 1000 - cv <- cv %||% TRUE - df <- df %||% "min" - k <- k %||% 3 - - # Check cv and df combo + ord <- params$ord %||% 3 + assert_numeric(ord, lower = 0, upper = length(y) - 2, len = 1L) + cv <- params$cv %||% TRUE + assert_logical(cv, len = 1L) + df <- params$df %||% "min" + if (length(df) > 1) cli_abort("`df` must have length = 1.") if (is.numeric(df)) cv <- FALSE - if (!cv && !(is.numeric(df) && df == round(df))) { - cli_abort("If `cv = FALSE`, then `df` must be an integer.") - } - - # Compute trend filtering path - obj <- genlasso::trendfilter(y = y, pos = x, ord = ord, max = maxsteps) - - # Use CV to find df, if we need to + nfolds <- params$nfolds %||% 5L + assert_numeric(nfolds, lower = 1, upper = length(y) - 2, len = 1L) + + # Estimate growth rate and return if (cv) { - cv_obj <- quiet(genlasso::cv.trendfilter(obj, k = k, mode = "df")) - df <- ifelse(df == "min", cv_obj$df.min, cv_obj$df.1se) + df <- rlang::arg_match0(df, c("min", "1se")) + lam <- paste0("lambda_", df) + obj <- trendfilter::cv_trendfilter(y, x, k = ord, nfolds = nfolds) + } else { + assert_numeric(df, len = 1L, lower = 0, upper = length(y)) + obj <- trendfilter::trendfilter(y, x, k = ord) + lam <- obj$lambda[which.min(abs(df - obj$dof))] } - # Estimate growth rate and return - f <- genlasso::coef.genlasso(obj, df = df)$beta - d <- diff(f) / diff(x) + f <- stats::predict(obj, newx = x0, which_lambda = lam) + d <- diff(f) / diff(x0) # Extend by one element d <- c(d, d[length(d)]) if (log_scale) { - return(d[i0]) + return(d) } else { - return((d / f)[i0]) + return(d / f) } } } diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 0e22508c..235e2d48 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -81,7 +81,7 @@ spline fit to \code{x} and \code{y}, via \code{stats::smooth.spline()}, divided fitted value of the spline at \code{x0}. \item "trend_filter": uses the estimated derivative at \code{x0} from polynomial trend filtering (a discrete spline) fit to \code{x} and \code{y}, via -\code{genlasso::trendfilter()}, divided by the fitted value of the discrete +\code{trendfilter::trendfilter()}, divided by the fitted value of the discrete spline at \code{x0}. } \subsection{Log Scale}{ @@ -115,15 +115,13 @@ function. For the smoothing spline case, these additional arguments are passed directly to \code{stats::smooth.spline()} (and the defaults are exactly as in this function). The trend filtering case works a bit differently: here, a custom set of arguments is allowed (which are distributed -internally to \code{genlasso::trendfilter()} and \code{genlasso::cv.trendfilter()}): +internally to \code{trendfilter::trendfilter()} and \code{trendfilter::cv_trendfilter()}): \itemize{ \item \code{ord}: order of piecewise polynomial for the trend filtering fit. Default is 3. -\item \code{maxsteps}: maximum number of steps to take in the solution path before -terminating. Default is 1000. \item \code{cv}: should cross-validation be used to choose an effective degrees of freedom for the fit? Default is \code{TRUE}. -\item \code{k}: number of folds if cross-validation is to be used. Default is 3. +\item \code{nfolds}: number of folds if cross-validation is to be used. Default is 5. \item \code{df}: desired effective degrees of freedom for the trend filtering fit. If \code{cv = FALSE}, then \code{df} must be a positive integer; if \code{cv = TRUE}, then \code{df} must be one of "min" or "1se" indicating the selection rule to use diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R new file mode 100644 index 00000000..d8cd1392 --- /dev/null +++ b/tests/testthat/test-growth_rate.R @@ -0,0 +1,4 @@ +test_that("trendfilter growth_rate implementation", { + skip_if_not_installed("trendfilter", "0.0.2") + +}) From a2367066808c1475a4bcab43cf1455a308e8c8ce Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Mon, 20 Jan 2025 12:48:03 -0800 Subject: [PATCH 03/31] add tests for parameter constructor and splines --- NAMESPACE | 2 + R/growth_rate.R | 194 +++++++++++++++++++-------- man/growth_rate.Rd | 83 ++++++++---- tests/testthat/_snaps/growth_rate.md | 81 +++++++++++ tests/testthat/test-growth_rate.R | 54 ++++++++ 5 files changed, 337 insertions(+), 77 deletions(-) create mode 100644 tests/testthat/_snaps/growth_rate.md diff --git a/NAMESPACE b/NAMESPACE index 1f5180fb..7afa27a6 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -46,6 +46,7 @@ S3method(mean,epi_df) S3method(print,epi_archive) S3method(print,epi_df) S3method(print,grouped_epi_archive) +S3method(print,growth_rate_params) S3method(summary,epi_df) S3method(ungroup,epi_df) S3method(ungroup,grouped_epi_archive) @@ -114,6 +115,7 @@ importFrom(checkmate,assert_function) importFrom(checkmate,assert_int) importFrom(checkmate,assert_list) importFrom(checkmate,assert_logical) +importFrom(checkmate,assert_number) importFrom(checkmate,assert_numeric) importFrom(checkmate,assert_scalar) importFrom(checkmate,assert_string) diff --git a/R/growth_rate.R b/R/growth_rate.R index ec602420..c9db79de 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -27,8 +27,8 @@ #' or loudly). Default is `FALSE`. #' @param na_rm Should missing values be removed before the computation? Default #' is `FALSE`. -#' @param ... Additional arguments to pass to the method used to estimate the -#' derivative. +#' @param params Additional arguments to pass to the method used to estimate the +#' derivative. This should be created with `growth_rate_global_params()`. #' @return Vector of growth rate estimates at the specified points `x0`. #' #' @details The growth rate of a function f defined over a continuously-valued @@ -49,12 +49,15 @@ #' sliding window centered at the reference point `x0`, divided by the fitted #' value from this linear regression at `x0`. #' * "smooth_spline": uses the estimated derivative at `x0` from a smoothing -#' spline fit to `x` and `y`, via `stats::smooth.spline()`, divided by the +#' spline fit to `x` and `y`, via [stats::smooth.spline()], divided by the #' fitted value of the spline at `x0`. #' * "trend_filter": uses the estimated derivative at `x0` from polynomial trend #' filtering (a discrete spline) fit to `x` and `y`, via -#' `trendfilter::trendfilter()`, divided by the fitted value of the discrete -#' spline at `x0`. +#' [trendfilter::trendfilter()], divided by the fitted value of the discrete +#' spline at `x0`. This method requires the +#' [`{trendfilter}` package](https://github.com/glmgen/trendfilter) +#' to be installed (if it isn't, `method = "rel_change"` will be used and a +#' warning issued). #' #' ## Log Scale #' @@ -80,25 +83,30 @@ #' ## Additional Arguments #' #' For the global methods, "smooth_spline" and "trend_filter", additional -#' arguments can be specified via `...` for the underlying estimation -#' function. For the smoothing spline case, these additional arguments are -#' passed directly to `stats::smooth.spline()` (and the defaults are exactly -#' as in this function). The trend filtering case works a bit differently: -#' here, a custom set of arguments is allowed (which are distributed -#' internally to `trendfilter::trendfilter()` and `trendfilter::cv_trendfilter()`): -#' -#' * `ord`: order of piecewise polynomial for the trend filtering fit. Default -#' is 3. -#' * `cv`: should cross-validation be used to choose an effective degrees of -#' freedom for the fit? Default is `TRUE`. -#' * `nfolds`: number of folds if cross-validation is to be used. Default is 5. -#' * `df`: desired effective degrees of freedom for the trend filtering fit. If -#' `cv = FALSE`, then `df` must be a positive integer; if `cv = TRUE`, then -#' `df` must be one of "min" or "1se" indicating the selection rule to use +#' arguments can be specified via `params` for the underlying estimation +#' function. These additional arguments are +#' passed to [`stats::smooth.spline()`], [`trendfilter::trendfilter()`], or +#' [`trendfilter::cv_trendfilter()`]. The defaults are exactly +#' as specified in those functions, except when the arguments are shared +#' between these. These cases are as follows: +#' +#' * `df`: desired effective degrees of freedom. For "smooth_spline", this must be numeric (or `NULL`) and will +#' be passed along to the underlying function. For "trend_filter", if +#' `cv = FALSE`, then `df` must be a positive number (integer is most sensible); +#' if `cv = TRUE`, then `df` must be one of "min" or "1se" indicating the +#' selection rule to use #' based on the cross-validation error curve: minimum or 1-standard-error -#' rule, respectively. Default is "min" (going along with the default `cv = -#' TRUE`). Note that if `cv = FALSE`, then we require `df` to be set by the -#' user. +#' rule, respectively. The default is "min" (going along with the default +#' `cv = TRUE`). +#' * `lambda`: For "smooth_spline", this should be a scalar value or `NULL`. +#' For "trend_filter", this is allowed to also be a vector, as long as either +#' `cv = TRUE` or `df` is specified. +#' * `cv`: should cross-validation be used to choose an effective degrees of +#' freedom for the fit? The default is `FALSE` to match [stats::smooth.spline()]. +#' In that case, as in that function, GCV is used instead. +#' For :trend_filter", this will be coerced to `TRUE` if neither +#' `df` nor `lambda` are specified (the default). +#' Note that passing both `df` and a scalar `lambda` will always be an error. #' #' @export #' @examples @@ -113,17 +121,19 @@ #' mutate(gr_poly = growth_rate( #' x = time_value, y = cases, method = "trend_filter", log_scale = TRUE #' )) -growth_rate <- function(x = seq_along(y), y, x0 = x, +growth_rate <- function(y, x = seq_along(y), x0 = x, method = c( "rel_change", "linear_reg", "smooth_spline", "trend_filter" ), h = 7, log_scale = FALSE, - dup_rm = FALSE, na_rm = FALSE, ...) { + dup_rm = FALSE, na_rm = FALSE, + params = growth_rate_global_params() + ) { # Check x, y, x0 if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") - if (!all(x0 %in% x)) cli_abort("`x0` must be a subset of `x`.") method <- rlang::arg_match(method) + assert_class(params, "growth_rate_params") if (method == "trend_filter" && !requireNamespace("trendfilter", quietly = TRUE)) { method <- "rel_change" cli_warn(c( @@ -140,7 +150,12 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, # Convert to log(y) if we need to y <- as.numeric(y) - if (log_scale) y <- log(y) + if (log_scale) { + if (any(y <= 0)) { + cli_warn("`y` contains 0 or negative values. Taking logs may produce strange results.") + } + y <- suppressWarnings(log(y)) + } # Remove duplicates if we need to if (dup_rm) { @@ -155,15 +170,15 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, y <- y[o] } - # Remove NAs if we need to - if (na_rm || method == "trend_filter") { + if (na_rm) { o <- !(is.na(x) | is.na(y)) x <- x[o] y <- y[o] } # Useful indices for later + if (!all(x0 %in% x)) cli_abort("`x0` must be a subset of `x`.") i0 <- x %in% x0 # Local methods @@ -203,7 +218,6 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, } } }) - return(g[i0]) } @@ -212,15 +226,23 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, # Convert to numerics x <- as.numeric(x) x0 <- as.numeric(x0) - - # Collect parameters - params <- list(...) + if (any(is.na(x) | is.na(y) | !is.finite(x) | !is.finite(y))) { + cli_abort(c( + "{.val {method}} requires all real values without missingness.", + i = "Set `na_rm = TRUE` and / or check for infinite values.", + i = "Using `log_scale = TRUE` may induce either case." + )) + } # Smoothing spline if (method == "smooth_spline") { - params$x <- x - params$y <- y - obj <- do.call(stats::smooth.spline, params) + if (is.character(params$df)) params$df <- NULL + if (length(params$lambda) > 1L) { + cli_abort("{.val smooth_spline} requires 1 `lambda` but more were used.") + } + params <- params[c("df", "spar", "lambda", "cv", "all.knots", "df.offset", "penalty")] + params <- params[!sapply(params, is.null)] + obj <- rlang::inject(stats::smooth.spline(x = x, y = y, !!!params)) f0 <- stats::predict(obj, x = x0)$y d0 <- stats::predict(obj, x = x0, deriv = 1)$y if (log_scale) { @@ -228,27 +250,40 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, } else { return(d0 / f0) } - } else { - # Trend filtering - ord <- params$ord %||% 3 - assert_numeric(ord, lower = 0, upper = length(y) - 2, len = 1L) - cv <- params$cv %||% TRUE - assert_logical(cv, len = 1L) - df <- params$df %||% "min" - if (length(df) > 1) cli_abort("`df` must have length = 1.") - if (is.numeric(df)) cv <- FALSE - nfolds <- params$nfolds %||% 5L - assert_numeric(nfolds, lower = 1, upper = length(y) - 2, len = 1L) + } else { # Trend filtering + cv <- params$cv + single_lambda <- is.numeric(params$lambda) & length(params$lambda) == 1L + lambda_seq <- is.numeric(params$lambda) & length(params$lambda) > 1L + if (is.null(params$df) && params$lambda) { + cv <- TRUE + params$df <- "min" + } else if (is.numeric(params$df) && single_lambda) { + cli_abort("Only one of {.val lambda} or {.val df} may be specified.") + } # Estimate growth rate and return if (cv) { - df <- rlang::arg_match0(df, c("min", "1se")) - lam <- paste0("lambda_", df) - obj <- trendfilter::cv_trendfilter(y, x, k = ord, nfolds = nfolds) + if (is.numeric(params$df)) params$df <- "min" + if (length(params$lambda) == 1L) params$lambda <- NULL + which_lambda <- rlang::arg_match0(df, c("min", "1se")) + lam <- paste0("lambda_", which_lambda) + obj <- trendfilter::cv_trendfilter( + y, x, k = params$k, error_measure = params$error_measure, + nfolds = params$nfolds, family = params$family, lambda = params$lambda, + nlambda = params$nlambda, lambda_max = params$lambda_max, + lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio + ) } else { - assert_numeric(df, len = 1L, lower = 0, upper = length(y)) - obj <- trendfilter::trendfilter(y, x, k = ord) - lam <- obj$lambda[which.min(abs(df - obj$dof))] + if (!single_lambda || !is.numeric(params$df)) { + cli_abort("If a sequence of `lambda` is used, `df` must be specified.") + } + obj <- trendfilter::trendfilter( + y, x, + k = params$k, family = params$family, lambda = params$lambda, + nlambda = params$nlambda, lambda_max = params$lambda_max, + lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio + ) + lam <- if (single_lambda) obj$lambda else obj$lambda[which.min(abs(df - obj$dof))] } f <- stats::predict(obj, newx = x0, which_lambda = lam) @@ -263,3 +298,56 @@ growth_rate <- function(x = seq_along(y), y, x0 = x, } } } + +#' @importFrom checkmate assert_number +#' @describeIn growth_rate Optional parameters for global growth rate methods +growth_rate_global_params <- function( + df = NULL, + lambda = NULL, + cv = FALSE, + spar = NULL, + all.knots = FALSE, + df.offset = 0, + penalty = 1, + k = 2L, + family = c("gaussian", "logistic", "poisson"), + nlambda = 50L, + lambda_max = NULL, + lambda_min = NULL, + lambda_min_ratio = 1e-5, + error_measure = c("deviance", "mse", "mae"), + nfolds = 5L +) { + if (is.character(df)) { + df <- rlang::arg_match0(df, c("min", "1se")) + cv <- TRUE + } else { + assert_number(df, lower = 0, null.ok = TRUE, finite = TRUE) + } + assert_number(spar, null.ok = TRUE, finite = TRUE) + assert_numeric(lambda, lower = 0, null.ok = TRUE, finite = TRUE) + assert_logical(cv, len = 1) + assert_logical(all.knots, len = 1) + assert_number(df.offset, lower = 0, finite = TRUE) + assert_number(penalty, lower = 0, finite = TRUE) + checkmate::assert_integerish(k, lower = 0, len = 1) + family <- arg_match(family) + assert_number(nlambda, lower = 0, finite = TRUE) + assert_number(lambda_max, lower = 0, finite = TRUE, null.ok = TRUE) + assert_number(lambda_min, lower = 0, finite = TRUE, null.ok = TRUE) + assert_number(lambda_min_ratio, lower = 0, upper = 1) + error_measure <- arg_match(error_measure) + checkmate::assert_integerish(nfolds, lower = 2, len = 1) + + structure(enlist( + df, lambda, cv, # shared by all + spar, all.knots, df.offset, penalty, # smooth.spline + k, family, nlambda, lambda_max, lambda_min, lambda_min_ratio, # all TF + error_measure, nfolds # cv_trendfilter + ), class = "growth_rate_params") +} + +#' @export +print.growth_rate_params <- function(x, ...) { + str(x, give.attr = FALSE) +} diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 235e2d48..5a8c7e43 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -2,6 +2,7 @@ % Please edit documentation in R/growth_rate.R \name{growth_rate} \alias{growth_rate} +\alias{growth_rate_global_params} \title{Estimate growth rate} \usage{ growth_rate( @@ -13,7 +14,25 @@ growth_rate( log_scale = FALSE, dup_rm = FALSE, na_rm = FALSE, - ... + params = growth_rate_global_params() +) + +growth_rate_global_params( + df = NULL, + lambda = NULL, + cv = FALSE, + spar = NULL, + all.knots = FALSE, + df.offset = 0, + penalty = 1, + k = 2L, + family = c("gaussian", "logistic", "poisson"), + nlambda = 50L, + lambda_max = NULL, + lambda_min = NULL, + lambda_min_ratio = 1e-05, + error_measure = c("deviance", "mse", "mae"), + nfolds = 5L ) } \arguments{ @@ -47,8 +66,8 @@ or loudly). Default is \code{FALSE}.} \item{na_rm}{Should missing values be removed before the computation? Default is \code{FALSE}.} -\item{...}{Additional arguments to pass to the method used to estimate the -derivative.} +\item{params}{Additional arguments to pass to the method used to estimate the +derivative. This should be created with \code{growth_rate_global_params()}.} } \value{ Vector of growth rate estimates at the specified points \code{x0}. @@ -77,12 +96,15 @@ using a first-difference approximation to the derivative. sliding window centered at the reference point \code{x0}, divided by the fitted value from this linear regression at \code{x0}. \item "smooth_spline": uses the estimated derivative at \code{x0} from a smoothing -spline fit to \code{x} and \code{y}, via \code{stats::smooth.spline()}, divided by the +spline fit to \code{x} and \code{y}, via \code{\link[stats:smooth.spline]{stats::smooth.spline()}}, divided by the fitted value of the spline at \code{x0}. \item "trend_filter": uses the estimated derivative at \code{x0} from polynomial trend filtering (a discrete spline) fit to \code{x} and \code{y}, via -\code{trendfilter::trendfilter()}, divided by the fitted value of the discrete -spline at \code{x0}. +\code{\link[trendfilter:trendfilter]{trendfilter::trendfilter()}}, divided by the fitted value of the discrete +spline at \code{x0}. This method requires the +\href{https://github.com/glmgen/trendfilter}{\code{{trendfilter}} package} +to be installed (if it isn't, \code{method = "rel_change"} will be used and a +warning issued). } \subsection{Log Scale}{ @@ -110,35 +132,48 @@ behavior of \code{epi_slide()} with \code{before = h - 1} and \code{after = h}). \subsection{Additional Arguments}{ For the global methods, "smooth_spline" and "trend_filter", additional -arguments can be specified via \code{...} for the underlying estimation -function. For the smoothing spline case, these additional arguments are -passed directly to \code{stats::smooth.spline()} (and the defaults are exactly -as in this function). The trend filtering case works a bit differently: -here, a custom set of arguments is allowed (which are distributed -internally to \code{trendfilter::trendfilter()} and \code{trendfilter::cv_trendfilter()}): +arguments can be specified via \code{params} for the underlying estimation +function. These additional arguments are +passed to \code{\link[stats:smooth.spline]{stats::smooth.spline()}}, \code{\link[trendfilter:trendfilter]{trendfilter::trendfilter()}}, or +\code{\link[trendfilter:cv_trendfilter]{trendfilter::cv_trendfilter()}}. The defaults are exactly +as specified in those functions, except when the arguments are shared +between these. These cases are as follows: \itemize{ -\item \code{ord}: order of piecewise polynomial for the trend filtering fit. Default -is 3. -\item \code{cv}: should cross-validation be used to choose an effective degrees of -freedom for the fit? Default is \code{TRUE}. -\item \code{nfolds}: number of folds if cross-validation is to be used. Default is 5. -\item \code{df}: desired effective degrees of freedom for the trend filtering fit. If -\code{cv = FALSE}, then \code{df} must be a positive integer; if \code{cv = TRUE}, then -\code{df} must be one of "min" or "1se" indicating the selection rule to use +\item \code{df}: desired effective degrees of freedom. For "smooth_spline", this must be numeric (or \code{NULL}) and will +be passed along to the underlying function. For "trend_filter", if +\code{cv = FALSE}, then \code{df} must be a positive number (integer is most sensible); +if \code{cv = TRUE}, then \code{df} must be one of "min" or "1se" indicating the +selection rule to use based on the cross-validation error curve: minimum or 1-standard-error -rule, respectively. Default is "min" (going along with the default \code{cv = TRUE}). Note that if \code{cv = FALSE}, then we require \code{df} to be set by the -user. +rule, respectively. The default is "min" (going along with the default +\code{cv = TRUE}). +\item \code{lambda}: For "smooth_spline", this should be a scalar value or \code{NULL}. +For "trend_filter", this is allowed to also be a vector, as long as either +\code{cv = TRUE} or \code{df} is specified. +\item \code{cv}: should cross-validation be used to choose an effective degrees of +freedom for the fit? The default is \code{FALSE} to match \code{\link[stats:smooth.spline]{stats::smooth.spline()}}. +In that case, as in that function, GCV is used instead. +For :trend_filter", this will be coerced to \code{TRUE} if neither +\code{df} nor \code{lambda} are specified (the default). +Note that passing both \code{df} and a scalar \code{lambda} will always be an error. } } } +\section{Functions}{ +\itemize{ +\item \code{growth_rate_global_params()}: Optional parameters for global growth rate methods + +}} \examples{ # COVID cases growth rate by state using default method relative change cases_deaths_subset \%>\% group_by(geo_value) \%>\% mutate(cases_gr = growth_rate(x = time_value, y = cases)) -# Log scale, degree 4 polynomial and 6-fold cross validation +# Log scale, degree 3 polynomial and 5-fold cross validation cases_deaths_subset \%>\% group_by(geo_value) \%>\% - mutate(gr_poly = growth_rate(x = time_value, y = cases, log_scale = TRUE, ord = 4, k = 6)) + mutate(gr_poly = growth_rate( + x = time_value, y = cases, method = "trend_filter", log_scale = TRUE + )) } diff --git a/tests/testthat/_snaps/growth_rate.md b/tests/testthat/_snaps/growth_rate.md new file mode 100644 index 00000000..81998a0c --- /dev/null +++ b/tests/testthat/_snaps/growth_rate.md @@ -0,0 +1,81 @@ +# global param constructor errors when required + + Code + growth_rate_global_params(df = -5) + Condition + Error in `growth_rate_global_params()`: + ! Assertion on 'df' failed: Element 1 is not >= 0. + +--- + + Code + growth_rate_global_params(nlambda = 5:8) + Condition + Error in `growth_rate_global_params()`: + ! Assertion on 'nlambda' failed: Must have length 1. + +# new setup args and warnings are as expected + + Code + growth_rate(-10:10, log_scale = TRUE) + Condition + Warning: + `y` contains 0 or negative values. Taking logs may produce strange results. + Output + [1] NaN NaN NaN NaN NaN NaN NaN + [8] NaN NaN NaN NaN NaN NaN NaN + [15] NaN NaN Inf 0.1950407 0.1633248 0.1431934 NaN + +--- + + Code + growth_rate(c(1:20, NA, 22:30), method = "smooth_spline") + Condition + Error in `growth_rate()`: + ! "smooth_spline" requires all real values without missingness. + i Set `na_rm = TRUE` and / or check for infinite values. + i Using `log_scale = TRUE` may induce either case. + +--- + + Code + growth_rate(c(1:20, NA, 22:30), method = "trend_filter") + Condition + Error in `growth_rate()`: + ! "trend_filter" requires all real values without missingness. + i Set `na_rm = TRUE` and / or check for infinite values. + i Using `log_scale = TRUE` may induce either case. + +--- + + Code + growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline") + Condition + Warning: + `y` contains 0 or negative values. Taking logs may produce strange results. + Error in `growth_rate()`: + ! "smooth_spline" requires all real values without missingness. + i Set `na_rm = TRUE` and / or check for infinite values. + i Using `log_scale = TRUE` may induce either case. + +--- + + Code + growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter") + Condition + Warning: + `y` contains 0 or negative values. Taking logs may produce strange results. + Error in `growth_rate()`: + ! "trend_filter" requires all real values without missingness. + i Set `na_rm = TRUE` and / or check for infinite values. + i Using `log_scale = TRUE` may induce either case. + +--- + + Code + growth_rate(y = c(1:20), method = "smooth_spline", params = growth_rate_global_params( + lambda = 1:20)) + Condition + Error in `growth_rate()`: + ! "smooth_spline" requires 1 `lambda` but more were used. + diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index d8cd1392..14bcba89 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -1,3 +1,57 @@ +test_that("global param constructor errors when required", { + # Check the tree when there is parameter dependency + expect_true(growth_rate_global_params(df = "min", cv = FALSE)$cv) + expect_true(growth_rate_global_params(df = "1se", cv = FALSE)$cv) + expect_identical(growth_rate_global_params(df = "1se")$df, "1se") + expect_false(growth_rate_global_params(df = 10, cv = FALSE)$cv) + expect_identical(growth_rate_global_params(df = 10L)$df, 10L) + expect_snapshot(error = TRUE, growth_rate_global_params(df = -5)) + + # Make sure that assert_number is len 1 + expect_identical(growth_rate_global_params(nlambda = 5L)$nlambda, 5L) + expect_snapshot(error = TRUE, growth_rate_global_params(nlambda = 5:8)) +}) + +test_that("new setup args and warnings are as expected", { + # NaN in log calculation + expect_snapshot(growth_rate(-10:10, log_scale = TRUE)) + + # NAs in x or y are removed + expect_length(growth_rate(c(1:20, NA, 22:30)), 30L) + expect_length(growth_rate(c(1:20, NA, 22:30), na_rm = TRUE), 29L) + expect_length(growth_rate(1:30, x = c(1:20, NA, 22:30), na_rm = TRUE), 29L) + + # splines and trendfilter error on NAs + expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "smooth_spline")) + expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "trend_filter")) + expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline")) + expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter")) + + # splines with multiple lambdas + expect_snapshot( + error = TRUE, + growth_rate(y = c(1:20), method = "smooth_spline", + params = growth_rate_global_params(lambda = 1:20)) + ) + + # other spline args give output (correctness not checked) + z <- rnorm(30) + expect_length(growth_rate(z, method = "smooth_spline"), 30L) + expect_length(growth_rate( + z, method = "smooth_spline", params = growth_rate_global_params(spar = .5) + ), 30L) + expect_length(growth_rate( + z, method = "smooth_spline", params = growth_rate_global_params(lambda = 10) + ), 30L) + expect_length(growth_rate( + z, method = "smooth_spline", params = growth_rate_global_params(df = 14) + ), 30L) + expect_length(growth_rate( + z, method = "smooth_spline", params = growth_rate_global_params(cv = TRUE) + ), 30L) +}) + + test_that("trendfilter growth_rate implementation", { skip_if_not_installed("trendfilter", "0.0.2") From 967f16af01d2ea7c84ca04267ee46be6537f1147 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 21 Jan 2025 10:21:03 -0800 Subject: [PATCH 04/31] pass minimal tests --- R/growth_rate.R | 17 ++++----- tests/testthat/_snaps/growth_rate.md | 9 +++++ tests/testthat/test-growth_rate.R | 52 ++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 10 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index c9db79de..de8f5efa 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -254,39 +254,36 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, cv <- params$cv single_lambda <- is.numeric(params$lambda) & length(params$lambda) == 1L lambda_seq <- is.numeric(params$lambda) & length(params$lambda) > 1L - if (is.null(params$df) && params$lambda) { + if (is.null(params$df) && lambda_seq) { cv <- TRUE params$df <- "min" } else if (is.numeric(params$df) && single_lambda) { cli_abort("Only one of {.val lambda} or {.val df} may be specified.") } - # Estimate growth rate and return if (cv) { - if (is.numeric(params$df)) params$df <- "min" + if (!is.character(params$df)) params$df <- "min" if (length(params$lambda) == 1L) params$lambda <- NULL - which_lambda <- rlang::arg_match0(df, c("min", "1se")) - lam <- paste0("lambda_", which_lambda) + lam <- rlang::arg_match0(params$df, c("min", "1se")) + which_lambda <- paste0("lambda_", lam) obj <- trendfilter::cv_trendfilter( y, x, k = params$k, error_measure = params$error_measure, nfolds = params$nfolds, family = params$family, lambda = params$lambda, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio ) + f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) } else { - if (!single_lambda || !is.numeric(params$df)) { - cli_abort("If a sequence of `lambda` is used, `df` must be specified.") - } obj <- trendfilter::trendfilter( y, x, k = params$k, family = params$family, lambda = params$lambda, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio ) - lam <- if (single_lambda) obj$lambda else obj$lambda[which.min(abs(df - obj$dof))] + lam <- ifelse(single_lambda, obj$lambda, obj$lambda[which.min(abs(params$df - obj$dof))]) + f <- stats::predict(obj, newx = x0, lambda = lam) } - f <- stats::predict(obj, newx = x0, which_lambda = lam) d <- diff(f) / diff(x0) # Extend by one element d <- c(d, d[length(d)]) diff --git a/tests/testthat/_snaps/growth_rate.md b/tests/testthat/_snaps/growth_rate.md index 81998a0c..982d62b7 100644 --- a/tests/testthat/_snaps/growth_rate.md +++ b/tests/testthat/_snaps/growth_rate.md @@ -79,3 +79,12 @@ Error in `growth_rate()`: ! "smooth_spline" requires 1 `lambda` but more were used. +# trendfilter growth_rate implementation + + Code + growth_rate(y = 1:20, method = "trend_filter", params = growth_rate_global_params( + lambda = 1, df = 4)) + Condition + Error in `growth_rate()`: + ! Only one of "lambda" or "df" may be specified. + diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index 14bcba89..06c95746 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -54,5 +54,57 @@ test_that("new setup args and warnings are as expected", { test_that("trendfilter growth_rate implementation", { skip_if_not_installed("trendfilter", "0.0.2") + # tf with multiple lambdas, no df + expect_length( + growth_rate(y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 20:1)), + 20L + ) + # specifying lambda seq and df (numeric) is ok + expect_length( + growth_rate(y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 20:1, df = 4)), + 20L + ) + # single lambda and fixed df is bad + expect_snapshot( + error = TRUE, + growth_rate(y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 1, df = 4)) + ) + + # other tf args give output (correctness not checked) + z <- rnorm(30) + expect_length(growth_rate(z, method = "trend_filter"), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(lambda = 10) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(df = 14) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(cv = TRUE) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(k = 3) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(nlambda = 10) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(lambda_max = 10) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(lambda_min = 10) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(lambda_min_ratio = .1) + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(error_measure = "mse") + ), 30L) + expect_length(growth_rate( + z, method = "trend_filter", params = growth_rate_global_params(nfolds = 3) + ), 30L) }) From 2f8b06f7732447fddc065200f53a2de9139d70a5 Mon Sep 17 00:00:00 2001 From: dajmcdon Date: Tue, 21 Jan 2025 18:26:51 +0000 Subject: [PATCH 05/31] docs: document (GHA) --- README.md | 54 +++++++++++------------ man/figures/README-unnamed-chunk-7-1.png | Bin 241683 -> 248770 bytes man/growth_rate.Rd | 6 +-- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index af8c24e9..dacc458d 100644 --- a/README.md +++ b/README.md @@ -14,24 +14,24 @@ forecasting. `{epiprocess}` contains: - - `epi_df()` and `epi_archive()`, two data frame classes (that work - like a `{tibble}` with `{dplyr}` verbs) for working with - epidemiological time series data - - `epi_df` is for working with a snapshot of data at a single - point in time - - `epi_archive` is for working with histories of data that changes - over time - - one of the most common uses of `epi_archive` is for accurate - backtesting of forecasting models, see `vignette("backtesting", - package="epipredict")` - - signal processing tools building on these data structures such as - - `epi_slide()` for sliding window operations (aids with feature - creation) - - `epix_slide()` for sliding window operations on archives (aids - with backtesting) - - `growth_rate()` for computing growth rates - - `detect_outlr()` for outlier detection - - `epi_cor()` for computing correlations +- `epi_df()` and `epi_archive()`, two data frame classes (that work like + a `{tibble}` with `{dplyr}` verbs) for working with epidemiological + time series data + - `epi_df` is for working with a snapshot of data at a single point in + time + - `epi_archive` is for working with histories of data that changes + over time + - one of the most common uses of `epi_archive` is for accurate + backtesting of forecasting models, see + `vignette("backtesting", package="epipredict")` +- signal processing tools building on these data structures such as + - `epi_slide()` for sliding window operations (aids with feature + creation) + - `epix_slide()` for sliding window operations on archives (aids with + backtesting) + - `growth_rate()` for computing growth rates + - `detect_outlr()` for outlier detection + - `epi_cor()` for computing correlations If you are new to this set of tools, you may be interested learning through a book format: [Introduction to Epidemiological @@ -39,10 +39,10 @@ Forecasting](https://cmu-delphi.github.io/delphi-tooling-book/). You may also be interested in: - - `{epidatr}`, for accessing wide range of epidemiological data sets, - including COVID-19 data, flu data, and more. - - [rtestim](https://github.com/dajmcdon/rtestim), a package for - estimating the time-varying reproduction number of an epidemic. +- `{epidatr}`, for accessing wide range of epidemiological data sets, + including COVID-19 data, flu data, and more. +- [rtestim](https://github.com/dajmcdon/rtestim), a package for + estimating the time-varying reproduction number of an epidemic. This package is provided by the [Delphi group](https://delphi.cmu.edu/) at Carnegie Mellon University. @@ -101,9 +101,9 @@ df #> # ℹ 2,802 more rows ``` -Convert the data to an epi\_df object and sort by geo\_value and -time\_value. You can work with an `epi_df` like you can with a -`{tibble}` by using `{dplyr}` verbs +Convert the data to an epi_df object and sort by geo_value and +time_value. You can work with an `epi_df` like you can with a `{tibble}` +by using `{dplyr}` verbs ``` r edf <- df %>% @@ -131,7 +131,7 @@ edf ``` Compute the 7 day moving average of the confirmed daily cases for each -geo\_value +geo_value ``` r edf <- edf %>% @@ -156,7 +156,7 @@ edf #> # ℹ 2,802 more rows ``` -Autoplot the confirmed daily cases for each geo\_value +Autoplot the confirmed daily cases for each geo_value ``` r edf %>% diff --git a/man/figures/README-unnamed-chunk-7-1.png b/man/figures/README-unnamed-chunk-7-1.png index 3c40f30a4e2c77d1361aedbbc07d8d9986677fe6..511cf3b0e90837faf14b3c9c73c55af7df7a935d 100644 GIT binary patch literal 248770 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%0DcdAH}y&~t9e>YAh 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

t_z?ZiO?@8}Ba}Sv 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ξ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

(bw+s^oiKc3Kmztx2#I>R^pKJj*>CHJYZ$i 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 diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 5a8c7e43..bc3fdc89 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -6,8 +6,8 @@ \title{Estimate growth rate} \usage{ growth_rate( - x = seq_along(y), y, + x = seq_along(y), x0 = x, method = c("rel_change", "linear_reg", "smooth_spline", "trend_filter"), h = 7, @@ -36,12 +36,12 @@ growth_rate_global_params( ) } \arguments{ +\item{y}{Signal values.} + \item{x}{Design points corresponding to the signal values \code{y}. Default is \code{seq_along(y)} (that is, equally-spaced points from 1 to the length of \code{y}).} -\item{y}{Signal values.} - \item{x0}{Points at which we should estimate the growth rate. Must be a subset of \code{x} (no extrapolation allowed). Default is \code{x}.} From b41b5fbc156331d55ca21c3694930064dd7fd064 Mon Sep 17 00:00:00 2001 From: dajmcdon Date: Tue, 21 Jan 2025 18:27:20 +0000 Subject: [PATCH 06/31] style: styler (GHA) --- R/growth_rate.R | 43 ++++++++-------- tests/testthat/test-growth_rate.R | 82 ++++++++++++++++++++----------- 2 files changed, 73 insertions(+), 52 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index de8f5efa..6fcd5591 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -54,9 +54,9 @@ #' * "trend_filter": uses the estimated derivative at `x0` from polynomial trend #' filtering (a discrete spline) fit to `x` and `y`, via #' [trendfilter::trendfilter()], divided by the fitted value of the discrete -#' spline at `x0`. This method requires the -#' [`{trendfilter}` package](https://github.com/glmgen/trendfilter) -#' to be installed (if it isn't, `method = "rel_change"` will be used and a +#' spline at `x0`. This method requires the +#' [`{trendfilter}` package](https://github.com/glmgen/trendfilter) +#' to be installed (if it isn't, `method = "rel_change"` will be used and a #' warning issued). #' #' ## Log Scale @@ -85,27 +85,27 @@ #' For the global methods, "smooth_spline" and "trend_filter", additional #' arguments can be specified via `params` for the underlying estimation #' function. These additional arguments are -#' passed to [`stats::smooth.spline()`], [`trendfilter::trendfilter()`], or +#' passed to [`stats::smooth.spline()`], [`trendfilter::trendfilter()`], or #' [`trendfilter::cv_trendfilter()`]. The defaults are exactly #' as specified in those functions, except when the arguments are shared -#' between these. These cases are as follows: -#' +#' between these. These cases are as follows: +#' #' * `df`: desired effective degrees of freedom. For "smooth_spline", this must be numeric (or `NULL`) and will #' be passed along to the underlying function. For "trend_filter", if #' `cv = FALSE`, then `df` must be a positive number (integer is most sensible); -#' if `cv = TRUE`, then `df` must be one of "min" or "1se" indicating the +#' if `cv = TRUE`, then `df` must be one of "min" or "1se" indicating the #' selection rule to use #' based on the cross-validation error curve: minimum or 1-standard-error -#' rule, respectively. The default is "min" (going along with the default -#' `cv = TRUE`). -#' * `lambda`: For "smooth_spline", this should be a scalar value or `NULL`. -#' For "trend_filter", this is allowed to also be a vector, as long as either +#' rule, respectively. The default is "min" (going along with the default +#' `cv = TRUE`). +#' * `lambda`: For "smooth_spline", this should be a scalar value or `NULL`. +#' For "trend_filter", this is allowed to also be a vector, as long as either #' `cv = TRUE` or `df` is specified. #' * `cv`: should cross-validation be used to choose an effective degrees of #' freedom for the fit? The default is `FALSE` to match [stats::smooth.spline()]. #' In that case, as in that function, GCV is used instead. #' For :trend_filter", this will be coerced to `TRUE` if neither -#' `df` nor `lambda` are specified (the default). +#' `df` nor `lambda` are specified (the default). #' Note that passing both `df` and a scalar `lambda` will always be an error. #' #' @export @@ -127,9 +127,8 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, "smooth_spline", "trend_filter" ), h = 7, log_scale = FALSE, - dup_rm = FALSE, na_rm = FALSE, - params = growth_rate_global_params() - ) { + dup_rm = FALSE, na_rm = FALSE, + params = growth_rate_global_params()) { # Check x, y, x0 if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") method <- rlang::arg_match(method) @@ -137,8 +136,8 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, if (method == "trend_filter" && !requireNamespace("trendfilter", quietly = TRUE)) { method <- "rel_change" cli_warn(c( - 'The {.pkg trendfilter} package must be installed to use this option.', - i = 'It is available at {.url https://github.com/glmgen/trendfilter}.', + "The {.pkg trendfilter} package must be installed to use this option.", + i = "It is available at {.url https://github.com/glmgen/trendfilter}.", i = 'The computation will proceed using `method = "rel_change"` instead.' )) } @@ -267,7 +266,8 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, lam <- rlang::arg_match0(params$df, c("min", "1se")) which_lambda <- paste0("lambda_", lam) obj <- trendfilter::cv_trendfilter( - y, x, k = params$k, error_measure = params$error_measure, + y, x, + k = params$k, error_measure = params$error_measure, nfolds = params$nfolds, family = params$family, lambda = params$lambda, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio @@ -275,7 +275,7 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) } else { obj <- trendfilter::trendfilter( - y, x, + y, x, k = params$k, family = params$family, lambda = params$lambda, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio @@ -313,8 +313,7 @@ growth_rate_global_params <- function( lambda_min = NULL, lambda_min_ratio = 1e-5, error_measure = c("deviance", "mse", "mae"), - nfolds = 5L -) { + nfolds = 5L) { if (is.character(df)) { df <- rlang::arg_match0(df, c("min", "1se")) cv <- TRUE @@ -335,7 +334,7 @@ growth_rate_global_params <- function( assert_number(lambda_min_ratio, lower = 0, upper = 1) error_measure <- arg_match(error_measure) checkmate::assert_integerish(nfolds, lower = 2, len = 1) - + structure(enlist( df, lambda, cv, # shared by all spar, all.knots, df.offset, penalty, # smooth.spline diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index 06c95746..307850a0 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -6,7 +6,7 @@ test_that("global param constructor errors when required", { expect_false(growth_rate_global_params(df = 10, cv = FALSE)$cv) expect_identical(growth_rate_global_params(df = 10L)$df, 10L) expect_snapshot(error = TRUE, growth_rate_global_params(df = -5)) - + # Make sure that assert_number is len 1 expect_identical(growth_rate_global_params(nlambda = 5L)$nlambda, 5L) expect_snapshot(error = TRUE, growth_rate_global_params(nlambda = 5:8)) @@ -15,39 +15,45 @@ test_that("global param constructor errors when required", { test_that("new setup args and warnings are as expected", { # NaN in log calculation expect_snapshot(growth_rate(-10:10, log_scale = TRUE)) - + # NAs in x or y are removed expect_length(growth_rate(c(1:20, NA, 22:30)), 30L) expect_length(growth_rate(c(1:20, NA, 22:30), na_rm = TRUE), 29L) expect_length(growth_rate(1:30, x = c(1:20, NA, 22:30), na_rm = TRUE), 29L) - + # splines and trendfilter error on NAs expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "smooth_spline")) expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "trend_filter")) expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline")) expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter")) - + # splines with multiple lambdas expect_snapshot( - error = TRUE, - growth_rate(y = c(1:20), method = "smooth_spline", - params = growth_rate_global_params(lambda = 1:20)) + error = TRUE, + growth_rate( + y = c(1:20), method = "smooth_spline", + params = growth_rate_global_params(lambda = 1:20) ) - + ) + # other spline args give output (correctness not checked) z <- rnorm(30) expect_length(growth_rate(z, method = "smooth_spline"), 30L) expect_length(growth_rate( - z, method = "smooth_spline", params = growth_rate_global_params(spar = .5) + z, + method = "smooth_spline", params = growth_rate_global_params(spar = .5) ), 30L) expect_length(growth_rate( - z, method = "smooth_spline", params = growth_rate_global_params(lambda = 10) + z, + method = "smooth_spline", params = growth_rate_global_params(lambda = 10) ), 30L) expect_length(growth_rate( - z, method = "smooth_spline", params = growth_rate_global_params(df = 14) + z, + method = "smooth_spline", params = growth_rate_global_params(df = 14) ), 30L) expect_length(growth_rate( - z, method = "smooth_spline", params = growth_rate_global_params(cv = TRUE) + z, + method = "smooth_spline", params = growth_rate_global_params(cv = TRUE) ), 30L) }) @@ -56,55 +62,71 @@ test_that("trendfilter growth_rate implementation", { skip_if_not_installed("trendfilter", "0.0.2") # tf with multiple lambdas, no df expect_length( - growth_rate(y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 20:1)), + growth_rate( + y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 20:1) + ), 20L ) # specifying lambda seq and df (numeric) is ok expect_length( - growth_rate(y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 20:1, df = 4)), + growth_rate( + y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 20:1, df = 4) + ), 20L ) # single lambda and fixed df is bad expect_snapshot( error = TRUE, - growth_rate(y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 1, df = 4)) + growth_rate( + y = 1:20, method = "trend_filter", + params = growth_rate_global_params(lambda = 1, df = 4) + ) ) - - + + # other tf args give output (correctness not checked) z <- rnorm(30) expect_length(growth_rate(z, method = "trend_filter"), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(lambda = 10) + z, + method = "trend_filter", params = growth_rate_global_params(lambda = 10) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(df = 14) + z, + method = "trend_filter", params = growth_rate_global_params(df = 14) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(cv = TRUE) + z, + method = "trend_filter", params = growth_rate_global_params(cv = TRUE) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(k = 3) + z, + method = "trend_filter", params = growth_rate_global_params(k = 3) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(nlambda = 10) + z, + method = "trend_filter", params = growth_rate_global_params(nlambda = 10) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(lambda_max = 10) + z, + method = "trend_filter", params = growth_rate_global_params(lambda_max = 10) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(lambda_min = 10) + z, + method = "trend_filter", params = growth_rate_global_params(lambda_min = 10) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(lambda_min_ratio = .1) + z, + method = "trend_filter", params = growth_rate_global_params(lambda_min_ratio = .1) ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(error_measure = "mse") + z, + method = "trend_filter", params = growth_rate_global_params(error_measure = "mse") ), 30L) expect_length(growth_rate( - z, method = "trend_filter", params = growth_rate_global_params(nfolds = 3) + z, + method = "trend_filter", params = growth_rate_global_params(nfolds = 3) ), 30L) }) From bbf5a070ac0f147ebcdc49efc665bb061a172d8e Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 21 Jan 2025 10:34:42 -0800 Subject: [PATCH 07/31] slight modifications to the vignette --- vignettes/growth_rate.Rmd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vignettes/growth_rate.Rmd b/vignettes/growth_rate.Rmd index 8f332de3..85955a2b 100644 --- a/vignettes/growth_rate.Rmd +++ b/vignettes/growth_rate.Rmd @@ -81,7 +81,7 @@ the following methods for estimating the growth rate at a given reference point of the spline at `x0`. * "trend_filter": uses the estimated derivative at `x0` from polynomial trend filtering (a discrete spline) fit to `x` and `y`, via - `genlasso::trendfilter()`, divided by the fitted value of the discrete spline + `trendfilter::trendfilter()`, divided by the fitted value of the discrete spline at `x0`. The default in `growth_rate()` is `x0 = x`, so that it returns an estimate of @@ -188,8 +188,8 @@ We can also use a nonparametric method to estimate the derivative, through computationally expensive, but it is also able to adapt better to the local level of smoothness. (The apparent efficiency is actually compounded by the particular implementations and default settings for these methods: -"trend_filter" is based on a full solution path algorithm provided in the -`genlasso` package, and performs cross-validation by default in order to pick +"trend_filter" is based on a sequence of solutions provided in the +`trendfilter` package, and performs cross-validation by default in order to pick the level of regularization; read the documentation for `growth_rate()` more details.) @@ -227,9 +227,9 @@ stable than the estimates from local relative changes and linear regressions. The smoothing spline growth rate estimates are based on the default settings in `stats::smooth.spline()`, and appear severely under-regularized here. Any of the arguments to `stats::smooth.spline()` can be customized by passing them as -additional arguments `...` in the call to `growth_rate()`; similarly, we can +additional arguments to `growth_rate_global_params()`; similarly, we can also use additional arguments to customize the settings in the underlying trend -filtering functions `genlasso::trendfilter()`, `genlasso::cv.trendfilter()`, and +filtering functions `trendfilter::trendfilter()`, `trendfilter::cv_trendfilter()`, and the documentation for `growth_rate()` gives the full details. ## Log scale estimation From 92f3eb0aa6b06531e60cc223192c4f117d25726c Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 21 Jan 2025 10:48:26 -0800 Subject: [PATCH 08/31] add install instructions to vignette --- vignettes/growth_rate.Rmd | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vignettes/growth_rate.Rmd b/vignettes/growth_rate.Rmd index 85955a2b..b653fc97 100644 --- a/vignettes/growth_rate.Rmd +++ b/vignettes/growth_rate.Rmd @@ -193,6 +193,9 @@ particular implementations and default settings for these methods: the level of regularization; read the documentation for `growth_rate()` more details.) +Note: The `trendfilter` package is not automatically installed with `epiprocess`. +To install it from GitHub, you can use `pak::pkg_install("glmgen/trendfilter")`. + ```{r, message = FALSE, warning = FALSE, fig.width = 9, fig.height = 7} x <- x %>% group_by(geo_value) %>% From f2c9383e9a84c8275328ef8b6c16df3331f7210a Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 21 Jan 2025 10:55:02 -0800 Subject: [PATCH 09/31] redocument --- R/growth_rate.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 6fcd5591..dd6bcebc 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -85,8 +85,8 @@ #' For the global methods, "smooth_spline" and "trend_filter", additional #' arguments can be specified via `params` for the underlying estimation #' function. These additional arguments are -#' passed to [`stats::smooth.spline()`], [`trendfilter::trendfilter()`], or -#' [`trendfilter::cv_trendfilter()`]. The defaults are exactly +#' passed to [stats::smooth.spline()], [trendfilter::trendfilter()], or +#' [trendfilter::cv_trendfilter()]. The defaults are exactly #' as specified in those functions, except when the arguments are shared #' between these. These cases are as follows: #' From 0e10f94c5485b92e8e1a5cd8a333555f9f657bb1 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 21 Jan 2025 11:00:06 -0800 Subject: [PATCH 10/31] redocument --- man/epiprocess-package.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/epiprocess-package.Rd b/man/epiprocess-package.Rd index 774d5f8a..fe79c01e 100644 --- a/man/epiprocess-package.Rd +++ b/man/epiprocess-package.Rd @@ -20,6 +20,7 @@ Useful links: Authors: \itemize{ + \item Nat DeFries \item Daniel McDonald \item Evan Ray \item Dmitry Shemetov @@ -30,7 +31,6 @@ Other contributors: \itemize{ \item Jacob Bien [contributor] \item Rafael Catoia [contributor] - \item Nat DeFries [contributor] \item Rachel Lobay [contributor] \item Ken Mawer [contributor] \item Chloe You [contributor] From 5101627286aa33cd271de52520be9fb374483432 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Wed, 22 Jan 2025 16:06:08 -0800 Subject: [PATCH 11/31] add tests, pass checks --- DESCRIPTION | 21 ++- NAMESPACE | 1 + R/growth_rate.R | 187 ++++++++++++++++----------- man/growth_rate.Rd | 38 +----- man/growth_rate_global_params.Rd | 120 +++++++++++++++++ tests/testthat/_snaps/growth_rate.md | 89 ++++++++----- tests/testthat/test-growth_rate.R | 165 +++++++++++++++-------- vignettes/growth_rate.Rmd | 34 ++--- 8 files changed, 428 insertions(+), 227 deletions(-) create mode 100644 man/growth_rate_global_params.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 09150db7..8a31e7e5 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ -Package: epiprocess Type: Package +Package: epiprocess Title: Tools for basic signal processing in epidemiology Version: 0.10.2 Authors@R: c( @@ -23,17 +23,17 @@ Authors@R: c( person("Posit", role = "cph", comment = "Copyright holder of included rlang fragments"), person("Johns Hopkins University Center for Systems Science and Engineering", role = "dtc", - comment = "Owner of COVID-19 cases and deaths data from the COVID-19 Data Repository"), + comment = "Owner of COVID-19 cases and deaths data from the COVID-19 Data Repository"), person("Johns Hopkins University", role = "cph", - comment = "Copyright holder of COVID-19 cases and deaths data from the COVID-19 Data Repository"), + comment = "Copyright holder of COVID-19 cases and deaths data from the COVID-19 Data Repository"), person("Carnegie Mellon University Delphi Group", role = "dtc", - comment = "Owner of claims-based CLI data from the Delphi Epidata API") + comment = "Owner of claims-based CLI data from the Delphi Epidata API") ) -Description: This package introduces common data structures for working with - epidemiological data reported by location and time and offers associated - utilities to perform basic signal processing tasks. The package is designed - to be used in conjunction with `epipredict` for building and evaluating - epidemiological models. +Description: This package introduces common data structures for working + with epidemiological data reported by location and time and offers + associated utilities to perform basic signal processing tasks. The + package is designed to be used in conjunction with `epipredict` for + building and evaluating epidemiological models. License: MIT + file LICENSE URL: https://cmu-delphi.github.io/epiprocess/ Depends: @@ -44,7 +44,6 @@ Imports: cli, data.table, dplyr (>= 1.1.0), - epidatasets, ggplot2, glue, lifecycle (>= 1.0.1), @@ -63,13 +62,13 @@ Imports: Suggests: devtools, epidatr, - trendfilter, here, knitr, outbreaks, readr, rmarkdown, testthat (>= 3.1.5), + trendfilter, withr VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index 734d02fa..ced43945 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -81,6 +81,7 @@ export(group_by) export(group_epi_df) export(group_modify) export(growth_rate) +export(growth_rate_global_params) export(guess_period) export(is_epi_df) export(is_grouped_epi_archive) diff --git a/R/growth_rate.R b/R/growth_rate.R index dd6bcebc..637727ab 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -10,7 +10,7 @@ #' `y`). #' @param y Signal values. #' @param x0 Points at which we should estimate the growth rate. Must be a -#' subset of `x` (no extrapolation allowed). Default is `x`. +#' contained in the range of `x` (no extrapolation allowed). Default is `x`. #' @param method Either "rel_change", "linear_reg", "smooth_spline", or #' "trend_filter", indicating the method to use for the growth rate #' calculation. The first two are local methods: they are run in a sliding @@ -21,10 +21,6 @@ #' "linear_reg". See details for more explanation. #' @param log_scale Should growth rates be estimated using the parametrization #' on the log scale? See details for an explanation. Default is `FALSE`. -#' @param dup_rm Should we check and remove duplicates in `x` (and corresponding -#' elements of `y`) before the computation? Some methods might handle -#' duplicate `x` values gracefully, whereas others might fail (either quietly -#' or loudly). Default is `FALSE`. #' @param na_rm Should missing values be removed before the computation? Default #' is `FALSE`. #' @param params Additional arguments to pass to the method used to estimate the @@ -115,24 +111,34 @@ #' group_by(geo_value) %>% #' mutate(cases_gr = growth_rate(x = time_value, y = cases)) #' -#' # Log scale, degree 3 polynomial and 5-fold cross validation +#' # Degree 3 polynomial and 5-fold cross validation on the log scale +#' # some locations report 0 cases, so we replace these with 1 #' cases_deaths_subset %>% #' group_by(geo_value) %>% #' mutate(gr_poly = growth_rate( -#' x = time_value, y = cases, method = "trend_filter", log_scale = TRUE +#' x = time_value, y = pmax(cases, 1), method = "trend_filter", +#' log_scale = TRUE, na_rm = TRUE #' )) -growth_rate <- function(y, x = seq_along(y), x0 = x, - method = c( - "rel_change", "linear_reg", - "smooth_spline", "trend_filter" - ), - h = 7, log_scale = FALSE, - dup_rm = FALSE, na_rm = FALSE, - params = growth_rate_global_params()) { +growth_rate <- function( + y, x = seq_along(y), x0 = x, + method = c("rel_change", "linear_reg", "smooth_spline", "trend_filter"), + h = 7, log_scale = FALSE, na_rm = FALSE, + params = growth_rate_global_params() +) { # Check x, y, x0 if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") method <- rlang::arg_match(method) assert_class(params, "growth_rate_params") + if (any(is.na(x)) || any(is.na(x0))) { + cli_abort("Neither `x` nor `x0` may contain `NA`s.") + } + dups <- duplicated(x) + if (any(dups)) { + cli_abort( + "`x` contains duplicate values. (If being run on a + column in an `epi_df`, did you group by relevant key variables?)" + ) + } if (method == "trend_filter" && !requireNamespace("trendfilter", quietly = TRUE)) { method <- "rel_change" cli_warn(c( @@ -143,43 +149,35 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, } # Arrange in increasing order of x + if (min(x0) < min(x) || max(x0) > max(x)) { + cli_abort("`x0` must be contained in `[min(x), max(x)]`.") + } o <- order(x) x <- x[o] y <- y[o] - + n <- length(y) + x0 <- sort(x0) + # Convert to log(y) if we need to y <- as.numeric(y) if (log_scale) { if (any(y <= 0)) { - cli_warn("`y` contains 0 or negative values. Taking logs may produce strange results.") + cli_warn("`y` contains 0 or negative values. Taking logs may produce + strange results.") } y <- suppressWarnings(log(y)) } - # Remove duplicates if we need to - if (dup_rm) { - o <- !duplicated(x) - if (any(!o)) { - cli_warn( - "`x` contains duplicate values. (If being run on a - column in an `epi_df`, did you group by relevant key variables?)" - ) - } - x <- x[o] - y <- y[o] + if (!is.finite(y[1]) || !is.finite(y[n])) { + cli_abort("Either the first or last `y` values are not finite. This may be + due to `log_scale = TRUE`.") } - - # Remove NAs if we need to - if (na_rm) { - o <- !(is.na(x) | is.na(y)) - x <- x[o] - y <- y[o] - } - - # Useful indices for later - if (!all(x0 %in% x)) cli_abort("`x0` must be a subset of `x`.") - i0 <- x %in% x0 - + good_obs <- (!is.na(y) | !na_rm) & is.finite(y) + x <- x[good_obs] + y <- y[good_obs] + x <- as.numeric(x) + x0 <- as.numeric(x0) + # Local methods if (method == "rel_change" || method == "linear_reg") { g <- purrr::map_dbl(x, function(x_ref) { @@ -217,14 +215,11 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, } } }) - return(g[i0]) + return(stats::approx(x, g, x0)$y) } # Global methods if (method == "smooth_spline" || method == "trend_filter") { - # Convert to numerics - x <- as.numeric(x) - x0 <- as.numeric(x0) if (any(is.na(x) | is.na(y) | !is.finite(x) | !is.finite(y))) { cli_abort(c( "{.val {method}} requires all real values without missingness.", @@ -233,7 +228,6 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, )) } - # Smoothing spline if (method == "smooth_spline") { if (is.character(params$df)) params$df <- NULL if (length(params$lambda) > 1L) { @@ -250,21 +244,10 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, return(d0 / f0) } } else { # Trend filtering - cv <- params$cv - single_lambda <- is.numeric(params$lambda) & length(params$lambda) == 1L - lambda_seq <- is.numeric(params$lambda) & length(params$lambda) > 1L - if (is.null(params$df) && lambda_seq) { - cv <- TRUE - params$df <- "min" - } else if (is.numeric(params$df) && single_lambda) { - cli_abort("Only one of {.val lambda} or {.val df} may be specified.") - } - # Estimate growth rate and return - if (cv) { - if (!is.character(params$df)) params$df <- "min" - if (length(params$lambda) == 1L) params$lambda <- NULL - lam <- rlang::arg_match0(params$df, c("min", "1se")) - which_lambda <- paste0("lambda_", lam) + params <- parse_trendfilter_params(params) + sdy <- stats::sd(y) # speeds computation significantly + y <- y / sdy + if (params$cv) { obj <- trendfilter::cv_trendfilter( y, x, k = params$k, error_measure = params$error_measure, @@ -272,7 +255,9 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio ) - f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) + lam <- params$df + which_lambda <- paste0("lambda_", lam) + f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) * sdy } else { obj <- trendfilter::trendfilter( y, x, @@ -280,10 +265,11 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio ) + single_lambda <- length(obj$lambda == 1L) lam <- ifelse(single_lambda, obj$lambda, obj$lambda[which.min(abs(params$df - obj$dof))]) - f <- stats::predict(obj, newx = x0, lambda = lam) + f <- stats::predict(obj, newx = x0, lambda = lam) * sdy } - + d <- diff(f) / diff(x0) # Extend by one element d <- c(d, d[length(d)]) @@ -296,8 +282,34 @@ growth_rate <- function(y, x = seq_along(y), x0 = x, } } +#' Optional parameters for global growth rate methods +#' +#' Construct an object containing non-standard arguments for [growth_rate()]. +#' +#' @param df Numeric or NULL for "smooth_spline". May also be one of "min" or +#' "max" in the case of "trend_filter". The desired equivalent number of +#' degrees of freedom of the fit. Lower values give smoother estimates. +#' @param lambda The desired smoothing parameter. For "smooth_spline", this +#' can be specified instead of `spar`. For "trend_filter", this sequence +#' determines the balance between data fidelity and smoothness of the +#' estimated curve; larger `lambda` results in a smoother estimate. The +#' default, `NULL` results in an automatic computation based on `nlambda`, +#' the largest value of `lambda` that would result in a maximally smooth +#' estimate, and `lambda_min_ratio`. Supplying a value of `lambda` overrides +#' this behaviour. +#' @param cv For "smooth_spline", ordinary leave-one-out (`TRUE`) or ‘generalized’ +#' cross-validation (GCV) when `FALSE`; is used for smoothing parameter computation +#' only when both `spar` and `df` are not specified. For "trend_filter", +#' `cv` determines whether or not cross-validation is used to choose the +#' tuning parameter. If `FALSE`, then the user must specify either `lambda` +#' or `df`. +#' @inheritParams stats::smooth.spline +#' @inheritParams trendfilter::trendfilter +#' @inheritParams trendfilter::cv_trendfilter +#' +#' @return A list of parameter configurations. #' @importFrom checkmate assert_number -#' @describeIn growth_rate Optional parameters for global growth rate methods +#' @export growth_rate_global_params <- function( df = NULL, lambda = NULL, @@ -306,20 +318,16 @@ growth_rate_global_params <- function( all.knots = FALSE, df.offset = 0, penalty = 1, - k = 2L, + k = 3L, family = c("gaussian", "logistic", "poisson"), nlambda = 50L, lambda_max = NULL, lambda_min = NULL, lambda_min_ratio = 1e-5, error_measure = c("deviance", "mse", "mae"), - nfolds = 5L) { - if (is.character(df)) { - df <- rlang::arg_match0(df, c("min", "1se")) - cv <- TRUE - } else { - assert_number(df, lower = 0, null.ok = TRUE, finite = TRUE) - } + nfolds = 3L) { + if (is.character(df)) df <- rlang::arg_match0(df, c("min", "1se")) + else assert_number(df, lower = 0, null.ok = TRUE, finite = TRUE) assert_number(spar, null.ok = TRUE, finite = TRUE) assert_numeric(lambda, lower = 0, null.ok = TRUE, finite = TRUE) assert_logical(cv, len = 1) @@ -345,5 +353,38 @@ growth_rate_global_params <- function( #' @export print.growth_rate_params <- function(x, ...) { - str(x, give.attr = FALSE) + utils::str(x, give.attr = FALSE) } + +parse_trendfilter_params <- function(params) { + assert_class(params, "growth_rate_params") + vec_lambda <- checkmate::test_numeric(params$lambda, min.len = 2L, null.ok = TRUE) + df_cv <- checkmate::test_character(params$df, null.ok = TRUE) + if (df_cv && vec_lambda) { + params$cv <- TRUE # Turn CV on (or leave it on) + params$df <- params$df %||% "min" # use the original arg or provide the minimizer + return(params) + } + if (params$cv) { # CV = TRUE on input but conflicts with other custom args + cli_abort( + "When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be + `NULL` or a vector." + ) + } else { # CV should stay FALSE + if (!vec_lambda) { + if (is.character(params$df)) { + cli_abort( + "`df` a character implies using CV, but also setting `lambda` to a + single value implies no CV." + ) + } + if (is.numeric(params$df)) { + cli_abort("`df` and `lambda` cannot both be scalars.") + } + } + } + # If we got here, we fit TF. There are two possibilities: + # 1. df is NULL and lambda is a scalar + # 2. df is numeric and lambda is either NULL or a vector (vec_lambda = TRUE) + return(params) +} \ No newline at end of file diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index bc3fdc89..40a6d29f 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -2,7 +2,6 @@ % Please edit documentation in R/growth_rate.R \name{growth_rate} \alias{growth_rate} -\alias{growth_rate_global_params} \title{Estimate growth rate} \usage{ growth_rate( @@ -12,28 +11,9 @@ growth_rate( method = c("rel_change", "linear_reg", "smooth_spline", "trend_filter"), h = 7, log_scale = FALSE, - dup_rm = FALSE, na_rm = FALSE, params = growth_rate_global_params() ) - -growth_rate_global_params( - df = NULL, - lambda = NULL, - cv = FALSE, - spar = NULL, - all.knots = FALSE, - df.offset = 0, - penalty = 1, - k = 2L, - family = c("gaussian", "logistic", "poisson"), - nlambda = 50L, - lambda_max = NULL, - lambda_min = NULL, - lambda_min_ratio = 1e-05, - error_measure = c("deviance", "mse", "mae"), - nfolds = 5L -) } \arguments{ \item{y}{Signal values.} @@ -43,7 +23,7 @@ growth_rate_global_params( \code{y}).} \item{x0}{Points at which we should estimate the growth rate. Must be a -subset of \code{x} (no extrapolation allowed). Default is \code{x}.} +contained in the range of \code{x} (no extrapolation allowed). Default is \code{x}.} \item{method}{Either "rel_change", "linear_reg", "smooth_spline", or "trend_filter", indicating the method to use for the growth rate @@ -58,11 +38,6 @@ the entire sequence. See details for more explanation.} \item{log_scale}{Should growth rates be estimated using the parametrization on the log scale? See details for an explanation. Default is \code{FALSE}.} -\item{dup_rm}{Should we check and remove duplicates in \code{x} (and corresponding -elements of \code{y}) before the computation? Some methods might handle -duplicate \code{x} values gracefully, whereas others might fail (either quietly -or loudly). Default is \code{FALSE}.} - \item{na_rm}{Should missing values be removed before the computation? Default is \code{FALSE}.} @@ -159,21 +134,18 @@ Note that passing both \code{df} and a scalar \code{lambda} will always be an er } } } -\section{Functions}{ -\itemize{ -\item \code{growth_rate_global_params()}: Optional parameters for global growth rate methods - -}} \examples{ # COVID cases growth rate by state using default method relative change cases_deaths_subset \%>\% group_by(geo_value) \%>\% mutate(cases_gr = growth_rate(x = time_value, y = cases)) -# Log scale, degree 3 polynomial and 5-fold cross validation +# Degree 3 polynomial and 5-fold cross validation on the log scale +# some locations report 0 cases, so we replace these with 1 cases_deaths_subset \%>\% group_by(geo_value) \%>\% mutate(gr_poly = growth_rate( - x = time_value, y = cases, method = "trend_filter", log_scale = TRUE + x = time_value, y = pmax(cases, 1), method = "trend_filter", + log_scale = TRUE, na_rm = TRUE )) } diff --git a/man/growth_rate_global_params.Rd b/man/growth_rate_global_params.Rd new file mode 100644 index 00000000..191f309f --- /dev/null +++ b/man/growth_rate_global_params.Rd @@ -0,0 +1,120 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/growth_rate.R +\name{growth_rate_global_params} +\alias{growth_rate_global_params} +\title{Optional parameters for global growth rate methods} +\usage{ +growth_rate_global_params( + df = NULL, + lambda = NULL, + cv = FALSE, + spar = NULL, + all.knots = FALSE, + df.offset = 0, + penalty = 1, + k = 3L, + family = c("gaussian", "logistic", "poisson"), + nlambda = 50L, + lambda_max = NULL, + lambda_min = NULL, + lambda_min_ratio = 1e-05, + error_measure = c("deviance", "mse", "mae"), + nfolds = 3L +) +} +\arguments{ +\item{df}{Numeric or NULL for "smooth_spline". May also be one of "min" or +"max" in the case of "trend_filter". The desired equivalent number of +degrees of freedom of the fit. Lower values give smoother estimates.} + +\item{lambda}{The desired smoothing parameter. For "smooth_spline", this +can be specified instead of \code{spar}. For "trend_filter", this sequence +determines the balance between data fidelity and smoothness of the +estimated curve; larger \code{lambda} results in a smoother estimate. The +default, \code{NULL} results in an automatic computation based on \code{nlambda}, +the largest value of \code{lambda} that would result in a maximally smooth +estimate, and \code{lambda_min_ratio}. Supplying a value of \code{lambda} overrides +this behaviour.} + +\item{cv}{For "smooth_spline", ordinary leave-one-out (\code{TRUE}) or ‘generalized’ +cross-validation (GCV) when \code{FALSE}; is used for smoothing parameter computation +only when both \code{spar} and \code{df} are not specified. For "trend_filter", +\code{cv} determines whether or not cross-validation is used to choose the +tuning parameter. If \code{FALSE}, then the user must specify either \code{lambda} +or \code{df}.} + +\item{spar}{smoothing parameter, typically (but not necessarily) in + \eqn{(0,1]}. When \code{spar} is specified, the coefficient + \eqn{\lambda} of the integral of the squared second derivative in the + fit (penalized log likelihood) criterion is a monotone function of + \code{spar}, see the details below. Alternatively \code{lambda} may + be specified instead of the \emph{scale free} \code{spar}=\eqn{s}.} + +\item{all.knots}{if \code{TRUE}, all distinct points in \code{x} are used + as knots. If \code{FALSE} (default), a subset of \code{x[]} is used, + specifically \code{x[j]} where the \code{nknots} indices are evenly + spaced in \code{1:n}, see also the next argument \code{nknots}. + + Alternatively, a strictly increasing \code{\link{numeric}} vector + specifying \dQuote{all the knots} to be used; must be rescaled + to \eqn{[0, 1]} already such that it corresponds to the + \code{ans $ fit$knots} sequence returned, not repeating the boundary + knots.} + +\item{df.offset}{allows the degrees of freedom to be increased by + \code{df.offset} in the GCV criterion.} + +\item{penalty}{the coefficient of the penalty for degrees of freedom + in the GCV criterion.} + +\item{k}{Integer. Degree of the piecewise polynomial curve to be +estimated. For example, \code{k = 0} corresponds to a piecewise constant +curve.} + +\item{family}{Character or function. Specifies the loss function +to use. Valid options are: +\itemize{ +\item \code{"gaussian"} - least squares loss (the default), +\item \code{"binomial"} - logistic loss (classification), +\item \code{"poisson"} - Poisson loss for count data +} + +For any other type, a valid \code{\link[stats:family]{stats::family()}} object may be passed. Note +that these will generally be much slower to estimate than the built-in +options passed as strings. So for example, \code{family = "gaussian"} and +\code{family = gaussian()} will produce the same results, but the first +will be much faster.character.} + +\item{nlambda}{Integer. Number of lambda values to use in the sequence.} + +\item{lambda_max}{Optional value for the largest \code{lambda} to use.} + +\item{lambda_min}{Optional value for the smallest \code{lambda} to use (> 0).} + +\item{lambda_min_ratio}{If neither \code{lambda} nor \code{lambda_min} is specified, +\code{lambda_min = lambda_max * lambda_min_ratio}. +A very small value will lead to the solution \code{theta = y} (for the Gaussian +loss). This argument has no effect if there is a user-defined \code{lambda} +sequence.} + +\item{error_measure}{Metric used to calculate cross validation scores. May +be \code{mse}, \code{mae}, or \code{deviance}.} + +\item{nfolds}{Integer. The number of folds to use. For leave-vth-out cross +validation, every vth \code{y} value and its corresponding position (and weight) +are placed into the same fold. The first and last observations are not +assigned to any folds. This value must be at least 2. As an example, with +15 data points and \code{nfolds = 4}, the points are assigned to folds in the +following way: +\deqn{ + 0 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 0 + }{0 1 2 3 4 1 2 3 4 1 2 3 4 1 0} where 0 indicates no assignment. +Therefore, the folds are not random and running \code{cv_trendfilter()} twice +will give the same result.} +} +\value{ +A list of parameter configurations. +} +\description{ +Construct an object containing non-standard arguments for \code{\link[=growth_rate]{growth_rate()}}. +} diff --git a/tests/testthat/_snaps/growth_rate.md b/tests/testthat/_snaps/growth_rate.md index 982d62b7..80f72edd 100644 --- a/tests/testthat/_snaps/growth_rate.md +++ b/tests/testthat/_snaps/growth_rate.md @@ -17,74 +17,93 @@ # new setup args and warnings are as expected Code - growth_rate(-10:10, log_scale = TRUE) + growth_rate(y = -10:10, log_scale = TRUE) Condition Warning: `y` contains 0 or negative values. Taking logs may produce strange results. - Output - [1] NaN NaN NaN NaN NaN NaN NaN - [8] NaN NaN NaN NaN NaN NaN NaN - [15] NaN NaN Inf 0.1950407 0.1633248 0.1431934 NaN + Error in `growth_rate()`: + ! Either the first or last `y` values are not finite. This may be due to `log_scale = TRUE`. --- Code - growth_rate(c(1:20, NA, 22:30), method = "smooth_spline") + growth_rate(y = -10:10, log_scale = TRUE, method = "smooth_spline") Condition + Warning: + `y` contains 0 or negative values. Taking logs may produce strange results. Error in `growth_rate()`: - ! "smooth_spline" requires all real values without missingness. - i Set `na_rm = TRUE` and / or check for infinite values. - i Using `log_scale = TRUE` may induce either case. + ! Either the first or last `y` values are not finite. This may be due to `log_scale = TRUE`. --- Code - growth_rate(c(1:20, NA, 22:30), method = "trend_filter") + growth_rate(y = 1:30, x = c(1:20, NA, 22:30), na_rm = TRUE) Condition Error in `growth_rate()`: - ! "trend_filter" requires all real values without missingness. - i Set `na_rm = TRUE` and / or check for infinite values. - i Using `log_scale = TRUE` may induce either case. + ! Neither `x` nor `x0` may contain `NA`s. --- Code - growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline") + growth_rate(y = 1:20, method = "smooth_spline", params = growth_rate_global_params( + lambda = 1:20)) Condition - Warning: - `y` contains 0 or negative values. Taking logs may produce strange results. Error in `growth_rate()`: - ! "smooth_spline" requires all real values without missingness. - i Set `na_rm = TRUE` and / or check for infinite values. - i Using `log_scale = TRUE` may induce either case. + ! "smooth_spline" requires 1 `lambda` but more were used. + +# parser sees all cases + + Code + parse_trendfilter_params(l) + Condition + Error in `parse_trendfilter_params()`: + ! When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be `NULL` or a vector. --- Code - growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter") + parse_trendfilter_params(l) Condition - Warning: - `y` contains 0 or negative values. Taking logs may produce strange results. - Error in `growth_rate()`: - ! "trend_filter" requires all real values without missingness. - i Set `na_rm = TRUE` and / or check for infinite values. - i Using `log_scale = TRUE` may induce either case. + Error in `parse_trendfilter_params()`: + ! When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be `NULL` or a vector. --- Code - growth_rate(y = c(1:20), method = "smooth_spline", params = growth_rate_global_params( - lambda = 1:20)) + parse_trendfilter_params(l) Condition - Error in `growth_rate()`: - ! "smooth_spline" requires 1 `lambda` but more were used. + Error in `parse_trendfilter_params()`: + ! When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be `NULL` or a vector. -# trendfilter growth_rate implementation +--- Code - growth_rate(y = 1:20, method = "trend_filter", params = growth_rate_global_params( - lambda = 1, df = 4)) + parse_trendfilter_params(l) Condition - Error in `growth_rate()`: - ! Only one of "lambda" or "df" may be specified. + Error in `parse_trendfilter_params()`: + ! When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be `NULL` or a vector. + +--- + + Code + parse_trendfilter_params(l) + Condition + Error in `parse_trendfilter_params()`: + ! When `cv = TRUE`, `df` must be `NULL` or character and `lambda` must be `NULL` or a vector. + +--- + + Code + parse_trendfilter_params(l) + Condition + Error in `parse_trendfilter_params()`: + ! `df` a character implies using CV, but also setting `lambda` to a single value implies no CV. + +--- + + Code + parse_trendfilter_params(l) + Condition + Error in `parse_trendfilter_params()`: + ! `df` and `lambda` cannot both be scalars. diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index 307850a0..af7c933e 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -1,7 +1,5 @@ test_that("global param constructor errors when required", { # Check the tree when there is parameter dependency - expect_true(growth_rate_global_params(df = "min", cv = FALSE)$cv) - expect_true(growth_rate_global_params(df = "1se", cv = FALSE)$cv) expect_identical(growth_rate_global_params(df = "1se")$df, "1se") expect_false(growth_rate_global_params(df = 10, cv = FALSE)$cv) expect_identical(growth_rate_global_params(df = 10L)$df, 10L) @@ -14,119 +12,182 @@ test_that("global param constructor errors when required", { test_that("new setup args and warnings are as expected", { # NaN in log calculation - expect_snapshot(growth_rate(-10:10, log_scale = TRUE)) + expect_snapshot(error = TRUE, growth_rate(y = -10:10, log_scale = TRUE)) + expect_snapshot(error = TRUE, growth_rate(y = -10:10, log_scale = TRUE, method = "smooth_spline")) # NAs in x or y are removed - expect_length(growth_rate(c(1:20, NA, 22:30)), 30L) - expect_length(growth_rate(c(1:20, NA, 22:30), na_rm = TRUE), 29L) - expect_length(growth_rate(1:30, x = c(1:20, NA, 22:30), na_rm = TRUE), 29L) + expect_length(growth_rate(y = c(1:20, NA, 22:30)), 30L) + expect_length(growth_rate(y = c(1:20, NA, 22:30), na_rm = TRUE), 30L) + expect_snapshot(error = TRUE, growth_rate(y = 1:30, x = c(1:20, NA, 22:30), na_rm = TRUE)) # splines and trendfilter error on NAs - expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "smooth_spline")) - expect_snapshot(error = TRUE, growth_rate(c(1:20, NA, 22:30), method = "trend_filter")) - expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline")) - expect_snapshot(error = TRUE, growth_rate(c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter")) + expect_length(growth_rate(y = c(1:20, NA, 22:30), method = "smooth_spline"), 30L) + expect_length(growth_rate(y = c(1:20, NA, 22:30), method = "trend_filter"), 30L) + expect_warning(growth_rate(y = c(1:20, -5, 22:30), log_scale = TRUE, method = "smooth_spline")) + expect_warning(growth_rate(y = c(1:20, -5, 22:30), log_scale = TRUE, method = "trend_filter")) # splines with multiple lambdas expect_snapshot( error = TRUE, growth_rate( - y = c(1:20), method = "smooth_spline", + y = 1:20, method = "smooth_spline", params = growth_rate_global_params(lambda = 1:20) ) ) # other spline args give output (correctness not checked) z <- rnorm(30) - expect_length(growth_rate(z, method = "smooth_spline"), 30L) + expect_length(growth_rate(y = z, method = "smooth_spline"), 30L) expect_length(growth_rate( - z, + y = z, method = "smooth_spline", params = growth_rate_global_params(spar = .5) ), 30L) expect_length(growth_rate( - z, + y = z, method = "smooth_spline", params = growth_rate_global_params(lambda = 10) ), 30L) expect_length(growth_rate( - z, + y = z, method = "smooth_spline", params = growth_rate_global_params(df = 14) ), 30L) expect_length(growth_rate( - z, + y = z, method = "smooth_spline", params = growth_rate_global_params(cv = TRUE) ), 30L) }) - -test_that("trendfilter growth_rate implementation", { +test_that("parser sees all cases", { skip_if_not_installed("trendfilter", "0.0.2") - # tf with multiple lambdas, no df - expect_length( - growth_rate( - y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 20:1) - ), - 20L + # 18 total cases + # lambda = NULL, scalar, vector + # df = NULL, character, numeric + # cv = T/F + + grab_l <- function(l) list(cv = l$cv, df = l$df, lambda = l$lambda) + + # CV TRUE + l <- growth_rate_global_params(cv = TRUE) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "min", lambda = NULL) ) - # specifying lambda seq and df (numeric) is ok - expect_length( - growth_rate( - y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 20:1, df = 4) - ), - 20L + l <- growth_rate_global_params(cv = TRUE, df = "1se") + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "1se", lambda = NULL) ) - # single lambda and fixed df is bad - expect_snapshot( - error = TRUE, - growth_rate( - y = 1:20, method = "trend_filter", - params = growth_rate_global_params(lambda = 1, df = 4) - ) + l <- growth_rate_global_params(cv = TRUE, df = "min", lambda = 1:5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "min", lambda = 1:5) ) + l <- growth_rate_global_params(cv = TRUE, lambda = 1:5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "min", lambda = 1:5) + ) + l <- growth_rate_global_params(cv = TRUE, lambda = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + l <- growth_rate_global_params(cv = TRUE, df = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + l <- growth_rate_global_params(cv = TRUE, df = 1, lambda = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + l <- growth_rate_global_params(cv = TRUE, df = "min", lambda = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + l <- growth_rate_global_params(cv = TRUE, df = 1, lambda = 1:5) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + + # CV = FALSE (the default) + # 5 Cases where we turn CV on + l <- growth_rate_global_params(df = "1se") + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "1se", lambda = NULL) + ) + l <- growth_rate_global_params(df = "1se", lambda = 1:5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "1se", lambda = 1:5) + ) + l <- growth_rate_global_params(lambda = 1:5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = TRUE, df = "min", lambda = 1:5) + ) + expect_identical( + grab_l(parse_trendfilter_params(growth_rate_global_params())), + list(cv = TRUE, df = "min", lambda = NULL) + ) + # 3 cases where CV stays False + l <- growth_rate_global_params(lambda = 1) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = FALSE, df = NULL, lambda = 1) + ) + l <- growth_rate_global_params(df = 5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = FALSE, df = 5, lambda = NULL) + ) + l <- growth_rate_global_params(df = 5, lambda = 1:5) + expect_identical( + grab_l(parse_trendfilter_params(l)), + list(cv = FALSE, df = 5, lambda = 1:5) + ) + + # 2 error cases + l <- growth_rate_global_params(df = "min", lambda = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + l <- growth_rate_global_params(df = 1, lambda = 1) + expect_snapshot(error = TRUE, parse_trendfilter_params(l)) + + +}) - - # other tf args give output (correctness not checked) +test_that("trendfilter growth_rate implementation", { + skip_if_not_installed("trendfilter", "0.0.2") + + # various tf args give output (correctness not checked) z <- rnorm(30) - expect_length(growth_rate(z, method = "trend_filter"), 30L) + expect_length(growth_rate(y = z, method = "trend_filter"), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(lambda = 10) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(df = 14) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(cv = TRUE) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(k = 3) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(nlambda = 10) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(lambda_max = 10) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(lambda_min = 10) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(lambda_min_ratio = .1) ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(error_measure = "mse") ), 30L) expect_length(growth_rate( - z, + y = z, method = "trend_filter", params = growth_rate_global_params(nfolds = 3) ), 30L) }) diff --git a/vignettes/growth_rate.Rmd b/vignettes/growth_rate.Rmd index e5d69982..fa3ef58b 100644 --- a/vignettes/growth_rate.Rmd +++ b/vignettes/growth_rate.Rmd @@ -99,7 +99,7 @@ the computed growth rates. ```{r} x <- x %>% group_by(geo_value) %>% - mutate(cases_gr1 = growth_rate(time_value, cases)) + mutate(cases_gr1 = growth_rate(cases)) head(x, 10) ``` @@ -162,7 +162,7 @@ but thankfully avoids some of the troublesome spikes: ```{r, message = FALSE, warning = FALSE, fig.width = 9, fig.height = 7} x <- x %>% group_by(geo_value) %>% - mutate(cases_gr2 = growth_rate(time_value, cases, method = "linear_reg")) + mutate(cases_gr2 = growth_rate(cases, method = "linear_reg")) x %>% pivot_longer( @@ -191,7 +191,7 @@ level of smoothness. (The apparent efficiency is actually compounded by the particular implementations and default settings for these methods: "trend_filter" is based on a sequence of solutions provided in the `trendfilter` package, and performs cross-validation by default in order to pick -the level of regularization; read the documentation for `growth_rate()` more +the level of regularization; read the documentation for `growth_rate()` for more details.) Note: The `trendfilter` package is not automatically installed with `epiprocess`. @@ -201,8 +201,8 @@ To install it from GitHub, you can use `pak::pkg_install("glmgen/trendfilter")`. x <- x %>% group_by(geo_value) %>% mutate( - cases_gr3 = growth_rate(time_value, cases, method = "smooth_spline"), - cases_gr4 = growth_rate(time_value, cases, method = "trend_filter") + cases_gr3 = growth_rate(cases, method = "smooth_spline"), + cases_gr4 = growth_rate(cases, method = "trend_filter") ) x %>% @@ -250,29 +250,17 @@ the call to `growth_rate()`. x <- x %>% group_by(geo_value) %>% mutate( - cases_gr5 = growth_rate(time_value, cases, - method = "rel_change", - log_scale = TRUE - ), - cases_gr6 = growth_rate(time_value, cases, - method = "linear_reg", - log_scale = TRUE - ), - cases_gr7 = growth_rate(time_value, cases, - method = "smooth_spline", - log_scale = TRUE - ), - cases_gr8 = growth_rate(time_value, cases, - method = "trend_filter", - log_scale = TRUE - ) + cases_gr5 = growth_rate(cases, method = "rel_change", log_scale = TRUE), + cases_gr6 = growth_rate(cases, method = "linear_reg", log_scale = TRUE), + cases_gr7 = growth_rate(cases, method = "smooth_spline", log_scale = TRUE), + cases_gr8 = growth_rate(cases, method = "trend_filter", log_scale = TRUE) ) x %>% select(geo_value, time_value, cases_gr5, cases_gr6) %>% pivot_longer( - cols = starts_with("cases_gr"), - names_to = "method", + cols = starts_with("cases_gr"), + names_to = "method", values_to = "gr" ) %>% mutate(method = recode(method, From 6d7091cbdde3f82ee4ebaf3c84675cc0fda705c2 Mon Sep 17 00:00:00 2001 From: dajmcdon Date: Thu, 23 Jan 2025 00:15:46 +0000 Subject: [PATCH 12/31] style: styler (GHA) --- R/growth_rate.R | 36 ++++++++++++++++--------------- tests/testthat/test-growth_rate.R | 26 +++++++++++----------- vignettes/growth_rate.Rmd | 4 ++-- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 637727ab..1df95712 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -123,8 +123,7 @@ growth_rate <- function( y, x = seq_along(y), x0 = x, method = c("rel_change", "linear_reg", "smooth_spline", "trend_filter"), h = 7, log_scale = FALSE, na_rm = FALSE, - params = growth_rate_global_params() -) { + params = growth_rate_global_params()) { # Check x, y, x0 if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") method <- rlang::arg_match(method) @@ -157,12 +156,12 @@ growth_rate <- function( y <- y[o] n <- length(y) x0 <- sort(x0) - + # Convert to log(y) if we need to y <- as.numeric(y) if (log_scale) { if (any(y <= 0)) { - cli_warn("`y` contains 0 or negative values. Taking logs may produce + cli_warn("`y` contains 0 or negative values. Taking logs may produce strange results.") } y <- suppressWarnings(log(y)) @@ -177,7 +176,7 @@ growth_rate <- function( y <- y[good_obs] x <- as.numeric(x) x0 <- as.numeric(x0) - + # Local methods if (method == "rel_change" || method == "linear_reg") { g <- purrr::map_dbl(x, function(x_ref) { @@ -269,7 +268,7 @@ growth_rate <- function( lam <- ifelse(single_lambda, obj$lambda, obj$lambda[which.min(abs(params$df - obj$dof))]) f <- stats::predict(obj, newx = x0, lambda = lam) * sdy } - + d <- diff(f) / diff(x0) # Extend by one element d <- c(d, d[length(d)]) @@ -283,11 +282,11 @@ growth_rate <- function( } #' Optional parameters for global growth rate methods -#' +#' #' Construct an object containing non-standard arguments for [growth_rate()]. -#' -#' @param df Numeric or NULL for "smooth_spline". May also be one of "min" or -#' "max" in the case of "trend_filter". The desired equivalent number of +#' +#' @param df Numeric or NULL for "smooth_spline". May also be one of "min" or +#' "max" in the case of "trend_filter". The desired equivalent number of #' degrees of freedom of the fit. Lower values give smoother estimates. #' @param lambda The desired smoothing parameter. For "smooth_spline", this #' can be specified instead of `spar`. For "trend_filter", this sequence @@ -300,13 +299,13 @@ growth_rate <- function( #' @param cv For "smooth_spline", ordinary leave-one-out (`TRUE`) or ‘generalized’ #' cross-validation (GCV) when `FALSE`; is used for smoothing parameter computation #' only when both `spar` and `df` are not specified. For "trend_filter", -#' `cv` determines whether or not cross-validation is used to choose the +#' `cv` determines whether or not cross-validation is used to choose the #' tuning parameter. If `FALSE`, then the user must specify either `lambda` #' or `df`. #' @inheritParams stats::smooth.spline #' @inheritParams trendfilter::trendfilter #' @inheritParams trendfilter::cv_trendfilter -#' +#' #' @return A list of parameter configurations. #' @importFrom checkmate assert_number #' @export @@ -326,8 +325,11 @@ growth_rate_global_params <- function( lambda_min_ratio = 1e-5, error_measure = c("deviance", "mse", "mae"), nfolds = 3L) { - if (is.character(df)) df <- rlang::arg_match0(df, c("min", "1se")) - else assert_number(df, lower = 0, null.ok = TRUE, finite = TRUE) + if (is.character(df)) { + df <- rlang::arg_match0(df, c("min", "1se")) + } else { + assert_number(df, lower = 0, null.ok = TRUE, finite = TRUE) + } assert_number(spar, null.ok = TRUE, finite = TRUE) assert_numeric(lambda, lower = 0, null.ok = TRUE, finite = TRUE) assert_logical(cv, len = 1) @@ -360,7 +362,7 @@ parse_trendfilter_params <- function(params) { assert_class(params, "growth_rate_params") vec_lambda <- checkmate::test_numeric(params$lambda, min.len = 2L, null.ok = TRUE) df_cv <- checkmate::test_character(params$df, null.ok = TRUE) - if (df_cv && vec_lambda) { + if (df_cv && vec_lambda) { params$cv <- TRUE # Turn CV on (or leave it on) params$df <- params$df %||% "min" # use the original arg or provide the minimizer return(params) @@ -374,7 +376,7 @@ parse_trendfilter_params <- function(params) { if (!vec_lambda) { if (is.character(params$df)) { cli_abort( - "`df` a character implies using CV, but also setting `lambda` to a + "`df` a character implies using CV, but also setting `lambda` to a single value implies no CV." ) } @@ -387,4 +389,4 @@ parse_trendfilter_params <- function(params) { # 1. df is NULL and lambda is a scalar # 2. df is numeric and lambda is either NULL or a vector (vec_lambda = TRUE) return(params) -} \ No newline at end of file +} diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index af7c933e..68e1661b 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -62,9 +62,9 @@ test_that("parser sees all cases", { # lambda = NULL, scalar, vector # df = NULL, character, numeric # cv = T/F - + grab_l <- function(l) list(cv = l$cv, df = l$df, lambda = l$lambda) - + # CV TRUE l <- growth_rate_global_params(cv = TRUE) expect_identical( @@ -96,57 +96,55 @@ test_that("parser sees all cases", { expect_snapshot(error = TRUE, parse_trendfilter_params(l)) l <- growth_rate_global_params(cv = TRUE, df = 1, lambda = 1:5) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - + # CV = FALSE (the default) # 5 Cases where we turn CV on l <- growth_rate_global_params(df = "1se") expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "1se", lambda = NULL) ) l <- growth_rate_global_params(df = "1se", lambda = 1:5) expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "1se", lambda = 1:5) ) l <- growth_rate_global_params(lambda = 1:5) expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "min", lambda = 1:5) ) expect_identical( - grab_l(parse_trendfilter_params(growth_rate_global_params())), + grab_l(parse_trendfilter_params(growth_rate_global_params())), list(cv = TRUE, df = "min", lambda = NULL) ) # 3 cases where CV stays False l <- growth_rate_global_params(lambda = 1) expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = NULL, lambda = 1) ) l <- growth_rate_global_params(df = 5) expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = 5, lambda = NULL) ) l <- growth_rate_global_params(df = 5, lambda = 1:5) expect_identical( - grab_l(parse_trendfilter_params(l)), + grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = 5, lambda = 1:5) ) - + # 2 error cases l <- growth_rate_global_params(df = "min", lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) l <- growth_rate_global_params(df = 1, lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - - }) test_that("trendfilter growth_rate implementation", { skip_if_not_installed("trendfilter", "0.0.2") - + # various tf args give output (correctness not checked) z <- rnorm(30) expect_length(growth_rate(y = z, method = "trend_filter"), 30L) diff --git a/vignettes/growth_rate.Rmd b/vignettes/growth_rate.Rmd index fa3ef58b..37a71c76 100644 --- a/vignettes/growth_rate.Rmd +++ b/vignettes/growth_rate.Rmd @@ -259,8 +259,8 @@ x <- x %>% x %>% select(geo_value, time_value, cases_gr5, cases_gr6) %>% pivot_longer( - cols = starts_with("cases_gr"), - names_to = "method", + cols = starts_with("cases_gr"), + names_to = "method", values_to = "gr" ) %>% mutate(method = recode(method, From 61628fdf5e760cca8de2059e1cd245b60e25ff27 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Thu, 23 Jan 2025 12:02:28 -0800 Subject: [PATCH 13/31] handle annoying lintr crud --- R/growth_rate.R | 4 ++-- tests/testthat/test-growth_rate.R | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 1df95712..302d9598 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -314,8 +314,8 @@ growth_rate_global_params <- function( lambda = NULL, cv = FALSE, spar = NULL, - all.knots = FALSE, - df.offset = 0, + all.knots = FALSE, # nolint + df.offset = 0, # nolint penalty = 1, k = 3L, family = c("gaussian", "logistic", "poisson"), diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index 68e1661b..60d961b8 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -59,9 +59,9 @@ test_that("new setup args and warnings are as expected", { test_that("parser sees all cases", { skip_if_not_installed("trendfilter", "0.0.2") # 18 total cases - # lambda = NULL, scalar, vector - # df = NULL, character, numeric - # cv = T/F + # lambda in {NULL, scalar, vector} + # df in {NULL, character, numeric} + # cv in {T/F} grab_l <- function(l) list(cv = l$cv, df = l$df, lambda = l$lambda) From 3b77ef69462ca606d41d5550deee821d9315fac1 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Thu, 23 Jan 2025 12:42:38 -0800 Subject: [PATCH 14/31] add missing fn for pkgdown --- _pkgdown.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pkgdown.yml b/_pkgdown.yml index e8a2c8c3..3742bd41 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -63,7 +63,7 @@ reference: - sum_groups_epi_df - epi_cor - detect_outlr - - growth_rate + - starts_with("growth_rate") - as_tibble.epi_df - as_tsibble.epi_df From 8758128edfd305d6ddca10a95d2abf245d46a687 Mon Sep 17 00:00:00 2001 From: dajmcdon Date: Fri, 24 Jan 2025 21:06:25 +0000 Subject: [PATCH 15/31] docs: document (GHA) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfce6a66..5f076ed7 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ edf ``` Compute the 7 day moving average of the confirmed daily cases for each -`geo_value`: +`geo_value` ``` r edf <- edf %>% From 5280fafca4b2eae65e1b110ad21e53dc727ce48c Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 09:46:41 -0800 Subject: [PATCH 16/31] docs(growth_rate): reword + typo --- NEWS.md | 11 ++++++++--- R/growth_rate.R | 6 +++--- man/growth_rate.Rd | 6 +++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/NEWS.md b/NEWS.md index c406911e..86592c95 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,9 +6,14 @@ Pre-1.0.0 numbering scheme: 0.x will indicate releases, while 0.x.y will indicat ## Breaking changes -- Refactor `growth_rate()` to use `trendfilter` rather than `genlasso`. The - function signature has changed. This package has been put in Suggests instead - of Imports. +- `growth_rate()` with `method = "trendfilter"` now uses the `{trendfilter}` + package rather than `{genlasso}`; results for this method will be different + than before. In order to make `{epiprocess}` installation easier for users + without a compiler, we have placed `{trendfilter}` in Suggests:; if you want + to use `method = "trendfilter"` you will need to manually this dependency + (e.g., with `pak::pkg_install("glmgen/trendfilter")`). The interface for + passing arguments to the `"smooth_spline"` and `"trend_filter"` methods has + also changed. - In `revision_summary()`: - Output now uses the name `lag_near_latest` instead of `time_near_latest`. To migrate, update references to `time_near_latest` to `lag_near_latest`. diff --git a/R/growth_rate.R b/R/growth_rate.R index 302d9598..5dbffa74 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -83,8 +83,8 @@ #' function. These additional arguments are #' passed to [stats::smooth.spline()], [trendfilter::trendfilter()], or #' [trendfilter::cv_trendfilter()]. The defaults are exactly -#' as specified in those functions, except when the arguments are shared -#' between these. These cases are as follows: +#' as specified in those functions, except when those defaults conflict +#' among these functions. These cases are as follows: #' #' * `df`: desired effective degrees of freedom. For "smooth_spline", this must be numeric (or `NULL`) and will #' be passed along to the underlying function. For "trend_filter", if @@ -100,7 +100,7 @@ #' * `cv`: should cross-validation be used to choose an effective degrees of #' freedom for the fit? The default is `FALSE` to match [stats::smooth.spline()]. #' In that case, as in that function, GCV is used instead. -#' For :trend_filter", this will be coerced to `TRUE` if neither +#' For "trend_filter", this will be coerced to `TRUE` if neither #' `df` nor `lambda` are specified (the default). #' Note that passing both `df` and a scalar `lambda` will always be an error. #' diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 40a6d29f..26fbab4d 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -111,8 +111,8 @@ arguments can be specified via \code{params} for the underlying estimation function. These additional arguments are passed to \code{\link[stats:smooth.spline]{stats::smooth.spline()}}, \code{\link[trendfilter:trendfilter]{trendfilter::trendfilter()}}, or \code{\link[trendfilter:cv_trendfilter]{trendfilter::cv_trendfilter()}}. The defaults are exactly -as specified in those functions, except when the arguments are shared -between these. These cases are as follows: +as specified in those functions, except when those defaults conflict +among these functions. These cases are as follows: \itemize{ \item \code{df}: desired effective degrees of freedom. For "smooth_spline", this must be numeric (or \code{NULL}) and will be passed along to the underlying function. For "trend_filter", if @@ -128,7 +128,7 @@ For "trend_filter", this is allowed to also be a vector, as long as either \item \code{cv}: should cross-validation be used to choose an effective degrees of freedom for the fit? The default is \code{FALSE} to match \code{\link[stats:smooth.spline]{stats::smooth.spline()}}. In that case, as in that function, GCV is used instead. -For :trend_filter", this will be coerced to \code{TRUE} if neither +For "trend_filter", this will be coerced to \code{TRUE} if neither \code{df} nor \code{lambda} are specified (the default). Note that passing both \code{df} and a scalar \code{lambda} will always be an error. } From 0426ec4d1d6e1a1817ea861ee3b55c4bbc541c43 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 09:52:48 -0800 Subject: [PATCH 17/31] Use glmgen/trendfilter installation command as suggestion --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 86592c95..0d16fd52 100644 --- a/NEWS.md +++ b/NEWS.md @@ -11,7 +11,7 @@ Pre-1.0.0 numbering scheme: 0.x will indicate releases, while 0.x.y will indicat than before. In order to make `{epiprocess}` installation easier for users without a compiler, we have placed `{trendfilter}` in Suggests:; if you want to use `method = "trendfilter"` you will need to manually this dependency - (e.g., with `pak::pkg_install("glmgen/trendfilter")`). The interface for + (e.g., with `remotes::install_github("glmgen/trendfilter")`). The interface for passing arguments to the `"smooth_spline"` and `"trend_filter"` methods has also changed. - In `revision_summary()`: From 393370fe883eebea34f341602971176f5507dd53 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 09:54:45 -0800 Subject: [PATCH 18/31] Make `growth_rate(method = "trendfilter")` without {trendfilter} a hard error --- NEWS.md | 6 +++--- R/growth_rate.R | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/NEWS.md b/NEWS.md index 0d16fd52..2a584db7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -11,9 +11,9 @@ Pre-1.0.0 numbering scheme: 0.x will indicate releases, while 0.x.y will indicat than before. In order to make `{epiprocess}` installation easier for users without a compiler, we have placed `{trendfilter}` in Suggests:; if you want to use `method = "trendfilter"` you will need to manually this dependency - (e.g., with `remotes::install_github("glmgen/trendfilter")`). The interface for - passing arguments to the `"smooth_spline"` and `"trend_filter"` methods has - also changed. + (e.g., with `remotes::install_github("glmgen/trendfilter")`). The interface + for passing arguments to the `"smooth_spline"` and `"trend_filter"` methods + has also changed. - In `revision_summary()`: - Output now uses the name `lag_near_latest` instead of `time_near_latest`. To migrate, update references to `time_near_latest` to `lag_near_latest`. diff --git a/R/growth_rate.R b/R/growth_rate.R index 5dbffa74..08adbc50 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -52,8 +52,7 @@ #' [trendfilter::trendfilter()], divided by the fitted value of the discrete #' spline at `x0`. This method requires the #' [`{trendfilter}` package](https://github.com/glmgen/trendfilter) -#' to be installed (if it isn't, `method = "rel_change"` will be used and a -#' warning issued). +#' to be installed. #' #' ## Log Scale #' @@ -139,11 +138,9 @@ growth_rate <- function( ) } if (method == "trend_filter" && !requireNamespace("trendfilter", quietly = TRUE)) { - method <- "rel_change" - cli_warn(c( + cli_abort(c( "The {.pkg trendfilter} package must be installed to use this option.", - i = "It is available at {.url https://github.com/glmgen/trendfilter}.", - i = 'The computation will proceed using `method = "rel_change"` instead.' + i = "It is available at {.url https://github.com/glmgen/trendfilter}." )) } From 341be9417d6776df6fa8c17450f37cb71dc16cc6 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 10:06:21 -0800 Subject: [PATCH 19/31] refactor(growth_rate): preoptimize/normalize some ops --- R/growth_rate.R | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 08adbc50..a780c1be 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -127,11 +127,10 @@ growth_rate <- function( if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") method <- rlang::arg_match(method) assert_class(params, "growth_rate_params") - if (any(is.na(x)) || any(is.na(x0))) { + if (anyNA(x) || anyNA(x0)) { cli_abort("Neither `x` nor `x0` may contain `NA`s.") } - dups <- duplicated(x) - if (any(dups)) { + if (vctrs::vec_duplicate_any(x)) { cli_abort( "`x` contains duplicate values. (If being run on a column in an `epi_df`, did you group by relevant key variables?)" From d10c44097f25446ce80f1a6e91091aa4387fd64a Mon Sep 17 00:00:00 2001 From: brookslogan Date: Tue, 28 Jan 2025 18:09:32 +0000 Subject: [PATCH 20/31] docs: document (GHA) --- man/growth_rate.Rd | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 26fbab4d..0f22b734 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -78,8 +78,7 @@ filtering (a discrete spline) fit to \code{x} and \code{y}, via \code{\link[trendfilter:trendfilter]{trendfilter::trendfilter()}}, divided by the fitted value of the discrete spline at \code{x0}. This method requires the \href{https://github.com/glmgen/trendfilter}{\code{{trendfilter}} package} -to be installed (if it isn't, \code{method = "rel_change"} will be used and a -warning issued). +to be installed. } \subsection{Log Scale}{ From 8c9228551eab7c0d3be4f904cfe5c0293a35cf17 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 11:31:01 -0800 Subject: [PATCH 21/31] fix(growth_rate): single_lambda check --- R/growth_rate.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index a780c1be..1fa5cedc 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -260,7 +260,7 @@ growth_rate <- function( nlambda = params$nlambda, lambda_max = params$lambda_max, lambda_min = params$lambda_min, lambda_min_ratio = params$lambda_min_ratio ) - single_lambda <- length(obj$lambda == 1L) + single_lambda <- length(obj$lambda) == 1L lam <- ifelse(single_lambda, obj$lambda, obj$lambda[which.min(abs(params$df - obj$dof))]) f <- stats::predict(obj, newx = x0, lambda = lam) * sdy } From b0d3236901e437f0b17cd01f24b78e025e83bad4 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 11:37:40 -0800 Subject: [PATCH 22/31] Rename growth_rate_global_params() -> growth_rate_params() --- NAMESPACE | 2 +- R/growth_rate.R | 8 +- man/growth_rate.Rd | 4 +- man/growth_rate_global_params.Rd | 120 --------------------------- tests/testthat/_snaps/growth_rate.md | 10 +-- tests/testthat/test-growth_rate.R | 78 ++++++++--------- vignettes/growth_rate.Rmd | 2 +- 7 files changed, 52 insertions(+), 172 deletions(-) delete mode 100644 man/growth_rate_global_params.Rd diff --git a/NAMESPACE b/NAMESPACE index c0f5f776..1a09d541 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -81,7 +81,7 @@ export(group_by) export(group_epi_df) export(group_modify) export(growth_rate) -export(growth_rate_global_params) +export(growth_rate_params) export(guess_period) export(is_epi_df) export(is_grouped_epi_archive) diff --git a/R/growth_rate.R b/R/growth_rate.R index 1fa5cedc..c0933a59 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -24,7 +24,7 @@ #' @param na_rm Should missing values be removed before the computation? Default #' is `FALSE`. #' @param params Additional arguments to pass to the method used to estimate the -#' derivative. This should be created with `growth_rate_global_params()`. +#' derivative. This should be created with `growth_rate_params()`. #' @return Vector of growth rate estimates at the specified points `x0`. #' #' @details The growth rate of a function f defined over a continuously-valued @@ -122,7 +122,7 @@ growth_rate <- function( y, x = seq_along(y), x0 = x, method = c("rel_change", "linear_reg", "smooth_spline", "trend_filter"), h = 7, log_scale = FALSE, na_rm = FALSE, - params = growth_rate_global_params()) { + params = growth_rate_params()) { # Check x, y, x0 if (length(x) != length(y)) cli_abort("`x` and `y` must have the same length.") method <- rlang::arg_match(method) @@ -277,7 +277,7 @@ growth_rate <- function( } } -#' Optional parameters for global growth rate methods +#' Optional parameters for growth rate methods #' #' Construct an object containing non-standard arguments for [growth_rate()]. #' @@ -305,7 +305,7 @@ growth_rate <- function( #' @return A list of parameter configurations. #' @importFrom checkmate assert_number #' @export -growth_rate_global_params <- function( +growth_rate_params <- function( df = NULL, lambda = NULL, cv = FALSE, diff --git a/man/growth_rate.Rd b/man/growth_rate.Rd index 0f22b734..1529a836 100644 --- a/man/growth_rate.Rd +++ b/man/growth_rate.Rd @@ -12,7 +12,7 @@ growth_rate( h = 7, log_scale = FALSE, na_rm = FALSE, - params = growth_rate_global_params() + params = growth_rate_params() ) } \arguments{ @@ -42,7 +42,7 @@ on the log scale? See details for an explanation. Default is \code{FALSE}.} is \code{FALSE}.} \item{params}{Additional arguments to pass to the method used to estimate the -derivative. This should be created with \code{growth_rate_global_params()}.} +derivative. This should be created with \code{growth_rate_params()}.} } \value{ Vector of growth rate estimates at the specified points \code{x0}. diff --git a/man/growth_rate_global_params.Rd b/man/growth_rate_global_params.Rd deleted file mode 100644 index 191f309f..00000000 --- a/man/growth_rate_global_params.Rd +++ /dev/null @@ -1,120 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/growth_rate.R -\name{growth_rate_global_params} -\alias{growth_rate_global_params} -\title{Optional parameters for global growth rate methods} -\usage{ -growth_rate_global_params( - df = NULL, - lambda = NULL, - cv = FALSE, - spar = NULL, - all.knots = FALSE, - df.offset = 0, - penalty = 1, - k = 3L, - family = c("gaussian", "logistic", "poisson"), - nlambda = 50L, - lambda_max = NULL, - lambda_min = NULL, - lambda_min_ratio = 1e-05, - error_measure = c("deviance", "mse", "mae"), - nfolds = 3L -) -} -\arguments{ -\item{df}{Numeric or NULL for "smooth_spline". May also be one of "min" or -"max" in the case of "trend_filter". The desired equivalent number of -degrees of freedom of the fit. Lower values give smoother estimates.} - -\item{lambda}{The desired smoothing parameter. For "smooth_spline", this -can be specified instead of \code{spar}. For "trend_filter", this sequence -determines the balance between data fidelity and smoothness of the -estimated curve; larger \code{lambda} results in a smoother estimate. The -default, \code{NULL} results in an automatic computation based on \code{nlambda}, -the largest value of \code{lambda} that would result in a maximally smooth -estimate, and \code{lambda_min_ratio}. Supplying a value of \code{lambda} overrides -this behaviour.} - -\item{cv}{For "smooth_spline", ordinary leave-one-out (\code{TRUE}) or ‘generalized’ -cross-validation (GCV) when \code{FALSE}; is used for smoothing parameter computation -only when both \code{spar} and \code{df} are not specified. For "trend_filter", -\code{cv} determines whether or not cross-validation is used to choose the -tuning parameter. If \code{FALSE}, then the user must specify either \code{lambda} -or \code{df}.} - -\item{spar}{smoothing parameter, typically (but not necessarily) in - \eqn{(0,1]}. When \code{spar} is specified, the coefficient - \eqn{\lambda} of the integral of the squared second derivative in the - fit (penalized log likelihood) criterion is a monotone function of - \code{spar}, see the details below. Alternatively \code{lambda} may - be specified instead of the \emph{scale free} \code{spar}=\eqn{s}.} - -\item{all.knots}{if \code{TRUE}, all distinct points in \code{x} are used - as knots. If \code{FALSE} (default), a subset of \code{x[]} is used, - specifically \code{x[j]} where the \code{nknots} indices are evenly - spaced in \code{1:n}, see also the next argument \code{nknots}. - - Alternatively, a strictly increasing \code{\link{numeric}} vector - specifying \dQuote{all the knots} to be used; must be rescaled - to \eqn{[0, 1]} already such that it corresponds to the - \code{ans $ fit$knots} sequence returned, not repeating the boundary - knots.} - -\item{df.offset}{allows the degrees of freedom to be increased by - \code{df.offset} in the GCV criterion.} - -\item{penalty}{the coefficient of the penalty for degrees of freedom - in the GCV criterion.} - -\item{k}{Integer. Degree of the piecewise polynomial curve to be -estimated. For example, \code{k = 0} corresponds to a piecewise constant -curve.} - -\item{family}{Character or function. Specifies the loss function -to use. Valid options are: -\itemize{ -\item \code{"gaussian"} - least squares loss (the default), -\item \code{"binomial"} - logistic loss (classification), -\item \code{"poisson"} - Poisson loss for count data -} - -For any other type, a valid \code{\link[stats:family]{stats::family()}} object may be passed. Note -that these will generally be much slower to estimate than the built-in -options passed as strings. So for example, \code{family = "gaussian"} and -\code{family = gaussian()} will produce the same results, but the first -will be much faster.character.} - -\item{nlambda}{Integer. Number of lambda values to use in the sequence.} - -\item{lambda_max}{Optional value for the largest \code{lambda} to use.} - -\item{lambda_min}{Optional value for the smallest \code{lambda} to use (> 0).} - -\item{lambda_min_ratio}{If neither \code{lambda} nor \code{lambda_min} is specified, -\code{lambda_min = lambda_max * lambda_min_ratio}. -A very small value will lead to the solution \code{theta = y} (for the Gaussian -loss). This argument has no effect if there is a user-defined \code{lambda} -sequence.} - -\item{error_measure}{Metric used to calculate cross validation scores. May -be \code{mse}, \code{mae}, or \code{deviance}.} - -\item{nfolds}{Integer. The number of folds to use. For leave-vth-out cross -validation, every vth \code{y} value and its corresponding position (and weight) -are placed into the same fold. The first and last observations are not -assigned to any folds. This value must be at least 2. As an example, with -15 data points and \code{nfolds = 4}, the points are assigned to folds in the -following way: -\deqn{ - 0 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 0 - }{0 1 2 3 4 1 2 3 4 1 2 3 4 1 0} where 0 indicates no assignment. -Therefore, the folds are not random and running \code{cv_trendfilter()} twice -will give the same result.} -} -\value{ -A list of parameter configurations. -} -\description{ -Construct an object containing non-standard arguments for \code{\link[=growth_rate]{growth_rate()}}. -} diff --git a/tests/testthat/_snaps/growth_rate.md b/tests/testthat/_snaps/growth_rate.md index 80f72edd..213c2756 100644 --- a/tests/testthat/_snaps/growth_rate.md +++ b/tests/testthat/_snaps/growth_rate.md @@ -1,17 +1,17 @@ # global param constructor errors when required Code - growth_rate_global_params(df = -5) + growth_rate_params(df = -5) Condition - Error in `growth_rate_global_params()`: + Error in `growth_rate_params()`: ! Assertion on 'df' failed: Element 1 is not >= 0. --- Code - growth_rate_global_params(nlambda = 5:8) + growth_rate_params(nlambda = 5:8) Condition - Error in `growth_rate_global_params()`: + Error in `growth_rate_params()`: ! Assertion on 'nlambda' failed: Must have length 1. # new setup args and warnings are as expected @@ -45,7 +45,7 @@ --- Code - growth_rate(y = 1:20, method = "smooth_spline", params = growth_rate_global_params( + growth_rate(y = 1:20, method = "smooth_spline", params = growth_rate_params( lambda = 1:20)) Condition Error in `growth_rate()`: diff --git a/tests/testthat/test-growth_rate.R b/tests/testthat/test-growth_rate.R index 60d961b8..9aa9936d 100644 --- a/tests/testthat/test-growth_rate.R +++ b/tests/testthat/test-growth_rate.R @@ -1,13 +1,13 @@ test_that("global param constructor errors when required", { # Check the tree when there is parameter dependency - expect_identical(growth_rate_global_params(df = "1se")$df, "1se") - expect_false(growth_rate_global_params(df = 10, cv = FALSE)$cv) - expect_identical(growth_rate_global_params(df = 10L)$df, 10L) - expect_snapshot(error = TRUE, growth_rate_global_params(df = -5)) + expect_identical(growth_rate_params(df = "1se")$df, "1se") + expect_false(growth_rate_params(df = 10, cv = FALSE)$cv) + expect_identical(growth_rate_params(df = 10L)$df, 10L) + expect_snapshot(error = TRUE, growth_rate_params(df = -5)) # Make sure that assert_number is len 1 - expect_identical(growth_rate_global_params(nlambda = 5L)$nlambda, 5L) - expect_snapshot(error = TRUE, growth_rate_global_params(nlambda = 5:8)) + expect_identical(growth_rate_params(nlambda = 5L)$nlambda, 5L) + expect_snapshot(error = TRUE, growth_rate_params(nlambda = 5:8)) }) test_that("new setup args and warnings are as expected", { @@ -31,7 +31,7 @@ test_that("new setup args and warnings are as expected", { error = TRUE, growth_rate( y = 1:20, method = "smooth_spline", - params = growth_rate_global_params(lambda = 1:20) + params = growth_rate_params(lambda = 1:20) ) ) @@ -40,19 +40,19 @@ test_that("new setup args and warnings are as expected", { expect_length(growth_rate(y = z, method = "smooth_spline"), 30L) expect_length(growth_rate( y = z, - method = "smooth_spline", params = growth_rate_global_params(spar = .5) + method = "smooth_spline", params = growth_rate_params(spar = .5) ), 30L) expect_length(growth_rate( y = z, - method = "smooth_spline", params = growth_rate_global_params(lambda = 10) + method = "smooth_spline", params = growth_rate_params(lambda = 10) ), 30L) expect_length(growth_rate( y = z, - method = "smooth_spline", params = growth_rate_global_params(df = 14) + method = "smooth_spline", params = growth_rate_params(df = 14) ), 30L) expect_length(growth_rate( y = z, - method = "smooth_spline", params = growth_rate_global_params(cv = TRUE) + method = "smooth_spline", params = growth_rate_params(cv = TRUE) ), 30L) }) @@ -66,79 +66,79 @@ test_that("parser sees all cases", { grab_l <- function(l) list(cv = l$cv, df = l$df, lambda = l$lambda) # CV TRUE - l <- growth_rate_global_params(cv = TRUE) + l <- growth_rate_params(cv = TRUE) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "min", lambda = NULL) ) - l <- growth_rate_global_params(cv = TRUE, df = "1se") + l <- growth_rate_params(cv = TRUE, df = "1se") expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "1se", lambda = NULL) ) - l <- growth_rate_global_params(cv = TRUE, df = "min", lambda = 1:5) + l <- growth_rate_params(cv = TRUE, df = "min", lambda = 1:5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "min", lambda = 1:5) ) - l <- growth_rate_global_params(cv = TRUE, lambda = 1:5) + l <- growth_rate_params(cv = TRUE, lambda = 1:5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "min", lambda = 1:5) ) - l <- growth_rate_global_params(cv = TRUE, lambda = 1) + l <- growth_rate_params(cv = TRUE, lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - l <- growth_rate_global_params(cv = TRUE, df = 1) + l <- growth_rate_params(cv = TRUE, df = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - l <- growth_rate_global_params(cv = TRUE, df = 1, lambda = 1) + l <- growth_rate_params(cv = TRUE, df = 1, lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - l <- growth_rate_global_params(cv = TRUE, df = "min", lambda = 1) + l <- growth_rate_params(cv = TRUE, df = "min", lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - l <- growth_rate_global_params(cv = TRUE, df = 1, lambda = 1:5) + l <- growth_rate_params(cv = TRUE, df = 1, lambda = 1:5) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) # CV = FALSE (the default) # 5 Cases where we turn CV on - l <- growth_rate_global_params(df = "1se") + l <- growth_rate_params(df = "1se") expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "1se", lambda = NULL) ) - l <- growth_rate_global_params(df = "1se", lambda = 1:5) + l <- growth_rate_params(df = "1se", lambda = 1:5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "1se", lambda = 1:5) ) - l <- growth_rate_global_params(lambda = 1:5) + l <- growth_rate_params(lambda = 1:5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = TRUE, df = "min", lambda = 1:5) ) expect_identical( - grab_l(parse_trendfilter_params(growth_rate_global_params())), + grab_l(parse_trendfilter_params(growth_rate_params())), list(cv = TRUE, df = "min", lambda = NULL) ) # 3 cases where CV stays False - l <- growth_rate_global_params(lambda = 1) + l <- growth_rate_params(lambda = 1) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = NULL, lambda = 1) ) - l <- growth_rate_global_params(df = 5) + l <- growth_rate_params(df = 5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = 5, lambda = NULL) ) - l <- growth_rate_global_params(df = 5, lambda = 1:5) + l <- growth_rate_params(df = 5, lambda = 1:5) expect_identical( grab_l(parse_trendfilter_params(l)), list(cv = FALSE, df = 5, lambda = 1:5) ) # 2 error cases - l <- growth_rate_global_params(df = "min", lambda = 1) + l <- growth_rate_params(df = "min", lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) - l <- growth_rate_global_params(df = 1, lambda = 1) + l <- growth_rate_params(df = 1, lambda = 1) expect_snapshot(error = TRUE, parse_trendfilter_params(l)) }) @@ -150,42 +150,42 @@ test_that("trendfilter growth_rate implementation", { expect_length(growth_rate(y = z, method = "trend_filter"), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(lambda = 10) + method = "trend_filter", params = growth_rate_params(lambda = 10) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(df = 14) + method = "trend_filter", params = growth_rate_params(df = 14) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(cv = TRUE) + method = "trend_filter", params = growth_rate_params(cv = TRUE) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(k = 3) + method = "trend_filter", params = growth_rate_params(k = 3) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(nlambda = 10) + method = "trend_filter", params = growth_rate_params(nlambda = 10) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(lambda_max = 10) + method = "trend_filter", params = growth_rate_params(lambda_max = 10) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(lambda_min = 10) + method = "trend_filter", params = growth_rate_params(lambda_min = 10) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(lambda_min_ratio = .1) + method = "trend_filter", params = growth_rate_params(lambda_min_ratio = .1) ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(error_measure = "mse") + method = "trend_filter", params = growth_rate_params(error_measure = "mse") ), 30L) expect_length(growth_rate( y = z, - method = "trend_filter", params = growth_rate_global_params(nfolds = 3) + method = "trend_filter", params = growth_rate_params(nfolds = 3) ), 30L) }) diff --git a/vignettes/growth_rate.Rmd b/vignettes/growth_rate.Rmd index 37a71c76..67a75903 100644 --- a/vignettes/growth_rate.Rmd +++ b/vignettes/growth_rate.Rmd @@ -231,7 +231,7 @@ stable than the estimates from local relative changes and linear regressions. The smoothing spline growth rate estimates are based on the default settings in `stats::smooth.spline()`, and appear severely under-regularized here. Any of the arguments to `stats::smooth.spline()` can be customized by passing them as -additional arguments to `growth_rate_global_params()`; similarly, we can +additional arguments to `growth_rate_params()`; similarly, we can also use additional arguments to customize the settings in the underlying trend filtering functions `trendfilter::trendfilter()`, `trendfilter::cv_trendfilter()`, and the documentation for `growth_rate()` gives the full details. From 2baa9e05979cfc24a2821c6d2dec80805baaa644 Mon Sep 17 00:00:00 2001 From: brookslogan Date: Tue, 28 Jan 2025 19:40:33 +0000 Subject: [PATCH 23/31] docs: document (GHA) --- man/growth_rate_params.Rd | 120 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 man/growth_rate_params.Rd diff --git a/man/growth_rate_params.Rd b/man/growth_rate_params.Rd new file mode 100644 index 00000000..b0bb00c8 --- /dev/null +++ b/man/growth_rate_params.Rd @@ -0,0 +1,120 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/growth_rate.R +\name{growth_rate_params} +\alias{growth_rate_params} +\title{Optional parameters for growth rate methods} +\usage{ +growth_rate_params( + df = NULL, + lambda = NULL, + cv = FALSE, + spar = NULL, + all.knots = FALSE, + df.offset = 0, + penalty = 1, + k = 3L, + family = c("gaussian", "logistic", "poisson"), + nlambda = 50L, + lambda_max = NULL, + lambda_min = NULL, + lambda_min_ratio = 1e-05, + error_measure = c("deviance", "mse", "mae"), + nfolds = 3L +) +} +\arguments{ +\item{df}{Numeric or NULL for "smooth_spline". May also be one of "min" or +"max" in the case of "trend_filter". The desired equivalent number of +degrees of freedom of the fit. Lower values give smoother estimates.} + +\item{lambda}{The desired smoothing parameter. For "smooth_spline", this +can be specified instead of \code{spar}. For "trend_filter", this sequence +determines the balance between data fidelity and smoothness of the +estimated curve; larger \code{lambda} results in a smoother estimate. The +default, \code{NULL} results in an automatic computation based on \code{nlambda}, +the largest value of \code{lambda} that would result in a maximally smooth +estimate, and \code{lambda_min_ratio}. Supplying a value of \code{lambda} overrides +this behaviour.} + +\item{cv}{For "smooth_spline", ordinary leave-one-out (\code{TRUE}) or ‘generalized’ +cross-validation (GCV) when \code{FALSE}; is used for smoothing parameter computation +only when both \code{spar} and \code{df} are not specified. For "trend_filter", +\code{cv} determines whether or not cross-validation is used to choose the +tuning parameter. If \code{FALSE}, then the user must specify either \code{lambda} +or \code{df}.} + +\item{spar}{smoothing parameter, typically (but not necessarily) in + \eqn{(0,1]}. When \code{spar} is specified, the coefficient + \eqn{\lambda} of the integral of the squared second derivative in the + fit (penalized log likelihood) criterion is a monotone function of + \code{spar}, see the details below. Alternatively \code{lambda} may + be specified instead of the \emph{scale free} \code{spar}=\eqn{s}.} + +\item{all.knots}{if \code{TRUE}, all distinct points in \code{x} are used + as knots. If \code{FALSE} (default), a subset of \code{x[]} is used, + specifically \code{x[j]} where the \code{nknots} indices are evenly + spaced in \code{1:n}, see also the next argument \code{nknots}. + + Alternatively, a strictly increasing \code{\link{numeric}} vector + specifying \dQuote{all the knots} to be used; must be rescaled + to \eqn{[0, 1]} already such that it corresponds to the + \code{ans $ fit$knots} sequence returned, not repeating the boundary + knots.} + +\item{df.offset}{allows the degrees of freedom to be increased by + \code{df.offset} in the GCV criterion.} + +\item{penalty}{the coefficient of the penalty for degrees of freedom + in the GCV criterion.} + +\item{k}{Integer. Degree of the piecewise polynomial curve to be +estimated. For example, \code{k = 0} corresponds to a piecewise constant +curve.} + +\item{family}{Character or function. Specifies the loss function +to use. Valid options are: +\itemize{ +\item \code{"gaussian"} - least squares loss (the default), +\item \code{"binomial"} - logistic loss (classification), +\item \code{"poisson"} - Poisson loss for count data +} + +For any other type, a valid \code{\link[stats:family]{stats::family()}} object may be passed. Note +that these will generally be much slower to estimate than the built-in +options passed as strings. So for example, \code{family = "gaussian"} and +\code{family = gaussian()} will produce the same results, but the first +will be much faster.character.} + +\item{nlambda}{Integer. Number of lambda values to use in the sequence.} + +\item{lambda_max}{Optional value for the largest \code{lambda} to use.} + +\item{lambda_min}{Optional value for the smallest \code{lambda} to use (> 0).} + +\item{lambda_min_ratio}{If neither \code{lambda} nor \code{lambda_min} is specified, +\code{lambda_min = lambda_max * lambda_min_ratio}. +A very small value will lead to the solution \code{theta = y} (for the Gaussian +loss). This argument has no effect if there is a user-defined \code{lambda} +sequence.} + +\item{error_measure}{Metric used to calculate cross validation scores. May +be \code{mse}, \code{mae}, or \code{deviance}.} + +\item{nfolds}{Integer. The number of folds to use. For leave-vth-out cross +validation, every vth \code{y} value and its corresponding position (and weight) +are placed into the same fold. The first and last observations are not +assigned to any folds. This value must be at least 2. As an example, with +15 data points and \code{nfolds = 4}, the points are assigned to folds in the +following way: +\deqn{ + 0 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 2 \; 3 \; 4 \; 1 \; 0 + }{0 1 2 3 4 1 2 3 4 1 2 3 4 1 0} where 0 indicates no assignment. +Therefore, the folds are not random and running \code{cv_trendfilter()} twice +will give the same result.} +} +\value{ +A list of parameter configurations. +} +\description{ +Construct an object containing non-standard arguments for \code{\link[=growth_rate]{growth_rate()}}. +} From 730bc554afe5c2361c9eb1e2b51b47c43b4e0bc4 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Tue, 28 Jan 2025 13:02:42 -0800 Subject: [PATCH 24/31] Further NEWS rewording --- NEWS.md | 17 +++++++++-------- R/growth_rate.R | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/NEWS.md b/NEWS.md index 2a584db7..bd0d518d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,14 +6,15 @@ Pre-1.0.0 numbering scheme: 0.x will indicate releases, while 0.x.y will indicat ## Breaking changes -- `growth_rate()` with `method = "trendfilter"` now uses the `{trendfilter}` - package rather than `{genlasso}`; results for this method will be different - than before. In order to make `{epiprocess}` installation easier for users - without a compiler, we have placed `{trendfilter}` in Suggests:; if you want - to use `method = "trendfilter"` you will need to manually this dependency - (e.g., with `remotes::install_github("glmgen/trendfilter")`). The interface - for passing arguments to the `"smooth_spline"` and `"trend_filter"` methods - has also changed. +- `growth_rate()` argument order and names have changed. You will need to + rewrite `growth_rate(x, y)` as `growth_rate(y, x)`. The interface for passing + arguments to the `"smooth_spline"` and `"trend_filter"` methods has also + changed. Finally, `growth_rate()` with `method = "trendfilter"` now uses the + `{trendfilter}` package rather than `{genlasso}`; results for this method will + be different than before. In order to make `{epiprocess}` installation easier + for users without a compiler, we have placed `{trendfilter}` in Suggests:; if + you want to use `method = "trendfilter"` you will need to manually install + this dependency (e.g., with `remotes::install_github("glmgen/trendfilter")`). - In `revision_summary()`: - Output now uses the name `lag_near_latest` instead of `time_near_latest`. To migrate, update references to `time_near_latest` to `lag_near_latest`. diff --git a/R/growth_rate.R b/R/growth_rate.R index c0933a59..adbb411b 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -5,10 +5,10 @@ #' vignette](https://cmu-delphi.github.io/epiprocess/articles/growth_rate.html) #' for examples. #' +#' @param y Signal values. #' @param x Design points corresponding to the signal values `y`. Default is #' `seq_along(y)` (that is, equally-spaced points from 1 to the length of #' `y`). -#' @param y Signal values. #' @param x0 Points at which we should estimate the growth rate. Must be a #' contained in the range of `x` (no extrapolation allowed). Default is `x`. #' @param method Either "rel_change", "linear_reg", "smooth_spline", or From 264fbcf0e224ef69a48f804e33a605f3540c33e3 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:39:22 -0800 Subject: [PATCH 25/31] remove scaling by sd (now done internally by the method) --- R/growth_rate.R | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index adbb411b..8fac200b 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -240,8 +240,6 @@ growth_rate <- function( } } else { # Trend filtering params <- parse_trendfilter_params(params) - sdy <- stats::sd(y) # speeds computation significantly - y <- y / sdy if (params$cv) { obj <- trendfilter::cv_trendfilter( y, x, @@ -262,7 +260,7 @@ growth_rate <- function( ) single_lambda <- length(obj$lambda) == 1L lam <- ifelse(single_lambda, obj$lambda, obj$lambda[which.min(abs(params$df - obj$dof))]) - f <- stats::predict(obj, newx = x0, lambda = lam) * sdy + f <- stats::predict(obj, newx = x0, lambda = lam) } d <- diff(f) / diff(x0) From 5a037bc4fbe31173406c70f91e9801cc0194ecdd Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:40:04 -0800 Subject: [PATCH 26/31] remove sorting of x0, not really needed --- R/growth_rate.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 8fac200b..076edc95 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -151,7 +151,6 @@ growth_rate <- function( x <- x[o] y <- y[o] n <- length(y) - x0 <- sort(x0) # Convert to log(y) if we need to y <- as.numeric(y) From 2ce5daaa5a35f4e80e84cdd805d28a5d9aad3749 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:48:31 -0800 Subject: [PATCH 27/31] rm straggling sdy --- R/growth_rate.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/growth_rate.R b/R/growth_rate.R index 076edc95..7eac4440 100644 --- a/R/growth_rate.R +++ b/R/growth_rate.R @@ -249,7 +249,7 @@ growth_rate <- function( ) lam <- params$df which_lambda <- paste0("lambda_", lam) - f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) * sdy + f <- stats::predict(obj, newx = x0, which_lambda = which_lambda) } else { obj <- trendfilter::trendfilter( y, x, From 5612df0a99cc97e5f9e86de086b7f614f25f7ca6 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:53:19 -0800 Subject: [PATCH 28/31] satisfy the linter --- tests/testthat/test-key_colnames.R | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/testthat/test-key_colnames.R b/tests/testthat/test-key_colnames.R index f112de8c..1540d084 100644 --- a/tests/testthat/test-key_colnames.R +++ b/tests/testthat/test-key_colnames.R @@ -85,11 +85,17 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # We can exclude keys: expect_equal( - key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("time_value")), + key_colnames( + gat_tbl, geo_keys = "geo_value", other_keys = "age_group", + time_keys = "time_value", exclude = c("time_value") + ), c("geo_value", "age_group") ) expect_equal( - key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("geo_value", "time_value")), + key_colnames( + gat_tbl, geo_keys = "geo_value", other_keys = "age_group", + time_keys = "time_value", exclude = c("geo_value", "time_value") + ), c("age_group") ) expect_equal( @@ -103,7 +109,10 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # Using `extra_keys =` is soft-deprecated and routes to `other_keys =`: expect_warning( - gat_tbl_extra_keys_res <- key_colnames(gat_tbl, geo_keys = "geo_value", time_keys = "time_value", extra_keys = "age_group"), + gat_tbl_extra_keys_res <- key_colnames( + gat_tbl, geo_keys = "geo_value", + time_keys = "time_value", extra_keys = "age_group" + ), class = "lifecycle_warning_deprecated" ) expect_equal(gat_tbl_extra_keys_res, c("geo_value", "age_group", "time_value")) From 85e6530f28e3bcc28321fbe36ce6ef1d8ac4fcb7 Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:59:40 -0800 Subject: [PATCH 29/31] fix rcmd check errors --- DESCRIPTION | 1 + R/time-utils.R | 4 ++-- man/format_time_delta.Rd | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 5b1e14fe..52426f7a 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -62,6 +62,7 @@ Imports: waldo Suggests: devtools, + distributional, epidatr, epipredict, here, diff --git a/R/time-utils.R b/R/time-utils.R index 28b7182a..73fbc8a5 100644 --- a/R/time-utils.R +++ b/R/time-utils.R @@ -265,8 +265,8 @@ time_type_unit_pluralizer <- c( #' Format a length-1 time delta to a character to assist messaging #' #' This is meant to address the following: -#' - glue::glue("{as.difftime(1, units = 'days')}") is "1" -#' - glue::glue("{format(as.difftime(1, units = 'days'))}") is "1 days" +#' - `glue::glue("{as.difftime(1, units = 'days')}")` is "1" +#' - `glue::glue("{format(as.difftime(1, units = 'days'))}")` is "1 days" #' - time deltas for yearmonths and integers don't have units attached at all #' #' @keywords internal diff --git a/man/format_time_delta.Rd b/man/format_time_delta.Rd index 88ba581a..3658ff27 100644 --- a/man/format_time_delta.Rd +++ b/man/format_time_delta.Rd @@ -9,8 +9,8 @@ format_time_delta(x, time_type) \description{ This is meant to address the following: \itemize{ -\item glue::glue("{as.difftime(1, units = 'days')}") is "1" -\item glue::glue("{format(as.difftime(1, units = 'days'))}") is "1 days" +\item \code{glue::glue("{as.difftime(1, units = 'days')}")} is "1" +\item \code{glue::glue("{format(as.difftime(1, units = 'days'))}")} is "1 days" \item time deltas for yearmonths and integers don't have units attached at all } } From d5c349896c6b2f44df2ec3d19dd9100125c0954c Mon Sep 17 00:00:00 2001 From: "Daniel J. McDonald" Date: Tue, 28 Jan 2025 21:59:50 -0800 Subject: [PATCH 30/31] Revert "satisfy the linter" This reverts commit 5612df0a99cc97e5f9e86de086b7f614f25f7ca6. --- tests/testthat/test-key_colnames.R | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/tests/testthat/test-key_colnames.R b/tests/testthat/test-key_colnames.R index 1540d084..f112de8c 100644 --- a/tests/testthat/test-key_colnames.R +++ b/tests/testthat/test-key_colnames.R @@ -85,17 +85,11 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # We can exclude keys: expect_equal( - key_colnames( - gat_tbl, geo_keys = "geo_value", other_keys = "age_group", - time_keys = "time_value", exclude = c("time_value") - ), + key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("time_value")), c("geo_value", "age_group") ) expect_equal( - key_colnames( - gat_tbl, geo_keys = "geo_value", other_keys = "age_group", - time_keys = "time_value", exclude = c("geo_value", "time_value") - ), + key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("geo_value", "time_value")), c("age_group") ) expect_equal( @@ -109,10 +103,7 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # Using `extra_keys =` is soft-deprecated and routes to `other_keys =`: expect_warning( - gat_tbl_extra_keys_res <- key_colnames( - gat_tbl, geo_keys = "geo_value", - time_keys = "time_value", extra_keys = "age_group" - ), + gat_tbl_extra_keys_res <- key_colnames(gat_tbl, geo_keys = "geo_value", time_keys = "time_value", extra_keys = "age_group"), class = "lifecycle_warning_deprecated" ) expect_equal(gat_tbl_extra_keys_res, c("geo_value", "age_group", "time_value")) From 059b968152ce9b3a7edc2b5ad95e6424118bda41 Mon Sep 17 00:00:00 2001 From: "Logan C. Brooks" Date: Mon, 10 Feb 2025 12:00:05 -0800 Subject: [PATCH 31/31] Re-lint test line lengths --- tests/testthat/test-key_colnames.R | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-key_colnames.R b/tests/testthat/test-key_colnames.R index f112de8c..bd873ecc 100644 --- a/tests/testthat/test-key_colnames.R +++ b/tests/testthat/test-key_colnames.R @@ -85,11 +85,19 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # We can exclude keys: expect_equal( - key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("time_value")), + key_colnames( + gat_tbl, + geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", + exclude = c("time_value") + ), c("geo_value", "age_group") ) expect_equal( - key_colnames(gat_tbl, geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", exclude = c("geo_value", "time_value")), + key_colnames( + gat_tbl, + geo_keys = "geo_value", other_keys = "age_group", time_keys = "time_value", + exclude = c("geo_value", "time_value") + ), c("age_group") ) expect_equal( @@ -103,14 +111,22 @@ test_that("`key_colnames` on `epi_df`s and similar tibbles works as expected", { # Using `extra_keys =` is soft-deprecated and routes to `other_keys =`: expect_warning( - gat_tbl_extra_keys_res <- key_colnames(gat_tbl, geo_keys = "geo_value", time_keys = "time_value", extra_keys = "age_group"), + gat_tbl_extra_keys_res <- key_colnames( + gat_tbl, + geo_keys = "geo_value", time_keys = "time_value", + extra_keys = "age_group" + ), class = "lifecycle_warning_deprecated" ) expect_equal(gat_tbl_extra_keys_res, c("geo_value", "age_group", "time_value")) expect_warning( gat_edf_extra_keys_exclude_res <- - key_colnames(gat_edf, extra_keys = "age_group", exclude = c("geo_value", "time_value")), + key_colnames( + gat_edf, + extra_keys = "age_group", + exclude = c("geo_value", "time_value") + ), class = "lifecycle_warning_deprecated" ) expect_equal(gat_edf_extra_keys_exclude_res, c("age_group"))