Menu

Modelling the Sumerian economic system circa 2500BC to 2000BC

2018-11-18
2019-02-23
  • Richard A Lough

    Richard A Lough - 2018-11-18

    The Economy to be modelled is that of Ancient Sumer, as recorded in the Middle East, Euphrates Valley, circa 2500BC. The Economic System was in two parts : the Economy; and the Laws and Reguations that formed its Control System.
    The data available suggests episodic growth culminating in the Sumerian Empire (2100-2000BC) within a compeditive regional environment. This in turn suggests that the Control System was valid, efficient and effective.
    http://thesoundingline.com/map-of-the-day-the-ancient-history-of-the-middle-east-every-year/

     
    👍
    1
  • Richard A Lough

    Richard A Lough - 2018-11-18

    While I hope to duplicate the results using Minsky, here is the output from a simulation carried out using Octave with a run time of 40 years.

    Firms Loan: 1623.4064
    Bank Vault: 2680.9299
    Firms Deposit: 1572.3626
    Bank Capital: 64.2998
    Workers Deposit: 0.8440
    wage : 0.2471
    Capital = : 862.1676
    Alpha = : 3.3180
    Beta =: 1.2213
    Price Level (inflation): 0.1681
    Employment ratio : 0.7038

    The model employs an rl=20% and an rd=17.5% to deliver a Seneca curve that peaks at 33.3 years, and the figures above show the economy at 40 years.
    The model differers significantly from history in that there is no constraint on prices, or price inflation/deflation.

     
  • Richard A Lough

    Richard A Lough - 2018-11-28

    Note that this model was selected to give a Seneca curve with a timescale that matches the 30 year reset.

     
  • Richard A Lough

    Richard A Lough - 2018-11-28

    I'll post the Matlab file in a later post. In a separate post I classified this economic model as 2+ (A complex System). That is a simplification. The original system is unbounded, time variant, and non- linear, and may include transportation delays if you look deeply enough. With that in mind, and with an objective of a State-Space System in Canonical form, I begin by representing the fixed values chosen by Godley, and by Prof Keen as a single column matrix E.
    E(1) = 0.2 ; # (rl) Interest on loan =0.05
    E(2) = 0.175 ; # (rd) Interest on Deposit =0.01
    E(3) = 0.1 ; # (Ow) Omega
    E(4) = 0.27; # sigma (0.27)
    E(5) = 3 ; # (v) Output accelerator
    E(6) = 300 ; # (N) Population available to the Economy
    E(7) = 0.03; # (g) GDP growth rate - redundant value
    E(8) = 300; # (L) Population employed in the economy redundant value
    E(9) = 900; # (K) Wealth available to the economy redundant value
    E(10)= 1 ; # (II) Employment ratio "redundant value" = 1
    E(11)= 300; # (K/v) Current real Capital redundant value
    E(12)= 0.0295; # (Alpha) rate of change of productivity from Capital and Labour
    E(13)= 0.005; # (Beta) rate of change of Population available to the Economy
    E(14)= 0.009; #0.01; # (Delta) A bias toward negative growth
    E(15)= 0.038461538; # (Torw=1/26) rate of expenditure of Wages
    E(16)= 1.0; # (Torp) time lag for price changes
    E(17)= 1.0; # (Torb) time lag for bank
    E(18)= 0.0593; # (PIr) profit rate redundant value
    E(19)= 1.0; # (Minsky) Speculation occurring within the system redundant value
    E(20)= 1.0; # (Winf) wage inflation
    E(21)= 35.0; # (Tauc) decay time for capital invested productively
    E(22) =0.95;E(23)=0;E(24)=2;E(25)=-0.04; # constants for wage inflation Phillips function Ph(II,x,y,s,m)
    E(26)=0.04;E(27)=0.04;E(28)=2;E(29)=0; # constants for Investment Phillips function Inv(PIr,x1,y1,s1,m1)
    E(30)=0.03;E(31)=10;E(32)=100;E(33)=3; # constants for Firms timelag Phillips function Taurl(PIr,x2,y2,s2,m2)
    E(34)=0.03;E(35)=2;E(36)=-50;E(37)=0.5; # constants for Bank timelag Phillips function Taulc(PIr,x3,y3,s3,m3)
    E(38)=0.15;E(39)=0.33;E(40)=5;E(41)=0.50; # constants for wage timelag Phillips function Torpw( ,x4,y4,s4,m4)

    These elements will, broadly speaking, be mapped to the A matrix in the equation:
    Xdot = AX + BU
    all the above matricies are time functions.
    E(7) Capital is time varying, but is included here for simplicity.
    E(14) is also included in this model as a constant value but is time varying.

     
  • Richard A Lough

    Richard A Lough - 2018-11-28

    Next the E values are used to calculate the process variables:
    Yr = X(7) / E(5);
    L = Yr / X(8);
    Ph = (E(23)-E(25))exp((X(11)-E(22)) E(24)/(E(23)-E(25))) +E(25); # Rate of change of wages
    PIr= (Yr * X(:, 10) + E(2) * X(:, 3) - X(:, 6) * L - E(1) * X(:, 1)) / (E(5) * X(:, 10) * Yr);
    Inv = (E(27)-E(29)) exp((PIr-E(26)) E(28) /(E(27)-E(29))) +E(29);
    E(7) = Inv / E(5) - E(14);
    Taurl = (E(31)-E(33)) exp((PIr-E(30)) E(32) /(E(31)-E(33))) +E(33); # Firms time lag
    Taulc = (E(35)-E(37)) exp((PIr-E(34)) E(36) /(E(35)-E(37))) +E(37); # Bank (Capital or Vault) time lag
    Torpw = 0.9; wages lag prices

    This simplifies the calculation of the various elements in the A Matrix

     
  • Richard A Lough

    Richard A Lough - 2018-11-28

    To get an equivalent representation of Xdot(t) = AX(t) + BU(t) we have :
    Xdot = [(-X(1) / Taurl + X(2) / Taulc + X(10) * Yr * Inv * Minsky ); # Firms Loan
    ( X(1) / Taurl - X(2) / Taulc); # Bank Vault
    (-X(1) * (E(1)+1/Taurl) + X(2) / Taulc + E(2) * X(3) + X(4) / E(17) +
    X(5) / E(15) - X(6) * L + X(10) * Yr * Inv * Minsky ); # Firms Deposit
    (E(1) * X(1) - E(2) * X(3) - X(4) / E(17) - E(2) * X(5)); # Bank Capital
    (+(E(2) - 1 / E(15)) * X(5) + X(6) * L); # Workers Deposit
    ((Ph + E(3) * (E(7) -(E(12)+E(13))) + (X(6) / (X(10) * X(8) * (1-E(4))) - 1)
    *Torpw) * X(6)); # Wages
    (X(7) * E(7) - X(7)/E(21)); # Capital
    (E(12) * X(8)); # Rate of labour productivity growth
    (E(13) * X(9)); # Rate of population growth
    ((X(6) / (X(8) * (1-E(4))) - X(10))/E(16)); # change of Price Level (inflation)
    (X(11) * (E(7) - (E(12) + E(13)))); # change of employment Ld(t)

            Note that the terms " X(10) * Yr * Inv * Minsky" are effctively an external input to the system, approximating to the term BU(t), but in a highly non-linear time-varying form. 
            The matalb version of the System is given below
    
     
  • Richard A Lough

    Richard A Lough - 2018-11-28

    The easiest practical implementation of the above is to arrange to step the calculations through the process at fractions of a year. This generates some errors in the process, eg 40 years of 3% increases can appear as 3.318 whereas an exact calculation is 3.262.
    Whether that's a good enough approximation depends on the question asked.

     
  • Richard A Lough

    Richard A Lough - 2018-12-06

    The model Sumer01g.mky has really only shown that a simple system can unexpectedly collapse. I would prefer that the model continues to resemble a system operating with fiat money, even though that really isn't the way Sumer runs. I've made some changes to improve the model - rd (E2) the interest paid on deposits is now set to zero. Can you imagine trying to deposit two sacks of barley (money) at your bank and negotiating a rate of interest?
    To keep working with a 30 year lifetime, the population growth (beta, E13) is set to zero, the capital decay time (Torc, E21) is increased to 100, Minsky is reduced slightly to 1.0. Another factor related to investment, E14, is reduced to zero. Finally, the rate of productivity increase is reduced to 0.0155.
    This is an interim model, more needs to be changed.

     
  • Richard A Lough

    Richard A Lough - 2018-12-11

    Does debt that is impossible to repay have any validity?
    Elephant #1
    In ancient Sumer, grain is wealth, and silver is a unit of account. It follows that in a model year, to maintain a steady state, consumption exactly equals grain production. A narrative might run something like this.... you are a slave on December 31st, and January 1st is the day of the jubilee. You gain your freedom, and your land is returned to you. But you must borrow 100 units of grain at interest to plant your fields and to feed yourself until the harvest. In this simple model, the slave is the only consumer, and thus must produce exactly 100 units of grain to maintian the steady state.
    This means the interest, 20 units of grain, is unpaid, and indeed it is impossible that these debts will ever be extinguished. Or have I misunderstood something?
    Is a 30-year forgivness of debt a logical outcome and a part of the original contract?
    To move the model on a little, while these questions are unanswered, alpha and beta need to change.
    The earlier version of the model included significant productivity gains, and this tended to make the model less stable. The latest revision sets alpha to zero, and beta, the population growth, to 0.016. This is well in excess of a growth rate likely in these early civilisations, even allowing for plague, famine, war, and pestilence.

     
    • Richard A Lough

      Richard A Lough - 2018-12-14

      It is too easy to accidentally add a link where there isn't supposed to be one.
      I tried setting values of beta (population growth rates) similar to those that might be expected. These values 0.0008 - 0.0013 moved the model into regions of BIBO instability. I expect that something is very wrong.

       
      • Richard A Lough

        Richard A Lough - 2018-12-15

        I checked the model against the Godley Table, hoping there was a mistake, because that way there would be a simple fix.
        With a complex model, expect the unexpected, I guess. More to fix, obviously.

         
  • Kresimir

    Kresimir - 2018-12-12

    It seems to me that the way you have wired model is not prettiest one. I usually copy variables to avoid too much wires. You could also give names to chart title and x and y label if you right click with mouse on chart and then select options.

     
    • Richard A Lough

      Richard A Lough - 2018-12-13

      Interesting comment, on many levels.
      I am focussed on making sure that the content of the model shows the Sumerian economy in some sort of logical construct, and I need to do more on that.
      I take your comment to mean that my graphical representation thus far isn't easily understood, even by someone familiar with the technique. I can do a bit better on that, but my options are limited.
      The chart really isn't very informative, it just looks prettier than the rest of the data.

       
  • Kresimir

    Kresimir - 2018-12-13

    Yes, I meant that way.

     
  • Richard A Lough

    Richard A Lough - 2019-02-13

    I updated and repaired most of the constants and varable descriptions. I added a title and time axis to the graph. And I added a (this) note.
    I have a couple of reasons for not prettifying the model.
    First, to understand the model, users will have to get some hands on experience
    and in my opinion rearranging things would be a good start.
    Second, until I understand some things better, I'll do my development work in State Space for these models. Minsky does not scale well IMHO, and facilities such as sine wave inputs are unavailable in the progam I run . Hence, until I see a
    reason to prettify things, in an updated model, this is it.

    At present I am working my way through Professor Hudson's book
    "and forgive them their debts" that in part covers this time and this system.
    Thus far I have not read of the sense of fragility that this model exhibits.
    Mainstream literature suggests that left to itself, an economic system will
    self stabilise. That suggestion is not supported by this model.
    Anything resembling bad news results in the swift collapse of the system.

    As a final comment. When I began this, I was aware that these regimes literally
    carved their economic laws into stone. Later the relevant parts covering
    interest rates were removed by persons unknown. I assumed the removal was
    done by creditors. I now doubt this, but it is curious that a revised version
    of the law seems absent from history.

    So, until I have an model of this economic system that is self-stabilising in some rational, coherent way also consistent with the area's history, I cannot do much
    more.

     
    • High Performance Coder

      On Wed, Feb 13, 2019 at 02:31:29PM -0000, Richard A Lough wrote:

      Second, until I understand some things better, I'll do my development work in
      State Space for these models. Minsky does not scale well IMHO, and facilities
      such as sine wave inputs are unavailable in the progam I run . Hence, until I
      see a
      reason to prettify things, in an updated model, this is it.

      Hi Richard, I'd be interested to hear what the pain points were that
      you experienced that caused you to comment that Minsky doesn't scale
      well. This will help focus future development for Minsky, as we'd like
      for Minsky to be scalable to serious modelling efforts.

      --


      Dr Russell Standish Phone 0425 253119 (mobile)
      Principal, High Performance Coders
      Visiting Senior Research Fellow hpcoder@hpcoders.com.au
      Economics, Kingston University http://www.hpcoders.com.au


       
  • Richard A Lough

    Richard A Lough - 2019-02-13

    Earlier version(s) of Sumer01i.mky had a mistake - an extra link in the calculation of Pir. I'm going to have to revisit some recent unpublished work.

     
  • Kresimir

    Kresimir - 2019-02-14

    I experimented little with your file to see if it could look little different. I get similar chart like you but error at year 57 : Invalid: exp (40060.323643) invalid arithmetic operation detected. I get that error in Windows 10 and on Ubuntu 18.04. With your file summer 01i i get segmentation fault on Ubuntu 18.04 at year 117 with beta 2.8.13.
    Maybe my version of your file could be useful for you. You can check on equtation tab if i had make some mistake.

     
    • High Performance Coder

      On Thu, Feb 14, 2019 at 11:04:45PM -0000, Kresimir wrote:

      I experimented little with your file to see if it could look little different.
      I get similar chart like you but error at year 57 : Invalid: exp (40060.323643)
      invalid arithmetic operation detected. I get that error in Windows 10 and on
      Ubuntu 18.04. With your file summer 01i i get segmentation fault on Ubuntu
      18.04 at year 117 with beta 2.8.13.
      Maybe my version of your file could be useful for you. You can check on
      equtation tab if i had make some mistake.

      Hi Kresimir, could you please file a bug report for the segmentation fault.

      Invalid arithmetic operation exceptions aren't bugs, of course, but
      rather properties of the numerical simulation.

      Cheers

      --


      Dr Russell Standish Phone 0425 253119 (mobile)
      Principal, High Performance Coders
      Visiting Senior Research Fellow hpcoder@hpcoders.com.au
      Economics, Kingston University http://www.hpcoders.com.au


       
    • Richard A Lough

      Richard A Lough - 2019-02-16

      Thanks Kresimir - I'll have a look at your file.
      I'm still thinking about the Sumer Economic system. I've met my first goal for the model, the creation of a natural Seneca curve. What I now need to do is to model the control mechanism they could have used. This gets complicated.
      Ever built a crystal radio? Turned the gain up until it started to whistle? Oscillate?
      An oscillator has a loop gain of unity and phase change of 180 degrees. A stable linear system has measurable gain and phase margins, but with this system there is no repeating pattern thus far, so to me, it's kinda like the three body problem where there are no solutions to the equations.
      My latest approach is the biblical seven fat years followed by seven lean years.
      The seven lean years simulations I've tried result in a rapid crash.
      I'm trying to think through what the people in charge back then actually did to restore everything to it's original condition. I'm now thinking that the 30 year
      Jubilee was an exception and how I can work with that. (i.e. if the System is undisturbed for 30 years, it doesn't return to the original data points after the Jubilee)

       
      • Kresimir

        Kresimir - 2019-02-16

        I would rather use parameters instead of constants in your model. Then you can use one parameter, with some value added, to it on more places on canvas for constants that are repeating.
        Other users, I think, and me avoid wire to cross other wire because then model looks like gordian knot.
        Accidentaly, I did make a simple radio when I was in elementary school but it didn't worked.

         
      • Richard A Lough

        Richard A Lough - 2019-02-23

        For comparison purposes the Roman population under Julius Caesar grew by 1.3 percent per year, and by 0.7 percent per year under Imperial Rome (my figures, approximate).
        From recent reading, the economy as modelled, approximates to that under this Sargon dude, circa 2300BC. A Palace Coup may have brought him to power, and he busies himself expanding his Empire. The debts don't get cancelled, as such, the money is needed for the army and bureacracy, but there's a lot of death, destruction, and wasteage that has much the same effect.
        This may not invalidate the model, but it does raise some questions.

         
  • Richard A Lough

    Richard A Lough - 2019-02-16

    RE pain points - I'll add that to the thread - Variations on the Minsky theme.

     

    Last edit: Richard A Lough 2019-02-16

Log in to post a comment.