macrostat.models.GL06SIM#

Godley & Lavoie (2006, Chapter 3) Model SIM

The macrostat.models.GL06SIM module consists of the following classes

GL06SIM(parameters, variables, scenarios, ...)

SIM model class for the Godley-Lavoie 2006 SIM model.

behavior

Behavior classes for the Godley-Lavoie 2006 SIM model.

parameters

Parameters class for the Godley-Lavoie 2006 SIM model.

scenarios

Scenarios class for the Godley-Lavoie 2006 SIM model.

variables

Variables class for the Godley-Lavoie 2006 SIM model.

class macrostat.models.GL06SIM.BehaviorGL06SIM(parameters: ParametersGL06SIM | None = None, scenarios: ScenariosGL06SIM | None = None, variables: VariablesGL06SIM | None = None, scenario: int = 0, debug: bool = False)[source]#

Bases: Behavior

Behavior class for the Godley-Lavoie 2006 SIM model.

consumption_demand(t: tensor, scenario: dict)[source]#

The consumption demand is a function of the disposable income, the propensity to consume income, and the propensity to consume savings. Equation (3.7) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[C_d(t) = \alpha_1 YD(t) + \alpha_2 H_h(t-1)\]

Dependency

  • state: DisposableIncome

  • prior: HouseholdMoneyStock

Sets

  • ConsumptionDemand

consumption_supply(t: tensor, scenario: dict)[source]#

In the model it is assumed that the supply will adjust to the demand, that is, whatever is demanded can and will be produced. Equation (3.1) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[C_s(t) = C_d(t)\]

Dependency

  • state: ConsumptionDemand

Sets

  • ConsumptionSupply

disposable_income(t: tensor, scenario: dict)[source]#

The disposable income is the wage bill minus the taxes. Equation (3.5) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict)

Equations

\[YD(t) = W(t) N_s(t) - T_s(t)\]

Dependency

  • state: LabourIncome

  • state: TaxSupply

Sets

  • DisposableIncome

government_money_stock(t: tensor, scenario: dict)[source]#

The government money stock is a function of the government demand, and the tax supply. Equation (3.8) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[H_s(t) = H_s(t-1) + G_d(t) - T_d(t)\]

Dependency

  • scenario: GovernmentDemand

  • state: TaxDemand

  • prior: GovernmentMoneyStock

Sets

  • GovernmentMoneyStock

government_supply(t: tensor, scenario: dict)[source]#

In the model it is assumed that the supply will adjust to the demand, that is, whatever is demanded can and will be produced. Equation (3.2) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[G_s(t) = G_d(t)\]

Dependency

  • scenario: GovernmentDemand

Sets

  • GovernmentSupply

household_money_stock(t: tensor, scenario: dict)[source]#

The household money stock is a function of the disposable income, the propensity to consume income, and the propensity to consume savings. Equation (3.9) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[H_h(t) = H_h(t-1) + YD(t) - C_d(t)\]

Dependency

  • state: DisposableIncome

  • state: ConsumptionDemand

  • prior: HouseholdMoneyStock

Sets

  • HouseholdMoneyStock

initialize()[source]#

Initialize the behavior of the Godley-Lavoie 2006 SIM model.

Within the book the initialization is generally to set all non-scenario variables to zero. Accordingly

Equations

\begin{align} C_d(0) &= C_s(0) = 0 \\ G_d(0) &= G_s(0) = 0 \\ T_s(0) &= T_d(0) = 0 \\ N_s(0) &= N_d(0) = 0 \\ YD(0) &= 0 \\ W(0) &= 0 \\ H_s(0) &= 0 \\ H_h(0) &= 0 \end{align}

Dependency

Sets

  • ConsumptionDemand

  • ConsumptionSupply

  • GovernmentDemand

  • GovernmentSupply

  • TaxSupply

  • TaxDemand

  • LabourSupply

  • LabourDemand

  • DisposableIncome

  • WageRate

  • MoneySupply

  • HouseholdMoneyStock

labour_demand(t: tensor, scenario: dict)[source]#

We can resolve the labour demand from the national income equation, together with the consumption demand (+ disposable income) and the government demand knowing that labour demand is equal to labour supply.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[N_d(t) =\frac{\alpha_2 H_h(t-1) + G_d}{W(t)(1-\alpha_1(1-\theta))}\]

Dependency

  • prior: HouseholdMoneyStock

  • scenario: GovernmentDemand

  • scenario: WageRate

Sets

  • LabourDemand

labour_income(t: tensor, scenario: dict)[source]#

The labour income is the wage rate times the labour supply. This is an intermediate variable used to calculate the disposable income, but is computed explicitly here to compute the transaction flows.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[W(t) N_s(t)\]

Dependency

  • scenario: WageRate

  • state: LabourSupply

Sets

  • LabourIncome

labour_supply(t: tensor, scenario: dict)[source]#

In the model it is assumed that the supply will be equal to the amount of labour demanded. Equation (3.4) in the book

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[N_s(t) = N_d(t)\]

Dependency

  • state: LabourDemand

Sets

  • LabourSupply

national_income(t: tensor, scenario: dict)[source]#

The national income is the sum of the consumption demand, the government demand, and the tax supply. Equation (3.10) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[Y(t) = C_s(t) + G_s(t)\]

Dependency

  • state: ConsumptionSupply

  • state: GovernmentSupply

Sets

  • NationalIncome

step(t: int, scenario: dict)[source]#

Step function of the Godley-Lavoie 2006 SIM model.

tax_demand(t: tensor, scenario: dict)[source]#

The tax demand is a function of the tax rate, the labour supply, and the wage rate. Equation (3.6) in the book.

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[T_d(t) = \theta N_s(t) W(t)\]

Dependency

  • parameters: TaxRate

  • state: LabourSupply

  • scenario: WageRate

Sets

  • TaxDemand

tax_supply(t: tensor, scenario: dict)[source]#

In the model it is assumed that the supply will be equal to the amount of taxes demanded. Equation (3.3) in the book

Parameters:
  • t (torch.tensor) – Current time step

  • scenario (dict) – Scenario dictionary

Equations

\[T_s(t) = T_d(t)\]

Dependency

  • state: TaxDemand

Sets

  • TaxSupply

version = 'GL06SIM'#
class macrostat.models.GL06SIM.GL06SIM(parameters: ~macrostat.models.GL06SIM.parameters.ParametersGL06SIM | None = <macrostat.models.GL06SIM.parameters.ParametersGL06SIM object>, variables: ~macrostat.models.GL06SIM.variables.VariablesGL06SIM | None = None, scenarios: ~macrostat.models.GL06SIM.scenarios.ScenariosGL06SIM | None = None, *args, **kwargs)[source]#

Bases: Model

SIM model class for the Godley-Lavoie 2006 SIM model.

version = 'GL06SIM'#
class macrostat.models.GL06SIM.ParametersGL06SIM(parameters: dict | None = None, hyperparameters: dict | None = None, bounds: dict | None = None, *args, **kwargs)[source]#

Bases: Parameters

Parameters class for the Godley-Lavoie 2006 SIM model.

get_default_hyperparameters()[source]#

Return the default hyperparameter values.

get_default_parameters()[source]#

Return the default parameter values.

version = 'SIM'#
class macrostat.models.GL06SIM.ScenariosGL06SIM(scenario_info: dict | None = None, parameters: ParametersGL06SIM | None = None, *args, **kwargs)[source]#

Bases: Scenarios

Scenarios class for the Godley-Lavoie 2006 SIM model.

get_default_scenario_values()[source]#

Return the default scenario values.

version = 'GL06SIM'#
class macrostat.models.GL06SIM.VariablesGL06SIM(variable_info: dict | None = None, timeseries: dict | None = None, parameters: ParametersGL06SIM | None = None, *args, **kwargs)[source]#

Bases: Variables

Variables class for the Godley-Lavoie 2006 SIM model.

get_default_variables()[source]#

Return the default variables information dictionary.

version = 'SIM'#