Skip to content

Commit 871afd4

Browse files
authored
Merge pull request #998 from epiforecasts/multivariate
2 parents 34af8e1 + 7eca402 commit 871afd4

File tree

63 files changed

+1506
-141
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1506
-141
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Config/Needs/website:
7575
r-lib/pkgdown,
7676
amirmasoudabdol/preferably
7777
Config/testthat/edition: 3
78-
RoxygenNote: 7.3.2
78+
RoxygenNote: 7.3.3
7979
URL: https://doi.org/10.48550/arXiv.2205.07090, https://epiforecasts.io/scoringutils/, https://github.com/epiforecasts/scoringutils
8080
BugReports: https://github.com/epiforecasts/scoringutils/issues
8181
VignetteBuilder: knitr

NAMESPACE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ S3method("[<-",forecast)
66
S3method("[[<-",forecast)
77
S3method(`[`,scores)
88
S3method(as_forecast_binary,default)
9+
S3method(as_forecast_multivariate_sample,default)
910
S3method(as_forecast_nominal,default)
1011
S3method(as_forecast_ordinal,default)
1112
S3method(as_forecast_point,default)
@@ -20,12 +21,14 @@ S3method(assert_forecast,forecast_ordinal)
2021
S3method(assert_forecast,forecast_point)
2122
S3method(assert_forecast,forecast_quantile)
2223
S3method(assert_forecast,forecast_sample)
24+
S3method(assert_forecast,forecast_sample_multivariate)
2325
S3method(get_metrics,forecast_binary)
2426
S3method(get_metrics,forecast_nominal)
2527
S3method(get_metrics,forecast_ordinal)
2628
S3method(get_metrics,forecast_point)
2729
S3method(get_metrics,forecast_quantile)
2830
S3method(get_metrics,forecast_sample)
31+
S3method(get_metrics,forecast_sample_multivariate)
2932
S3method(get_metrics,scores)
3033
S3method(get_pit_histogram,default)
3134
S3method(get_pit_histogram,forecast_quantile)
@@ -39,11 +42,13 @@ S3method(score,forecast_ordinal)
3942
S3method(score,forecast_point)
4043
S3method(score,forecast_quantile)
4144
S3method(score,forecast_sample)
45+
S3method(score,forecast_sample_multivariate)
4246
S3method(tail,forecast)
4347
export(add_relative_skill)
4448
export(ae_median_quantile)
4549
export(ae_median_sample)
4650
export(as_forecast_binary)
51+
export(as_forecast_multivariate_sample)
4752
export(as_forecast_nominal)
4853
export(as_forecast_ordinal)
4954
export(as_forecast_point)
@@ -57,11 +62,13 @@ export(crps_sample)
5762
export(dispersion_quantile)
5863
export(dispersion_sample)
5964
export(dss_sample)
65+
export(energy_score_multivariate)
6066
export(get_correlations)
6167
export(get_coverage)
6268
export(get_duplicate_forecasts)
6369
export(get_forecast_counts)
6470
export(get_forecast_unit)
71+
export(get_grouping)
6572
export(get_metrics)
6673
export(get_pairwise_comparisons)
6774
export(get_pit_histogram)
@@ -73,6 +80,7 @@ export(is_forecast_ordinal)
7380
export(is_forecast_point)
7481
export(is_forecast_quantile)
7582
export(is_forecast_sample)
83+
export(is_forecast_sample_multivariate)
7684
export(log_shift)
7785
export(logs_binary)
7886
export(logs_categorical)
@@ -137,6 +145,7 @@ importFrom(cli,cli_inform)
137145
importFrom(cli,cli_text)
138146
importFrom(cli,cli_warn)
139147
importFrom(cli,col_blue)
148+
importFrom(cli,qty)
140149
importFrom(data.table,"%like%")
141150
importFrom(data.table,':=')
142151
importFrom(data.table,.I)
@@ -148,12 +157,14 @@ importFrom(data.table,data.table)
148157
importFrom(data.table,dcast)
149158
importFrom(data.table,fcase)
150159
importFrom(data.table,is.data.table)
160+
importFrom(data.table,key)
151161
importFrom(data.table,melt)
152162
importFrom(data.table,nafill)
153163
importFrom(data.table,rbindlist)
154164
importFrom(data.table,setDT)
155165
importFrom(data.table,setattr)
156166
importFrom(data.table,setcolorder)
167+
importFrom(data.table,setkeyv)
157168
importFrom(data.table,setnames)
158169
importFrom(data.table,setorderv)
159170
importFrom(ggplot2,.data)
@@ -188,10 +199,12 @@ importFrom(ggplot2,theme_minimal)
188199
importFrom(ggplot2,unit)
189200
importFrom(ggplot2,xlab)
190201
importFrom(ggplot2,ylab)
202+
importFrom(methods,formalArgs)
191203
importFrom(methods,hasArg)
192204
importFrom(purrr,partial)
193205
importFrom(scoringRules,crps_sample)
194206
importFrom(scoringRules,dss_sample)
207+
importFrom(scoringRules,es_sample)
195208
importFrom(scoringRules,logs_sample)
196209
importFrom(scoringRules,rps_probs)
197210
importFrom(stats,cor)

NEWS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# scoringutils (development version)
22

3+
- Added support for scoring multivariate forecasts (#288, big thank you to Sam Abbott and Sebastian Funk). You can find detailed information in the Vignette "Scoring multivariate forecasts". There is a new forecast type, `forecast_multivariate_sample()` and a corresponding `as_forecast_multivariate_sample()` function. To score a multivariate forecast, users are expected to provide a `joint_across` argument which specifies the variables which are forecast jointly.
4+
35
# scoringutils 2.1.2
46

57
- fixed an issue that could arise with small rounding errors in quantile-based forecasts. This happened when there were quantile_levels like 0.5, and 0.5 + 1e-16 present at the same time. `scoringutils` now warns the user of the issue and automatically rounds all quantile levels to 10 digits.
@@ -156,7 +158,7 @@ This major release contains a range of new features and bug fixes that have been
156158

157159
- Documentation updated to reflect changes since version 1.1.0, including new transform and workflow functions.
158160
- New `set_forecast_unit()` function allows manual setting of forecast unit.
159-
- `summarise_scores()` gains new `across` argument for summarizing across variables.
161+
- `summarise_scores()` gains new `across` argument for summarizing across variables. EDIT: This has since been removed again in [PR #831](https://github.com/epiforecasts/scoringutils/pull/831).
160162
- New `transform_forecasts()` and `log_shift()` functions allow forecast transformations. See the documentation for `transform_forecasts()` for more details and an example use case.
161163
- Input checks and test coverage improved for bias functions.
162164
- Bug fix in `get_prediction_type()` for integer matrix input.

R/class-forecast-binary.R

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#' @title Create a `forecast` object for binary forecasts
22
#' @inherit as_forecast_doc_template params description
33
#' @details
4-
#' # Required input
4+
#' # Target format
55
#'
6-
#' The input needs to be a data.frame or similar with the following columns:
6+
#' The input for all further scoring needs to be a data.frame or similar with
7+
#' the following columns:
78
#' - `observed`: `factor` with exactly two levels representing the observed
89
#' values. The highest factor level is assumed to be the reference level.
910
#' This means that corresponding value in `predicted` represent the

0 commit comments

Comments
 (0)