library(vetiver) library(pins) library(tidyverse) b <- board_folder(".") v <- b |> vetiver_pin_read("framinghamCHD") chd_new <- chd_testing |> slice_sample(n = 100) |> mutate(tgl_update = sample(seq(Sys.Date()-7, Sys.Date(), by = "day"), size = 100, replace = TRUE)) |> arrange(tgl_update) chd_new |> count(tgl_update) chd_original_metric <- v |> augment(chd_new) |> vetiver_compute_metrics(date_var = tgl_update, period = "day", truth = TenYearCHD, estimate = .pred_class, metric_set = metric_set(accuracy, precision, recall, sensitivity, specificity)) b |> pin_write(chd_original_mteric, "chd_model_metrics") b |> pin_read("chd_model_metrics") |> vetiver_plot_metrics() + scale_size(range = c(2, 4)) + theme_bw() walk(1:20, function(x){ chd_new <- chd_testing |> slice_sample(n = 100) |> mutate(tgl_update = Sys.Date()+x) |> arrange(tgl_update) chd_new_metric <- v |> augment(chd_new) |> vetiver_compute_metrics(date_var = tgl_update, period = "day", truth = TenYearCHD, estimate = .pred_class, metric_set = metric_set(accuracy, precision, recall, sensitivity, specificity)) last_metric <- b |> pin_read("chd_model_metrics") new_metric <- last_metric |> bind_rows(chd_new_metric) b |> vetiver_pin_metrics(df_metrics = new_metric, metrics_pin_name = "chd_model_metrics", overwrite = TRUE) }) p1 <- b |> pin_read("chd_model_metrics") |> vetiver_plot_metrics() + scale_size(range = c(2, 4)) + theme_bw() ggplotly(p1)