Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## -----------------------------------------------------------------------------
library(godley)
model_sim <- create_model(name = "SFC model")
## -----------------------------------------------------------------------------
# Add parameters
model_sim <- add_variable(model = model_sim, name = "C_d", desc = "Consumption demand by households")
model_sim <- add_variable(model = model_sim, name = "C_s", desc = "Consumption supply")
model_sim <- add_variable(model = model_sim, name = "G_s", desc = "Government supply")
model_sim <- add_variable(model = model_sim, name = "H_h", desc = "Cash money held by households")
model_sim <- add_variable(
model = model_sim, name = "H_s",
desc = "Cash money supplied by the government"
)
model_sim <- add_variable(model = model_sim, name = "N_d", desc = "Demand for labor")
model_sim <- add_variable(model = model_sim, name = "N_s", desc = "Supply of labor")
model_sim <- add_variable(model = model_sim, name = "T_d", desc = "Taxes, demand")
model_sim <- add_variable(model = model_sim, name = "T_s", desc = "Taxes, supply")
model_sim <- add_variable(model = model_sim, name = "Y", desc = "Income = GDP")
model_sim <- add_variable(model = model_sim, name = "Yd", desc = "Disposable income of households")
model_sim <- add_variable(
model = model_sim, name = "alpha1", init = 0.6,
desc = "Propensity to consume out of income"
)
model_sim <- add_variable(
model = model_sim, name = "alpha2", init = 0.4,
desc = "Propensity to consume out of wealth"
)
model_sim <- add_variable(model = model_sim, name = "theta", init = 0.2, desc = "Tax rate")
model_sim <- add_variable(model = model_sim, name = "G_d", init = 20, desc = "Government demand")
model_sim <- add_variable(model = model_sim, name = "W", init = 1, desc = "Wage rate")
## -----------------------------------------------------------------------------
# Add equations
model_sim <- add_equation(model = model_sim, equation = "C_s = C_d", desc = "Consumption")
model_sim <- add_equation(model = model_sim, equation = "G_s = G_d")
model_sim <- add_equation(model = model_sim, equation = "T_s = T_d")
model_sim <- add_equation(model = model_sim, equation = "N_s = N_d")
model_sim <- add_equation(model = model_sim, equation = "Yd = W * N_s - T_s")
model_sim <- add_equation(model = model_sim, equation = "T_d = theta * W * N_s")
model_sim <- add_equation(model = model_sim, equation = "C_d = alpha1 * Yd + alpha2 * H_h[-1]")
model_sim <- add_equation(model = model_sim, equation = "H_s = G_d - T_d + H_s[-1]")
model_sim <- add_equation(model = model_sim, equation = "H_h = Yd - C_d + H_h[-1]")
model_sim <- add_equation(model = model_sim, equation = "Y = C_s + G_s")
model_sim <- add_equation(model = model_sim, equation = "N_d = Y/W")
model_sim <- add_equation(
model = model_sim, equation = "H_s = H_h", desc = "Money equilibrium",
hidden = TRUE
)
## -----------------------------------------------------------------------------
# Change initial value for alpha1 parameter
model_sim <- change_init(model = model_sim, name = "alpha1", value = 0.5)
## -----------------------------------------------------------------------------
# Simulate baseline scenario
model_sim <- simulate_scenario(
model = model_sim, scenario = "baseline", max_iter = 350, periods = 100,
hidden_tol = 0.1, tol = 1e-08, method = "Gauss"
)
## ----out.width="100%"---------------------------------------------------------
# Plot results
plot_simulation(
model = model_sim, scenario = "baseline", from = 1, to = 100,
expressions = c("Y", "C_s / alpha1")
)
## ----out.width="100%"---------------------------------------------------------
# Plot relationships
plot_cycles(model = model_sim)
## -----------------------------------------------------------------------------
# Create shock
sim_shock <- create_shock()
## -----------------------------------------------------------------------------
# Add shock equation for increased government expenditures
sim_shock <- add_shock(
shock = sim_shock,
variable = "G_d",
value = 25,
desc = "Increase in government expenditures", start = 5, end = 10
)
## -----------------------------------------------------------------------------
# Add shock scenario for increased government expenditures
model_sim <- add_scenario(
model = model_sim, name = "expansion", origin = "baseline",
origin_start = 1,
origin_end = 100,
shock = sim_shock
)
## -----------------------------------------------------------------------------
# Calculate shock scenario for increased government expenditures
model_sim <- simulate_scenario(
model = model_sim, max_iter = 350, periods = 100, hidden_tol = 0.1,
tol = 1e-08, method = "Gauss"
)
## -----------------------------------------------------------------------------
# Create and calculate sensitivity
model_sen <- create_sensitivity(
model_pass = model_sim, variable = "alpha1",
lower = 0.1, upper = 0.8, step = 0.1
)
model_sen <- simulate_scenario(
model = model_sen, max_iter = 350, periods = 100, hidden_tol = 0.1,
tol = 1e-08, method = "Gauss"
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.