Prophet - Time series prediction
26 Feb 2017Brief history
Time series prediction is one of the most common statistical problems over the last 30-50 years. AutoRegressive (AR) models and Moving Average (MA) models were some of the earliest models to be used for time series prediction.
AutoRegressive Moving Average (ARMA) and AutoRegressive Integrated Moving Average (ARIMA) models became more popular over the years.
statsmodels is a great library for the above time series models.
Prophet
Prophet is a new tool from Facebook that uses stan models for prediction.
Show me the code!
from fbprophet import Prophet
import pandas as pd
# Read the SPY_notional.csv file
# Prophet expects the days/time to be in the 'ds' column and the values in the 'y' column.
df = pd.read_csv('SPY_notional.csv')
df = df.rename(columns={'Unnamed: 0': 'ds', 'SPY': 'y'})
# Fit the Prophet model
df['cap'] = 3.5 * 1e10
m = Prophet(growth='logistic')
m = Prophet()
m.fit(df)
# Predict the notional volume for the next 60 days
future = m.make_future_dataframe(periods=60)
future['cap'] = 3.5 * 1e10
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
# Plot
m.plot(forecast)
Notebook
Here is a link to the notebook I added for the same example.