# welfareDecisionAnalysis: Analysis of the underlying welfare based decision problem. In decisionSupport: Quantitative Support of Decision Making under Uncertainty

## 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` `estimate` object describing the distribution of the input variables. `welfare` either a `function` or a `list` with two `functions`, i.e. `list(p1,p2)`. In the first case the function is the net benefit (or welfare) of project approval (PA) vs. the status quo (SQ). In the second case the element `p1` is the function valuing the first project and the element `p2` valuing the second project, viz. the welfare function of `p1` and `p2` respectively. `numberOfModelRuns` `integer`: The number of running the welfare model for the underlying Monte Carlo simulation. `randomMethod` `character`: The method to be used to sample the distribution representing the input estimate. For details see option `method` in `random.estimate`. `functionSyntax` `character`: function syntax used in the welfare function(s). For details see `mcSimulation`. `relativeTolerance` `numeric`: the relative tolerance level of deviation of the generated confidence interval from the specified interval. If this deviation is greater than `relativeTolerance` a warning is given. `verbosity` `integer`: if `0` the function is silent; the larger the value the more verbose is output information.

## 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 ρ_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 by `welfare`

(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.

`mcSimulation`, `estimate`, `summary.welfareDecisionAnalysis`
 ``` 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\$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))) ```