Hello again, I'm going through your code and taking some notes so I am getting back to you in sections. I plan on putting everything in one post, but I thought I could comment on this particular point separately in the meantime. Also, apologies if I come across as if I am speaking down you. I recognize you are acquainted with these ideas and I'm trying to be clear to avoid any confusion for both of us and anyone else reading these comments!
The way that you calculated labor values here can work, as long as you are multiplying the labor coefficients across columns in a row when doing the element-wise multiplication. If done correctly, you are correct in that you are essentially calculating
v = v A + l = l (I - A)^-1^
which is the total labor required to produce a unit net product.
I have an example here to make my point:
-
Here is my labor coefficient vector, l
-
Define
Leon
as the Leontief inverse matrix (I-A)^-1^
MatLab trips me up with the \
operator, so I just take the inverse explicitly and define it as Leon
to avoid any confusion.
This will be a little different form your approach where you are taking Leon
and then matrix-multiplying by unit vectors (a matrix of unit vectors i.e. I) to perform the sum. Here, I make the sum more explicit to step through the calculation.
- Calculate the total labor it takes to produce a unit of net output, i.e. a (standard) labor-value.
Since I am not familiar with MatLab I am not claiming you are doing this the correct or incorrect way - you can determine this since you know MatLab better than I do - but I wanted to show you a possible wrong way to calculate v depending on how you do the element-wise multiplication.
Incorrect Way
If the labor coefficient value l~i~ is multiplied to the values in the i-th column of the Leon
matrix and you sum the values of each column (sum across rows for column i) as shown below:
Then you will be getting a vector that doesn't correctly trace the labor inputs of each sector.
You would be accidentally calculating
(I - A)^-1^ l
i.e. you would be defining v~i~ as Leon
~i,1~ l~1~ + Leon
~i,2~ l~2~ + ...
instead of correctly calculating it as
Correct Way
l (I - A)^-1^
i.e. v~i~ = l~1~Leon
~1,i~ + l~2~ Leon
~2,i~+ ...
The order of the subscripts helps keep this straight, since the embodied labor in net product i is the sum of labor going from sector 1 to sector i plus labor going from sector 2 to sector i plus ..., etc.
As long as your method is doing the element-wise multiplication correctly then it will work. Here are the examples I have continued:
Here, as long as the first element of l is being multiplied to the first row of Leon
, and the second element of l by the second row of Leon
and etc. then when you sum the columns
you get the correct calculation of the labor value, which the above shows.
My apologies for the earlier misunderstanding. I see that you are not aggregating
Can you explain how you are calculating the wages paid out to workers? In words you state:
And in the code you have:
` %Industry to consumer sales (assuming consumers save/lose nothing)
I have a couple of questions about this, but I still start with the calculation of
Y
(the answer may clarify my remaining questions).You start with
S = o.*P; %Sales to consumers
where you are performing an element-wise multiplication of a n x 1 vector of net-products by a n xmag
array of prices.Working under the assumption that the net product is the net consumption of workers, i.e. n = c (also, don’t worry about using a standard notation - there isn’t really much of one. I am using a mix of Ian Wright’s, Pasinetti’s and my own
) the line
S = o.*P;
is calculating the below, correct?Each of these elements, s~i~ = p~i~ c~i~ is the part of sector i’s revenue which it receives from its sales to consumers. (It isn’t the total revenue of the sector, though. That is given earlier by R~i~ = p~i~ q~i~).
Then you are summing along each column (you mentioned that MatLab’s
sum
function sum’s matrices down the column). For a single instantiation of a price vector, this is results inY = p~1~c~1~ + p~2~c~2~ + … = p c
which gives us a global wage bill, i.e. the total expenditure of the working class for the economy. This is an aggregated quantity over the entire economy.
Y
is a row-vector, though, in your code since you are testing multiple prices -mag
of them in fact. if I have the correct understanding, yourY
vector isY = [Y^(1)^ Y^(2)^ … Y^(mag)^ ]
where I am using superscripts to designate distinct price instantiations.
But I think I must be misunderstanding something, because if the above is true, then I am not certain how the line
W = L.*Y; %Wages paid out vector by industry
Works out because you couldn’t element-wise multiply a n x 1 array
L
with a 1 xmag
arrayY
.My understanding is that your
L
vector is a n x 1 array of normalized labor-times for each sector.L = O.*l;
L = L/sum(L); %Normalising gross labor use
So I need your help in understanding the calculation here.
I have more questions, but I will save them for later. Thanks for taking the time to discuss this!