I am working on time series forecasting model using fable to predict sales. Before predicting sales, I need to get forecast on multiple independent variables at once where each variable has values stopping at different month/year. I have created a reprex to show a small sample of what it looks like. In the below example, I would like to use ARIMA on each of the variables A, B, C, D to get their forecast values until 2020-12-01.
df <- data.frame( date = c("2020-01-01","2020-02-01", "2020-03-01","2020-04-01","2020-05-01","2020-06-01","2020-07-01", "2020-08-01","2020-09-01","2020-10-01","2020-11-01", "2020-12-01"), sales = c(2061292,2087140,2136628,449335, 1105069,1535344,2130425,NA,NA,NA,NA,NA), A = c(5067331.423,4856897.658,4175123.217, 3494987.878,3768201.526,4058111.486,NA,NA,NA,NA,NA, NA), B = c(153, 146, 115, 108, 133, 150, 153, 152, NA, NA, NA, NA), C = c(58.247345,50.548263,30.994029, 20.521175,28.040035,38.072555,40.682499,39.97,39.92,NA,NA, NA), D = c(609026,595426.8,598968.2,544902.2, 556805.2,553345.6,NA,NA,NA,NA,NA,NA) )
If I was forecasting values for just one independent variable, example A in this case, I could use the ARIMA as follows:
library(tidyverse) library(tsibble) library(fable) A_fc <- df%>% mutate(month = yearmonth(date)) %>% as_tsibble(index=month) %>% model(model = ARIMA(A) %>% forecast(h=6)
Instead of doing this for each variable A, B, C, D separately and then combining the data together, is there a better way or tidyverse way to perform this task for all the variables and get a new data frame with all the forecast values for all variables except for sales which we will predict afterwards.
Thanks for your help!