Simulation and decomposition of Ragnar Frisch’s rocking horse model (1933)

9 minute read


This post is based on a working paper accessible here.

In 1933, Ragnar Frisch built one of the first determinate models of the business cycle, and introduced it under the new term of “macrodynamic”.1 This article has been celebrated ever since its publication, in large part because of the two mechanisms Frisch introduced to explain the business cycle: a propagation mechanism, explaining the return to equilibrium, and an impulse mechanism, explaining the perturbation of the system that prevented it from reaching its equilibrium level. This distinction is still central to modern models in macroeconomics.

Although celebrated, this model has also been the object of controversy: in 1992 and 2007, Stefano Zambelli published two papers2 where he explained that Frisch had failed to construct a propagation mechanism generating fluctuations, arguing that it would be so “for all possible combinations of different economically significant sets of parameters” (Zambelli, 2007: 153).

This is a striking result, and it would indeed be puzzling that neither Frisch nor any one else that worked on this model found out about it earlier. But does it really hold? Although we believe that Zambelli is right when he says that the original parameters chosen by Frisch do not yield an oscillation, in fact a complete simulation of the model shows that only a slight change in parameters will make this oscillation apparent.

To clarify matters, one needs to go back to Frisch’s original methodology. In the early 1930s, Frisch was heavily influenced by the mostly empirical work that had been done on the business cycle during the preceding decade. In particular, he had worked himself on a new method to decompose time series, aimed to overcome the shortcomings of harmonic analysis and the periodogram.3 In 1933, his model took a different view of the same problem: instead of decomposing the observed trajectory of a process, Frisch tried to explain how this process was generated. To obtain this explanation, he used a system of equations that he knew would produce an infinite sum of periodic cycles (sinusoidal curves), where each cycle’s frequency could be compared to the frequencies already identified with a decomposition of an observed time series.

Frisch knew that simple ordinary differential or difference equations would not be able to generate such an infinite sum of cyclical components. However, he had already been introduced to the peculiar characteristics of mixed difference and differential equations (today known as delay differential equations, DDE) by Jan Tinbergen, who had build a model based on those equation, and lectured on their uses at the first European meeting of the Econometric Society in 1931.4 This explains, at least partly, why Frisch’s model has more often been praised than solved: the theory on DDEs had not even begun in the early 1930s, and it is still an ongoing area of research. However, we have today at our disposal the necessary tools to simulate the model, and more importantly to compute its component cycles very efficiently. In turn, this allows us to obtain new insights on the behaviour of Frisch’s model and the ideas that the Norwegian economist tried to encapsulate in it.

In the rest of this post, we will present our methodology to compute the components, and illustrate the different possible trajectories with an application reproducing the model, its solutions and their decomposition for a wide choice of parameters.

There are three equations in Frisch’s model:

\[\begin{align} \dot x_t &= c - \lambda(r \cdot x_t + s \cdot z_t)\\ y_t &= m \cdot x_t + \mu \cdot \dot x_t \\ z_t &= \frac{1}{\epsilon} \int_{t-\epsilon}^{t} y(\tau) d\tau \end{align}\]

The first equation gives the changes of consumption \(x\). \(c\) is a constant level of increase, while \(-\lambda (r \cdot x_t + s \cdot z_t)\) represents the increasing tensions on consumption of the encaisse désirée, that is, the demand for cash coming from consumption and production \(z\). \(\lambda\), \(r\) and \(s\) are coefficients of sensibility. The second equation, \(y\), is an accelerator relationship explaining the level of investment as a function of current consumption and changes in consumption. Finally, \(z\) is the production currently being done, and is a function of the investment decisions decided over the previous period from \(t-\epsilon\) to the present.

By substitution of the second into the third, and the third into the first equation, we obtain the following integro-differential equation with a delay in the state variable:

\[\begin{equation} \dot x(t) + \lambda (r +\frac{s\mu}{\epsilon}) \cdot x(t) - \frac{\lambda s \mu}{\epsilon} \cdot x(t-\epsilon) + \frac{\lambda s m}{\epsilon} \int_{t-\epsilon}^{t} x(\tau) d\tau = c \label{eq_gen} \end{equation}\]

To solve this equation in the form of an infinite series of components, as did Frisch in 1933 with the limited tools at his disposal, we use the Laplace transform and its inverse. The methodology of using this transform on DDEs has been described in particular by Bellman and Cooke in a 1963 monograph, which capped two decades of explorations on the subject of DDEs and opened up new areas of research on those equations.5

Applying term by term the substitution will give an expression of the form \(X(s) = \frac{F(s)P(s)}{H(s)}\), where \(F(s)\) is the transform of the non-homogenous term, \(P(s)\) comes from the initial conditions of the system between \(t-\epsilon\) and \(t\), and \(H(s)\) is a characteristic polynomial. We refer the reader to the appendix of our working paper for the whole detailed computation giving us the transformed expression of \(x(t)\):

\[\begin{equation} X(s) = \frac{e^{- s \epsilon} \left(c+s \cdot x(\epsilon) - (s \cdot b-d) \int_0^\epsilon x(t) e^{-s t} dt - d \int_0^\epsilon x(\tau) d\tau \right)}{s^2 + a s + b s e^{-s \epsilon} +d - d e^{- s \epsilon}} \end{equation}\]

To get back from the s-domain, we apply the Mellin inversion formula, also called a Bromwich integral: \(f(t) = \frac{1}{2 \pi i} lim_{T \to \infty} \int_{\gamma - T i}^{\gamma + T i} F(s) e^{st} ds\). Thanks to the residue theorem the integral will become a sum determined by the zeros of \(H(s)\) (our characteristic polynomial) that are singularities of \(X(s)\), and the \(\frac{1}{2 \pi}\) will cancel with the \(2 \pi\) of the sum of residues. Because the poles are simple, we can obtain them with the classic formula \(Res(F,c) = lim_{z \to c}(z-c)F(z) = \frac{g(c)}{h'(c)}\). Replacing \(g(.)\) and \(h(.)\) by their expressions above, we obtain the following solution for \(x\):

\[\begin{equation} x(t-\epsilon) = \sum_{i=0}^\infty \frac{c+r_i \cdot x(\epsilon) + (d-r_i \cdot b) \int_0^\epsilon x(t) e^{-r_i t} dt - d \int_0^\epsilon x(\tau) d\tau }{2r_i+a+be^{-r_i \epsilon}-b\epsilon r_i e^{-r_i \epsilon} + d \epsilon e^{- r_i \epsilon}} e^{r_i (t- \epsilon)} = \sum_{i=0}^\infty k_i e^{r_i (t- \epsilon)} \label{solution_x} \end{equation}\]

Where the \(r_i\) are the zero of \(h(.)\). The conjugate of each complex root will also be a solution, and its coefficient will be \(\bar{k_i}\).

We can see right away that \(0\) will be a solution of \(h(s)=0\). If we assume that the economy was at equilibrium and is suddenly displaced away from it, we can replace this into our solution above, and we will obtain an equilibrium level for our trajectory. To find the other zeros of \(h(s)\), we can remark that as \(s\) tends to \(\infty\), the polynomial will approach the expression \(s(s + a + b e^{-\epsilon s}) = 0\). To find the zeros of the expression in parenthesis, we can use the Lambert \(W\) function (this function gives the solutions of \(we^w=z\) as a multibranch function \(w = W_k(z)\) for some integer \(k\) giving a particular branch of the function). After some changes of variables, we obtain the expression \(s = \frac{W_k(-\epsilon b e^{a\epsilon})}{\epsilon} - a\) for the zeros of our polynomial, aside from the trivial root. Because the expression inside \(W_k(.)\) is always positive for economically relevant parameters, this expression will always give a nontrivial real root generating a monotonous trajectory and an infinity of complex roots generating cyclical solutions. The roots are then improved using a simple Newton algorithm which works well for the complex roots although special care must be taken when applying it to the nontrivial real root.

This allows us to obtain a general solution with three different parts: an equilibrium level, a monotonous trajectory that Frisch called a secular trend, and an infinite sum of cyclical solutions.

\[\begin{equation} x(t-\epsilon) = \frac{c}{\lambda (r + sm)} + k_1 e^{r_1 (t-\epsilon)} + \sum_{i=2}^\infty A_i e^{\alpha_i (t-\epsilon)} cos(\beta_i (t-\epsilon) + \phi_i) \end{equation}\]

The damping and frequency of the sinusoidal functions is given by \(r_i = \alpha_i + j\beta_i\), \(j^2 = -1\), while their amplitude and phase if given by \(A_i = 2 Mod(k_i)\) and \(\phi_i = Arg(2k_i)\) (the factor of two comes from the complex conjugate). Because the \(k_i\) will quickly go to zero in the infinite sum, in practice a limited number of cyclical components is needed to have a good approximation of the general solution.

The application below is initially set with Frisch’s original parameters. The reader can modify any parameter of the system to see the impact on the general trajectory of consumption, as well as the different components of this trajectory. An increase in \(\lambda\) is sufficient to obtain an apparent cycle in the general solution. In 1933, Frisch did not see that all the components would depend on the same initial conditions, and he gave a different initial condition for the “trend” component and for the cyclical components. Zambelli was the first one to remark that the parameters he used generated a total solution that was monotonous but we cannot agree with him that this is a general case: it is only an unfortunate coincidence as can be seen by changing other parameters. Thus the rocking horse is rocking again!

Note on the app: For computational reasons, we use a discrete-time version of the model to approximate the general solution of the model. The equation behind the discretized version for an arbitrary step is also presented in our working paper (see in particular Appendix II) and we do not reproduce it here. The individual components are computed with the algorithm described above. Another version of this app, using directly the sum of components, can be found here.

  1. Frisch, Ragnar. Propagation Problems and Impulse Problems in Dynamic Economics. Oslo: Reprinted from Economic Essays in Honour of Gustav Cassel. Universitetets Okonomiske Institutt, 1933. 

  2. Zambelli, Stefano “A Rocking Horse That Never Rocked: Frisch’s ‘Propagation Problems and Impulse Problems.’” History of Political Economy 39, no. 1 (March 1, 2007): 145–66.

    Zambelli, Stefano. “The Wooden Horse That Wouldn’t Rock: Reconsidering Frisch.” In Nonlinearities, Disequilibria and Simulation: Proceedings of the Arne Ryde Symposium on Quantitative Methods in the Stabilization of Macrodynamic Systems Essays in Honour of Björn Thalberg, edited by Kumaraswamy Velupillai, 27–56. London: Palgrave Macmillan UK, 1992. 

  3. See in particular the program laid out in Frisch, Ragnar. “A Method of Decomposing an Empirical Series into Its Cyclical and Progressive Components.” Journal of the American Statistical Association 26, no. 173S (1931): 73–78. 

  4. Tinbergen, Jan “L’utilisation Des Équations Fonctionnelles et Des Nombres Complexes Dans Les Recherches Économiques.” Econometrica 1, no. 1 (1933): 36–51.

    Tinbergen, Jan. “A Shipbuilding Cycle.” In Jan Tinbergen: Selected Papers, edited by Leo H. Klaassen, L. M. Koyck, and H. J. Witteveen, 1–14. North-Holland Publishing Company, 1959 [1931]. 

  5. Bellman, Richard Ernest, and Kenneth L. Cooke. Differential-Difference Equations. Santa Monica: Rand Corporation, 1963.