Cointegrated shock processes

I have a two-country model and would like to introduce cointegrated productivity shocks as in Rabanal et al (2010) and Mandelmann et al (2011). That is, there are two shock processes in my system but only one stochastic trend. Suppose that the series are defined in a VECM model, such that (assume no terms in first-differences on the rhs):

A is TFP in home-country, A_star in foreign (all in logs), they are cointegrated with a cointegrating vector (1 -gamma), k is the loading coefficient and c and chi are constants. A similar and symmetric equation characterises TFP in the foreign country (A_star).

A and A_star are unit root processes which cause the system to be non-stable. However, the source of unit root is the same. Does that mean that I can “deflate” the variables of the model with either A or A_star? Of course I will deflate home variables with the latter and foreign variables with the former, but I am wondering… And whn it comes to estimation, how would Dynare ‘know’ about that?
Moreover, I am not sure how I should express my stochastic process. A and A_star are the sources of unit root, hence should not appear anywhere in the model block, but I do not see how I could avoid that in this context. Is the correct way to proceed to create a (by definition) stationary variable z = A(-1) - gamma*A_star(-1) + chi ? I am not sure if that would appear anywhere else in the model…



Dear Kyriacos,

I don’t know the answer (but offer my thoughts anyway).

  1. For simulations, you can even leave the unit roots in there. There is no reason to detrend. That allows you to have a test case against which to check your further transformations.
  2. I would think that you can detrend by any of the two unit roots. It should not matter. In that case, you should end up i) with only dA and dA_star, i.e. the growth rates of the TFP processes in your equations and ii) an equation linking these two growth rates. That’s where it becomes tricky. In these two equations you have the two dA on the left. Therefore, these equations determine the growth rates. The problem is that you still have the As on the right and there is no equation to pin them down or to link them to their growth rates. Even if you replace the linear combination by

that z is not pinned down in the model. For that reason, there seems to be no way to fully get rid of the unit roots. Rather it seems you have to detrend your model in the regular way and then append VECM including the definition of the growth rate

dA  = c + k*(A(-1) - gamma*A_star(-1) + chi) + e
dA  = A - A(-1);

Because the VECM is linear, the unit root does not matter for the first order approximation, while the rest of the model is stationary. Of course, you will need to use the diffuse_filter.

I hope this helps. Please let me know whether it works.

Coming back to this issue, I think your proposed method is indeed the right one. I tried (a lot!) to express variables in terms of the growth-rates instead of levels, but unavoidably levels show up somewhere. An additional complication is the value of the levels (e.g. Z(t)) and the growth rates (dZ(t)) at the steady-state. The only way to make both consistent with a value of zero at steady-state is to express the exogenous process in terms of growth rates of de-meaned TFP. In that case, both levels and growth rates are zero at steady state and the system can be solved.

In my model I have four TFP series - 2 countries x 2 sectors (tradables/ non-tradables) and I assume a single stochastic trend across. That means that the share of tradables TFP across-countries is stationary at the steady-state as before but also the share between tradables and non-tradables TFP within country (adjusted for the labour share in each sector, if that is different). In terms of de-meaned TFP, these ratios are all unity.

Applying the above and your recommendations below, the system can be solved when set as follows:

parameters dZT_ss_1 = 1; dZT_ss_2 = dZT_ss_1 ; dZN_ss_1 = 1 ; dZN_ss_2 = dZN_ss_1 ; shNT_ss_1 = 1; % share of N to T, within country ; shNT_ss_2 = shNT_ss_1 ; shT12_ss = 1; % share of T, across countries end;

% Stochastic processes

dZT1 = -0.004ECT(-1) + eT1(-@{q}) ;
dZT2 = 0.004
ECT(-1) + eT2(-@{q}) ;
dZN1 = -0.001ECT(-1) + eN1(-@{q}) ;
dZN2 = 0.001
ECT(-1) + eN2(-@{q}) ;

exp(shT12) = exp(ZT1)/exp(ZT2);
exp(shNT1) = (exp(ZN1)^(1/(1-alphaN_1)))/(exp(ZT1)^(1/(1-alphaT_1)));
exp(shNT2) = (exp(ZN2)^(1/(1-alphaN_2)))/(exp(ZT2)^(1/(1-alphaT_2)));
ECT = ZT1 - ZT2 - ZN1 - ZN2;
dZT1 = ZT1 - ZT1(-1);
dZT2 = ZT2 - ZT2(-1);
dZN1 = ZN1 - ZN1(-1);
dZN2 = ZN2 - ZN2(-1);
end; [/code]

ZT (ZN) stands for tradables (non-tradables) TFP and dZT - dZN for the growth rates. Any “sh…” variable stands for share, e.g. shT12 is share of tradables TFP across the two countries (country 1 and country 2) and shNT1 is the share of ZN/ZT within country 1 - adjusted for the fact that the labour share is not the same across sectors: 1-alphaT =/ 1-alphaN. ECT stands for " Error Correction Term" of the VECM.

As you can see, this formulation is consistent with both Z(j) = dZ(j) = 0 at steady-state. This of course means that dZ(j) is not only de-meaned from the constant in the short-run part of the VECM but as well as the constant in the ECT. In my understanding, I have to estimate the VECM in these terms, i.e. de-meaned dZ(j) and no constants in neither the ECT or the SR part. Of course this does not mean that the economy is growing at a zero-rate at the steady-state, but it is simply a data trick.

Note that when running this system I get three unit-roots in the list of roots that Dynare provides. Given that the model has four unit root processes and one cointegrating relation, this is what I should expect, right? My question is: is it ok to look at the results produced by Dynare, knowing the presence of the unit roots? I know that the outcomes concern the de-trended variables as they are expressed in the model, but still are these results valid?

One more word of caution: the stability of the system depends heavily on the so called loading coefficients of the VECM, i.e. those that I set to 0.04 and 0.01 in the current example. this I guess is to be expected, given that these parameters control the speed of convergence to the LR equilibrium and hence the “jumping” or not to an explosive path. When estimating these parameters, should I then restrict them “heavily” to ensure that the algorithm does not search into explosive regions of the likelihood (not sure if this kind of language is correct…).

Thanks a lot for your input, it helped a lot. Any further advice and thoughts on the above would be very much appreciated.


Sorry for the delay, but obviously your problem is non-standard.

  1. What you describe sounds sensible. The cointegrating relation should get rid of one unit root, leaving you with 3.
  2. Regarding the demeaning/detrending: this seems to be the issue that a random walk process without drift has infinitely many steady states, but a random walk with drift has no steady state. Thus, you need to take the drift term out for the model to work. Of course, once you have solve the model without drift, you can easily add the deterministic drift back.
  3. IRFs with unit roots are not a problem, simulations may be. The reason is that you are approximation around a particular point, but you may drift arbitrarily far away from this point, rendering the approximation increasingly inaccurate for nonlinear models.
  4. Yes, the stability characteristics are important. But any arbitrarily slow stabilization should be sufficient.
  5. Regarding estimation of the VECM: as with indeterminate DSGE models, the question always is whether you want ti exogenously impose that the data have to follow a unique determinate bounded solution. The model does not really tell you that needs to be the case. If you are Bayesian and you have a strong prior the data generating process is stable, then yes, you should restrict estimation to conform to this prior.