context("test-combination")
test_that("Combination modelling", {
skip_if_not_installed("fable")
mbl_cmbn <- mbl %>%
transmute(combination = (ets + ets)/2)
expect_equal(
select(augment(mbl_cmbn), -.model, -.innov),
select(augment(mbl), -.model, -.innov)
)
expect_equivalent(
forecast(mbl_cmbn, h = 12)[,-1],
fbl[,-1]
)
mbl_cmbn <- us_deaths_tr %>%
model(
a = fable::SNAIVE(value),
b = combination_model(fable::SNAIVE(value), fable::SNAIVE(value))
)
fbl_cmbn <- forecast(mbl_cmbn)
expect_equivalent(
fbl_cmbn[1:24, -1],
fbl_cmbn[25:48, -1]
)
mbl_cmbn <- us_deaths_tr %>%
model(
snaive = fable::SNAIVE(value),
rw = fable::RW(value ~ drift()),
cmbn = (fable::SNAIVE(value) + fable::RW(value ~ drift()))/2
) %>%
mutate(combination_ensemble(snaive, rw, weights = "inv_var"))
fbl_snaive <- forecast(select(mbl_cmbn, 1))
fbl_rw <- forecast(select(mbl_cmbn, 2))
fbl_cmbn <- forecast(select(mbl_cmbn, 3))
fbl_wt_cmbn <- forecast(select(mbl_cmbn, 4))
expect_equal(
mean(fbl_cmbn$value),
mean((fbl_snaive$value + fbl_rw$value)/2)
)
expect_failure(
expect_equal(
mean(fbl_wt_cmbn$value),
mean(fbl_cmbn$value)
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.