#!/usr/bin/env python # coding: utf-8 # In[1]: from statsmodels.tsa.statespace.varmax import VARMAX import pandas as pd import numpy as np get_ipython().run_line_magic('matplotlib', 'inline') import matplotlib import matplotlib.pyplot as plt from random import random # In[2]: cols = ['v1', 'v2'] lst = [] for i in range(100): v1 = random() v2 = v1 + random() row = [v1,v2] lst.append(row) df = pd.DataFrame(lst, columns=cols) df.info() df.tail(3) # In[3]: model = VARMAX(df.values.tolist(), order=(1,1)) model_fit = model.fit(disp=False) y = pd.DataFrame(model_fit.forecast(), columns=cols) y.loc[100] = y.loc[0] y.loc[99] = df.loc[99] y.loc[0] = [np.nan, np.nan] y.tail(3) # In[5]: plt.plot(df['v1'], 'b') plt.plot(df['v2'], 'g') plt.plot(y.tail(2), 'r') plt.show() # In[10]: model_fit.summary() # In[ ]: