Welcome to magi’s documentation!¶
Quickstart¶
magi
pip¶
$ pip install magi
Imports¶
from magi.core import forecast
from magi.plotting import fc_plot, acc_plot
from magi.utils import gen_ts
from magi.accuracy import accuracy
Single series R model¶
Input format should be a series with datetime index
df = gen_ts()
fc_obj = forecast(time_series=df['ts2'],forecast_periods=18,frequency=12)
forecast_dic = fc_obj.R(model='auto.arima(rdata,D=1,stationary=TRUE)')
Multiple Series R model in parallel¶
Input format should be a dataframe of series with datetime index with datetime index, returning fitted and predicted values in a dataframe
from dask.distributed import Client, LocalCluster
import dask
cluster = LocalCluster()
client = Client(cluster)
df = gen_ts()
fc_obj = forecast(time_series=df,forecast_periods=18,frequency=12)
forecast_df = fc_obj.R(model='thetaf',fit_pred=True)
Single Series Prophet model¶
df = gen_ts()
fc_obj = forecast(time_series=df['ts2'],forecast_periods=18,frequency=12)
forecast_dic = fc_obj.prophet(changepoint_prior_scale=.25)
Multiple Series Prophet model in parallel¶
This exampe also shows calling cleaning ts function which removes outliers and linearly interpolates missing values. Returns resulting residuals as dataframe
from dask.distributed import Client, LocalCluster
import dask
cluster = LocalCluster()
client = Client(cluster)
df = gen_ts()
fc_obj = forecast(time_series=df,forecast_periods=18,frequency=12)
forecast_df = fc_obj.tsclean().prophet(changepoint_prior_scale=.25,residuals=True)
Installation¶
magi
Dependencies¶
- Dask / Dask Distributed
- rpy2
- fbprophet
- plotly
- cufflinks
- In R, you need the forecast package v8.3 or later to be installed if you want to use R models from the forecast package
Basic Usage¶
Imports¶
from magi.core import forecast
from magi.plotting import fc_plot, acc_plot
from magi.utils import gen_ts
from magi.accuracy import accuracy
Single series R model¶
Input format should be a series with datetime index
from magi import *
df = gen_ts()
fc_obj = forecast(time_series=df['ts2'],forecast_periods=18,frequency=12)
forecast_dic = fc_obj.R(model='auto.arima(rdata,D=1,stationary=TRUE)')
Plot single series accuracy¶
fc_plot(forecast_dic)
Calculate accuracy measures single series¶
acc_dict = accuracy(forecast_dic)
Plot accuracy measures single series¶
acc_plot(acc_dict)
Multiple Series R model in parallel¶
Input format should be a dataframe of series with datetime index with datetime index, returning fitted and predicted values in a dataframe
from dask.distributed import Client, LocalCluster
import dask
cluster = LocalCluster()
client = Client(cluster)
df = gen_ts()
fc_obj = forecast(time_series=df,forecast_periods=18,frequency=12)
forecast_df = fc_obj.R(model='thetaf',fit=True)
Plot multiple series results¶
fc_plot(forecast_df)
Calculate overall accuracy measures multiple series¶
acc_dict = accuracy(df,forecast_df)
Calculate accuracy measures per series¶
acc_df = accuracy(df,forecast_df,separate_series=True)
Plot accuracy measures by series¶
acc_plot(acc_df)