class_docstr: Filter a times series using the Baxter-King filter.
  
  This is a wrapper around the `bkfilter` function from `statsmodels`.
  (see `statsmodels.tsa.filters.bk_filter.bkfilter`).
  
  The Baxter-King filter is intended for economic and econometric time series
  data and deals with the periodicity of the business cycle. Applying their
  band-pass filter to a series will produce a new series that does not contain
  fluctuations at a higher or lower frequency than those of the business cycle.
  Baxter-King follow Burns and Mitchell's work on business cycles, which suggests
  that U.S. business cycles typically last from 1.5 to 8 years.
  
  Parameters
  ----------
  low : float
      Minimum period for oscillations. Baxter and King recommend a value of 6
      for quarterly data and 1.5 for annual data.
  
  high : float
      Maximum period for oscillations. BK recommend 32 for U.S. business cycle
      quarterly data and 8 for annual data.
  
  K : int
      Lead-lag length of the filter. Baxter and King suggest a truncation
      length of 12 for quarterly data and 3 for annual data.
  
  Notes
  -----
  Returns a centered weighted moving average of the original series.
  
  References
  ----------
  Baxter, M. and R. G. King. "Measuring Business Cycles: Approximate
      Band-Pass Filters for Economic Time Series." *Review of Economics and
      Statistics*, 1999, 81(4), 575-593.
  
  Examples
  --------
  >>> from sktime.transformations.series.bkfilter import BKFilter # doctest: +SKIP
  >>> import pandas as pd # doctest: +SKIP
  >>> import statsmodels.api as sm # doctest: +SKIP
  >>> dta = sm.datasets.macrodata.load_pandas().data # doctest: +SKIP
  >>> index = pd.date_range(start='1959Q1', end='2009Q4', freq='Q') # doctest: +SKIP
  >>> dta.set_index(index, inplace=True) # doctest: +SKIP
  >>> bk = BKFilter(6, 24, 12) # doctest: +SKIP
  >>> cycles = bk.fit_transform(X=dta[['realinv']]) # doctest: +SKIP
docstr: Transform X and return a transformed version.
  
  private _transform containing core logic, called from transform
  
  Parameters
  ----------
  X : array_like
  A 1 or 2d ndarray. If 2d, variables are assumed to be in columns.
  
  Returns
  -------
  transformed cyclical version of X
docstr_tok: ["Transform","X","and","return","a","transformed","version",".","private","_transform","containing","core","logic",",","called","from","transform","Parameters","--","--","--","--","--","X",":","array_like","A","1","or","2d","ndarray",".","If","2d",",","variables","are","assumed","to","be","in","columns",".","Returns","--","--","--","-","transformed","cyclical","version","of","X"]
code: def _transform(self, X, y=None):
      """Transform X and return a transformed version.
  
      private _transform containing core logic, called from transform
  
      Parameters
      ----------
      X : array_like
      A 1 or 2d ndarray. If 2d, variables are assumed to be in columns.
  
      Returns
      -------
      transformed cyclical version of X
      """
      from statsmodels.tsa.filters.bk_filter import bkfilter
  
      kwargs = {"low": self.low, "high": self.high, "K": self.K}
      return bkfilter(X, **kwargs)
  
imports: import pandas
  from sktime.transformations.base import BaseTransformer
label_desc: Use image node_id 2 for calling the BKFilter obj's underlying member method code with example usage: obj._transform(X, y) and returns: bkfilter