Nothing
testthat::context("Modeltime Residuals")
testthat::test_that("modeltime_residuals(): Returns correct order", {
testthat::skip_on_cran()
library(tidymodels)
library(modeltime)
library(tidyverse)
library(timetk)
data <- walmart_sales_weekly %>%
select(id, Date, Weekly_Sales) %>%
set_names(c("ID", "date", "value"))
splits <- data %>% time_series_split(assess = "3 months", cumulative = TRUE)
rec_obj <- recipe(value ~ ., training(splits)) %>%
step_mutate(ID = droplevels(ID)) %>%
step_timeseries_signature(date) %>%
step_rm(date) %>%
step_zv(all_predictors()) %>%
step_dummy(all_nominal_predictors(), one_hot = TRUE)
# Workflow
wflw_xgb <- workflow() %>%
add_model(
boost_tree("regression") %>% set_engine("xgboost")
) %>%
add_recipe(rec_obj) %>%
fit(training(splits))
wflw_glmnet <- workflow() %>%
add_model(
linear_reg(penalty = 1) %>%
set_engine("glmnet")
) %>%
add_recipe(rec_obj) %>%
fit(training(splits))
model_tbl <- modeltime_table(
wflw_xgb,
wflw_glmnet
)
i <- 1
# Order is not changed for the training set
calib_tbl_train <- model_tbl %>%
modeltime_calibrate(
training(splits)
)
testthat::expect_equal(training(splits)$value, calib_tbl_train$.calibration_data[[1]]$.actual)
# Usage of the full data set
# if i want to refit and than I use calibrate row order is changed
refit_tbl <- model_tbl %>%
modeltime_refit(data)
calib_tbl <- refit_tbl %>%
modeltime_calibrate(
data
)
testthat::expect_equal(data$value, calib_tbl$.calibration_data[[1]]$.actual)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.