Prophet, the Facebook's forecasting algorithm, is great. Easy to use and powerful at the same time. Prophet is an additive regression model which comes by default with 4 'seasonal' layers. We use it in our forecasting application.
Before jumping, did you read our article on the art of sales forecasting?
The 4 seasonal components available in Prophet by default
- A linear or logistic growth trend. We are talking about long-term patterns here; E.g. comparing 2018, 2019 and 2020 trends.
- A yearly seasonality - using Fourier series
- A weekly seasonality component - making it possible to split between the different days of the week, hence potentially splitting weekdays versus weekend days patterns.
- Holidays / Bank holidays - in order to add to the model all the special events you can imagine, based on the country specifics you would want to forecast.
Prophet comes out of the box with these 4 key components, making it possible to have a robust forecast out-of-the-box without much fine-tuning necessary.
The team developped it to allow other teams generating forecasts, without having the required expertise in time series forecasting.
"Forecasting is a common data science task that helps organizations with capacity planning, goal setting, and anomaly detection. Despite its importance, there are serious challenges associated with producing reliable and high quality forecasts — especially when there are a variety of time series and analysts with expertise in time series modeling are relatively rare. To address these challenges, we describe a practical approach to forecasting “at scale” that combines configurable models with analyst-in-the-loop performance analysis. We propose a modular regression model with interpretable parameters that can be intuitively adjusted by analysts with domain knowledge about the time series. We describe performance analyses to compare and evaluate forecasting procedures, and automatically flag forecasts for manual review and adjustment. Tools that help analysts to use their expertise most effectively enable reliable, practical forecasting of business time series."
The trend component - looking for long-term growth rates
Prophet starts calculating a high level trend, comparing years over years growth rates.
Let's say you have a business growing by +20% in year + 1, +15% in Year + 2 and +10% in Year +3, the forecast will be able to estimate that the expected growth rate for Year + 4 should be around +5%. This might sound pretty obvious in the given example, but you might have other cases where this is far from being obvious - let's say if your product experienced an unusual expectional year, being 'off-pattern".
Of course, to be relevant, you should have some historical volume to feed the forecast. Forecasting via statistics if you don't have enough data points won't be relevant and the model will not be able to make patterns emerge.
The yearly seasonal component
Prophet is using Fourier series at his heart, by default with 3 components.
Fourier series make it possible to plot periodic functions - based on the addition of multiple sinusoidal sub-functions. Fourier series are great when you want to get the formula capturing the seasonality throughout the year.
Let's consider an example.
Let's say you have a seasonal business, such as selling lawnmower: you would expect a weak Q1, then sometimes around end of March, sales start to take-off as spring is back, a interrupted peak of sales until June - July being stable and starting in August, sales are going to slowly get down until winter. In the middle, chances are you would expect a couple of very concentrated sales peak for father days or at the beginning of a Easter holidays.
This "complex" seasonal pattern can described using Fourier series: it's a straight line (linear) or not an exponential. It's a complex curve going up and down, more or less at the same time of the year.
A weekly seasonality
Monday - Tuesday - Wednesday... until Saturday and Sunday.
Not all the businesses have the same activity distribution during the week - and this precisely what Prophet can capture from the data you input to the model.
Cinemas have peak during the week-end while if you sell office furniture, your activity will be mostly a corporate one happening during working hours. Same if your business consists into selling French fries to soccer fans - your business will be a week-end business, with the exception of European and World soccer cups.
Holidays and bank holidays
Each country has its unique set of holidays - and Prophet, using the holidays package can capture these special events. On top of them, we decided to include by default Christmas, New year and Black Friday.
If you are interested into deep-diving into Prophet's model, you then should definitely carve out some time to read this document, detailling how Prophet works "under the hood".
Want to know more and start using it for your activity? Sign-up on DataInsightOut!