The previous notes present the Solow model in continuous time. This one takes it up in discrete time. It is not a mere transposition: moving from one convention to the other raises questions of discretisation, calibration and approximation which have no counterpart in the continuous setting, and which are exactly those found in dynamic general equilibrium models.
From continuous to discrete time
In continuous time, the accumulation of capital per head obeys the differential equation established here:
\[ \dot k(t) = sf\bigl(k(t)\bigr) - (n+\delta)k(t) \]
In discrete time, the capital stock installed at the beginning of period \(t+1\) is what remains of the previous stock, plus the investment of the period:
\[ K_{t+1} = (1-\delta)K_t + I_t \]
With a labour force growing at rate \(n\), \(H_{t+1} = (1+n)H_t\), a constant saving rate, \(I_t = sY_t\), and a technology \(Y_t = A_tF(K_t,H_t)\) homogeneous of degree one, dividing by \(H_{t+1}\) yields the law of motion of capital per head:
\[ (1+n)\,k_{t+1} = (1-\delta)k_t + sA_tf(k_t) \]
Three remarks before going further.
First, capital is predetermined. The stock \(k_t\) results from decisions taken at \(t-1\); it does not react to what happens at \(t\). This timing convention is inconsequential in the deterministic model, but it becomes decisive as soon as randomness is introduced, and it is a classic source of error in simulations.
Second, the law of motion is explicit: the right-hand side depends only on \(k_t\). Simulating the nonlinear model therefore requires no solver, a simple loop suffices. We shall see in the section From discrete to continuous time that this convenience comes from the way we discretised, not from the model itself.
Finally, why discrete time. Data are dated quarterly or annually, simulations proceed by steps, and dynamic general equilibrium models are generally written in discrete time. The Solow model is the simplest one on which the difficulties specific to this setting can be seen at work.
Throughout the note we adopt the following calibration, that of McCandless: \(\alpha = 0.36\), \(s = 0.20\), \(n = 0.02\) and \(\delta = 0.10\), the period being the year. Technical progress is nil unless otherwise stated.
Steady state and stability
The steady state \(\bar k\) satisfies \(\bar k = g(\bar k)\), that is:
\[ (1+n)\bar k = (1-\delta)\bar k + sAf(\bar k) \]
The steady-state condition of the discrete-time model, \((n+\delta)\bar k = sAf(\bar k)\), is identical to that of the continuous-time model.
It suffices to collect the terms in \(\bar k\): the coefficient is \((1+n)-(1-\delta) = n+\delta\). No cross term appears, because population growth enters multiplicatively on one side of the equality and depreciation additively on the other. We shall see in the section From discrete to continuous time that this coincidence does not survive the introduction of technical progress.
The existence and uniqueness of a non-trivial steady state rest on the same arguments as in continuous time, the average product \(f(k)/k\) being monotonically decreasing from infinity to zero under the Inada conditions. We refer to the note on the Solow model for the proof, which does not depend on the timing convention.
Stability, on the other hand, is stated differently. In continuous time it depends on the sign of the derivative; in discrete time, on the modulus of the slope of \(g\) at the fixed point (which must be less than 1 in modulus to ensure local convergence).
The slope of the law of motion at the steady state is:
\[ g'(\bar k) = \frac{(1-\delta)+(n+\delta)\alpha(\bar k)}{1+n} \]
where \(\alpha(k)\) denotes the elasticity of output with respect to capital. It lies in the interval \(\left(\frac{1-\delta}{1+n},\,1\right)\) as soon as \(\delta\leq 1\): convergence is monotonic and the steady state locally stable.
Differentiating \(g\) yields \(g'(k) = \bigl[(1-\delta)+sAf'(k)\bigr]/(1+n)\). At the steady state, \(sAf(\bar k) = (n+\delta)\bar k\), hence
\[ sAf'(\bar k) = (n+\delta)\frac{\bar k f'(\bar k)}{f(\bar k)} = (n+\delta)\alpha(\bar k) \]
which gives the stated expression. Since \(0 < \alpha(\bar k) < 1\), this slope lies between \(\frac{1-\delta}{1+n}\), obtained for \(\alpha=0\), and \(\frac{(1-\delta)+(n+\delta)}{1+n} = 1\), obtained for \(\alpha=1\). It is strictly positive as long as \(\delta\leq1\).
This point is worth stressing, because discrete time is often expected to generate oscillations: the discrete-time Solow model never oscillates for admissible values of depreciation. The section From discrete to continuous time will say why, and under what condition it could.
For our calibration, \(\bar k = 2.2215\) and \(g'(\bar k) = 0.9247\).
Figure 1: Law of motion of capital per head. On the left the 45-degree diagram, on the right net accumulation.
Speed of convergence
Let us approximate the law of motion in a neighbourhood of the steady state. Denoting by \(\tilde k_t = \log(k_t/\bar k)\) the logarithmic deviation, we obtain at first order:
\[ \tilde k_{t+1} = B\,\tilde k_t, \qquad B = g'(\bar k) \]
Capital therefore follows a first-order autoregressive process, whose coefficient is the slope computed in the previous section. This dynamics can also be read as a geometric sequence with ratio \(B\). This expression calls for a comparison with continuous time, where the speed of convergence is \(\beta^{\star} = (1-\alpha)(n+\delta)\), as established here.
In the absence of technical progress, the autoregressive coefficient of the discrete-time model and the speed of convergence of the continuous-time model are linked by the identity:
\[ 1-B = \frac{\beta^{\star}}{1+n} \]
By the previous property,
\[ 1-B = \frac{(1+n)-(1-\delta)-(n+\delta)\alpha(\bar k)}{1+n} = \frac{(n+\delta)\bigl(1-\alpha(\bar k)\bigr)}{1+n} \]
and the numerator is exactly \(\beta^{\star}\).
Moving to discrete time divides the speed of convergence by the demographic factor. For our calibration, \(B = 0.9247\) and the half-life of the deviation from the steady state is \(\log 2/(-\log B) = 8.85\) years.
This identity holds under the assumption of no technical progress. The section From discrete to continuous time shows what becomes of it without this assumption.
Figure 2: Exact transitions (solid) and log-linear approximation (dashed).
Technological growth and the balanced growth path
Suppose now that technology grows at a constant rate, \(A_t = (1+a)^tA_0\). Capital per head no longer has a steady state: it grows indefinitely along a balanced growth path, where the growth rate is constant.
With a Cobb-Douglas production function, capital per head and output per head grow along the balanced path at the rate:
\[ \gamma = (1+a)^{\frac{1}{1-\alpha}}-1 \]
Let us look for a path along which \(k_{t+1}/k_t\) is constant, equal to \(1+\gamma\). Dividing the law of motion by \(k_t\) and substituting \(f(k_t)=k_t^{\alpha}\), we get:
\[ (1+n)(1+\gamma) = (1-\delta) + s(1+a)^tA_0k_t^{\alpha-1} \]
The left-hand side being constant, \((1+a)^tk_t^{\alpha-1}\) must be constant too, which imposes \(k_t\propto(1+a)^{\frac{t}{1-\alpha}}\) and hence \(1+\gamma = (1+a)^{\frac{1}{1-\alpha}}\). Output per head, \(y_t=(1+a)^tA_0k_t^{\alpha}\), then grows at the rate \((1+a)\,(1+\gamma)^{\alpha} = (1+a)^{\frac{1}{1-\alpha}}\), the same.
The exponent \(\frac{1}{1-\alpha}\) deserves a word, since it does not appear in our continuous-time notes. It comes from the way technology has been introduced. Here it is Hicks-neutral, it multiplies the production function; in the note on the simulation of the Solow model it is labour-augmenting, \(F(K_t,A_tH_t)\). In the Cobb-Douglas case the two conventions are reconciled:
\[ A_tK_t^{\alpha}H_t^{1-\alpha} = K_t^{\alpha}\left(A_t^{\frac{1}{1-\alpha}}H_t\right)^{1-\alpha} \]
so that neutral technical progress at rate \(a\) is equivalent to labour-augmenting progress at the rate \(x\) defined by \(1+x = (1+a)^{\frac{1}{1-\alpha}}\). With \(a = 0.02\) and \(\alpha = 0.36\), this gives \(x = 3.14\,\%\). Confusing the two conventions leads to over- or underestimating growth by a factor \(1/(1-\alpha)\), more than half for a usual calibration.
To reason about a steady state one has to move to efficiency units, \(\hat k_t = K_t/(A_tH_t)\), which gives:
\[ (1+n)(1+x)\,\hat k_{t+1} = (1-\delta)\hat k_t + sf(\hat k_t) \]
From discrete to continuous time
Let us step back and explain in what sense the discrete-time model and the continuous-time model answer each other, where they part ways, and why it would be unwise to regard one as the approximate version of the other.
What is an approximation scheme?
A differential equation \(\dot x(t) = \varphi\bigl(x(t)\bigr)\), together with an initial condition, determines a unique path, but rarely a path that can be written down. The Solow model with a Cobb-Douglas production function is one of the exceptions, and this is what will allow us to measure errors; as soon as we depart from it, the solution has to be approximated.
An approximation scheme replaces the continuous path by a sequence of points \(x_0\), \(x_1\), \(x_2\), … meant to equal \(x(0)\), \(x(\Delta)\), \(x(2\Delta)\), … The simplest one replaces the derivative by a difference quotient:
\[ \dot x(t) \simeq \frac{x(t+\Delta)-x(t)}{\Delta} \]
It remains to decide where to evaluate \(\varphi\), the right-hand side of the differential equation. At the beginning of the interval one gets the explicit Euler scheme, at the end the implicit scheme:
\begin{cases} x_{t+\Delta} &= x_t + \Delta\varphi(x_t)\\ x_{t+\Delta} &= x_t + \Delta\varphi(x_{t+\Delta}) \end{cases}The first is computed directly, the second requires solving a nonlinear equation, for \(x_{t+\Delta}\), at each step; this is the whole difference between schemes (S1) and (S2) of the subsection Discretising, or modelling in discrete time?.
The explicit scheme follows the tangent to the path at the point where it stands, and follows it for the whole duration \(\Delta\). As the path bends, the tangent departs from it: at each step, the scheme leaves the integral curve it was following for another one. The left panel of the figure below shows this mechanism, with in grey the bundle of exact paths issued from each node.
The size of the error can be read from the Taylor expansion:
\[ x(t+\Delta) = x(t)+\Delta\dot x(t)+\frac{\Delta^2}{2}\ddot x(t)+o(\Delta^2) \]
The explicit scheme keeps only the first two terms. The error made in one step is therefore of order \(\Delta^2\); over a fixed horizon, which requires \(T/\Delta\) steps, it accumulates to order \(\Delta\). The scheme is said to be of order one: halving the period halves the error. The right panel confirms it, the slope being one on a logarithmic scale.
Figure 3: The explicit Euler scheme. On the left it follows the tangent and leaves the integral curve at each step; on the right its error is proportional to the length of the period.
The implicit scheme reads the same way, except that it follows the tangent at the arrival point rather than at the departure point. The difference is not innocuous. As the economy approaches its steady state, the slope decreases: the explicit scheme, which keeps the slope at departure, goes too far, and the implicit one, which keeps the slope at arrival, not far enough.
One then observes that the exact solution is bracketed by the two schemes. This is not a general result. It would require \(G\) to be monotonic on the interval covered, which is the case here, whatever the starting point and whatever the length of the period. Starting at \(0.25\,\hat k^{\star}\) with \(\Delta=10\) years:
| step | explicit | exact | implicit |
|---|---|---|---|
| 1 | \(1.3094\) | \(1.1369\) | \(1.0217\) |
| 2 | \(1.6801\) | \(1.4861\) | \(1.3554\) |
| 3 | \(1.7387\) | \(1.6381\) | \(1.5377\) |
The right panel of the figure below isolates one step and shows where the gap comes from. The two schemes join the same departure point to two arrival points, by a segment whose slope is, for the explicit one, that of the path at departure, and for the implicit one, that of the path at arrival. As the slope decreases over this interval, the first segment climbs too much and the second not enough.
This is where the implicit scheme pays its price: its slope depends on the arrival point, which is precisely the unknown. The capital of the next period is no longer given by a formula; it is the value \(k'\) which cancels
\[ \Phi(k') = k'-k_t-\Delta\bigl[sf(k')-rk'\bigr] \]
Newton's method finds it in a few iterations starting from \(k_t\).
def newton(k, D, x=0.0, tol=1e-13, maxit=100):
"""One step of the implicit scheme: solves k' = k + D[s f(k') - (n+x+delta) k']."""
taux = n + x + delta
y = k # initialisation at the current point
for _ in range(maxit):
F = y - k - D*(s*f(y) - taux*y)
Fprime = 1 - D*(s*fprime(y) - taux)
pas = -F/Fprime
y = y + pas
if abs(pas) < tol:
break
return y
Six lines, but they are the ones implemented by every perfect-foresight solver, on systems of several hundred equations1.
Figure 4: The two schemes bracket the path. On the right, a single step: each joins departure to arrival by a segment whose slope is taken at one end or the other. Dotted, the integral curve through the arrival point of the implicit scheme.
The stocks and flows rule
Let us introduce explicitly the length \(\Delta\) of the period. Over an interval of this length, investment and depreciation are flows: they contribute \(sY\Delta\) and \(\delta K\Delta\). The capital stock, for its part, is not multiplied by \(\Delta\). Hence
\[ k_{t+\Delta} = k_t + \Delta\Bigl[sf(k_t)-(n+x+\delta)k_t\Bigr] \]
Dividing by \(\Delta\) and letting \(\Delta\) tend to zero, one recovers the continuous-time differential equation. The model obtained in this way is the explicit Euler scheme of the continuous-time equation, but it is only one of the possible discrete formulations, and the subsection Discretising, or modelling in discrete time? will show that the most common one is not one of them. Missing the distinction between stocks and flows, that is forgetting a \(\Delta\), leads to a model whose parameters no longer have the stated dimension.
Why the model does not oscillate, and when it could
For this scheme, the slope at the fixed point takes a remarkably simple form.
The explicit Euler scheme satisfies \(g'(\bar k) = 1-\Delta\beta^{\star}\). The convergence of the discretised model is therefore monotonic if \(\Delta\beta^{\star} < 1\), oscillating if \(1 < \Delta\beta^{\star} < 2\), and divergent if \(\Delta\beta^{\star}>2\).
We have \(g'(k) = 1+\Delta\bigl[sf'(k)-(n+x+\delta)\bigr]\) and, at the steady state, \(sf'(\bar k) = (n+x+\delta)\alpha(\bar k)\). It follows that \(g'(\bar k) = 1-\Delta(1-\alpha)(n+x+\delta) = 1-\Delta\beta^{\star}\). The three regimes correspond to \(g'>0\), \(-1 < g' < 0\) and \(g' < -1\).
Everything becomes clear. With \(\alpha = 0.36\), \(n = x = 0.02\) and \(\delta = 0.10\), the speed is \(\beta^{\star} = 0.0896\): a period of more than \(1/\beta^{\star} = 11.2\) years would be needed for oscillations to appear, and of more than \(2/\beta^{\star} = 22.3\) years for the model to diverge. At the annual frequency, we are at \(\Delta\beta^{\star} = 0.09\), very far from the threshold. The discrete-time Solow model does not oscillate, not because it cannot, but because the usual period is short relative to the time scale of convergence.
Discretising, or modelling in discrete time?
Everything above assumes that the "true" model is in continuous time and that the discrete versions are approximations of it. This is a choice.
Two starting points are equally defensible. Either one writes the model in continuous time, and the discrete formulations are numerical schemes whose discrepancy can be measured. Or one writes the model directly in discrete time, as McCandless and most of the dynamic general equilibrium literature do, and it is then the differential equation which appears as a limit. This section adopts the first point of view, not because it is truer, but because it allows one to quantify: the solution of the differential equation is known in closed form in the Cobb-Douglas case, and provides a benchmark.
Here are four formulations, which are not of the same nature.
(S1) Explicit: \(k' = k+\Delta\bigl[sf(k)-rk\bigr]\), where \(r = n+x+\delta\), solved in closed form.
(S2) Implicit: \(k' = k+\Delta\bigl[sf(k')-rk'\bigr]\), the right-hand side being evaluated at the end of the period. A nonlinear equation, for \(k'\), has to be solved at each step.
(S3) Compound factors: \((1+n\Delta)(1+x\Delta)k' = (1-\delta\Delta)k+s\Delta f(k)\), the form retained by McCandless, also closed.
(S4) Exponential: \(k' = e^{-r\Delta}k+sf(k)\frac{1-e^{-r\Delta}}{r}\), exact if \(f(k)\) were constant over the period.
Schemes (S1), (S2) and (S4) derive from the differential equation. (S3) does not: it translates an accounting rule. Over a period, capital survives at the factor \(1-\delta\), population and technology grow at the factors \(1+n\) and \(1+x\), and these two factors compound. The resulting cross term is not an approximation error, it is the product of two growth processes within the same period.
The criterion that separates them
A formal criterion separates the two natures. A discretisation scheme aims, by construction, at the rest point of the equation it approximates: whatever the length of the period, its fixed point is that of the differential equation. Let us check, by iterating each formulation to convergence.
| formulation | fixed point, \(\Delta=1\) | fixed point, \(\Delta=4\) |
|---|---|---|
| (S1) explicit | \(1.745960\) | \(1.745960\) |
| (S2) implicit | \(1.745960\) | \(1.745960\) |
| (S4) exponential | \(1.745960\) | \(1.745960\) |
| (S3) compound | \(1.738194\) | \(1.715233\) |
Three of the four land exactly on \(\hat k^{\star} = 1.745960\), the steady state of the differential equation, whatever the period. (S3) does not. Its stationary condition reads:
\[ sf(\hat k) = \bigl(n+x+\delta+nx\Delta\bigr)\,\hat k \]
its effective rate depends on the length of the period, and its steady state drifts away proportionally, by \(0.44\,\%\) at the annual frequency, by \(1.76\,\%\) at four years. This is not an imprecise scheme, it is another model.
The same term shows up in the speed of convergence. The identity \(1-B = \beta^{\star}/(1+n)\) of the section Speed of convergence becomes, for (S3) with technical progress,
\[ 1-B = \frac{(1-\alpha)\bigl[(1+n)(1+x)-(1-\delta)\bigr]}{(1+n)(1+x)} \]
which exceeds \(\beta^{\star}/\bigl[(1+n)(1+x)\bigr]\) by \(0.29\,\%\) for our calibration.
Accuracy does not follow apparent rigour
One might be tempted to conclude that (S3), the only one missing the steady state, is the worst. It is the opposite. The maximum relative error over forty years, starting from \(30\,\%\) of the steady state, is:
| \(\Delta\) | (S1) | (S2) | (S3) | (S4) |
|---|---|---|---|---|
| one year | \(1.2\times10^{-2}\) | \(1.2\times10^{-2}\) | \(7.0\times10^{-3}\) | \(1.7\times10^{-2}\) |
| two years | \(2.5\times10^{-2}\) | \(2.3\times10^{-2}\) | \(1.4\times10^{-2}\) | \(3.4\times10^{-2}\) |
| four years | \(5.3\times10^{-2}\) | \(4.3\times10^{-2}\) | \(2.9\times10^{-2}\) | \(7.0\times10^{-2}\) |
| eight years | \(1.1\times10^{-1}\) | \(7.6\times10^{-2}\) | \(6.0\times10^{-2}\) | \(1.4\times10^{-1}\) |
All four are of order one, the error doubling with the length of the period. But (S3) is the most accurate of the four on the transition, and (S4) the least, even though it is the only one treating the linear part of the equation exactly. The error is dominated not by this term but by freezing \(sf(k)\) over the whole period, and the formulation that treats the former best treats the latter worst. (S3) therefore cannot be dismissed as a crude convention.
At the annual frequency, all remain below one per cent: the choice of formulation is of no practical consequence for a usual calibration.
Nor is there a "natural" discrete model
Let us push one step further. If depreciation and demography act continuously, the exact factors over a period are not those of (S3):
| over one year | convention of (S3) | exact factor |
|---|---|---|
| survival of capital | \(1-\delta = 0.900000\) | \(e^{-\delta} = 0.904837\) |
| population growth | \(1+n = 1.020000\) | \(e^{n} = 1.020201\) |
Half a per cent difference on surviving capital. The \(1-\delta\) of discrete accounting is therefore also a convention, not a datum. There is not on one side the true model and on the other its approximations, but two sets of primitive assumptions whose consequences must be known.
Passing to the limit
What brings the two families together is the shortening of the period. The cross term being of order \(\Delta^2\), per year it vanishes proportionally to \(\Delta\):
| length of the period | gap per year |
|---|---|
| one year | \(4.0\times10^{-4}\) |
| one quarter | \(1.0\times10^{-4}\) |
| one month | \(3.3\times10^{-5}\) |
| \(0.01\) year | \(4.0\times10^{-6}\) |
This is the whole content of the expression "passing to the continuous limit". It says that the two families meet, not that one is the truth of the other.
What the implicit scheme brings
The cost of the implicit scheme, one nonlinear equation per step, was seen above. There remains its benefit, which only appears if the period is lengthened. The choice of formulation, inconsequential at the annual frequency, then ceases to be so. The implicit scheme lands on the steady state whatever the length of the period, including a hundred years, where the explicit scheme goes astray and then diverges:
| \(\Delta\) | explicit | implicit |
|---|---|---|
| \(25\) years | \(2.64\) | \(1.7460\) |
| \(40\) years | diverges | \(1.7460\) |
| \(100\) years | diverges | \(1.7460\) |
This is the unconditional stability property of the backward Euler scheme, paid for with a nonlinear equation to solve at each step. A warning to finish: when the solver does not converge, the result looks very much like a model behaving badly. It is worth checking the residual rather than trusting the path.
Figure 5: The four formulations. On the left accuracy, on the right stability.
Calibration
The model has four parameters, \(\alpha\), \(s\), \(n\) and \(\delta\), to which \(x\) and the variance of the shock are added in the stochastic version. Setting them requires distinguishing two categories.
What does not depend on the period. The saving rate \(s\) and the capital share \(\alpha\) are ratios, dimensionless. They are the same at the annual and at the quarterly frequency. The capital share can be read in the national accounts, around \(0.30\) to \(0.36\) depending on the treatment of mixed income; the saving rate can be read in the investment rate, around \(0.20\) to \(0.22\).
What does depend on it. The rates \(n\), \(x\) and \(\delta\) are expressed per period. Moving from the year to the quarter is done through \((1+r)^{1/4}-1\), and not \(r/4\): for \(\delta = 0.10\), one gets \(0.0241\) against \(0.0250\), an approximation off by nearly \(4\,\%\). The discrepancy is negligible for \(n\) and \(x\), where the rates are small, and not for \(\delta\).
There remains the most important point, and the one most often passed over in silence.
Along the balanced growth path, the capital-output ratio is entirely determined by the other parameters:
\[ \frac{K}{Y} = \frac{s}{n+x+nx+\delta} \]
In efficiency units, the balanced-path condition reads \(sf(\hat k) = (n+x+nx+\delta)\hat k\), that is \(s\hat y = (n+x+nx+\delta)\hat k\). The ratio \(\hat k/\hat y\) being equal to \(K/Y\), which is invariant to changes of units, the result follows.
This identity links five quantities, four of which are observable. They cannot therefore be chosen freely. With McCandless's calibration, \(s = 0.20\), \(n = 0.02\) and \(\delta = 0.10\), it imposes \(K/Y = 1.42\), whereas the data suggest a value between \(2.5\) and \(3\). Conversely, targeting \(K/Y = 3\) with \(s = 0.20\) and \(n+x = 0.04\) imposes \(\delta = 0.027\), far from the usual ten per cent.
There is no error here, but a trade-off. Calibrating means choosing which moments one agrees to miss. A calibration retaining \(\delta = 0.10\) targets the short-run dynamics, where depreciation governs the speed of adjustment; a calibration retaining \(K/Y = 3\) targets the long-run quantities. The Solow model does not have enough degrees of freedom to hit both at once, and this is information about the model, not about the method.
A stochastic version
Let us make technology random. Among the possible formulations, the most convenient retains a log-normal level of technology,
\[ A_t = \bar Ae^{\varepsilon_t} \]
where \(\varepsilon_t\) is a Gaussian white noise with zero mean and standard deviation \(\sigma_{\varepsilon}\). This formulation guarantees the positivity of \(A_t\), which an additive shock would not. The law of motion becomes
\[ k_{t+1} = \frac{(1-\delta)k_t + s\bar Ae^{\varepsilon_t}f(k_t)}{1+n} \]
It remains explicit: simulating the nonlinear model requires nothing more than a loop. This is the convenience of the explicit scheme, and it is also what distinguishes the Solow model from models with expectations, where the path has to be solved globally.
def simule_exact(T, sigma, graine=0):
"""Simulation of the nonlinear model. Capital is predetermined:
the shock of period t only affects capital at t+1."""
alea = np.random.default_rng(graine)
eps = sigma*alea.standard_normal(T)
k = np.empty(T)
k[0] = kstar()
for t in range(T-1):
k[t+1] = ((1-delta)*k[t] + s*A*np.exp(eps[t])*f(k[t]))/(1+n)
y = A*np.exp(eps)*f(k)
return k, y, eps
Timing is the only delicate point. Capital \(k_t\) is decided at \(t-1\): it does not depend on \(\varepsilon_t\). Output \(y_t\), on the other hand, is hit by the contemporaneous shock. Swapping these two lines leads to overestimating the variance of output by nearly ten per cent, without anything signalling it.
Figure 6: Three simulations of the nonlinear model, with \(\sigma_{\varepsilon}=0.05\).
Log-linearisation
The model being nonlinear, the variance of capital cannot be expressed simply in terms of that of the shock. We therefore approximate the model in a neighbourhood of the steady state. Denoting \(\tilde X_t = \log X_t - \log\bar X\), and using \(e^{\tilde X}\simeq 1+\tilde X\) as well as \(\tilde X\tilde Y\simeq 0\), the law of motion becomes
\[ \tilde k_{t+1} = B\tilde k_t + C\varepsilon_t, \qquad B = \frac{(1-\delta)+\alpha(n+\delta)}{1+n}, \qquad C = \frac{n+\delta}{1+n} \]
Two remarks. First, the saving rate appears neither in \(B\) nor in \(C\): it drops out through the steady-state condition. A country that saves more is richer, but converges neither faster nor slower, and does not react differently to shocks. Second, \(\tilde k\) is a first-order autoregressive process; its moving average representation is therefore obtained by the method presented in the note on the MA representation of an AR(2), of which it is the single-root special case:
\[ \tilde k_{t+1} = C\sum_{i=0}^{\infty}B^i\varepsilon_{t-i} \]
The shocks being independent, the variance follows immediately:
\[ \mathrm{var}\bigl(\tilde k\bigr) = \frac{C^2}{1-B^2}\,\mathrm{var}(\varepsilon) \]
Output, for its part, is hit by the contemporaneous shock and inherits predetermined capital, \(\tilde y_t = \varepsilon_t+\alpha\tilde k_t\), hence
\[ \mathrm{var}\bigl(\tilde y\bigr) = \mathrm{var}(\varepsilon)+\alpha^2\,\mathrm{var}\bigl(\tilde k\bigr) \]
For our calibration, \(\mathrm{var}(\tilde k) = 0.0955\,\mathrm{var} (\varepsilon)\) and \(\mathrm{var}(\tilde y) = 1.0124\,\mathrm{var} (\varepsilon)\).
def simule_loglineaire(T, sigma, graine=0):
"""Simulation of the log-linear version, with the same shocks."""
alea = np.random.default_rng(graine)
eps = sigma*alea.standard_normal(T)
B = ((1-delta) + alpha*(n+delta))/(1+n)
C = (n+delta)/(1+n)
kt = np.zeros(T)
for t in range(T-1):
kt[t+1] = B*kt[t] + C*eps[t]
yt = eps + alpha*kt
return kt, yt, eps
It remains to assess the approximation. The figure below compares, on the left, the two paths for the same draw of shocks and, on the right, the mean gap between them as a function of the size of the shock.
Figure 7: Nonlinear model and log-linear version. On the right, the approximation error grows with the size of the shock.
The relative error grows proportionally to \(\sigma_{\varepsilon}\), and the absolute error as its square. Relative to the standard deviation of \(\tilde k\), it is \(4.6\,\%\) for \(\sigma_{\varepsilon} = 0.02\), \(23\,\%\) for \(\sigma_{\varepsilon} = 0.10\) and \(46\,\%\) for \(\sigma_{\varepsilon} = 0.20\). This is worth keeping in mind: for a technology shock of realistic size the log-linearisation is excellent, but it degrades quickly. McCandless's figures retain \(\sigma_{\varepsilon} = 0.20\), which makes them legible at the cost of an approximation pushed well beyond its domain of validity.
What the model cannot do
The previous computation contains an admission. The variance of output is \(1.0124\) times that of the shock: the model generates almost no propagation. All the observed dynamics of output is that of the shock itself, and capital adds only \(1.24\,\%\) to it. With independent shocks, output is practically a white noise, which the data flatly contradict.
One answer is to make the shocks persistent, but it shifts the question without answering it: persistence becomes an assumption instead of a result. Let us rather see what an internal mechanism brings.
A rigidity in the adjustment of investment
Suppose that investment only reaches its target gradually:
\[ i_t = (1-\varphi)\,i_{t-1} + \varphi\,s\,y_t \]
The parameter \(\varphi\in\,]0,1]\) measures the speed of adjustment, the value \(\varphi = 1\) giving back the basic model. The steady state is unchanged, since \(\bar\imath = s\bar y\) still holds there: the rigidity is purely dynamic.
Log-linearising, and noting that \(\bar\imath = (n+\delta)\bar k\), the system becomes
\begin{cases} \tilde k_{t+1} &= \dfrac{(1-\delta)\tilde k_t+(n+\delta)\tilde\imath_t}{1+n}\\[2mm] \tilde\imath_t &= (1-\varphi)\tilde\imath_{t-1}+\varphi\alpha\tilde k_t+\varphi\varepsilon_t \end{cases}The system is of dimension two: capital now follows a second-order autoregressive process, whose analysis is exactly that of the note on the MA representation of an AR(2).
What the rigidity brings, and what it does not
The following table gives the roots of the system, the variance of output and its autocorrelation function, for a few values of \(\varphi\).
| \(\varphi\) | roots | \(\mathrm{var}(\tilde y)\) | \(\rho_1\) | \(\rho_2\) | \(\rho_4\) | \(\rho_8\) |
|---|---|---|---|---|---|---|
| \(1.00\) | \(0.000\) and \(0.925\) | \(1.0121\) | \(0.053\) | \(0.050\) | \(0.042\) | \(0.031\) |
| \(0.50\) | \(0.475\) and \(0.928\) | \(1.0105\) | \(0.031\) | \(0.040\) | \(0.040\) | \(0.033\) |
| \(0.30\) | \(0.662\) and \(0.933\) | \(1.0091\) | \(0.021\) | \(0.030\) | \(0.034\) | \(0.032\) |
| \(0.10\) | \(0.831\) and \(0.955\) | \(1.0055\) | \(0.010\) | \(0.014\) | \(0.017\) | \(0.021\) |
The result is not the one hoped for. The rigidity increases neither the variance nor the persistence: the variance falls slightly and the first-order autocorrelation collapses. What it changes is the shape of the propagation. The autocorrelation stops decreasing and becomes hump-shaped: at \(\varphi = 0.30\), one reads \(\rho_1 < \rho_2 < \rho_4\). The impulse response is deformed in the same way, its maximum moving from the first lag to the fifth.
The rigidity redistributes propagation over time, it does not amplify it. This is a more useful lesson than the one sought: it produces the transmission delay that the Solow model lacks, but it does not increase persistence.
def systeme_rigide(phi):
"""Matrices of the log-linear system (k~, i~) with partial adjustment."""
a = ((1-delta) + (n+delta)*phi*alpha)/(1+n)
b = (n+delta)*(1-phi)/(1+n)
M = np.array([[a, b], [phi*alpha, 1-phi]])
N = np.array([(n+delta)*phi/(1+n), phi])
return M, N
def reponse(phi, H=12):
"""Response of output to a unit shock."""
M, N = systeme_rigide(phi)
etat, sortie = N.copy(), [1.0]
for _ in range(H):
sortie.append(alpha*etat[0])
etat = M @ etat
return np.array(sortie)
Figure 8: Response of output to a technology shock, after impact. The rigidity shifts the maximum towards distant lags.
The link with the note on the AR(2) is direct. The two roots are real, and the hump of the impulse response is exactly the phenomenon described in its section on the repeated root: at \(\varphi = 0.10\) the roots are \(0.83\) and \(0.96\), almost equal, and the response resembles the sequence \((k+1)\rho^k\).
This proximity is not fortuitous, and it also points to the limit of the mechanism.
Whatever \(\varphi\in\,]0,1[\), the two roots of the system are real: a rigidity on investment cannot generate oscillations.
Denoting by \(a\), \(b\), \(c\) and \(d\) the coefficients of the system matrix, the discriminant of its characteristic polynomial is \((a+d)^2-4(ad-bc) = (a-d)^2+4bc\). Now \(b = (n+\delta)(1-\varphi)/(1+n)>0\) and \(c = \varphi\alpha>0\) for \(\varphi < 1\). The discriminant is therefore strictly positive.
All the feedbacks of the model are positive, and this is what rules out cycles. To obtain complex roots, investment would have to react to the change in output rather than to its level, that is a Samuelson-type accelerator, \(i_t = sy_t + v(y_t-y_{t-1})\). One then leaves the Solow model.
Towards real business cycle models
The Solow model fails to reproduce fluctuations for two distinct reasons, which are worth separating. It has no propagation mechanism, as we have just seen, and an ad hoc rigidity only shifts the problem. But above all, the saving rate is postulated constant: nothing in the model describes the choice of households between consuming and investing, nor between working and not working.
This is precisely what real business cycle models add. They replace the saving rule by an intertemporal programme, make labour supply endogenous, and give technology shocks a persistence estimated on the data. The discrete-time Solow model remains the starting point of this construction, and it is in this capacity that it opens the textbooks of the field.
References
The thread of this note follows the first chapter of McCandless, G. (2008), The ABCs of RBCs: An Introduction to Dynamic Macroeconomic Models, Harvard University Press, where the discrete-time Solow model serves as an introduction to real business cycle models. The sections on discretisation, calibration and the rigidity on investment are extensions of it.
On the continuous-time Solow model, see the notes on the Solow model and on its simulation. On the moving average representations used in the last two sections, see the note on the MA representation of an AR(2). The classic reference on growth theory remains Barro, R. and Sala-i-Martin, X. (2004), Economic Growth, MIT Press.
Footnotes:
In the Solow model there are no expectations.