A subclass of Utility
representing a constant elasticity of substitution utility function U=(∑n βn1/σGn(σ-1)/σ)σ/(σ-1). The elasticity of substitution is identical and constant between all pairs of goods, otherwise there is no fully general form.
Initialization Parameters
goods — list[str]|dict{str:num}, required
Either a list of goods, in which case all coefficients will be set to 1, or a dict where the keys are the goods and the values are the corresponding coefficients. The list may, but does not have to, correspond to the goods registered in
Goods.add()
.elast — num, required
The elasticity of substitution (σ in the formula above).
Methods
Click a method name for more detailed documentation.
calculate( quantities )
Calculates the agent's utility on the basis of the quantities entered. Subclasses are required to implement this method and should call the parent function
super().calculate()
at the beginning. Theagent.stocks
dict can be passed directly to this function.Utility.calculate()
only returns the values, and is thus useful for counterfactual calculations. To actually realize utility from consumption, useUtility.consume()
instead.consume( quantities )
Sets
self.utility
to the value returned fromself.calculate()
. Theagent.stocks
dict can be passed directly to this function.demand( income, prices )
Calculates the total demand for the various goods given some income. See the derivation from the utility function here.
mrs( good1, q1, good2, … )
Calculates the marginal rate of substitution between two goods. Subclasses are required to implement this method.
mu( quantities )
Calculates the marginal utilities of the goods in question on the basis of the entered quantities. Many utility functions, including the CES function, are such that the quantities of all goods are necessary to calculate the marginal utility of any good. Subclasses are required to implement this method.
Object Properties
utility — num
The agent's current level of utility, updated whenever
Utility.consume()
is called.Initial value: 0
elast — num
Stores the elasticity of substitution.
coeffs — dict{str:num}
Stores the coefficients on the goods (β in the CES formula).
Notes and Examples