Thanks for the suggestion. Here’s is an example:
import numpy as np
import matplotlib.pyplot as plt
import pymc3 as pm
print('Running on PyMC3 v{}'.format(pm.__version__))
T = 1001; # this many samples
y = np.zeros((T,))
for i in range(1,T):
y[i] = 0.95 * y[i-1] + np.random.normal()
delta = np.diff(y) # Get difference series (demeaned)
print(delta)
print(len(delta))
sd = 1.0 # SD of priors for beta
lags = 2 # this many number of lags
with pm.Model() as model:
beta = pm.Normal('beta', mu=0, sd=sd, shape=lags)
sigma = pm.HalfNormal('sigma', sigma=1.0)
likelihood = pm.AR('likelihood', beta, sigma=sigma, observed=delta)
trace = pm.sample(1000, progressbar=True, chains=4, cores=1)
plt.plot(delta,alpha=.5)
plt.plot(trace['likelihood'][::100].T, 'r', alpha=.01)
It outputs this error:
Traceback (most recent call last):
File "<ipython-input-10-819006e3a186>", line 1, in <module>
trace[likelihood]
File "/usr/local/lib/python3.6/dist-packages/pymc3/backends/base.py", line 332, in __getitem__
raise KeyError("Unknown variable %s" % var)
KeyError: 'Unknown variable likelihood'
Best wishes,
Gregory