2

When using AWS Forecast, is there some way to augment our model with "partial future information" in order to improve forecasts?

I have been getting quite solid looking predictions from AWS Forecast so far, but suspect that I could improve the predictions somewhat substantially if I could provide some information about known future events.

I'm very new to forecasting and machine learning and by "partial future information", I mean:

  • I am trying to predict how the time-series of variable X will behave in the future
  • I am training a model with past time-series information for many different variables, including X
  • I would like to also provide known future time-series information for a subset of these variables because 1) they should have a significant impact on predictions and 2) this would give me the ability to perform "what-if" analysis

To be more concrete:

  • I am trying to predict future revenue from past revenue, web traffic volume, advertising spending, and promotional discounts
  • AWS Forecast has been providing me with good forecasts so far (I hold back so many months of known data from the model and its predictions about the "future" match the known data quite well)
  • However, I would really like to also tell AWS Forecast about, for example, a significant advertising campaign that is planned for the near future
  • I would also really like to be able to vary some future variable or variables and see how they affect the outcome ("what if I spend $Z on advertising next month?")

Currently, I am providing all of our past revenue, web traffic volume, advertising spending, and promotional discount information to AWS Forecast as a "Target Time Series" in the format of a single CSV file with 3 columns (metric name, timestamp, metric value); approximately 15 distinct values of metric name; and about 10,000 total rows of data (several years worth of daily values of 15 variables = ~ 2 * 365 * 15 = ~ 11,000 rows). Every metric is provided over the same time interval (for instance, all of the metrics are provided between 2017-10-01 and 2019-11-25).

I'd like to provide some additional, partial data that highlights known future significant events (spending on advertising, promotional discounts) to improve our predictions even further.

For example:

  • Revenue from 2017-10-01 to 2019-11-25
  • Web traffic from 2017-10-01 to 2019-11-25
  • Ad spend from 2017-10-01 to 2019-11-25
  • Promotional discounts from 2017-10-01 to 2019-11-25
  • plus planned ad spend for 2019-11-26 to 2020-02-01

Can someone please help me with some of the terminology and the "how-to" mechanics of this?

Dan
  • 445
  • 1
  • 6
  • 15

1 Answers1

1

In general, to use a variable in your historical data, you need a forecast of it in the future as well. It would be like trying to forecast electrical usage and then putting historical temperatures in the data set. If you don't have a forecast of the future temperatures, that information hasn't done you any good in improving your forecast. Because now I know what the effect of "an extra one degree of temperature on electrical usage", but ¿what do I do with that if I have no idea what the temperature will be tomorrow?

In your case you have 1 metric you want to forecast (revenue) and three supporting pieces of data: traffic, ad spend, discount. It's great that you have future ad spend, but without the other two, you're a bit out of luck (per the prior paragraph).

However, you can still do something here, but you'll just have to make some assumptions. What I would do is choose a fixed value for all dates in the future and set that for all future dates. Perhaps appropriate values would be discount at zero (full price item) and web traffic at—I'm making this up—1K per day. Now you have full data sets for past and future.

With that set up you could now answer the question, albeit with a caveat. The forecast you get out is now saying...

Here's how much revenue we can expect given our planned ad spend, if we offer no discounts and we get 1K people to the website every day.

Perhaps you could improve that by inputting traffic values in the future that are the same from a year prior. In which case, you could now say ...

Here's how much revenue we can expect given our planned ad spend, if we offer no discounts and the website gets the same traffic as this time last year.

You can take that to variations such as "traffic goes up 10%" or you can take a guess at what the discounts will be or, like before, you could replicate your discounts and traffic from a year prior and say...

Here's how much revenue we can expect given our planned ad spend, if we offer discounts just like last year and see website traffic just like last year.

I suspect you get the idea, so I'll stop all the variations. These are, of course, really just future forecasts of those data; however, it's worth nothing that "creating a forecast" of discounts or web-traffic, doesn't have to be complicated and fancy. "The same as last year" is a perfectly valid "forecast" of what's to come.

Matt
  • 907
  • 1
  • 8
  • 17