Forecasting has always been a challenging task. Trying to predict what the future will look like is hard however, it is very important for businesses to have an idea about what to expect. Knowing what to expect makes decision making a lot easier and creates sought of comfort and a sense of confidence.
In trying to help with this difficult task, a core of Data Science team at Facebook created Prophet, a forecasting library for Python and R and made it open source in 2017.
Prophet has now become a tool used by data science experts and non-experts to make accurate forecasts. It has the capability to produce robust and scalable forecasts with very little manual effort.
Prophet works best for time series analysis, it is built in Stan, which is a programming language for statistical inference written in C++.
it is also robust to missing values and handles outliers pretty well.
it provides room for domain knowledge to excel.
Generally, prophet decomposes a time series model in 3 main components:
and are combined mathematically as:
y(t) = f(t) + s(t) + h(t) + Ɛt
f(t) = Piece-wise linear or logistic growth curve for non-periodic changes in time series
s(t) = Seasonal periodic changes
h(t) = holidays effects
Ɛt = error term that accounts for unusual changes that are not reflected by the model.
Steps in Using Prophet
1. Install all required packages
2. import pandas, from fbprophet import prophet
3. get data from any source and convert to data frame using pandas
4. rename date column to ‘ds’ and convert it to date-time stamp and ‘y’ for values
5. instantiate prophet, fit the model and make your forecast
Let’s do the practical
We will first install the Pystan and Facebook Prophet
Then we will import our dataset which can be gotten from yahoo finance website
We are only interested in the date and the open columns and then convert it to date-time stamp
Time to build our model and predict
If we want to know the change points
And if you want to see the forecast component
Facebook prophet does not require a lot of codes and its pretty easy to use.