Skip to contents

Train on earlier data, test on later data

Usage

temporal_validate(
  fit_fn,
  predict_fn,
  X,
  y,
  date_col,
  split_date = NULL,
  split_quantile = 0.7,
  scoring = "roc_auc"
)

Arguments

fit_fn, predict_fn

As in cross_validate.

X

Data frame including date_col.

y

Target vector.

date_col

Name of date column in X.

split_date

Date to split on, or NULL.

split_quantile

Quantile of dates (if split_date is NULL).

scoring

Scoring metric.

Value

An object of class "class_name".

Examples

set.seed(1)
X <- data.frame(x = rnorm(60), date = seq.Date(as.Date("2020-01-01"),
                                              by = "day", length.out = 60))
y <- X$x + rnorm(60)
res <- try(temporal_validate(
  fit_fn = function(Xt, yt) stats::lm(yt ~ x, data = cbind(Xt, yt = yt)),
  predict_fn = function(m, Xt) stats::predict(m, Xt),
  X = X, y = y, date_col = "date"))
#> Error in model.frame.default(formula = yt ~ x, data = cbind(Xt, yt = yt),  : 
#>   'data' must be a data.frame, not a matrix or an array
if (!inherits(res, "try-error")) str(res, max.level = 1)