What the Machines Do Not Explain

growth accounting · Solow residual · total factor productivity · growth rate · lists

The statistics office of Pellora wants to know why output grew. It assumes the economy's total output is made by a Cobb-Douglas production function Y = A\,K^{\alpha} L^{1-\alpha} of capital K and labour L, where A is total factor productivity (TFP): how well inputs are turned into output. Taking growth rates of both sides gives, approximately, the growth accounting equation

g_Y = \underbrace{\alpha\,g_K}_{\text{capital}} + \underbrace{(1-\alpha)\,g_L}_{\text{labour}} + \underbrace{g_A}_{\text{residual}}

TFP cannot be observed, so the office measures it as what is left: the Solow residual

g_A = g_Y - \alpha\,g_K - (1-\alpha)\,g_L

All growth rates are year on year: from year t-1 to year t, g_X = X_t / X_{t-1} - 1 (a fraction).

Write growth_accounts(Y, K, L, alpha) that takes the yearly series Y, K, L (same length, years 0, 1, \ldots) and returns a list with one tuple (capital, labour, residual) for each year t = 1, 2, \ldots: the three terms of the equation for growth from t-1 to t. With one year of data, return [].

Examples

Input:  Y = [100, 104], K = [300, 309], L = [50, 50.5], alpha = 0.3
Output: [(0.009, 0.007, 0.024)]
Explanation: output grew 4 %, capital 3 %, labour 1 %. Capital explains
0.3 * 3 % = 0.9 points, labour 0.7 * 1 % = 0.7 points; 2.4 points are left over.

Input:  Y = [200, 206, 203], K = [600, 624, 630], L = [80, 81, 80], alpha = 0.35
Output: [(0.014, 0.008125, 0.007875), (0.00336538, -0.00802469, -0.00990380)]
Explanation: in year 2 output fell by more than the loss of labour explains,
so measured TFP fell.

Constraints

  • answers are compared with a tolerance of 1e-6; do not round

Goals

  • Compute year-on-year growth rates of output, capital and labour
  • Split output growth into a capital part, a labour part and a residual
  • Read the residual as growth in total factor productivity
Starting Python…