fabletools icon indicating copy to clipboard operation
fabletools copied to clipboard

Automatically drop rank deficient regressors with warning

Open robjhyndman opened this issue 9 months ago • 3 comments

Based on https://stackoverflow.com/q/78388045/144157

library(fable)
library(tsibble)
library(dplyr)

set.seed(123)

# create data
aa <- tibble(idx = 1:12, group = "aa", y = rnorm(12))
bb <- tibble(idx = 7:12, group = "bb", y = rnorm(6))
cc <- tibble(idx = 1:6, group = "cc", y = rnorm(6))
xreg <- tibble(idx = 1:12, x1 = c(0, 0, 1, rep(0, 9)), x2 = c(rep(0, 9), 1, 0, 0))
dat <- bind_rows(aa, bb, cc) |>
  inner_join(xreg, by = "idx") |>
  as_tsibble(index = idx, key = group)

dat |>
  model(arima = ARIMA(y ~ 1 + x1))
#> Warning: Provided exogenous regressors are rank deficient, removing regressors:
#> `x1`
#> Warning: 1 error encountered for arima
#> [1] subscript out of bounds
#> # A mable: 3 x 2
#> # Key:     group [3]
#>   group                       arima
#>   <chr>                     <model>
#> 1 aa    <LM w/ ARIMA(0,0,0) errors>
#> 2 bb                   <NULL model>
#> 3 cc    <LM w/ ARIMA(0,0,0) errors>

Created on 2024-05-12 with reprex v2.1.0

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.4.0 (2024-04-24)
#>  os       KDE neon 6.0
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2024-05-12
#>  pandoc   3.1.11.1 @ /usr/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package        * version    date (UTC) lib source
#>  anytime          0.3.9      2020-08-27 [1] RSPM
#>  cli              3.6.2      2023-12-11 [1] RSPM
#>  colorspace       2.1-0      2023-01-23 [1] RSPM
#>  digest           0.6.35     2024-03-11 [1] RSPM
#>  distributional   0.4.0      2024-02-07 [1] RSPM (R 4.3.0)
#>  dplyr          * 1.1.4      2023-11-17 [1] RSPM
#>  ellipsis         0.3.2      2021-04-29 [1] RSPM
#>  evaluate         0.23       2023-11-01 [1] RSPM
#>  fable          * 0.3.4.9000 2024-04-28 [1] Github (tidyverts/fable@39665f2)
#>  fabletools     * 0.4.2      2024-04-22 [1] RSPM (R 4.4.0)
#>  fansi            1.0.6      2023-12-08 [1] RSPM
#>  fastmap          1.1.1      2023-02-24 [1] RSPM
#>  feasts           0.3.2.9000 2024-04-28 [1] Github (tidyverts/feasts@6e9266e)
#>  fs               1.6.4      2024-04-25 [1] RSPM (R 4.4.0)
#>  generics         0.1.3      2022-07-05 [1] RSPM
#>  ggplot2          3.5.1      2024-04-23 [1] RSPM (R 4.3.3)
#>  glue             1.7.0      2024-01-09 [1] RSPM
#>  gtable           0.3.5      2024-04-22 [1] RSPM (R 4.3.3)
#>  htmltools        0.5.8.1    2024-04-04 [1] RSPM (R 4.3.3)
#>  knitr            1.46       2024-04-06 [1] RSPM
#>  lattice          0.22-6     2024-03-20 [1] RSPM
#>  lifecycle        1.0.4      2023-11-07 [1] RSPM
#>  lubridate        1.9.3      2023-09-27 [1] RSPM
#>  magrittr         2.0.3      2022-03-30 [1] RSPM
#>  munsell          0.5.1      2024-04-01 [1] RSPM
#>  nlme             3.1-164    2023-11-27 [1] RSPM
#>  pillar           1.9.0      2023-03-22 [1] RSPM
#>  pkgconfig        2.0.3      2019-09-22 [1] RSPM
#>  progressr        0.14.0     2023-08-10 [1] RSPM
#>  purrr            1.0.2      2023-08-10 [1] RSPM
#>  R.cache          0.16.0     2022-07-21 [1] RSPM (R 4.3.3)
#>  R.methodsS3      1.8.2      2022-06-13 [1] RSPM (R 4.3.3)
#>  R.oo             1.26.0     2024-01-24 [1] RSPM (R 4.3.3)
#>  R.utils          2.12.3     2023-11-18 [1] RSPM (R 4.3.3)
#>  R6               2.5.1      2021-08-19 [1] RSPM
#>  Rcpp             1.0.12     2024-01-09 [1] RSPM
#>  reprex           2.1.0      2024-01-11 [1] RSPM
#>  rlang            1.1.3      2024-01-10 [1] RSPM
#>  rmarkdown        2.26.2     2024-05-01 [1] Github (rstudio/rmarkdown@3d99b8e)
#>  rstudioapi       0.16.0     2024-03-24 [1] RSPM
#>  scales           1.3.0      2023-11-28 [1] RSPM
#>  sessioninfo      1.2.2      2021-12-06 [1] RSPM
#>  styler           1.10.3     2024-04-07 [1] RSPM (R 4.3.3)
#>  tibble           3.2.1      2023-03-20 [1] RSPM
#>  tidyr            1.3.1      2024-01-24 [1] RSPM
#>  tidyselect       1.2.1      2024-03-11 [1] RSPM
#>  timechange       0.3.0      2024-01-18 [1] RSPM
#>  tsibble        * 1.1.4      2024-04-28 [1] Github (tidyverts/tsibble@9e0057e)
#>  urca             1.3-3      2022-08-29 [1] RSPM
#>  utf8             1.2.4      2023-10-22 [1] RSPM
#>  vctrs            0.6.5      2023-12-01 [1] RSPM
#>  withr            3.0.0      2024-01-16 [1] RSPM
#>  xfun             0.43       2024-03-25 [1] RSPM (R 4.3.3)
#>  yaml             2.3.8      2023-12-11 [1] RSPM
#> 
#>  [1] /usr/local/lib/R/site-library
#>  [2] /usr/lib/R/site-library
#>  [3] /usr/lib/R/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

robjhyndman avatar May 12 '24 00:05 robjhyndman