500 likes | 744 Views
Decision Technology Modeling, Software and Applications. Matthew J. Liberatore Robert L. Nydick John Wiley & Sons, Inc. . Financial Simulation Using @Risk. OVERVIEW OF @RISK. @Risk is a spreadsheet add-in that has two advantages.
E N D
Decision TechnologyModeling, Software and Applications Matthew J. Liberatore Robert L. Nydick John Wiley & Sons, Inc.
Financial Simulation Using @Risk
OVERVIEW OF @RISK @Risk is a spreadsheet add-in that has two advantages. • @Risk provides easy access to many probability distributions. • Add-ins make it easier to develop simulation models than Excel alone. Overview of @Risk features: • Many built-in input probability distributions. • Output cells can be specified. @Risk maintains statistics for these cells across replications. • The Risksimtable command allows the user to run the simulation several times for different values of input parameters.
OVERVIEW OF @RISK The development of a simulation model is a two-step process: • Build the model, that is, the logic that transforms input (e.g., demand uncertainty) into output (e.g., profit). • @Risk automatically replicates the model with many random input values, reporting output as requested. Simply put, @Risk takes any spreadsheet (e.g., income statement, cash flow statement) and specifies that some of the cells are uncertain. @Risk then repeats the simulation many times and computes statistics across replications. @Risk is really an advanced sensitivity analysis since it studies how changes to key input parameters impacts output. Although we use @Risk, a similar add-in is Crystal Ball.
FITTING A PROBABILITY DISTRIBUTION Historical data are needed to estimate probability distributions and parameters for uncertain parameters. Suppose we believe that the probability distribution of demand can be estimated using the past data that was gathered and appears in the demand.xls file. We can use the “Fit Distributions to Data” button in @Risk to analyze the data. After selecting this button, enter the following information: Excel Data Range, Type of Data (Sampled Values), No Filtering Options, Continuous Domain, and OK.
FITTING A PROBABILITY DISTRIBUTION @Risk will analyze the data and use goodness of fit statistical tests to rank order probability distributions and their parameters for the data entered. In our example, we see that the best fit probability distribution is Normal with a mean of 99.414 and a standard deviation of 11.059. To attempt to validate this feature, the data in demand.xls was generated from a normal distribution with a mean of 100 and a standard deviation of 10.
FITTING A PROBABILITY DISTRIBUTION The difference between 99.414 and 100 and 11.059 and 10 is due to the small sample size. The first numbers in each pair are the sample estimates while the second numbers are the population values. If this were actual data, we would use the normal distribution with mean of 99.414 and standard deviation of 11.059 as our demand probability distribution within an @Risk model. We are now ready to create our first @Risk model.
CALENDAR SIMULATION Calendars are sold as a fundraiser activity. It costs $7.50 to purchase each calendar and they are sold for $10.00. Unsold calendars can be returned for $2.50 each. The number of calendars demanded is assumed to follow a triangular distribution with minimum, most likely, and maximum values of 100, 175, and 300, respectively. How many calendars should be ordered?
CALENDAR SIMULATION We begin by simulating 1000 replications for an order size of 200. The following values and formulas are needed. See Calendar template.xls. B4: 7.50, B5: 10.00, B6: 2.50 E4-E6: 100, 175, 300 B9: 200 B13: =ROUND(RISKTRIANG(E4,E5,E6),0) C13: =B5*Min(B9,B13) D13: =B4*B9 E13: =B6*MAX(B9-B13,0) F13: =C13+E13-D13 B16-B19: =riskmin(F13), =riskmax(F13), =riskmean(F13), =riskstddev(F13)
CALENDAR SIMULATION Cells B4 – B6 contain the data for this problem. Cells C13 – F13 contain the formulas for Revenue, Salvage Value, Costs, and Profit. The formula in B13 computes the random demand based on the values given in E4:E6. B9 specifies that 200 calendars will be ordered. B16:B19 provide statistical results of the output.
CALENDAR SIMULATION With cell F13 highlighted, choose the Add Output button to make this the output cell. Click on the Simulation Settings button and select 1000 iterations and 1 simulation in the Iterations tab. In the sampling tab of the Simulation Settings button, select Latin Hypercube, Standard Recalc (Monte Carlo), Fixed = 1, All, check Save as Default, and OK. Click on the Report Settings button and select: Show Interactive @Risk Results Window, Generate Excel Reports Selected Below, Simulation Summary, Output Graphs, Active Workbook, Metafile, check Save as Default, and OK.
What is Sampling? • Sampling is the process by which values are randomly drawn from the selected distribution. • In @Risk, during each iteration of the simulation, one observation is chosen from the input distribution. • As the number of iterations increases, the sample of observations more closely resembles the input distribution. • When running a simulation, it is important that all areas of the input distribution get sampled, especially the low probability (high uncertainty) areas. If not, uncertainty will seem less than it actually is.
The Concept of “Efficiency” • Statisticians have developed different ways to sample (or draw) from distributions. • If we could do an infinite number of iterations in our simulation, these methods would produce equal results. • However, since we use a finite number of iterations, sampling methods do not produce equivalent results. • A sampling method is considered more efficient than another if it approximates a distribution with fewer iterations. • Two popular sampling methods: • Monte Carlo Simulation • Latin Hypercube
Monte Carlo Simulation • Monte Carlo simulation draws samples from the full range of the distribution on each draw. • Is an entirely random sampling technique. • Requires a large number of iterations to adequately approximate the input distribution. • Why? Most observations drawn are closer to the mean. Creates clustering. The tails (areas of high uncertainty) are usually underrepresented in the sampling.
Latin Hypercube samples from all parts of the distribution, reducing clustering. Not entirely random (is a “stratified” sampling method) Latin Hypercube divides a distribution into intervals (strata) of equal probability and randomly draws from each interval. Insures that all portions of the distribution are sampled, including the tails. Latin Hypercube sampling is more efficient than Monte Carlo sampling: Requires fewer iterations. Latin Hypercube
Example: • Suppose we sample 8 times from a normal distribution. With Monte Carlo sampling we might get: Notice that the tails (high uncertainty areas) are not adequately represented. This results in underestimating risk Source: Modeling the Future: The Full Monte, the Latin Hypercube and Other Curiositiesby Glenn Kautt, CFP, and Fred Wieland, Ph.D., FPA Journal
Example continued • With Latin Hypercube, we would get: Notice that even with only 8 observations, the tails are much more adequately represented. This results in a truer representation of risk. The area in each strata is equal but the width of each strata varies. Source: Modeling the Future: The Full Monte, the Latin Hypercube and Other Curiositiesby Glenn Kautt, CFP, and Fred Wieland, Ph.D., FPA Journal
CALENDAR SIMULATION To run the simulation, select the Start Simulation button. @Risk will create a Results window. Choose the Detailed Statistics Window to display additional output. Average profit for 1000 trials when 200 calendars are ordered is $337.4975 with a standard deviation of $189.0535.
CALENDAR SIMULATION Scroll to the bottom of the Detailed Statistics Window to enter a target value or target percentage. For example, if 0 is entered in the target #1 value cell, 7.5% is returned. This means that 7.5% of the 1000 profits were 0 or negative. Enter 12% in the target #2 percentage cell to see that 12% of the profit values were less than or equal to $65. To view the full results – data, demand, and profit values from all 1000 replications – select the Insert/Data option in the Results Window.
CALENDAR SIMULATION To display a graph of profit, click on the Profit item in the left pane of the Results Window and then select the Insert/Graph/Histogram item. We see a spike at a profit of $500. This occurs whenever a demand greater than 200 is generated resulting in a profit of $500.
CALENDAR SIMULATION 95% confidence interval: Mean profit +/- 2(Mean Standard Error), where, Mean Standard Error = Standard deviation/SQRT(Iterations) When 200 calendars are ordered: Mean profit = 337.4975. Mean Standard Error = 189.0535/SQRT(1000) = 5.98. 95% Confidence Interval = 337.4975-2(5.98) = 325.54 and 337.4975+2(5.98) = 349.45. This means that we are 95% confident that the true population mean of profit is between 325.54 and 349.45.
CALENDAR SIMULATION If we want to narrow the range of the confidence interval but keep the confidence level fixed at 95%, the number of replications must be increased. To accomplish this, we use the following formula: n = [16*Estimated standard deviation^2]/L^2 Where L is the width of the confidence interval. On the previous slide we saw that L = 23.91.
CALENDAR SIMULATION If we want L to be 10, then: n = [16*189.0535^2]/10^2 = 5718.60 This implies that we need 5719 iterations to get a 95% confidence interval range of 10.
MULTIPLE ORDER QUANTITIES The objective of this problem is to choose an order quantity that maximizes profit. We could continue to rerun the simulation for different order quantities. It would be much better if we could have @Risk automatically evaluate several order quantities on the same set of random demand values. The Risksimtable command accomplishes this. Enter “Possible order quantities” in cell D8 and the desired order quantities in cells D9 – H9: 150, 175, 200, 225, and 250. In cell B9 enter: =Risksimtable(D9:H9).
MULTIPLE ORDER QUANTITIES In the Simulation Settings dialog box, select 5 as the number of simulations since 5 different order quantity values need to be evaluated. After running the simulations, @Risk shows the results for all 5 order quantities in the Detailed Summary of the Results Window. The order quantity of 175 results in the largest mean profit; however, we may want to sacrifice a small amount of profit (367.2025 to 354.165) to improve the standard deviation (121.8619 down to 59.00198).
RISK OPTIMIZER We have now evaluated 5 different order quantities but we still have no guarantee that there isn’t an order quantity that generates even more profit. Risk Optimizer will accomplish this. Go back to Calendar.xls and also launch Risk Optimizer. Next select the Risk Optimizer Settings button: • We want to find the Maximum of the Mean of cell $F$13 (Profit). • Next, select: By Adjusting the Cells and Add: Adjust the Cells: Min 100, Cell Range is $B$9, Max is 300, check Integer Values Only, then Add, and OK.
RISK OPTIMIZER Select Options and choose the following: • Population Size: 50 • Log Simulation Data • Random Number Seed is Random • Use Same Seed Each Sim • Check Change in Last 100 Valid Sims is Less Than 0.01%. • Stop on Actual Convergence • Tolerance Auto • OK These setting determine stopping rules for the optimization search.
RISK OPTIMIZER Next choose OK, then the Start Optimization button, and OK. Risk Optimizer then plays a king of the hill type of search. Depending on the level of complexity of the problem, this could take a VERY long time to stop. You can always select the Stop button to identify the best solution found so far. Eventually, Risk Optimizer will report the best order size and corresponding profit that it found. Note that we have no guarantees that this is in fact the true optimal solution since it was identified using simulation. In addition, if the same problem is run multiple times, there is a good chance that the solution will vary somewhat.
ADDITIONAL UNCERTAINTY • As in the previous example, we need to place an order for next year’s calendar. • See Additional Uncertainty template.xls. • We continue to assume that the calendars will sell for $10 (B6) and demand at this price is triangularly distributed with minimum, most likely, and maximum values of 100, 175, and 300, respectively (E5:E7). • However, there are now two other sources of uncertainty.
ADDITIONAL UNCERTAINTY • The maximum number of calendars that can be supplied follows a triangular distribution with values of 125, 200, and 250 (E10:E12). • The supplier charges $7.50 per calendar (B4) if he can supply the entire order. Otherwise, he will charge only $7.25 per calendar (B5). • Unsold calendars cannot be returned for a refund. Instead, they will be put on sale for $5 a piece after February 1 (B7).
ADDITIONAL UNCERTAINTY • At $5, we believe the demand for leftover calendars is triangularly distributed with parameters of 0, 50, and 75 (F5:F7). • Any calendars still left over after March 1, will be thrown away. • We plan to order 200 calendars and want to use simulation to analyze the resulting profit.
ADDITIONAL UNCERTAINTY • As before, we first need to develop the model. • Then we can run the simulation with @Risk and examine the results. • The model itself requires a bit more logic than the previous models.
ADDITIONAL UNCERTAINTY • The model can be developed as follows: • Random inputs. There are three random inputs: the most the supplier can supply, the customer demand when the selling price is $10, and the customer demand for sale-price calendars. Generate these values in A16, D16 and G16 as: =ROUND(RiskTriang(E10,E11,E12),0), =ROUND(RiskTriang(E5,E6, E7),0) and =ROUND(RiskTriang(F5,F6, F7),0). • Random potential demand is generated at the sale price even though there might not be any calendars left to put on sale.
ADDITIONAL UNCERTAINTY • Actual supply. The number of calendars supplied is the smaller of the number ordered and the maximum the supplier is able to supply. Calculate this value in cell B16 as: =MIN(A16,B10). • Order cost. The reduced price of $7.25 is charged if the supplier cannot supply the entire order. Otherwise, $7.50 per calendar is paid. Calculate the total order cost in cell C16 as: =IF(A16>=B10,B4,B5)*B16
ADDITIONAL UNCERTAINTY • Other quantities. Calculate the revenue from regular-price sales in cell E16 with the formula =B6*MIN(B16,D16). • Calculate the number left over after regular-price sales in cell F16 with the formula =MAX(B16-D16,0). • Calculate revenue from sale-price sales in cell H16 with the formula =B7*MIN(F16,G16). • Calculate profit and designate it as an output cell for @Risk in cell I16 with the formula =RISKOUTPUT( )+E16+H16-C16.
ADDITIONAL UNCERTAINTY • Next specify the simulation settings, specify the report settings and run the simulation. • When there are several input cells, @Risk generates a value from each of them independently and calculates the corresponding profit on each iteration. • The results indicate an average profit of $396.29, a 5th percentile of $55.75, a 95th percentile of $528, and a distribution of profits that is again skewed to the left.
ADDITIONAL UNCERTAINTY • We now demonstrate a feature of @Risk that is particularly useful when there are several random input cells. • This feature lets us see which of these inputs is most related to, or correlated with, an output cell. • To perform this analysis, select the Insert/Graph/Tornado Graph menu item from the @Risk Results window.
ADDITIONAL UNCERTAINTY • In the dialog box, select Profit as the output variable and the Correlation Sensitivity button. • These results show graphically and numerically how each of the random inputs correlates with profit – the higher the correlation, the stronger the relationship between that input and profit. • We see that the regular-price demand has by far the strongest effect on profit (0.793 correlation).
ADDITIONAL UNCERTAINTY • The other two inputs, maximum supply (0.048 correlation) and sale-price demand (0.034 correlation), are not as important because they are nearly unrelated to profit. • If a random input is highly correlated with an output, then it might be worth the time and cost to learn more about this input and possibly reduce the amount of uncertainty involving it.
CORRELATED VARIABLES • All previous problems have had random numbers be probabilistically independent. This means that if a random value is much larger than its mean, the other random values are unaffected. • Sometimes values are correlated. If they are positively correlated, then a large number for one value will tend to produce a large number for a second value. While negatively correlated values tend to move in opposite directions.
CORRELATED VARIABLES • Suppose that there are two different calendars that are sold but their demand is negatively correlated. This means that if a customer buys one calendar they are unlikely to buy another one. Assume a correlation of -0.90. • The other parameters of this problem are the same as Calendar.xls. • Compare the profit levels for correlation values of -0.90, 0, and 0.90.
CORRELATED VARIABLES • The RISKCORRMAT (correlation matrix) function is needed. • A correlation matrix has 1’s along the main diagonal since a variable is perfectly correlated with itself. The correlation values appear in the other parts of the matrix and the matrix is symmetric. • See Correlated Demand template.xls. • We would like to run this model for 3 different correlation values that appear in cells I9:K9 as -.90, 0, and 0.90.
CORRELATED VARIABLES • The correlation matrix is entered in cells J5:K6 as 1, =RISKSIMTABLE(I9:K9), =J6, and 1. • The RISKSIMTABLE command will allow @Risk to run the simulation for the three different correlation values that appear in cells I9:K9. • We assume that the company orders 200 calendars of each type (cells B9 and B10). • The data from Calendar.xls are entered into cells B4:B6 and E4:E6.
CORRELATED VARIABLES • The formulas for Revenue, Cost, Refund, and Profit from Calendar.xls are entered in row 14 for product 1 and then copied to row 15 for product 2. • All values for the two products are summed in row 16. • To finish the model we must randomly generate correlated demands for the two products in cells B14 and B15.
CORRELATED VARIABLES • The demand for product 1 is entered in cell B14 as: =ROUND(RISKTRIANG(E4,E5,E6,RISKCORRMAT(J5:K6,1)),0) • The demand for product 2 is entered in cell B15 as: =ROUND(RISKTRIANG(E4,E5,E6,RISKCORRMAT(J5:K6,2)),0) • The first argument of RISKCORRMAT is the correlation matrix range. The second is an index of the variable (1 for product 1 and 2 for product 2). • Correlated demand values for the two products will now be generated.
CORRELATED VARIABLES • Next specify the simulation settings (1000 runs and number of simulations 3, one for each correlation value). • In the Detailed Statistics window you will see Profit results for the 3 runs. The mean values are equal at 674.995.
CORRELATED VARIABLES • This may be surprising but can be explained because @Risk uses the same random numbers for each run but “shuffles” them in different orders to get the correct correlations. • The means are unaffected since this is like saying the average of 30, 26, and 48 is the same as the average of 48, 30, and 26.
CORRELATED VARIABLES • Notice, however, that the standard deviations for the three runs are different (157.7571, 262.881, and 365.5104). • This means that the variation in profit increases as the correlation goes from negative to zero to positive.
CORRELATED VARIABLES • When demands are negatively correlated, high demands for one product tend to cancel low demands for another product making extreme profit values less likely. • When demands are positively correlated, high and low demands tend to go together making extreme profits more likely. • This is why investors are warned to diversify their portfolio to reduce risk. • Use Risk Optimizer to find the ideal number of calendars of each type to order.