Baxter-King bandpass filter
Parameters: | X : array-like
low : float
high : float
K : int
|
---|---|
Returns: | Y : array
|
See also
statsmodels.tsa.filters.cf_filter.cffilter, statsmodels.tsa.filters.hp_filter.hpfilter, statsmodels.tsa.seasonal.seasonal_decompose
Notes
Returns a centered weighted moving average of the original series. Where the weights a[j] are computed
a[j] = b[j] + theta, for j = 0, +/-1, +/-2, ... +/- K
b[0] = (omega_2 - omega_1)/pi
b[j] = 1/(pi*j)(sin(omega_2*j)-sin(omega_1*j), for j = +/-1, +/-2,...
and theta is a normalizing constant
theta = -sum(b)/(2K+1)
References
Examples
>>> import statsmodels.api as sm
>>> import pandas as pd
>>> dta = sm.datasets.macrodata.load_pandas().data
>>> dates = sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3')
>>> index = pd.DatetimeIndex(dates)
>>> dta.set_index(index, inplace=True)
>>> cycles = sm.tsa.filters.bkfilter(dta[['realinv']], 6, 24, 12)
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> cycles.plot(ax=ax, style=['r--', 'b-'])
>>> plt.show()
(Source code, png, hires.png, pdf)