Skip to content

Commit 04095da

Browse files
authored
don't sort models (#23)
* don't sort models * Increment version number to 0.1.2.9000 * add news item * update snapshot
1 parent fb21dcc commit 04095da

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: qrensemble
22
Title: Forecast ensembles using Quantile Regression Average (QRA)
3-
Version: 0.1.2
3+
Version: 0.1.2.9000
44
Authors@R:
55
c(person(given = "Sebastian",
66
family = "Funk",

NEWS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# qrensemble (development version)
2+
3+
- fixed a bug in model labelling
4+
- fixed a bug where the `group` argument could not be empty
5+
16
# qrensemble 0.1.2
27

38
- The package was renamed to qrensemble to avoid a conflict with the existing qra package on CRAN

R/qra.r

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ qra_create_ensemble <- function(x, target, per_quantile_weights, intercept,
6666
## create return tibbles
6767
wtb <- CJ(
6868
model = unique(x$model),
69-
quantile = unique(x$quantile_level)
69+
quantile = unique(x$quantile_level),
70+
sorted = FALSE
7071
)[, weight := weights]
7172

7273
itb <- data.table(
@@ -221,8 +222,12 @@ qra <- function(forecast, target, group = c(),
221222
forecast <- as.data.table(forecast)
222223
forecast <- forecast[!is.na(predicted)]
223224

224-
## first, split by group
225-
ensemble <- split(forecast, by = group)
225+
if (length(group) > 1) {
226+
## first, split by group
227+
ensemble <- split(forecast, by = group)
228+
} else {
229+
ensemble <- list(forecast)
230+
}
226231
## next, re-convert to forecast format
227232
ensemble <- map(ensemble, as_forecast_quantile, forecast_unit = forecast_unit)
228233
## next, split off target forecasts and check for completeness

tests/testthat/test-qra.R

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,18 @@ test_that("qra works", {
99
)
1010
expect_snapshot(res)
1111
})
12+
13+
test_that("qra produces sensible results in trivial cases", {
14+
forecasts <- scoringutils::as_forecast_quantile(data.frame(
15+
model = rep(c("model2", "model1"), each = 2),
16+
observed = rep(1, 4),
17+
predicted = rep(c(0, 1), each = 2),
18+
quantile_level = rep(0.5, 4),
19+
time = rep(c(0, 1), time = 2)
20+
))
21+
res <- qra(
22+
forecasts,
23+
target = c(time = 1)
24+
)
25+
expect_equal(attr(res, "weights")[model == "model1"]$weight, 1)
26+
})

0 commit comments

Comments
 (0)