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

pip

The recommended way to install magi is with pip.

$ pip install magi

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)