Source code for ruspy.estimation.pre_processing

"""
This module specifies the model specifications and the cost
function from the initialisation dictionary init_dict.
"""
from ruspy.model_code.cost_functions import cubic_costs
from ruspy.model_code.cost_functions import cubic_costs_dev
from ruspy.model_code.cost_functions import hyperbolic_costs
from ruspy.model_code.cost_functions import hyperbolic_costs_dev
from ruspy.model_code.cost_functions import lin_cost
from ruspy.model_code.cost_functions import lin_cost_dev
from ruspy.model_code.cost_functions import quadratic_costs
from ruspy.model_code.cost_functions import quadratic_costs_dev
from ruspy.model_code.cost_functions import sqrt_costs
from ruspy.model_code.cost_functions import sqrt_costs_dev


[docs]def select_model_parameters(init_dict): """ Selecting the model specifications. Parameters ---------- init_dict : dictionary see :ref:`init_dict` Returns ------- The model sepcifications. """ if "model_specifications" not in init_dict: raise ValueError("Specify model parameters") model_specification = init_dict["model_specifications"] disc_fac = model_specification["discount_factor"] num_states = model_specification["num_states"] scale = model_specification["cost_scale"] maint_func, maint_func_dev, num_params = select_cost_function( model_specification["maint_cost_func"] ) return disc_fac, num_states, maint_func, maint_func_dev, num_params, scale
[docs]def select_cost_function(maint_cost_func_name): """ Selecting the maintenance cost function. Parameters ---------- maint_cost_func_name : string The name of the maintenance cost function. Returns ------- The maintenance cost function, its derivative and the number of cost parameters in this model. """ if maint_cost_func_name == "cubic": maint_func = cubic_costs maint_func_dev = cubic_costs_dev num_params = 4 elif maint_cost_func_name == "quadratic": maint_func = quadratic_costs maint_func_dev = quadratic_costs_dev num_params = 3 elif maint_cost_func_name == "square_root": maint_func = sqrt_costs maint_func_dev = sqrt_costs_dev num_params = 2 elif maint_cost_func_name == "hyperbolic": maint_func = hyperbolic_costs maint_func_dev = hyperbolic_costs_dev num_params = 2 # Linear is the standard else: maint_func = lin_cost maint_func_dev = lin_cost_dev num_params = 2 return maint_func, maint_func_dev, num_params