The Behave Upon Of Trouble Solid Expectations Inwards Sfc Models
The importance of household expectations is 1 of the telephone substitution differences betwixt mainstream macroeconomic models too those inwards the stock-flow consistent (SFC) tradition. Since I practise non squall upwards mainstream macroeconomic models are useful, I volition non pass my fourth dimension comparing the 2 competing approaches. Instead, I volition merely speak over how household expectations tin transportation away live on handled inside SFC models.
One thing to proceed inwards hear is that this give-and-take does non imply that the to a greater extent than full general disputation that expectations practise non thing at all inside SFC models. The role of expectations is extremely of import when nosotros plough to to a greater extent than realistic models of the concern sector. The trends inwards fixed investment are a major cyclical driver, too they are driven yesteryear expectations. This is non piece of cake to model; too it should live on noted that concern sector expectations are typically ignored inside "workhorse" mainstream macroeconomic models.
Household expectations seem inwards Model SIMEX, described inwards Chapter three of Godley too Lavoie's Monetary Economics. The advert reflects the fact that this is Model SIM (the simplest SFC model) which is augmented amongst the upshot of expectations upon household consumption.
(I direct maintain discussed Model SIM inwards before article; for example, this article which discusses how to uncovering the solution of the model equations. The simplicity of the model is partly the final result of it handling of the concern sector. Within these models, the concern sector reacts amongst perfect foresight to the actions of the household too regime sector. Having to a greater extent than realistic concern sector behavior would require adding to a greater extent than model complexity, which is done subsequently inwards Monetary Economics. I volition live on adding the powerfulness to back upwards this complexity inside the Python sfc_models parcel over the coming months.)
The consumption component subdivision used inside model SIMEX is (using the sfc_models variable naming):
where: DEM_GOOD = need for goods (i.e., consumption), EXP_AfterTax is the expected after-tax income, LAG_F = the previous period's fiscal property holdings (denoted F inside sfc_models), spell AlphaIncome, AlphaFin are the propensity to eat out of income too wealth respectively. This is an "old Keynesian" consumption function, where it is driven yesteryear the electrical flow grade of income too fiscal property holdings.
By comparison, inside Model SIM, the equation is:
That is, the solely divergence is that Model SIM uses actual (realised) after-tax income, rather than expectations. Since after-tax income is determined yesteryear the simultaneous solution of all of the model equations inside the period, Model SIM implies that the household has the powerfulness to calculate just the electrical flow menses model solution (and thus income). This is referred to equally "perfect foresight," although it does non technically imply an powerfulness to predict futurity outcomes.
Monetary Economics discusses 2 differing ways inwards which the expectations variable is determined. I volition at 1 time speak over the get-go variant, which is labelled "SIMEX1" inside the sfc_models package. In SIMEX1, the expected after-tax income is the previous period's realised after-tax income, or
(Within the before equations, the dependence upon the fourth dimension axis ("(k)") is suppressed, next the
equation convention used inside the Python package. As discussed below, this equation is solely used for k>1, k=0 and k=1 are special cases. The variable k is used equally the fourth dimension measuring variable, as t is allowed to vary. For example, if nosotros wanted quarterly information starting inwards 1950, nosotros would laid t=1950+0.25*k. In particular, this way that nosotros ever start at k=0 when discussing simulation results.)
We volition at 1 time aspect at representative economical trajectory. The model starts off inwards a set down of null activity, too and then the regime starts activity moving yesteryear starting a programme of constant regime purchases ("G") of $20 per period. The somebody sector responds, too aggregate output ("Y") converges towards the steady set down value of $100. (This way that the multiplier on G is 5; the simplicity of the model implies that regime spending is the variable that determines the steady set down output level.)
We tin transportation away at 1 time examine the expected household after-tax income variable.
As tin transportation away live on seen inwards the chart, the expected income is merely the previous period's income. At first, in that location is a large divergence (forecast error), but the fault decreases equally the income converges towards its steady set down value. (Please banknote that behavior at the get-go fourth dimension menses -- k=0 -- is somewhat unusual; this is discussed below.)
The figure higher upwards shows the upshot of using expected income rather than actual income inwards a model. We aspect at model SIM too SIMEX amongst the same behavioural parameters, too apply the same exogenous (external) input (government spending). In the before periods, the household sector reacts to a greater extent than chop-chop to the rising inwards income, too so aggregate output rises to a greater extent than quickly. As 1 mightiness expect, the utilisation of to a greater extent than accurate expectations results inwards a quicker reply to policy changes. It should live on noted that both models converge to the same steady set down value. The argue why in that location is a crossover of the 2 fourth dimension serial merely about fourth dimension menses seven is explained farther below.
The counterpart to the immature lady inwards income expectations inwards spending is that the household sector's fiscal property holdings evolve inwards a dissimilar fashion. Financial assets deed equally a cushion for errors inwards forecasting income too expenditures, a indicate which is emphasised inwards post-Keynesian writings.
The nautical chart higher upwards shows the evolution of fiscal property holdings yesteryear the household sector. Since the household sector is consistently under-estimating its income inwards Model SIMEX, it consumes less than inwards model SIM inwards the early on fourth dimension periods. As a result, it ends upwards greater fiscal property holdings. Since spending also depends upon the stock of fiscal property holdings, the consumption flow that is related to wealth is larger inwards SIMEX. By fourth dimension menses 8, this larger consumption flow out of assets way that output inwards SIMEX ends upwards beingness higher than inwards SIM. This is why in that location is the crossover inwards the figure that compares output Y betwixt the models.
The role of fiscal assets is to deed equally a stabiliser inside the model. Even amongst missed income expectations, the behavior of the household sector even so converges to the same steady set down levels. The importance of such stock variables is the argue why these models are referred to equally stock-flow consistent models; the advert does non merely imply that the accounting is done correctly.
Since the model converges towards the same steady set down regardless of missed household expectations, nosotros tin transportation away run across that these expectations are non extremely of import for characterising how the model behaves. Admittedly, the reply to the policy alter is slower inwards model SIMEX than model SIM, but at the same time, the divergence is much smaller than whatever errors nosotros would larn trying to tally model output to existent Blue Planet data.
There is a terminal technical indicate regarding the simulation results shown above. Model SIMEX in department 3.7.2 of Monetary Economics starts off amongst a special instance for expected income. In menses 1 of the book's simulations, the expected household income is non equal to the previous period's income (which was $0), rather it took into concern human relationship the surge inwards regime spending G. For menses 1, the household assumes that full output is equal to G, and so its pre-tax income is equal to $20 (and the after-tax income is $16). It is solely inwards subsequently periods that the expected income is equal to the realised after-tax income.
This special instance is faux inside Python code yesteryear forcing the realised after-tax income variable (HH_AfterTax) to live on $16 at k=0. This is why the after-tax income is non-zero inwards the get-go menses inwards the figure above. (I misinterpreted explanation for this special instance when I read Monetary Economics; I would similar to give thank you lot Marc Lavoie for patiently pointing out the passage that explains the special case.)
This workaround creates an inconsistency at k=0, but that is non viewed equally problematic inside the sfc_models framework: in that location is no endeavor to solve the organisation of equations at k=0, and so it is sometimes preferable to drib that indicate from organisation output.
Code The Python code that generates the charts inwards this postal service is given yesteryear (requires the latest version of the sfc_models package):
As tin transportation away live on seen inwards the code, the meat of the model description is embedded inside model builder objects that are institute inwards the sfc_models.gl_book.chapter3 module. This is a characteristic that allows the user to chop-chop reconstruct the models inside Monetary Economics. The origin code that generates the underlying models is available for exam inside the library. Furthermore, the model builder object gives the expected output, taken from tables inwards Monetary Economics. These expected output are used inside unit of measurement tests that are used to validate the output of the sfc_models package. If someone makes a alter to the parcel code that causes the actual output to deviate from the expected output, the unit of measurement tests volition fail. This volition developers to identity too whorl dorsum changes that movement the parcel to generate wrong output.
With these programming workflow problems out of the way, it is easier to add together novel economical functionality. This analysis of model SIMEX was done really easily; the solely occupation I had was the final result of my misreading the text regarding the setting of initial conditions.
Since I am using Monetary Economics to calibrate sfc_models, I at 1 time request to create upwards one's hear which chapter's models to tackle next. I could either direct maintain on models amongst bonds (Chapter 5), or opened upwards economic scheme models (Chapter 6). My feeling is that the opened upwards economic scheme model is to a greater extent than interesting.
Country: Code= "C1" C1
============================================================
[GOV] Government. FullCode = "GOV"
------------------------------------------------------------
DEM_GOOD = EXOGENOUS [0.,] + [20.,] * 105
LAG_F = F (k -1 )
T = TF_T
F = LAG_F+T-DEM_GOOD
FISC_BAL = T -DEM_GOOD
[HH] Household. FullCode = "HH"
------------------------------------------------------------
DEM_GOOD = AlphaIncome *EXP_AfterTax +AlphaFin *LAG_F
PreTax = SUP_LAB
LAG_F = F (k -1 )
LAG_AfterTax = AfterTax (k -1 )
EXP_AfterTax = LAG_AfterTax
AlphaFin = 0.4000
AlphaIncome = 0.6000
F = LAG_F-T+SUP_LAB-DEM_GOOD
T = TF_TaxRate * HH_PreTax
AfterTax = PreTax -T
SUP_LAB = BUS_DEM_LAB
[BUS] Business Sector. FullCode = "BUS"
------------------------------------------------------------
PROF =
LAG_F = F (k -1 )
F = LAG_F-DEM_LAB+SUP_GOOD
SUP_GOOD = GOV_DEM_GOOD+ HH_DEM_GOOD
DEM_LAB = GOOD_SUP_GOOD
[TF] TaxFlow. FullCode = "TF"
------------------------------------------------------------
TaxRate = 0.2000
T = TF_TaxRate * HH_PreTax
[LAB] Labour market. FullCode = "LAB"
------------------------------------------------------------
DEM_LAB = BUS_DEM_LAB
SUP_LAB = DEM_LAB
[GOOD] Goods market. FullCode = "GOOD"
------------------------------------------------------------
DEM_GOOD = GOV_DEM_GOOD+ HH_DEM_GOOD
SUP_GOOD = DEM_GOOD
(c) Brian Romanchuk 2017
One thing to proceed inwards hear is that this give-and-take does non imply that the to a greater extent than full general disputation that expectations practise non thing at all inside SFC models. The role of expectations is extremely of import when nosotros plough to to a greater extent than realistic models of the concern sector. The trends inwards fixed investment are a major cyclical driver, too they are driven yesteryear expectations. This is non piece of cake to model; too it should live on noted that concern sector expectations are typically ignored inside "workhorse" mainstream macroeconomic models.
Household expectations seem inwards Model SIMEX, described inwards Chapter three of Godley too Lavoie's Monetary Economics. The advert reflects the fact that this is Model SIM (the simplest SFC model) which is augmented amongst the upshot of expectations upon household consumption.
(I direct maintain discussed Model SIM inwards before article; for example, this article which discusses how to uncovering the solution of the model equations. The simplicity of the model is partly the final result of it handling of the concern sector. Within these models, the concern sector reacts amongst perfect foresight to the actions of the household too regime sector. Having to a greater extent than realistic concern sector behavior would require adding to a greater extent than model complexity, which is done subsequently inwards Monetary Economics. I volition live on adding the powerfulness to back upwards this complexity inside the Python sfc_models parcel over the coming months.)
The consumption component subdivision used inside model SIMEX is (using the sfc_models variable naming):
DEM_GOOD = AlphaIncome * EXP_AfterTax + AlphaFin * LAG_F,
where: DEM_GOOD = need for goods (i.e., consumption), EXP_AfterTax is the expected after-tax income, LAG_F = the previous period's fiscal property holdings (denoted F inside sfc_models), spell AlphaIncome, AlphaFin are the propensity to eat out of income too wealth respectively. This is an "old Keynesian" consumption function, where it is driven yesteryear the electrical flow grade of income too fiscal property holdings.
By comparison, inside Model SIM, the equation is:
DEM_GOOD = AlphaIncome * AfterTax + AlphaFin * LAG_F.
That is, the solely divergence is that Model SIM uses actual (realised) after-tax income, rather than expectations. Since after-tax income is determined yesteryear the simultaneous solution of all of the model equations inside the period, Model SIM implies that the household has the powerfulness to calculate just the electrical flow menses model solution (and thus income). This is referred to equally "perfect foresight," although it does non technically imply an powerfulness to predict futurity outcomes.
Monetary Economics discusses 2 differing ways inwards which the expectations variable is determined. I volition at 1 time speak over the get-go variant, which is labelled "SIMEX1" inside the sfc_models package. In SIMEX1, the expected after-tax income is the previous period's realised after-tax income, or
EXP_AfterTax(k) = AfterTax(k-1).
(Within the before equations, the dependence upon the fourth dimension axis ("(k)") is suppressed, next the
equation convention used inside the Python package. As discussed below, this equation is solely used for k>1, k=0 and k=1 are special cases. The variable k is used equally the fourth dimension measuring variable, as t is allowed to vary. For example, if nosotros wanted quarterly information starting inwards 1950, nosotros would laid t=1950+0.25*k. In particular, this way that nosotros ever start at k=0 when discussing simulation results.)
We volition at 1 time aspect at representative economical trajectory. The model starts off inwards a set down of null activity, too and then the regime starts activity moving yesteryear starting a programme of constant regime purchases ("G") of $20 per period. The somebody sector responds, too aggregate output ("Y") converges towards the steady set down value of $100. (This way that the multiplier on G is 5; the simplicity of the model implies that regime spending is the variable that determines the steady set down output level.)
We tin transportation away at 1 time examine the expected household after-tax income variable.
As tin transportation away live on seen inwards the chart, the expected income is merely the previous period's income. At first, in that location is a large divergence (forecast error), but the fault decreases equally the income converges towards its steady set down value. (Please banknote that behavior at the get-go fourth dimension menses -- k=0 -- is somewhat unusual; this is discussed below.)
The figure higher upwards shows the upshot of using expected income rather than actual income inwards a model. We aspect at model SIM too SIMEX amongst the same behavioural parameters, too apply the same exogenous (external) input (government spending). In the before periods, the household sector reacts to a greater extent than chop-chop to the rising inwards income, too so aggregate output rises to a greater extent than quickly. As 1 mightiness expect, the utilisation of to a greater extent than accurate expectations results inwards a quicker reply to policy changes. It should live on noted that both models converge to the same steady set down value. The argue why in that location is a crossover of the 2 fourth dimension serial merely about fourth dimension menses seven is explained farther below.
The counterpart to the immature lady inwards income expectations inwards spending is that the household sector's fiscal property holdings evolve inwards a dissimilar fashion. Financial assets deed equally a cushion for errors inwards forecasting income too expenditures, a indicate which is emphasised inwards post-Keynesian writings.
The nautical chart higher upwards shows the evolution of fiscal property holdings yesteryear the household sector. Since the household sector is consistently under-estimating its income inwards Model SIMEX, it consumes less than inwards model SIM inwards the early on fourth dimension periods. As a result, it ends upwards greater fiscal property holdings. Since spending also depends upon the stock of fiscal property holdings, the consumption flow that is related to wealth is larger inwards SIMEX. By fourth dimension menses 8, this larger consumption flow out of assets way that output inwards SIMEX ends upwards beingness higher than inwards SIM. This is why in that location is the crossover inwards the figure that compares output Y betwixt the models.
The role of fiscal assets is to deed equally a stabiliser inside the model. Even amongst missed income expectations, the behavior of the household sector even so converges to the same steady set down levels. The importance of such stock variables is the argue why these models are referred to equally stock-flow consistent models; the advert does non merely imply that the accounting is done correctly.
Since the model converges towards the same steady set down regardless of missed household expectations, nosotros tin transportation away run across that these expectations are non extremely of import for characterising how the model behaves. Admittedly, the reply to the policy alter is slower inwards model SIMEX than model SIM, but at the same time, the divergence is much smaller than whatever errors nosotros would larn trying to tally model output to existent Blue Planet data.
There is a terminal technical indicate regarding the simulation results shown above. Model SIMEX in department 3.7.2 of Monetary Economics starts off amongst a special instance for expected income. In menses 1 of the book's simulations, the expected household income is non equal to the previous period's income (which was $0), rather it took into concern human relationship the surge inwards regime spending G. For menses 1, the household assumes that full output is equal to G, and so its pre-tax income is equal to $20 (and the after-tax income is $16). It is solely inwards subsequently periods that the expected income is equal to the realised after-tax income.
This special instance is faux inside Python code yesteryear forcing the realised after-tax income variable (HH_AfterTax) to live on $16 at k=0. This is why the after-tax income is non-zero inwards the get-go menses inwards the figure above. (I misinterpreted explanation for this special instance when I read Monetary Economics; I would similar to give thank you lot Marc Lavoie for patiently pointing out the passage that explains the special case.)
This workaround creates an inconsistency at k=0, but that is non viewed equally problematic inside the sfc_models framework: in that location is no endeavor to solve the organisation of equations at k=0, and so it is sometimes preferable to drib that indicate from organisation output.
Code The Python code that generates the charts inwards this postal service is given yesteryear (requires the latest version of the sfc_models package):
As tin transportation away live on seen inwards the code, the meat of the model description is embedded inside model builder objects that are institute inwards the sfc_models.gl_book.chapter3 module. This is a characteristic that allows the user to chop-chop reconstruct the models inside Monetary Economics. The origin code that generates the underlying models is available for exam inside the library. Furthermore, the model builder object gives the expected output, taken from tables inwards Monetary Economics. These expected output are used inside unit of measurement tests that are used to validate the output of the sfc_models package. If someone makes a alter to the parcel code that causes the actual output to deviate from the expected output, the unit of measurement tests volition fail. This volition developers to identity too whorl dorsum changes that movement the parcel to generate wrong output.
Version 0.3.0 of sfc_models Released
I direct maintain released version 0.3.0 of the sfc_models package. The major developments inwards 0.3 versus 0.2 is a code base of operations cleanup. The previously eccentric equation solution technique has been replaced amongst something to a greater extent than sensible, which greatly aids my powerfulness to build tests to ensure the coherence of the system. There has also been a proficient amount of code refactoring, too the organisation for logging output is easier to piece of work with.With these programming workflow problems out of the way, it is easier to add together novel economical functionality. This analysis of model SIMEX was done really easily; the solely occupation I had was the final result of my misreading the text regarding the setting of initial conditions.
Since I am using Monetary Economics to calibrate sfc_models, I at 1 time request to create upwards one's hear which chapter's models to tackle next. I could either direct maintain on models amongst bonds (Chapter 5), or opened upwards economic scheme models (Chapter 6). My feeling is that the opened upwards economic scheme model is to a greater extent than interesting.
Appendix - Sector Equations
The next are the sector equations created yesteryear sfc_models. Many of these are redundant, too larn pruned from the organisation before solution is attempted. (If they are not, in that location tin transportation away live on convergence issues.)Country: Code= "C1" C1
============================================================
[GOV] Government. FullCode = "GOV"
------------------------------------------------------------
DEM_GOOD = EXOGENOUS [0.,] + [20.,] * 105
LAG_F = F (k -1 )
T = TF_T
F = LAG_F+T-DEM_GOOD
FISC_BAL = T -DEM_GOOD
[HH] Household. FullCode = "HH"
------------------------------------------------------------
DEM_GOOD = AlphaIncome *EXP_AfterTax +AlphaFin *LAG_F
PreTax = SUP_LAB
LAG_F = F (k -1 )
LAG_AfterTax = AfterTax (k -1 )
EXP_AfterTax = LAG_AfterTax
AlphaFin = 0.4000
AlphaIncome = 0.6000
F = LAG_F-T+SUP_LAB-DEM_GOOD
T = TF_TaxRate * HH_PreTax
AfterTax = PreTax -T
SUP_LAB = BUS_DEM_LAB
[BUS] Business Sector. FullCode = "BUS"
------------------------------------------------------------
PROF =
LAG_F = F (k -1 )
F = LAG_F-DEM_LAB+SUP_GOOD
SUP_GOOD = GOV_DEM_GOOD+ HH_DEM_GOOD
DEM_LAB = GOOD_SUP_GOOD
[TF] TaxFlow. FullCode = "TF"
------------------------------------------------------------
TaxRate = 0.2000
T = TF_TaxRate * HH_PreTax
[LAB] Labour market. FullCode = "LAB"
------------------------------------------------------------
DEM_LAB = BUS_DEM_LAB
SUP_LAB = DEM_LAB
[GOOD] Goods market. FullCode = "GOOD"
------------------------------------------------------------
DEM_GOOD = GOV_DEM_GOOD+ HH_DEM_GOOD
SUP_GOOD = DEM_GOOD
(c) Brian Romanchuk 2017
No comments