Oil Wildcatter's Problem with an Insurance

``` /****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: DTREEE01                                            */
/*   TITLE: Oil Wildcatter's Problem with an Insurance          */
/*          (dtreee01)                                          */
/* PRODUCT: OR                                                  */
/*  SYSTEM: ALL                                                 */
/*    KEYS: DTREE                                               */
/*   PROCS: DTREE, PRINT                                        */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT:                             UPDATE:                 */
/*     REF: Example 1 from the DTREE chapter                    */
/*    MISC:                                                     */
/*                                                              */
/****************************************************************/

/* -- create the STAGEIN= data set                  -- */
data Dtoils4;
format Stage \$12. Stype \$2. Outcome \$14.
Succ \$12. Premium dollar12.0;
input Stage \$12. Stype \$4. Outcome \$16. Succ \$12.
Premium dollar12.0;
datalines;
Drill       D   Drill           Insurance              .
.           .   Not_Drill       .                      .
Insurance   D   Buy_Insurance   Cost           -\$130,000
.           .   Do_Not_Buy      Cost                   .
Cost        C   Low             Oil_Deposit            .
.           .   Fair            Oil_Deposit            .
.           .   High            Oil_Deposit            .
Oil_Deposit C   Dry             .                      .
.           .   Wet             .                      .
.           .   Soaking         .                      .
;

/* -- create the PROBIN= data set                   -- */
data Dtoilp4;
input (V1-V3) (\$) P1-P3 ;
datalines;
Low         Fair        High        0.2     0.6     0.2
Dry         Wet         Soaking     0.5     0.3     0.2
;

/* -- create PAYOFFS= data set                      -- */
data Dtoilu4;
input (Cost Deposit Drill Insuran) (\$16.) ;
format Drill \$9. Insuran \$14. Payoff dollar12.0;

/* determine the cost for this scenario */
if      Cost='Low'  then Rcost=150000;
else if Cost='Fair' then Rcost=300000;
else                     Rcost=500000;

/* determine the oil deposit and the corresponding  */
/* net payoff for this scenario                     */
if      Deposit='Dry' then Return=0;
else if Deposit='Wet' then Return=700000;
else                       Return=1200000;

/* calculate the net return for this scenario */
if      Drill='Not_Drill' then Payoff=0;
else                           Payoff=Return-Rcost;

/* determine redeem received for this scenario */
if Insuran='Buy_Insurance' and Deposit='Dry' then
Payoff=Payoff+200000;

/* drop unneeded variables */
drop Rcost Return;

datalines;
Low             Dry             Not_Drill       .
Low             Dry             Drill           Buy_Insurance
Low             Dry             Drill           Do_Not_Buy
Low             Wet             Not_Drill       .
Low             Wet             Drill           Buy_Insurance
Low             Wet             Drill           Do_Not_Buy
Low             Soaking         Not_Drill       .
Low             Soaking         Drill           Buy_Insurance
Low             Soaking         Drill           Do_Not_Buy
Fair            Dry             Not_Drill       .
Fair            Dry             Drill           Buy_Insurance
Fair            Dry             Drill           Do_Not_Buy
Fair            Wet             Not_Drill       .
Fair            Wet             Drill           Buy_Insurance
Fair            Wet             Drill           Do_Not_Buy
Fair            Soaking         Not_Drill       .
Fair            Soaking         Drill           Buy_Insurance
Fair            Soaking         Drill           Do_Not_Buy
High            Dry             Not_Drill       .
High            Dry             Drill           Buy_Insurance
High            Dry             Drill           Do_Not_Buy
High            Wet             Not_Drill       .
High            Wet             Drill           Buy_Insurance
High            Wet             Drill           Do_Not_Buy
High            Soaking         Not_Drill       .
High            Soaking         Drill           Buy_Insurance
High            Soaking         Drill           Do_Not_Buy
;

/* -- print the payoff table          -- */
title "Oil Wildcatter's Problem";
title3 "The Payoffs";

proc print data=Dtoilu4;
run;

/* -- PROC DTREE statements                       -- */
title "Oil Wildcatter's Problem";

proc dtree stagein=Dtoils4
probin=Dtoilp4
payoffs=Dtoilu4
nowarning
;

variables / stage=Stage type=Stype outcome=(Outcome)
reward=(Premium) successor=(Succ)
event=(V1 V2 V3) prob=(P1 P2 P3)
state=(Cost Deposit Drill Insuran)
payoff=(Payoff);

evaluate;
summary / target=Insurance;

reset criterion=maxce rt=1200000;
summary / target=Insurance;

quit;
/* -- clear up                                         -- */
title ;

```