Linear Economic Models

 

MATLAB's linear algebra capabilities make it a good vehicle for studying linear economic models, sometimes called Leontief models (after their primary developer, Nobel Prize-winning economist Wassily Leontief) or input-output models.  We will give a few examples.  The simplest such model is the linear exchange model or closed Leontief model of an economy.  This model supposes that an economy is divided into, say, n sectors, such as agriculture, manufacturing, service, consumers, etc.  Each sector receives input from the various sectors (including itself) and produces an output, which is divided among the various sectors.  (For example, agriculture produces food for home consumption and for export, but also seeds and new livestock which are reinvested in the agricultural sector, as well as chemicals that may be used by the manufacturing sector, and so on.)  The meaning of a closed model is that total production is equal to total consumption.  The economy is in equilibrium when each sector of the economy (at least) breaks even.  For this to happen, the prices of the various outputs have to be adjusted by market forces.  Let  denote the fraction of the output of the jth sector consumed by the ith sector.  Then theare the entries of a square matrix, called the exchange matrix A, each of whose columns sums to 1.  Let pi be the price of the output of the ith sector of the economy.  Since each sector is to break even, pi cannot be smaller than the value of the inputs consumed by the ith sector, or in other words,

.

But summing over i and using the fact that , we see that both sides must be equal.  In matrix language, that means that (I - A)p = 0, where p is the column vector of prices.  Thus p is an eigenvector of A for the eigenvalue 1, and the theory of stochastic matrices implies (assuming that A is irreducible, meaning that there is no proper subset E of the sectors of the economy such that outputs from E all stay inside E) that p is uniquely determined up to a scalar factor.  In other words, a closed irreducible linear economy has an essentially unique equilibrium state.  For example, if we have

 

A = [.3, .1, .05, .2; .1, .2, .3, .3; .3, .5, .2, .3; .3, .2, .45, .2]  

 

A =

    0.3000    0.1000    0.0500    0.2000

    0.1000    0.2000    0.3000    0.3000

    0.3000    0.5000    0.2000    0.3000

    0.3000    0.2000    0.4500    0.2000  

 

then as required,

 

sum(A)  

 

ans =

     1     1     1     1  

 

that is, all the columns sum to 1, and

 

[V, D] = eig(A); D(1, 1)

p = V(:, 1)  

 

ans =

    1.0000

p =

    0.2739

    0.4768

    0.6133

    0.5669  

 

shows that 1 is an eigenvalue of A with price eigenvector p as shown.

     Somewhat more realistic is the (static, linear) open Leontief model of an economy, which takes labor, consumption, etc., into account.  Let's illustrate with an example.  The following cell inputs an actual input-output transactions table for the economy of the United Kingdom in 1963.  (This table is taken from Input-Output Analysis and its Applications by R. O'Connor and E. W. Henry, Hafner Press, New York, 1975.)  Tables such as this one can be obtained from official government statistics.  The table T is a 10´9 matrix.  Units are millions of British pounds.  The rows represent respectively, agriculture, industry, services, total inter-industry, imports, sales by final buyers, indirect taxes, wages and profits, total primary inputs, and total inputs.  The columns represent, respectively, agriculture, industry, services, total inter-industry, consumption, capital formation, exports, total final demand, and output.  Thus outputs from each sector can be read off along a row, and inputs into a sector can be read off along a column.

 

T = [277, 444, 14, 735, 1123, 35, 51, 1209, 1944; ...

587, 11148, 1884, 13619, 8174, 4497, 3934, 16605, 30224; ...

236, 2915, 1572, 4723, 11657, 430, 1452, 13539, 18262; ...

1100, 14507, 3470, 19077, 20954, 4962, 5437, 31353, 50430; ...

133, 2844, 676, 3653, 1770, 250, 273, 2293, 5946; ...

3, 134, 42, 179, -90, -177, 88, -179, 0; ...

-246, 499, 442, 695, 2675, 100, 17, 2792, 3487; ...

954, 12240, 13632, 26826, 0, 0, 0, 0, 26826; ...

844, 15717, 14792, 31353, 4355, 173, 378, 4906, 36259; ...

1944, 30224, 18262, 50430, 25309, 5135, 5815, 36259, 86689];  

 

A few features of this matrix are apparent from the following:

 

T(4, :) - T(1, :) - T(2, :) - T(3, :)

T(9, :) - T(5, :) - T(6, :) - T(7, :) - T(8, :)

T(10, :) - T(4, :) - T(9, :)

T(10, 1:4) - T(1:4, 9)'  

 

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 9

     0     0

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 9

     0     0

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 9

     0     0

ans =

     0     0     0     0  

 

Thus the fourth row, which summarizes inter-industry inputs, is the sum of the first three rows; the 9th row, which summarizes "primary inputs," is the sum of rows 5 through 8; the 10th row, total inputs, is the sum of rows 4 and 9, and the first 4 entries of the last row agree with the first 4 entries of the last column (meaning that all output from the industrial sectors is accounted for). Also we have:

 

(T(:, 4) - T(:, 1) - T(:, 2) - T(:, 3))'

(T(:, 8) - T(:, 5) - T(:, 6) - T(:, 7))'

(T(:, 9) - T(:, 4) - T(:, 8))'  

 

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 10

     0     0     0

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 10

     0     0     0

ans =

  Columns 1 through 7

     0     0     0     0     0     0     0

  Columns 8 through 10

     0     0     0  

 

so the fourth column, representing total inter-industry output, is the sum of columns 1 through 3; the 8th column, representing total "final demand," is the sum of columns 5 through 7; and the 9th column, representing total output, is the sum of columns 4 and 8.  The matrix A of inter-industry technical coefficients is obtained by dividing the columns of T corresponding to industrial sectors (in our case there are three of these) by the corresponding total inputs.  Thus we have:

 

A = [T(:, 1)/T(10, 1), T(:, 2)/T(10, 2), T(:, 3)/T(10, 3)]  

 

A =

    0.1425    0.0147    0.0008

    0.3020    0.3688    0.1032

    0.1214    0.0964    0.0861

    0.5658    0.4800    0.1900

    0.0684    0.0941    0.0370

    0.0015    0.0044    0.0023

   -0.1265    0.0165    0.0242

    0.4907    0.4050    0.7465

    0.4342    0.5200    0.8100

    1.0000    1.0000    1.0000  

 

Here the square upper block (the first three rows) is most important, so we make the replacement

 

A = A(1:3, :)  

 

A =

    0.1425    0.0147    0.0008

    0.3020    0.3688    0.1032

    0.1214    0.0964    0.0861  

 

If the vector Y represents total final demand for the various industrial sectors, and the vector X represents total outputs for these sectors, then the fact that the last column of T is the sum of columns 4 (total inter-industry outputs) and 8 (total final demand) translates into the matrix equation X = AX + Y, or Y = (1 - A)X.  Let's check this:

 

Y = T(1:3, 8); X = T(1:3, 9); Y - (eye(3) - A)*X  

 

ans =

     0

     0

     0  

 

Now one can do various numerical experiments.  For example, what would be the effect on output of an increase of £10 billion (10000 in the units of our problem) in final demand for industrial output, with no corresponding increase in demand for services or for agricultural products?  Since the economy is assumed to be linear, the change DX in X is obtained by solving the linear equation DY = (1 - A)DX, and

 

deltaX = (eye(3) - A) \ [0; 10000; 0]  

 

deltaX =

  1.0e+004 *

    0.0280

    1.6265

    0.1754  

 

Thus agricultural output would increase by £280 million, industrial output would increase by £16.265 billion, and service output would increase by £1.754 billion.  We can illustrate the result of doing this for similar increases in demand for the other sectors with the following pie charts:

 

deltaX1 = (eye(3) - A) \ [10000; 0; 0];

deltaX2 = (eye(3) - A) \ [0; 0; 10000]; 

subplot(1, 3, 1), pie(deltaX1, {'Agr.', 'Ind.', 'Serv.'}),

subplot(1, 3, 2), pie(deltaX, {'Agr.', 'Ind.', 'Serv.'}),

title('Effect of increases in demand for each of the 3 sectors', 'FontSize',18),

subplot(1, 3, 3), pie(deltaX2, {'Agr.', 'Ind.', 'Serv.'});