-
Notifications
You must be signed in to change notification settings - Fork 84
Description
Among the popular strategies of time series modelling, we can mention regression models with lagged variables. Such variables are often created by shifting our dependent variable(s). It makes us use some special approches to deal with lags in new data, i. a. recursive forecasting. As far as I know, currently there is no widely used R library, which deliver that feature. Interestingly, @edgBR
in #5 names fable and modeltime as packages for recursive forecasting, which indicates he probably used some other sense of this notion.
I've written this issue, because I started working on an add-in for tidymodels/modeltime ecosystem, which facilitates turning regular regression models into recursive ones. Proposed API may look as follows:
library(parsnip)
library(recipes)
dax_stock <-
as_tibble(EuStockMarkets) %>%
select(DAX) %>%
bind_rows(tibble(DAX = rep(NA, 30)))
recipe_dax_stock <-
recipe(DAX ~ ., data = dax_stock) %>%
step_lag(all_outcomes(), lag = 1:5) %>%
prep()
model_linear <-
linear_reg() %>%
set_engine("lm") %>%
fit(DAX ~ ., data = dax_stock)
# Here, we add recursion to the model
# We pass recipe to re-generate new data after each step
# We get a model with additional class, say: 'recursive'
recursive_linear <-
model_linear %>%
recursive(recipe_dax_stock)
# predict.recursive, which internally calls predict.model_fit
recursive_linear %>%
predict(new_data)
Obviously, there is a couple of places, where the implementaions should be well thought out.
I can elaborate it later if needed.
After this longish introduction, I would like to ask:
Would you be interested in including recursive forecasting into modeltime or it lies outside the scope of this great library?