knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(magrittr)
This guide explains how to use the godley
package to create the SIM model, the simplest model with government money, as described by Wynne Godley and Marc Lavoie in Chapter 3 of Monetary Economics: An Integrated Approach to Credit, Money, Income, Production and Wealth.
library(godley)
Start by initializing an empty SFC (Stock-Flow Consistent) model:
# Create empty model model_sim <- create_model(name = "SFC SIM")
Define the variables for the model:
# Add variables model_sim <- model_sim |> add_variable("C_d", desc = "Consumption demand by households") |> add_variable("C_s", desc = "Consumption supply") |> add_variable("G_s", desc = "Government supply") |> add_variable("H_h", desc = "Cash money held by households") |> add_variable("H_s", desc = "Cash money supplied by the government") |> add_variable("N_d", desc = "Demand for labor") |> add_variable("N_s", desc = "Supply of labor") |> add_variable("T_d", desc = "Taxes, demand") |> add_variable("T_s", desc = "Taxes, supply") |> add_variable("Y", desc = "Income = GDP") |> add_variable("Yd", desc = "Disposable income of households") |> add_variable("alpha1", init = 0.6, desc = "Propensity to consume out of income") |> add_variable("alpha2", init = 0.4, desc = "Propensity to consume out of wealth") |> add_variable("theta", init = 0.2, desc = "Tax rate") |> add_variable("G_d", init = 20, desc = "Government demand") |> add_variable("W", init = 1, desc = "Wage rate")
Establish the relationships between variables by adding equations:
# Add equations model_sim <- model_sim |> add_equation("C_s = C_d", desc = "Consumption") |> add_equation("G_s = G_d") |> add_equation("T_s = T_d") |> add_equation("N_s = N_d") |> add_equation("Yd = W * N_s - T_s") |> add_equation("T_d = theta * W * N_s") |> add_equation("C_d = alpha1 * Yd + alpha2 * H_h[-1]") |> add_equation("H_s = G_d - T_d + H_s[-1]") |> add_equation("H_h = Yd - C_d + H_h[-1]") |> add_equation("Y = C_s + G_s") |> add_equation("N_d = Y/W") |> add_equation("H_s = H_h", desc = "Money equilibrium", hidden = TRUE)
Now, you can simulate the model (in this example, we calculate the baseline scenario over 100 periods using the Newton method)
# Simulate model model_sim <- simulate_scenario(model_sim, scenario = "baseline", max_iter = 350, periods = 100, hidden_tol = 0.1, tol = 1e-05, method = "Newton" )
With the simulation estimated, visualize the results for the variables of interest:
# Plot results plot_simulation( model = model_sim, scenario = c("baseline"), from = 1, to = 50, expressions = c("Y", "C_d", "G_s") )
Note: The above example uses the new pipe operator (|>
), which requires R 4.1 or later.
With godley
package you can simulate how shocks affect the economy (specifically, how they impact the base scenario).
In this example, we apply a permanent increase in government expenditures.
First, initialize an empty shock object:
# Create empty shock shock_sim <- create_shock()
Define the shock by adding an appropriate equation:
# Add shock equation with increased government expenditures shock_sim <- add_shock(shock_sim, variable = "G_d", value = 25, desc = "Increase in government expenditures", start = 5, end = 50 )
Integrate the shock into the model by creating a new scenario:
# Create new scenario with this shock model_sim <- add_scenario(model_sim, name = "expansion", origin = "baseline", shock = shock_sim )
Simulate the scenario with the shock applied:
# Simulate shock model_sim <- simulate_scenario(model_sim, scenario = "expansion", max_iter = 350, periods = 100, hidden_tol = 0.1, tol = 1e-05, method = "Newton" )
Finally, compare the results of the base scenario with those of the shock scenario.
# Plot results plot_simulation( model = model_sim, scenario = c("baseline", "expansion"), from = 1, to = 50, expressions = c("Y") )
plot_simulation( model = model_sim, scenario = c("baseline", "expansion"), from = 1, to = 50, expressions = c("C_d") )
plot_simulation( model = model_sim, scenario = c("baseline", "expansion"), from = 1, to = 50, expressions = c("G_s") )
For more details on SIM model, refer to Chapter 3 of Monetary Economics: An Integrated Approach to Credit, Money, Income, Production and Wealth.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.