Skip to content

Commit 28fbc09

Browse files
authored
report disagreements (#36)
1 parent 49ec6f5 commit 28fbc09

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

R/prep-data.R

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ classify_models <- function(file = here("data", "model-classification.csv")) {
99
pivot_longer(
1010
-model, names_to = "classifier", values_to = "classification"
1111
) |>
12+
filter(!(is.na(classification) | classification == "#N/A")) |>
1213
group_by(model) |>
1314
summarise(
15+
agreement = (n_distinct(classification) == 1),
1416
classification = names(
1517
sort(table(classification), decreasing = TRUE)[1]
16-
), .groups = "drop"
18+
),
19+
.groups = "drop"
1720
) |>
1821
mutate(classification = factor(
1922
classification,
@@ -54,7 +57,7 @@ prep_data <- function(scoring_scale = "log") {
5457

5558
# Method type
5659
methods <- classify_models() |>
57-
select(model, Method = classification)
60+
select(model, Method = classification, agreement)
5861

5962
# Incidence level + trend (see: R/import-data.r)
6063
obs <- names(scores_files) |>

report/results.Rmd

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,16 @@ scores_over_time
7878

7979
```{r structures}
8080
structures <- scores |>
81-
select(Model, Method) |>
82-
distinct() |>
83-
pull(Method) |>
84-
table()
85-
structures <- structures[structures > 0]
81+
select(Model, Method, agreement) |>
82+
distinct()
83+
84+
structure_count <- table(structures$Method)
85+
structure_count <- structure_count[structure_count > 0]
8686
```
8787

88-
We categorised `r structures[["Qualitative"]]` models that used human judgement forecasting as qualitative. We further categorised `r structures[["Statistical"]]` models as statistical, `r structures[["Semi-mechanistic"]]` as semi-mechanistic, `r structures[["Mechanistic"]]` as mechanistic and `r structures[["Agent-based"]]` as agent-based (Supplementary Table). In the volume of forecasts provided, mechanistic, semi-mechanistic, and statistical models each contributed similar numbers of forecasts with approximately one-third each. Qualitative and agent-based models provided fewer forecasts, representing only 1-2% of forecasts.
88+
We categorised `r structure_count[["Qualitative"]]` models that used human judgement forecasting as qualitative. We further categorised `r structure_count[["Statistical"]]` models as statistical, `r structure_count[["Semi-mechanistic"]]` as semi-mechanistic, `r structure_count[["Mechanistic"]]` as mechanistic and `r structure_count[["Agent-based"]]` as agent-based (Supplementary Table).
89+
In `r sum(!structures$agreement)` (`r round(sum(!structures$agreement) / nrow(structures) * 100)`%) of models the assignment of structure there was disagreement between the researchers doing the assignment and the final designation was done as the majority of assignments with additional manual review which in all cases retained the majority decision.
90+
In the volume of forecasts provided, mechanistic, semi-mechanistic, and statistical models each contributed similar numbers of forecasts with approximately one-third each. Qualitative and agent-based models provided fewer forecasts, representing only 1-2% of forecasts.
8991

9092
On average we observed similar performance of the interval score between mechanistic and semi-mechanistic models. These performed relatively better than statistical models and worse than the qualitative and agent-based models, although in all these cases with largely overlapping variation in performance. Relative performance among modelling methods also appeared to vary over time (Figure \@ref(scores_over_time)). For example, over summer 2021 all model types saw worsening performance coinciding with the introduction of the Delta variant across Europe, but this decline was most marked among statistical models of death outcomes compared to any other model type.
9193

0 commit comments

Comments
 (0)