welfareDecisionAnalysis {decisionSupport} | R Documentation |
Analysis of the underlying welfare based decision problem.
Description
The optimal choice between two different opportunities is calculated. Optimality is taken as maximizing expected welfare. Furthermore, the Expected Opportunity Loss (EOL) is calculated.
Usage
welfareDecisionAnalysis(
estimate,
welfare,
numberOfModelRuns,
randomMethod = "calculate",
functionSyntax = "data.frameNames",
relativeTolerance = 0.05,
verbosity = 0
)
Arguments
estimate |
|
welfare |
either a |
numberOfModelRuns |
|
randomMethod |
|
functionSyntax |
|
relativeTolerance |
|
verbosity |
|
Details
The underlying decision problem and its notational framework
We are considering a
decision maker who can influence an ecological-economic system having two alternative decisions
d_1
and d_2
at hand. We assume, that the system can be characterized by the
n-
dimensional
vector X
. The characteristics X
, are not necessarily known exactly to the decision maker.
However, we assume furthermore that she is able to quantify this uncertainty which we call an
estimate of the characteristics. Mathematically, an estimate is a random variable with
probability density \rho_X
.
Furthermore, the characteristics X
determine the welfare W(d)
according to the welfare
function w_d
:
W_d = w_d (X)
Thus, the welfare of decision d
is also a random
variable whose probability distribution we call \rho_{W_d}
. The welfare function w_d
values
the decision d
given a certain state X
of the system. In other words, decision d_2
is
preferred over decision d_1
, if and only if, the expected welfare of decision d_2
is
greater than the expected welfare (For a comprehensive
discussion of the concept of social preference ordering and its representation by a welfare
function cf. Gravelle and Rees (2004)) of decsion d_1
, formally
d_1 \prec d_2 \Leftrightarrow \textrm{E}[W_{d_1}] < \textrm{E}[W_{d_2}].
This means the best decision d^*
is the one which maximizes welfare:
d^* := \arg \max_{d=d_1,d_2} \textrm{E}[W_d]
This maximization principle has a dual minimization principle. We define the net benefit
\textrm{NB}_{d_1} := W_{d_1} - W_{d_2}
as the difference
between the welfare of the two decision
alternatives. A loss L_d
is characterized if a decision d
produces a negative net benefit.
No loss occurs if the decision produces a positive net benefit. This is reflected in the formal
definition
L_d := - \textrm{NB}_d, \textrm{~if~} \textrm{NB}_d < 0, \textrm{~and~} L_d := 0
\textrm{~otherwise}.
Using this notion it can be shown that the maximization of
expected welfare is equivalent to the minimization of the expected loss
\textrm{EL}_d := \textrm{E}[L_d]
.
The Expected Opportunity Loss (EOL)
The use of this concept, here, is in line as described in Hubbard (2014). The Expected
Opportunity Loss (\textrm{EOL}
) is defined as the expected loss for the best
decision. The best decision minimizes the expected loss:
\textrm{EOL} := \min \left\{ \textrm{EL}_{d_1}, \textrm{EL}_{d_2}\right\}
The \textrm{EOL}
is always conditional on the available information which is
characterized by the probability distribution of X
\rho_X
: \textrm{EOL} = \textrm{EOL}(\rho_X)
.
Special case: Status quo and project approval
A very common actual binary decision problem is the question if a certain project shall be approved versus continuing with business as usual, i.e. the status quo. It appears to be natural to identify the status quo with zero welfare. This is a special case ( Actually, one can show, that this special case is equivalent to the discussion above.) of the binary decision problem that we are considering here. The two decision alternatives are
d_1:
project approval (PA) and
d_2:
status quo (SQ),
and the welfare of the approved project (or project outcome or yield of the project) is the
random variable W_\textrm{PA}
with distribution
P_{W_\textrm{PA}} = w_\textrm{PA}(P_X)
:
W_\textrm{PA} \sim w_\textrm{PA}(P_X) = P_{W_\textrm{PA}}
and the welfare of the status quo serves as reference and is normalized to zero:
W_\textrm{SQ} \equiv 0,
which implies zero expected welfare of the status quo:
\textrm{E}[W]_\textrm{SQ} = 0.
Value
An object of class welfareDecisionAnalysis
with the following elements:
$mcResult
The results of the Monte Carlo analysis of
estimate
transformed bywelfare
(cf. mcSimulation
).
$enbPa
Expected Net Benefit of project approval: ENB(PA)
$elPa
Expected Loss in case of project approval: EL(PA)
$elSq
Expected Loss in case of status quo: EL(SQ)
$eol
Expected Opportunity Loss: EOL
$optimalChoice
-
The optimal choice, i.e. either project approval (PA) or the status quo (SQ).
References
Hubbard, Douglas W., How to Measure Anything? - Finding the Value of "Intangibles" in Business, John Wiley & Sons, Hoboken, New Jersey, 2014, 3rd Ed, https://www.howtomeasureanything.com/.
Gravelle, Hugh and Ray Rees, Microeconomics, Pearson Education Limited, 3rd edition, 2004.
See Also
mcSimulation
, estimate
, summary.welfareDecisionAnalysis
Examples
#############################################################
# Example 1 (Creating the estimate from the command line):
#############################################################
# Create the estimate object:
variable=c("revenue","costs")
distribution=c("posnorm","posnorm")
lower=c(10000, 5000)
upper=c(100000, 50000)
costBenefitEstimate<-as.estimate(variable, distribution, lower, upper)
# (a) Define the welfare function without name for the return value:
profit<-function(x){
x$revenue-x$costs
}
# Perform the decision analysis:
myAnalysis<-welfareDecisionAnalysis(estimate=costBenefitEstimate,
welfare=profit,
numberOfModelRuns=100000,
functionSyntax="data.frameNames")
# Show the analysis results:
print(summary((myAnalysis)))
#############################################################
# (b) Define the welfare function with a name for the return value:
profit<-function(x){
list(Profit=x$revenue-x$costs)
}
# Perform the decision analysis:
myAnalysis<-welfareDecisionAnalysis(estimate=costBenefitEstimate,
welfare=profit,
numberOfModelRuns=100000,
functionSyntax="data.frameNames")
# Show the analysis results:
print(summary((myAnalysis)))
#############################################################
# (c) Two decsion variables:
welfareModel<-function(x){
list(Profit=x$revenue-x$costs,
Costs=-x$costs)
}
# Perform the decision analysis:
myAnalysis<-welfareDecisionAnalysis(estimate=costBenefitEstimate,
welfare=welfareModel,
numberOfModelRuns=100000,
functionSyntax="data.frameNames")
# Show the analysis results:
print(summary((myAnalysis)))