# devtools::load_all("~/gh/nowcastr")
library(dplyr)
{
results <- tibble()
results_details <- tibble()
for (ii in seq(2, 15, 1)) {
nc_eval_obj_i <-
nowcast_demo %>%
filter(group == "Syndromic ILI") %>%
nowcast_eval(
n_past = 99,
max_delay = 3,
max_reportunits = ii, ## this varies
do_model_fitting = FALSE,
col_date_occurrence = date_occurrence,
col_date_reporting = date_report,
col_value = value,
group_cols = "group",
time_units = "weeks"
)
res_i <- nc_eval_obj_i@summary %>% mutate(max_reportunits = ii)
res_d_i <- nc_eval_obj_i@detail %>% mutate(max_reportunits = ii)
results <- bind_rows(results, res_i)
results_details <- bind_rows(results_details, res_d_i)
# avg <- mean(res_i$smape_diff_med) |> signif(2)
# message(max_reportunits, ": ", avg)
}
}
library(ggplot2)
results %>%
filter(group == "Syndromic ILI") %>%
filter(delay < 3) %>%
summarise(
.by = c(group, max_reportunits, delay),
avg_smape_diff_med = mean(smape_diff_med, na.rm = T)
) %>%
mutate(
.by = c(group, delay),
best = if_else(avg_smape_diff_med == max(avg_smape_diff_med), "best", "")
) %>%
mutate(delay = factor(delay)) %>%
ggplot(aes(x = max_reportunits, y = avg_smape_diff_med, color = delay, group = delay)) +
geom_line() +
geom_point() +
theme_nowcastr() +
# geom_text(aes(label = best)) +
# geom_point(color='red') +
# geom_point(aes(fill = best == 'best')) +
geom_point(shape = 21, aes(fill = best == "best")) +
scale_fill_manual(values = c("FALSE" = "transparent", "TRUE" = "red"), guide = "none") +
scale_color_viridis_d(option = "mako", begin = .4, end = .8) +
# ggplot2::scale_y_continuous(labels = scales::label_percent()) +
# facet_wrap(. ~ delay, scales = "free_y") +
facet_wrap(. ~ group, scales = "free_y") +
labs(y = "Differential sMAPE", x = "max_reportunits", color = "Delay")
results %>%
filter(group == "Syndromic ILI") %>%
filter(delay < 3) %>%
summarise(
.by = c(max_reportunits),
n = n(),
avg_smape_diff_med = mean(smape_diff_med, na.rm = T)
) %>%
mutate(tag = if_else(avg_smape_diff_med == max(avg_smape_diff_med), "best overall", "")) %>%
print()
#> # A tibble: 14 × 4
#> max_reportunits n avg_smape_diff_med tag
#> <dbl> <int> <dbl> <chr>
#> 1 2 3 0.0865 ""
#> 2 3 3 0.112 ""
#> 3 4 3 0.127 ""
#> 4 5 3 0.141 ""
#> 5 6 3 0.140 ""
#> 6 7 3 0.146 "best overall"
#> 7 8 3 0.142 ""
#> 8 9 3 0.137 ""
#> 9 10 3 0.138 ""
#> 10 11 3 0.140 ""
#> 11 12 3 0.140 ""
#> 12 13 3 0.140 ""
#> 13 14 3 0.142 ""
#> 14 15 3 0.143 ""