CFFILTER Procedure |
@CFFILTER applies the Christiano-Fitzgerald(2003) band-pass filter to a series.
@CFFilter( options ) x start end fx
Parameters
|
x |
source series |
|
start, end |
range to transform (range of x by default) |
|
fx |
result series (x by default) |
Options
PL=minimum period of oscillation of desired component [6]
PU=maximum period of oscillation of desired component [32]
(2<=pl<pu<infinity)
[DETREND]/NODETREND
With DETREND, removes a drift term before employing the filter.
Notes
When feasible, it's recommended to drop 2 years of data from the beginning and end of the filtered data series. These data are relatively poorly estimated.
With quarterly data, PL=6, PU=32 returns component with periods between 1.5 and 8 yrs. With monthly data, PL=2, PU=24 returns component with all periods less than 2 yrs.
Example
This is based upon the sample program from the authors' web sites, but updated from their RATS code to use the newer @CFFilter procedure rather than the original @BPASS.
cal(q)
data(org=obs,unit=input) 1 41 gdp
507.425
527.375
545.625
586.525
618.675
664.375
720.1
789.3
834.075
911.45
985.35
1039.675
1128.6
1240.425
1385.55
1501
1635.175
1823.925
2031.4
2295.875
2566.375
2795.55
3131.35
3259.225
3534.95
3932.75
4213
4452.85
4742.475
5108.325
5489.05
5803.25
5986.225
6318.95
6642.325
7054.3
7400.55
7813.175
8300.725
8759.95
9248.45
*
@cffilter(pl=2,pu=3,detrend) gdp / fgdp
print / gdp fgdp
Copyright © 2025 Thomas A. Doan