Skip to content

Commit 1780715

Browse files
committed
forecast_generation_date -> forecast_date
1 parent 85ed238 commit 1780715

File tree

3 files changed

+37
-47
lines changed

3 files changed

+37
-47
lines changed

scripts/covid_hosp_prod.R

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ insufficient_data_geos <- c("as", "mp", "vi", "gu")
77
# date to cut the truth data off at, so we don't have too much of the past
88
truth_data_date <- "2023-09-01"
99
# Generically set the generation date to the next Wednesday (or today if it's Wednesday)
10-
forecast_generation_date <- seq.Date(as.Date("2024-11-20"), Sys.Date(), by = 7L)
10+
forecast_generation_date <- Sys.Date()
11+
forecast_date <- seq.Date(as.Date("2024-11-20"), Sys.Date(), by = 7L)
1112

1213
forecaster_fns <- list2(
1314
linear = function(...) {
@@ -58,16 +59,16 @@ rlang::list2(
5859
tar_map(
5960
values = tidyr::expand_grid(
6061
tibble(
61-
forecast_generation_date = forecast_generation_date
62+
forecast_date = forecast_date
6263
)
6364
),
64-
names = "forecast_generation_date",
65+
names = "forecast_date",
6566
tar_target(
6667
name = geo_forecasters_weights,
6768
command = {
68-
geo_forecasters_weights <- parse_prod_weights(here::here("covid_geo_exclusions.csv"), forecast_generation_date)
69-
if (nrow(geo_forecasters_weights %>% filter(forecast_date == forecast_generation_date)) == 0) {
70-
cli_abort("there are no weights for the forecast date {forecast_generation_date}")
69+
geo_forecasters_weights <- parse_prod_weights(here::here("covid_geo_exclusions.csv"), forecast_date)
70+
if (nrow(geo_forecasters_weights %>% filter(forecast_date == forecast_date)) == 0) {
71+
cli_abort("there are no weights for the forecast date {forecast_date}")
7172
}
7273
geo_forecasters_weights
7374
},
@@ -82,7 +83,7 @@ rlang::list2(
8283
tar_target(
8384
forecast_res,
8485
command = {
85-
forecast_date <- as.Date(forecast_generation_date)
86+
forecast_date <- as.Date(forecast_date)
8687
if (forecast_date < Sys.Date()) {
8788
train_data <- nhsn_archive_data %>%
8889
epix_as_of(forecast_date) %>%
@@ -95,7 +96,7 @@ rlang::list2(
9596
train_data <-
9697
nhsn_latest_data %>%
9798
data_substitutions(disease = "covid") %>%
98-
as_epi_df(as_of = as.Date(forecast_generation_date))
99+
as_epi_df(as_of = as.Date(forecast_date))
99100
}
100101
attributes(train_data)$metadata$as_of <- round_date(forecast_date, "weeks", week_start = 3)
101102
train_data %>%
@@ -134,7 +135,7 @@ rlang::list2(
134135
tar_target(
135136
name = make_submission_csv,
136137
command = {
137-
forecast_reference_date <- get_forecast_reference_date(as.Date(forecast_generation_date))
138+
forecast_reference_date <- get_forecast_reference_date(as.Date(forecast_date))
138139
ensemble_mixture_res %>%
139140
format_flusight(disease = "covid") %>%
140141
write_submission_file(forecast_reference_date, file.path(submission_directory, "model-output/CMU-TimeSeries"))
@@ -153,7 +154,7 @@ rlang::list2(
153154
ungroup() %>%
154155
format_flusight(disease = "covid") %>%
155156
write_submission_file(
156-
get_forecast_reference_date(as.Date(forecast_generation_date)),
157+
get_forecast_reference_date(as.Date(forecast_date)),
157158
submission_directory = file.path(submission_directory, "model-output/CMU-climatological-baseline"),
158159
file_name = "CMU-climatological-baseline"
159160
)
@@ -169,7 +170,7 @@ rlang::list2(
169170
if (submission_directory != "cache") {
170171
validation <- validate_submission(
171172
submission_directory,
172-
file_path = sprintf("CMU-TimeSeries/%s-CMU-TimeSeries.csv", get_forecast_reference_date(as.Date(forecast_generation_date)))
173+
file_path = sprintf("CMU-TimeSeries/%s-CMU-TimeSeries.csv", get_forecast_reference_date(as.Date(forecast_date)))
173174
)
174175
} else {
175176
validation <- "not validating when there is no hub (set submission_directory)"
@@ -186,7 +187,7 @@ rlang::list2(
186187
if (submission_directory != "cache" && submit_climatological) {
187188
validation <- validate_submission(
188189
submission_directory,
189-
file_path = sprintf("CMU-climatological-baseline/%s-CMU-climatological-baseline.csv", get_forecast_reference_date(as.Date(forecast_generation_date)))
190+
file_path = sprintf("CMU-climatological-baseline/%s-CMU-climatological-baseline.csv", get_forecast_reference_date(as.Date(forecast_date)))
190191
)
191192
} else {
192193
validation <- "not validating when there is no hub (set submission_directory)"
@@ -242,13 +243,13 @@ rlang::list2(
242243
"scripts/reports/forecast_report.Rmd",
243244
output_file = here::here(
244245
"reports",
245-
sprintf("%s_covid_prod_on_%s.html", as.Date(forecast_generation_date), as.Date(Sys.Date()))
246+
sprintf("%s_covid_prod_on_%s.html", as.Date(forecast_date), as.Date(Sys.Date()))
246247
),
247248
params = list(
248249
disease = "covid",
249250
forecast_res = forecast_res %>% bind_rows(ensemble_mixture_res %>% mutate(forecaster = "ensemble_mix")),
250251
ensemble_res = ensemble_res,
251-
forecast_generation_date = as.Date(forecast_generation_date),
252+
forecast_date = as.Date(forecast_date),
252253
truth_data = truth_data
253254
)
254255
)

scripts/flu_hosp_prod.R

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ truth_data_date <- "2023-09-01"
1010
# needed to create the aux data targets
1111
end_date <- Sys.Date()
1212
# Generically set the generation date to the next Wednesday (or today if it's Wednesday)
13-
forecast_generation_date <- seq.Date(as.Date("2024-11-20"), Sys.Date(), by = 7L)
14-
# forecast_generation_date <- as.Date("2025-01-08")
13+
forecast_generation_date <- Sys.Date()
14+
forecast_date <- seq.Date(as.Date("2024-11-20"), Sys.Date(), by = 7L)
15+
# forecast_date <- as.Date("2025-01-08")
1516
very_latent_locations <- list(list(
1617
c("source"),
1718
c("flusurv", "ILI+")
@@ -109,14 +110,14 @@ rlang::list2(
109110
}
110111
),
111112
tar_map(
112-
values = tidyr::expand_grid(tibble(forecast_generation_date = forecast_generation_date)),
113-
names = "forecast_generation_date",
113+
values = tidyr::expand_grid(tibble(forecast_date = forecast_date)),
114+
names = "forecast_date",
114115
tar_target(
115116
name = geo_forecasters_weights,
116117
command = {
117-
geo_forecasters_weights <- parse_prod_weights(here::here("flu_geo_exclusions.csv"), forecast_generation_date)
118-
if (nrow(geo_forecasters_weights %>% filter(forecast_date == forecast_generation_date)) == 0) {
119-
cli_abort("there are no weights for the forecast date {forecast_generation_date}")
118+
geo_forecasters_weights <- parse_prod_weights(here::here("flu_geo_exclusions.csv"), forecast_date)
119+
if (nrow(geo_forecasters_weights %>% filter(forecast_date == forecast_date)) == 0) {
120+
cli_abort("there are no weights for the forecast date {forecast_date}")
120121
}
121122
geo_forecasters_weights
122123
},
@@ -131,7 +132,7 @@ rlang::list2(
131132
tar_target(
132133
forecast_res,
133134
command = {
134-
forecast_date <- as.Date(forecast_generation_date)
135+
forecast_date <- as.Date(forecast_date)
135136
if (forecast_date < Sys.Date()) {
136137
train_data <- nhsn_archive_data %>%
137138
epix_as_of(forecast_date) %>%
@@ -193,7 +194,7 @@ rlang::list2(
193194
ensemble_mixture_res %>%
194195
format_flusight(disease = "flu") %>%
195196
write_submission_file(
196-
get_forecast_reference_date(as.Date(forecast_generation_date)),
197+
get_forecast_reference_date(as.Date(forecast_date)),
197198
file.path(submission_directory, "model-output/CMU-TimeSeries")
198199
)
199200
},
@@ -211,7 +212,7 @@ rlang::list2(
211212
ungroup() %>%
212213
format_flusight(disease = "flu") %>%
213214
write_submission_file(
214-
get_forecast_reference_date(as.Date(forecast_generation_date)),
215+
get_forecast_reference_date(as.Date(forecast_date)),
215216
submission_directory = file.path(submission_directory, "model-output/CMU-climatological-baseline"),
216217
file_name = "CMU-climatological-baseline"
217218
)
@@ -227,7 +228,7 @@ rlang::list2(
227228
if (submission_directory != "cache") {
228229
validation <- validate_submission(
229230
submission_directory,
230-
file_path = sprintf("CMU-TimeSeries/%s-CMU-TimeSeries.csv", get_forecast_reference_date(as.Date(forecast_generation_date)))
231+
file_path = sprintf("CMU-TimeSeries/%s-CMU-TimeSeries.csv", get_forecast_reference_date(as.Date(forecast_date)))
231232
)
232233
} else {
233234
validation <- "not validating when there is no hub (set submission_directory)"
@@ -244,7 +245,7 @@ rlang::list2(
244245
if (submission_directory != "cache" && submit_climatological) {
245246
validation <- validate_submission(
246247
submission_directory,
247-
file_path = sprintf("CMU-climatological-baseline/%s-CMU-climatological-baseline.csv", get_forecast_reference_date(as.Date(forecast_generation_date)))
248+
file_path = sprintf("CMU-climatological-baseline/%s-CMU-climatological-baseline.csv", get_forecast_reference_date(as.Date(forecast_date)))
248249
)
249250
} else {
250251
validation <- "not validating when there is no hub (set submission_directory)"
@@ -267,24 +268,12 @@ rlang::list2(
267268
select(geo_value, source, target_end_date = time_value, value) %>%
268269
filter(target_end_date > truth_data_date, geo_value %nin% insufficient_data_geos) %>%
269270
mutate(target_end_date = target_end_date + 6)
270-
forecast_date <- as.Date(forecast_generation_date)
271+
forecast_date <- as.Date(forecast_date)
271272
if (forecast_date < Sys.Date()) {
272273
truth_data <- nhsn_archive_data %>% epix_as_of(forecast_date)
273274
} else {
274275
truth_data <- nhsn_latest_data
275276
}
276-
nhsn_latest_data %>%
277-
pull(time_value) %>%
278-
max()
279-
nhsn_archive_data %>%
280-
epix_as_of(as.Date("2024-12-18")) %>%
281-
pull(time_value) %>%
282-
max()
283-
forecast_date
284-
nhsn_archive_data %>%
285-
epix_as_of(forecast_date) %>%
286-
pull(time_value) %>%
287-
max()
288277
truth_data <- truth_data %>%
289278
mutate(target_end_date = time_value) %>%
290279
filter(time_value > truth_data_date) %>%
@@ -318,13 +307,13 @@ rlang::list2(
318307
"scripts/reports/forecast_report.Rmd",
319308
output_file = here::here(
320309
"reports",
321-
sprintf("%s_flu_prod_on_%s.html", as.Date(forecast_generation_date), as.Date(Sys.Date()))
310+
sprintf("%s_flu_prod_on_%s.html", as.Date(forecast_date), as.Date(Sys.Date()))
322311
),
323312
params = list(
324313
disease = "flu",
325314
forecast_res = forecast_res %>% bind_rows(ensemble_mixture_res %>% mutate(forecaster = "ensemble_mix")),
326315
ensemble_res = ensemble_res,
327-
forecast_generation_date = as.Date(forecast_generation_date),
316+
forecast_date = as.Date(forecast_date),
328317
truth_data = truth_data
329318
)
330319
)

scripts/reports/forecast_report.Rmd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: "`r params$forecast_generation_date`: `r params$disease` forecaster predictions"
2+
title: "`r params$forecast_date`: `r params$disease` forecaster predictions"
33
author: Delphi Forecast Team
4-
date: "Rendered: `r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`, Forecast date: `r params$forecast_generation_date`, Last day of data: `r max(params$truth_data$target_end_date)`"
4+
date: "Rendered: `r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`, Forecast date: `r params$forecast_date`, Last day of data: `r max(params$truth_data$target_end_date)`"
55
output:
66
html_document:
77
toc: True
@@ -11,7 +11,7 @@ params:
1111
disease: "covid"
1212
forecast_res: !r ""
1313
ensemble_res: !r ""
14-
forecast_generation_date: !r ""
14+
forecast_date: !r ""
1515
truth_data: !r ""
1616
---
1717

@@ -52,7 +52,7 @@ Fan displays 20-80 quantiles for coverage.
5252
```{r, fig.height = 60, fig.width = 12, echo=FALSE}
5353
the_plot <- plot_forecasts(
5454
params$forecast_res %>% bind_rows(params$ensemble_res %>% mutate(forecaster = "ensemble")),
55-
params$forecast_generation_date,
55+
params$forecast_date,
5656
params$truth_data,
5757
quantiles = c(0.8),
5858
alphas = c(0.7)
@@ -71,7 +71,7 @@ Fan displays 20-80, 5-95, and 1-99 quantiles.
7171
```{r, fig.height = 60, fig.width = 12, echo=FALSE}
7272
the_plot <- plot_forecasts(
7373
params$forecast_res %>% bind_rows(params$ensemble_res %>% mutate(forecaster = "ensemble")),
74-
params$forecast_generation_date,
74+
params$forecast_date,
7575
params$truth_data,
7676
quantiles = c(0.8, 0.95, 0.99),
7777
alphas = c(0.9, 0.6, 0.2)
@@ -94,7 +94,7 @@ ggplotly(the_plot, tooltip = "text", height = 9000, width = 2000) %>%
9494
<!-- value = sum(value), -->
9595
<!-- .by = c("forecaster", "forecast_date", "target_end_date", "quantile") -->
9696
<!-- ), -->
97-
<!-- params$forecast_generation_date, -->
97+
<!-- params$forecast_date, -->
9898
<!-- "nation", -->
9999
<!-- params$truth_data %>% mutate(target_end_date = time_value) %>% filter(geo_value == "usa") %>% filter(time_value > "2023-09-01") -->
100100
<!-- ) %>% -->

0 commit comments

Comments
 (0)