Causal inference using Bayesian structural time-series models. This package aims at defining a python equivalent of the R CausalImpact package by Google. Please refer to the package itself, its documentation or the related publication (Brodersen et al., Annals of Applied Statistics, 2015) for more information.
Simply install from
pip install causal-impact
Suppose we have a
data recording daily measures for three different markets
t = 0..365).
y time series in
data is the one we will be modeling, while other columns (
x2 here) will be used as a set of control time series.
>>> data y x1 x2 0 1735.01 1014.44 1005.87 1 1709.54 1012.63 1008.18 2 1772.95 1039.04 1024.21 ... ... ... ...
t = date_inter = 280, a marketing campaing (the intervention) is run for market
y. We want to understand the impact of that campaign on our measure.
from causal_impact import CausalImpact ci = CausalImpact(data, date_inter, n_seasons=7) ci.run(max_iter=1000) ci.plot()
After fitting the model, and estimating what the
y time series would have been without any intervention, this will typically produce the following plots:
If you need access to the data behind the plots for further analysis, you can simply use the
ci.result attribute (
pandas.DataFrame object). Alternatively, you can also call
result = ci.run(return_df=True)
and skip the plotting step.
This package is still being developed. Feel free to contribute through github by sending pull requests or reporting issues.