| utility.aggregate.bonusmalus {utility} | R Documentation |
Bonus-malus aggregation of values or utilities
Description
Function to perform an aggregation of valus or utilities that considers some of the inputs only as bonus (only considered if value is larger then the aggregated value of the non bonus or malus input) or malus (only considered if value is smaller then the aggregated value of the non bonus or malus input).
Usage
utility.aggregate.bonusmalus(u,par,def.agg="utility.aggregate.add")
Arguments
u |
numeric vector of values or utilities to be aggregated. |
par |
numeric vector combining the parameters of the default aggregation technique
(see argument |
def.agg |
(optional) character string specifying the name of the function used for aggregation
of the non-bonus and non-malus sub-objectives.
Note that for use of this aggregation technique in the function
|
Details
The aggregation function is defined by
u = \frac{\displaystyle u^{\mathrm{agg}}_{i \notin b,i \notin m} + \sum_{\begin{array}{l}i \in b \wedge u_i > u^{\mathrm{agg}}_{i \notin b,i \notin m}\\i \in m \wedge u_i < u^{\mathrm{agg}}_{i \notin b,i \notin m}\end{array}}\mid w_i \mid u_i}{\displaystyle 1 + \sum_{\begin{array}{l}i \in b \wedge u_i > u^{\mathrm{agg}}_{i \notin b,i \notin m}\\i \in m \wedge u_i < u^{\mathrm{agg}}_{i \notin b,i \notin m}\end{array}}\mid w_i \mid}
The following figure shows examples of the behaviour of this aggregation function for the two-dimensional case:
Value
The function returns the aggregated value or utility.
Note
This is the same function as utility.aggregate.cobbdouglas
Author(s)
Peter Reichert <peter.reichert@emeriti.eawag.ch>
References
Short description of the package:
Reichert, P., Schuwirth, N. and Langhans, S.,
Constructing, evaluating and visualizing value and utility functions for decision support, Environmental Modelling & Software 46, 283-291, 2013.
Description of aggregation techniques:
Langhans, S.D., Reichert, P. and Schuwirth, N.,
The method matters: A guide for indicator aggregation in ecological assessments.
Ecological Indicators 45, 494-507, 2014.
Textbooks on the use of utility and value functions in decision analysis:
Keeney, R. L. and Raiffa, H. Decisions with Multiple Objectives - Preferences and Value Tradeoffs. John Wiley & Sons, 1976.
Eisenfuehr, F., Weber, M. and Langer, T., Rational Decision Making, Springer, Berlin, 2010.
See Also
Constructor of aggregation node:
utility.aggregation.create
Aggregation techniques provided by uncsim:
utility.aggregate.add for additive aggregation (weighted arithmetic mean),
utility.aggregate.min for minimum aggregation,
utility.aggregate.max for maximum aggregation,
utility.aggregate.geo or utility.aggregate.cobbdouglas for geometric or Cobb-Douglas aggregation (weighted geometric mean),
utility.aggregate.geooff for geometric aggregation with offset,
utility.aggregate.revgeo for reverse geometric aggregation,
utility.aggregate.revgeooff for reverse geometric aggregation with offset,
utility.aggregate.harmo for harmonic aggregation (weighted harmonic mean),
utility.aggregate.harmooff for harmonic aggregation with offset,
utility.aggregate.revharmo for reverse harmonic aggregation,
utility.aggregate.revharmooff for reverse harmonic aggregation with offset,
utility.aggregate.mult for multiplicative aggregation,
utility.aggregate.mix for a mixture of additive, minimum, and geometric aggregation,
utility.aggregate.addmin for a mixture of additive and minimum aggregation.
utility.aggregate.addpower for additive power aggregation (weighted power mean),
utility.aggregate.revaddpower for reverse additive power aggregation,
utility.aggregate.addsplitpower for splitted additive power aggregation,
utility.aggregate.revaddsplitpower for reverse splitted additive power aggregation,
utility.aggregate.bonusmalus for an aggregation technique that considers some of the values or utilities of sub-objectives only as bonus or malus.
Examples
utility.aggregate.bonusmalus(c(0.2,0.8), par=c(1,NA,1))
utility.aggregate.bonusmalus(c(0.2,0.8), par=c(1,1,NA))
utility.aggregate.bonusmalus(c(0.2,0.8), par=c(1,NA,-1))
utility.aggregate.bonusmalus(c(0.2,0.8), par=c(1,-1,NA))