Estimation of the trend and cyclical component of unemployment - how do I find the steady state?


in my model I decompose unemployment into trend and cycle and I would like to estimate both components. My observed variables are unemployment and a dummy for recession periods.

My model equations are as follows:

u = trendu + cycleu
trendu = trendu(-1) + mu + e_trendu (i.e. a random walk with drift)
cycleu = alpha1 * y + (1-y) * alpha2 + beta1 * cycleu(-1) + beta2* cycleu(-2) + … + e_cycleu
(where alpha2 = -alpha1 * (number of recession periods / number of non-recession periods)
y = y(-1) + e_y

My problem is that I don’t really understand how to find the steady state? Because my trend component is a random walk with drift and therefore the steady state is infinite - or am I wrong about this?
And actually, I would like to set the initial values so that the cyclical component starts around 0 and thus the trend component roughly corresponds to the first observation of my unemployment time series. But I have no idea how to implement this.

Thanks in advance!

trend_cycle.mod (1.2 KB)

daten.mat (6.6 KB)


1 Like

I have two more questions based on this, so hopefully it’s okay to answer again in this topic:

  1. There is a structural break in the trend component (random walk with drift), so I would like to create two different drifts using a dummy variable. However, when reading other forum articles, I have already noticed that it is relatively difficult to include an (exogenous) dummy variable - does anyone have a trick here or can help?

  2. The cycle component is an Ar(p) process (currently 8 lags included). Apart from the lags, a recession dummy is also included, but it has an unconditional mean of 0 (see model equation from the original post). Thus, it should be possible for the Ar(p) process to be stationary - however, no matter how I choose the parameters, unfortunately it is never stationary. Is there any way to specify that this AR process is stationary?

The model equations are the same as in the original post, but here is the updated code:

trend_cycle.mod (2.1 KB)

I would appreciate any help!

Can you please explain in a bit more detail, potentially with typeset equations (the forum supports \LaTeX by enclosing the code in $), what exactly you are trying to do. Regarding the second question: how can I see the non-stationarity problem in your code?

I would like to split unemployment into trend and cycle.
Thus my first equation is:

u_{t}=cyU_{t} + trU_{t}

The cycle component is an Ar(p)-Process and also includes an (exogenous) recession dummy y_{t}:

cyU_{t} = \beta_{1}\cdot cyU_{t-1} + \beta_{2}\cdot cyU_{t-2} + ... + \alpha_{1}\cdot y_{t} + (1-y_{t})\cdot \alpha_{2} + \varepsilon_{cy, t}

with \alpha_{2} = -\alpha_{1} \cdot (number of recession periods / number of non-recession periods) so that the unconditional mean is 0.

My trend component is an Random Walk with Drift. But if you look at unemployment in Germany, it decreased after the labor market reforms in 2005. Therefore, I would like to include two exogenous time-dependent dummy variables to represent this structural break in the drift. That means, dummy1 is 1 until 2005 and dummy2 is 1 from 2005 on.

trU_{t} = trU_{t-1} + \mu_{1}\cdot dummy1_{t} + \mu_{2} \cdot dummy2_{t} + \varepsilon_{tr, t}

Thus, my question is: how can I read in the two exogenous dummy variables? And the same problem/question arises for me with the recession dummy y_{t}. Can I simply read this in as an endogenous variable and then model it with an equation y_{t} = \epsilon_{y,t} , i.e. as some shock?

Regarding stationarity: estimating endogenous moments with moments_varendo, I get as result: “All requested endogenous variables have a unit root and thus infinite variance” - so I guess my cycle-process is not stationary?

That is no straightforward to achieve. See e.g.


Sorry to ask again, but I’ve probably read (almost) every post about exogenous observed variables in the forum, but to be honest I don’t really understand the problem with them. Or rather, in most posts I just read that it’s not that easy, but unfortunately I never found a real solution or example code for this.

Specifically, again about my project: I try to break down unemployment into trend and cycle in order to examine hysteresis effects on the labor market (i.e. to what extent cyclical unemployment becomes structural, especially during recessions). My approach is based on Klinger & Weber (2015): (but without Markov Switching and contemporaneous spillover effects).

My model equations are as follows:

# phi1 =  root1+root2; 
# phi2 = -root1*root2; 
u = trU + cyU;
cyU = alpha*y - (1-y)*alpha*rel + phi1*cyU(-1) + phi2*cyU(-2) + e_cyU;
trU = trU(-1) + (1-dummy)*mu + dummy*mu2 + (1-dummy(-1))*dk*y(-1)*cyU(-1) + dummy(-1)*dk2*y(-1)*cyU(-1) + e_trU; 
dummy = dummy(-1) + e_d; 
y = y(-1) + e_y;


  • y is the (exogenous) recession dummy

  • dummy is the (exogenous) time-dependent dummy that controls for the structural break

  • rel is the ratio of recession and non-recession periods (so the unconditional mean of cyU is 0)

  • dk's are the parameters for the hysteresis effects in recessions

  • mu's are the drift parameters

Here are a few questions about this:

  1. Exogenous Variables
    The exogenous observed variables are defined as random walks without drift. Is this possible? And if not, is there a (specific) alternative?

  2. Check-Plots
    The likelihood of the dk's is horizontal and this indicate an identification problem. However, I don’t understand why they should not be identified?

  3. Stationarity
    The way the cycle equation is set up, the cycle should be stationary. However, when the endogenous moments are computed, no decomposition is performed because all endogenous variables have a unit root. What could be the reason for this?

  4. Timing
    Most codes which also deal with trend and cycle decomposition set up the measurement equation as follows:
    u_t = cy_{t-1} + tr_{t-1}
    I mean I have read the Remark about timing convention in Pfeifer (2013) “Observation Equations” - so is this the reason for the timing in the measurment equation? Because intuitively this makes no sense to me in such a case. That would mean that in t-1 the cyclical and trend unemployment is determined, which is relevant for the unemployment rate at time t.

  5. Drift
    Apart from the timing, I have often seen in other codes that the drift was not simply included as a constant in the trend equation, but was modeled as a random walk. Is this because in many models the drift parameter changes over time or what could be the reason?

As always, I would be very very grateful for any help!

daten_WK_louise.mat (6.3 KB)
Hyster.mod (3.1 KB)
Hyster_CheckPlots1.pdf (63.5 KB)
Hyster_CheckPlots2.pdf (10.3 KB)

Sorry for bringing up my topic again, but I would really appreciate an answer or any help.

  1. Sorry for the delay. I think the biggest issues is the resulting nonlinearity in your setup.

is clearly a nonlinear function, which will be approximation linearly. From the flat likelihood, it seems that the dk parameters are not identified, because they drop out of the model. That suggests that your model does not have a sensible approximation as a linear state space model.

  1. The cycle depends on the unit root variable y, explaining the unit root.
  2. I have never seen such an equation and agree that it looks strange.
  3. Yes, often people think that the trend growth rate is not constant over time.

First of all, thank you very much for your answer!

Regarding my first point: Do you perhaps also have an answer/idea for this?

Regarding the 2nd point: As I just noticed, the problem with the linearization and the identification is due to my chosen steady state. This is defined as follows:

u_GER = 1.515510565820040;
trU_GER = 1.515510565820040;
cyU_GER = 0;
y_GER = 0;
dummy_GER = 0;

I set both the recession dummy and the “time dummy” to 0, since both should have 0 as starting value (my time series starts with a non-recession period and of course before the structural break). If I choose the steady state to be different from 0, both likelihoods are no longer linear (although they still look a bit strange). But how can I determine the exact steady state of these two values? Because they are actually exogenous variables and intuitively a steady state for a time dummy makes little sense to me.

  1. Yes, that seems reasonable. It allows for flexible movements in the variable without endogenous propagation.
  2. Then the identification problem seems to be a local one. However, I still don’t know whether your setup can sensibly be approximated by a linear Gaussian state space system.