MODEL:
! Estimation of the HodrickPrescott stochastic trend;
! Based on a version by Eren Ocakverdi;
! The problem: Given a series of observations, we want to
derive a sequence of smoothed "forecasts" for which the
trend from period to period does not vary too much but
which also approximates the original data;
! Ref: Hodrick, R., and E. Prescott (1997), "Postwar U.S. Business Cycles:
An Empirical Investigation," Journal of Money, Credit, and Banking,
vol. 29, no. 1, pp. 216;
! Keywords: HodrickPrescott filtering, smoothing, filtering,
time series, forecasting, trend forecasting, business cycle forecasting;
SETS:
PERIODS: OBSERVED, CYCLE, CHANGE, TREND;
ENDSETS
DATA:
! Suggested values for the penalty (or smoothing) parameter
lambda are 100400, 1600 and 14400 respectively
for annual, quarterly and monthly time series;
L=14400;
! Observed values of the time series;
OBSERVED =
110.6 106.4 102.7 102.7 87.2 107.9
102.7 107.9 110.1 111.4 108.0 117.3
124.7 110.7 124.9;
ENDDATA
N = @SIZE(PERIODS); ! Number of periods in this data set;
! Minimize a weighted sum of squared errors and the squared
2nd differences from period to period;
[OBJ] MIN= @SUM( PERIODS: CYCLE^2)+ L*@SUM( PERIODS: CHANGE^2);
! The change in trend;
@FOR( PERIODS( T)  T #GT# 1 #AND# T #LT# N:
CHANGE( T) = (TREND( T + 1)  TREND( T))  (TREND( T)TREND( T1)));
! Fluctuations around the trend;
@FOR( PERIODS: CYCLE = OBSERVED  TREND);
! Fluctuations and smoothed values can be either positive or negative;
@FOR( PERIODS: @FREE( CYCLE);
@FREE( TREND));
END
