[T,C,CutOff,Lambda] = bwf(X,Order)
[T,C,CutOff,Lambda] = bwf(X,Order,Range,...)
[T,C,CutOff,Lambda] = bwf2(X,Order)
[T,C,CutOff,Lambda] = bwf2(X,Order,Range,...)
X [ tseries ] - Input tseries object that will be filtered.
Order [ numeric ] - Order of the Butterworth filter; note that Order=2 reproduces the Hodrick-Prescott filter (hpf) and Order=1 reproduces the local linear filter (llf).
Range [ numeric ] - Date Range on which the input data will be filtered; Range can be Inf, [startdata,Inf], or [-Inf,enddate]; if not specifired, Inf (i.e. the entire available Range of the input series) is used.
T [ tseries ] - Lower-frequency (trend) component.
C [ tseries ] - Higher-frequency (cyclical) component.
CutOff [ numeric ] - Cut-off periodicity; periodicities above the cut-off are attributed to trends, periodicities below the cut-off are attributed to gaps.
Lambda [ numeric ] - Smoothing parameter actually used; this output argument is useful when the option 'CutOff=' is used instead of 'Lambda='.
'CutOff=' [ numeric | empty ] - Cut-off periodicity in periods (depending on the time series frequency); this option can be specified instead of 'Lambda='; the smoothing parameter will be then determined based on the cut-off periodicity.
'CutOffYear=' [ numeric | empty ] - Cut-off periodicity in years; this option can be specified instead of 'Lambda='; the smoothing parameter will be then determined based on the cut-off periodicity.
'infoSet=' [ 1 | 2 ] - Information set assumption used in the filter: 1 runs a one-sided filter, 2 runs a two-sided filter.
'Lambda=' [ numeric | @auto ] - Smoothing parameter; needs to be specified for tseries objects with indeterminate frequency. See Description for default values.
'level=' [ tseries ] - Time series with soft and hard tunes on the level of the trend.
'change=' [ tseries ] - Time series with soft and hard tunes on the change in the trend.
'log=' [ true | false ] - Logarithmise the data before filtering, de-logarithmise afterwards.
If the user does not specify the smoothing parameter using the 'lambda=' option (or reassigns the default @auto), a default value is used. The default value is based on common practice and can be calculated using the date frequency of the input time series as $\lambda = (10 \cdot f)^n$, where $f$ is the frequency (yearly=1, half-yearly=2, quarterly=4, bi-monthly=6, monthly=12), and $n$ is the order of the filter, determined by the input parameter Order.