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
1 2 3  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 ecologicaleconomic system having two alternative decisions d_1 and d_2 at hand. We assume, that the system can be characterized by the ndimensional 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 ρ_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 < d_2 <==> E[W(d_1)] < E[W(d_2)].
This means the best decision d* is the one which maximizes welfare:
d* := arg max (d=d_1,d_2) E[W(d)]
This maximization principle has a dual minimization principle. We define the net benefit 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) :=  NB(d) if NB(d) < 0 and L(d) := 0 otherwise.
Using this notion it can be shown that the maximization of expected welfare is equivalent to the minimization of the expected loss EL(d) := 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 (EOL) is defined as the expected loss for the best decision. The best decision minimizes the expected loss:
EOL := min { EL(d_1), EL(d_2) }
The EOL is always conditional on the available information which is characterized by the probability distribution of X ρ_X: EOL = EOL(ρ_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(PA) with distribution P_W(PA) = w_PA(P_X):
W(PA) ~ w_PA(P_X) = P_W(PA)
and the welfare of the status quo serves as reference and is normalized to zero:
W(SQ) = 0
which implies zero expected welfare of the status quo:
E[W(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, http://www.howtomeasureanything.com/.
Gravelle, Hugh and Ray Rees, Microeconomics, Pearson Education Limited, 3rd edition, 2004.
See Also
mcSimulation
, estimate
, summary.welfareDecisionAnalysis
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45  #############################################################
# 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$revenuex$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$revenuex$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$revenuex$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)))
