GMM Estimation of Aguiar & Gopinath (2007) - HP-Filtered Moments with Detrended Model

Dear Professor,

I am attempting to replicate the estimation procedure from Aguiar & Gopinath (2007) “Emerging Market Business Cycles: The Cycle Is the Trend” but I’m uncertain about the correct approach for GMM estimation given the mismatch between the detrended model and the data moments.

The Issue: Following standard practice, I have detrended the model by dividing by labor-augmenting technology X_{t-1}, so my model variables are in intensive form: tilde{y}t = Y_t/X{t-1}. The technology follows a random walk with drift: log X_t = \log X_{t-1} + \Lambda_x + \varepsilon^x_t

However, Aguiar & Gopinath’s 11 target moments include both:

Level moments (from HP-filtered data):

  1. sigma(y) - volatility of HP-filtered output (in %)

  2. sigma(c)/\sigma(y) - relative volatility of consumption

  3. sigma(I)/\sigma(y) - relative volatility of investment

  4. sigma(nx/y)/\sigma(y) - relative volatility of net exports

  5. rho(y, y_{-1}) - autocorrelation of HP-filtered output

  6. rho(y, nx) - correlation of output with net exports

  7. rho(y, c) - correlation of output with consumption

  8. rho(y, I) - correlation of output with investment

Growth rate moments: 9. sigma(\Delta y) - volatility of output growth (in %) 10. rho(Delta y, Delta y_{-1}) - autocorrelation of growth 11. E[Delta y] - mean growth rate

My Confusion:

I have consulted:

  • Burnside (1998) “Solving and Estimating Real Business Cycle Models”

  • Pfeifer (2013) “A Guide to Specifying Observation Equations for the Estimation of DSGE Models”

Both sources emphasize that with stochastic trends, we must work with growth rates (first differences) to achieve stationarity. However, this would suggest that I can only analytically compute moments 9-11 from my detrended model’s state-space representation.

For the level moments (1-8): These come from HP-filtered non-stationary series. To compute these from my model, I would need to:

  1. Simulate the detrended model

  2. Reconstruct non-stationary series: log Y_t = log tilde{y}t + log X{t-1}

  3. Apply HP-filter to the reconstructed series

  4. Compute moments from HP-filtered simulation

This reconstruction and simulation procedure sounds like Simulated Method of Moments (SMM), not analytical GMM.

My Questions:

  1. Is it possible to estimate the model using analytical GMM with all 11 moments? If so, how do I map HP-filtered data moments to theoretical moments from the detrended model’s state-space system?

  2. Or should I instead use SMM, where I:

    • Simulate the model

    • Reconstruct non-stationary series

    • Apply HP-filter

    • Compute simulated moments

    • Match to data moments

  3. How did Aguiar & Gopinath actually implement their estimation? The paper describes using GMM with these moments, but given the stochastic trend, is this technically SMM?

  4. Are there alternative approaches, such as:

    • Using only growth rate moments for analytical GMM?

    • Using an approximation where intensive-form variables’ moments ≈ HP-filtered moments?

Any guidance on the correct approach would be greatly appreciated!

References:

  • Aguiar, M., & Gopinath, G. (2007). Emerging market business cycles: The cycle is the trend. Journal of Political Economy, 115(1), 69-102.

  • Burnside, C. (1998). Solving and estimating real business cycle models. Northwestern University manuscript.

  • Pfeifer, J. (2013). A guide to specifying observation equations for the estimation of DSGE models. University of Mannheim manuscript.

Thank you in advance for your help!

1 Like

This is tricky to do with the off-the-shelve Dynare commands. The original paper indeed uses theoretical moments. Their data appendix shows how to derive the HP filtered moments of the trending variables based on their first differences. Doing that is not implemented in Dynare. On top of that, mixing filtered and non-filtered moments is not straightforward to do in Dynare as of version 6.

Given the large and quite distinct set of moments to be matched, I would not try to do this using Dynare’s method_of_moments command. I would rather try to compute and collect the moments in a Matlab function based on Dynare’s model solution and then minimize the distance to the empirical moments.