%load_ext autoreload
# ! pip install git+https://github.com/avivajpeyi/pspline_psd.git -q

Example: AR process#

First, lets generate some data from an AR process and plot it.

import numpy as np
import matplotlib.pyplot as plt
from slipper.example_datasets.ar_data import get_ar_periodogram
from slipper.sample import LogPsplineSampler
from slipper.plotting import set_plotting_style
import os

np.random.seed(42)
set_plotting_style()
N_TOTAL_MCMC_STEPS = 500

OUTDIR = "out"
os.makedirs(OUTDIR, exist_ok=True)
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[2], line 3
      1 import numpy as np
      2 import matplotlib.pyplot as plt
----> 3 from slipper.example_datasets.ar_data import get_ar_periodogram
      4 from slipper.sample import LogPsplineSampler
      5 from slipper.plotting import set_plotting_style

ModuleNotFoundError: No module named 'slipper'

Example 1: AR(3)#

mcmc = LogPsplineSampler.fit(
    data=get_ar_periodogram(order=3, n_samples=1000), 
    outdir=OUTDIR,
    sampler_kwargs=dict(
        Ntotal=N_TOTAL_MCMC_STEPS, 
        degree=3,
    )
)

fig = plt.figure(figsize=(4, 3))
mcmc.plot_model_and_data(ax=fig.gca())
fig.savefig(os.path.join(OUTDIR, 'AR3_fit.png'), dpi=100, bbox_inches='tight')

Example 2: AR(4)#

mcmc = LogPsplineSampler.fit(
    data=get_ar_periodogram(order=4, n_samples=1000), 
    outdir=OUTDIR,
    sampler_kwargs=dict(Ntotal=N_TOTAL_MCMC_STEPS),
    spline_kwargs=dict(
        knot_locator_type='data_peak'
    )
)

fig = plt.figure(figsize=(4, 3))
mcmc.plot_model_and_data(ax=fig.gca())
ax = fig.gca()
ax.set_xscale('linear')
fig.savefig(os.path.join(OUTDIR, 'AR4_fit.png'), dpi=100, bbox_inches='tight')