Open edoardobassett opened 3 years ago
I am unable to reproduce this issue with the latest versions of the packages. Perhaps try updating to the latest CRAN releases?
library(fable)
#> Loading required package: fabletools
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tsibble)
#>
#> Attaching package: 'tsibble'
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, union
library(tidyverse)
t_london <- tibble::tribble(
~Month, ~Value.type, ~LSOA11CD, ~LSOA11NM, ~WD19CD, ~WD19NM, ~LAD19CD, ~LAD19NM, ~CTYNM, ~RGN19NM, ~CNTY21NM, ~NTN21NM, ~Count,
"2010 Dec", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 2L,
"2011 Jan", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 2L,
"2011 Feb", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 3L,
"2011 Mar", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 2L,
"2011 Apr", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 0L,
"2011 May", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 2L,
"2011 Jun", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 4L,
"2011 Jul", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 3L,
"2011 Aug", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 2L,
"2011 Sep", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 0L,
"2011 Oct", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 1L,
"2011 Nov", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 1L,
"2011 Dec", "Value-Type-1 ", "E01000001", "City of London 001A", "E05009288", "Aldersgate", "E09000001", "City of London", "City Of London", "London", "England", "UK", 6L
)
t_london <- t_london %>%
mutate(Month = yearmonth(Month)) %>%
as_tsibble(key = c(LSOA11CD, Value.type), index=Month)
london_full <- t_london %>% aggregate_key((NTN21NM/ CNTY21NM / RGN19NM / CTYNM / LAD19NM / WD19NM /LSOA11NM) * Value.type, Total = sum(Count))
fit <- london_full %>%
model(base = ARIMA(Total)) %>%
reconcile(
bu = bottom_up(base),
ols = min_trace(base, method = "ols"),
mint = min_trace(base, method = "mint_shrink"),
)
fc <- fit %>%
forecast(h = 5)
fc
#> # A fable: 320 x 12 [1M]
#> # Key: NTN21NM, Value.type, CNTY21NM, RGN19NM, CTYNM, LAD19NM, WD19NM,
#> # LSOA11NM, .model [64]
#> NTN21NM Value.type CNTY21NM RGN19NM CTYNM LAD19NM WD19NM
#> <chr*> <chr*> <chr*> <chr*> <chr*> <chr*> <chr*>
#> 1 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 2 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 3 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 4 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 5 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 6 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 7 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 8 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 9 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> 10 UK Value-Typ… England London City Of L… City of L… Aldersgate
#> # … with 310 more rows, and 5 more variables: LSOA11NM <chr*>, .model <chr>,
#> # Month <mth>, Total <dist>, .mean <dbl>
Created on 2021-02-11 by the reprex package (v0.3.0)
Great, the issue is solved with the latest version of the packages. Thank you very much!
The problem seemed to re-appear, when using the whole dataset.
I tried capturing some of the rows that seem to be part of the issue, which you will find in the new reprex
. All the packages used are the latest version.
library(fable)
#> Loading required package: fabletools
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tsibble)
library(tidyverse)
t_london <- tibble::tribble(
~Month, ~Value.type, ~LSOA11NM, ~WD19CD, ~WD19NM, ~LAD19NM, ~CTYNM, ~RGN19NM, ~CNTY21NM, ~NTN21NM, ~Count,
"2016 Dec", "Value-Type2", "City of London 001A", "E05009288", "Aldersgate", "City of London", "City Of London", "London", "England", "UK", 0L,
"2017 Jan", "Value-Type2", "City of London 001A", "E05009288", "Aldersgate", "City of London", "City Of London", "London", "England", "UK", 0L,
"2016 Dec", "Value-Type2", "City of London 001B", "E05009302", "Cripplegate", "City of London", "City Of London", "London", "England", "UK", 1L,
"2017 Jan", "Value-Type2", "City of London 001B", "E05009302", "Cripplegate", "City of London", "City Of London", "London", "England", "UK", 1L,
"2016 Dec", "Value-Type2", "City of London 001C", "E05009302", "Cripplegate", "City of London", "City Of London", "London", "England", "UK", 0L,
"2017 Jan", "Value-Type2", "City of London 001C", "E05009302", "Cripplegate", "City of London", "City Of London", "London", "England", "UK", 0L,
"2016 Dec", "Value-Type2", "City of London 001E", "E05009308", "Portsoken", "City of London", "City Of London", "London", "England", "UK", 0L,
"2017 Jan", "Value-Type2", "City of London 001E", "E05009308", "Portsoken", "City of London", "City Of London", "London", "England", "UK", 1L,
"2016 Dec", "Value-Type2", "City of London 001F", "E05009311", "Vintry", "City of London", "City Of London", "London", "England", "UK", 54L,
"2017 Jan", "Value-Type2", "City of London 001F", "E05009311", "Vintry", "City of London", "City Of London", "London", "England", "UK", 62L,
"2016 Dec", "Value-Type2", "City of London 001G", "E05009304", "Farringdon Within", "City of London", "City Of London", "London", "England", "UK", 12L,
"2017 Jan", "Value-Type2", "City of London 001G", "E05009304", "Farringdon Within", "City of London", "City Of London", "London", "England", "UK", 9L
)
t_london <- t_london %>%
mutate(Month = yearmonth(Month)) %>%
as_tsibble(key = c(LSOA11NM, Value.type), index=Month)
london_full <- t_london %>% aggregate_key((NTN21NM/ CNTY21NM / RGN19NM / CTYNM / LAD19NM / WD19NM /LSOA11NM) * Value.type, Total = sum(Count))
fit <- london_full %>%
model(base = ARIMA(Total)) %>%
reconcile(
bu = bottom_up(base),
ols = min_trace(base, method = "ols"),
mint = min_trace(base, method = "mint_shrink"),
)
#> Warning: 6 errors (1 unique) encountered for base
#> [6] missing value where TRUE/FALSE needed
fc <- fit %>%
forecast(h = 1)
#> Warning in cov2cor(covm): diag(.) had 0 or NA entries; non-finite result is
#> doubtful
#> Warning in cov2cor(tar): diag(.) had 0 or NA entries; non-finite result is
#> doubtful
#> Error: Problem with `mutate()` input `mint`.
#> x infinite or missing values in 'x'
#> ℹ Input `mint` is `(function (object, ...) ...`.
Created on 2021-02-12 by the reprex package (v1.0.0)
get the same issue, are there any updates for this?
are there any updates on this @mitchelloharawild?
thanks in advance!
Hi, please provide a minimal reproducible example. I've just tried reproducing the example above, and the reason why it fails is due to ARIMA models being trained on just 2 observations per series - more data is required to produce sensible output.
Hi, I am reposting this issue on GitHub, with a more complete example, as I suspect it might not be related to the data being used or code mistakes.
I am trying to perform Hierarchical Forecasting on a dataset that is fundamentally structured in the same way as the
tourism
tsibble
referenced in Forecasting: Principles and Practice, but with more hierarchical levels. However, after the structural aggregation, a mutate() error shows up. The data doesn't contain any missing values.Following, you will find a
reprex
of the code, containing a minimal version of the data used that is able to reproduce the error.Thanks in advance.
Created on 2021-02-10 by the reprex package (v0.3.0)