Source code for macrostat.models.IOPC.parameters

"""
Parameters class for Marco Veronese Passarella's 3IO-PC model
"""

__author__ = ["Karl Naumann-Woleske"]
__credits__ = ["Karl Naumann-Woleske"]
__license__ = "MIT"
__maintainer__ = ["Karl Naumann-Woleske"]

import logging

from macrostat.core.parameters import Parameters

logger = logging.getLogger(__name__)


[docs] class ParametersIOPC(Parameters): """Parameters class for the Godley-Lavoie 2006 PC model.""" version = "IOPC"
[docs] def __init__( self, parameters: dict | None = None, hyperparameters: dict | None = None, bounds: dict | None = None, *args, **kwargs, ): """Initialize the parameters of Marco Veronese Passarella's 3IO-PC model Parameters ---------- parameters: dict | None The parameters of the model. hyperparameters: dict | None The hyperparameters of the model. bounds: dict | None The bounds of the parameters. """ super().__init__( parameters=parameters, hyperparameters=hyperparameters, bounds=bounds, *args, **kwargs, )
[docs] def get_default_parameters(self): """Return the default parameter values.""" return { "TaxRate": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\theta", "unit": "% per period", "value": 0.2, }, "PropensityToConsumeIncomeBase": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\alpha_{10}", "unit": ".", "value": 0.8, }, "PropensityToConsumeIncomeInterest": { "lower bound": 0.0, "upper bound": 10.0, "notation": r"\alpha_{11}", "unit": ".", "value": 8.0, }, "PropensityToConsumeSavings": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\alpha_2", "unit": ".", "value": 0.4, }, "WealthShareBills_Constant": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\lambda_0", "unit": ".", "value": 0.635, }, "WealthShareBills_InterestRate": { "lower bound": 0.0, "upper bound": 10.0, "notation": r"\lambda_1", "unit": ".", "value": 5.0, }, "WealthShareBills_Income": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\lambda_2", "unit": ".", "value": 0.01, }, "Markup": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\mu", "unit": ".", "value": 0.875, }, "S1.LabourProductivity": { "lower bound": 0.0, "upper bound": 10.0, "notation": r"pr_1", "unit": ".", "value": 3.5, }, "S2.LabourProductivity": { "lower bound": 0.0, "upper bound": 10.0, "notation": r"pr_2", "unit": ".", "value": 5, }, "S3.LabourProductivity": { "lower bound": 0.0, "upper bound": 10.0, "notation": r"pr_3", "unit": ".", "value": 2.2, }, "S1.HouseholdBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{C,1}", "unit": ".", "value": 0.15, }, "S2.HouseholdBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{C,2}", "unit": ".", "value": 0.35, }, "S3.HouseholdBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{C,3}", "unit": ".", "value": 0.5, }, "S1.GovernmentBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{G,1}", "unit": ".", "value": 0.10, }, "S2.GovernmentBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{G,2}", "unit": ".", "value": 0.30, }, "S3.GovernmentBudgetShare": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"\bar{\beta}_{G,3}", "unit": ".", "value": 0.6, }, "S1.S1.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{1,1}", "unit": ".", "value": 0.11, }, "S1.S2.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{1,2}", "unit": ".", "value": 0.12, }, "S1.S3.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{1,3}", "unit": ".", "value": 0.10, }, "S2.S1.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{2,1}", "unit": ".", "value": 0.21, }, "S2.S2.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{2,2}", "unit": ".", "value": 0.22, }, "S2.S3.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{2,3}", "unit": ".", "value": 0.20, }, "S3.S1.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{3,1}", "unit": ".", "value": 0.15, }, "S3.S2.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{3,2}", "unit": ".", "value": 0.18, }, "S3.S3.Requirement": { "lower bound": 0.0, "upper bound": 1.0, "notation": r"a_{3,3}", "unit": ".", "value": 0.10, }, }
[docs] def get_default_hyperparameters(self): """Return the default hyperparameter values.""" hyperparameters = super().get_default_hyperparameters() hyperparameters["timesteps"] = 100 hyperparameters["timesteps_initialization"] = 1 hyperparameters["sectors"] = [ "Household", "S1", "S2", "S3", "Government", "CentralBank", ] hyperparameters["iosectors"] = ["S1", "S2", "S3"] hyperparameters["vector_sectors"] = ["S1", "S2", "S3"] return hyperparameters