# Tutorial: Decision trees

Release: |
---|

This chapter shows you how to:

- Define a variable as a probability table
- Define a variable as a deterministic table

In this chapter you will create a new Analytica model called *Party Problem*. (For information about how to create a new model, see the beginning of Tutorial: Create a model.) The **Party Problem **model illustrates the use of discrete probability distributions.

You should study this chapter if your models use discrete or conditional probabilities.

In many kinds of models, your variables can be described using probability distributions based on expert judgment or on empirical data. On those occasions when the outcomes are discrete or qualitative (for example, low, medium, or high), you might need to use * discrete probability *distributions.

In the **Party Problem **model, the key uncertain variable is weather: it could be sunny or rainy. The weather has an impact on the decision about the location of a party — indoors, on a porch, or outdoors.

## Documenting the model

Specify the information shown in this model’s Object window.

*.*

**Party problem**The Object window should now look similar to this:

## Creating the Party Location, Weather, and Utility variables

Using the techniques introduced in Tutorial: Creating variable nodes, you will create a **Party Location** decision variable, a **Weather** chance variable, and a **Utility** objective variable.

**Party location**.

**Weather**.

**Utility (Value to me)**.

Your diagram should now look like this:

## Drawing arrows between variables

In this section, you will draw arrows from *Party Location and Weather to Utility* using the techniques introduced in Tutorial: Connecting multiple arrows.

Your diagram should now look like this:

## Defining Party Location as a list of labels

Consider that there are three possible locations where you could hold your party — indoors, on the porch, and outdoors. You will define *Party Location *as a list of labels identifying each location.

*Party Location *is used to index the *Utility (value to me) *objective node, so it is similar to the *Car Type *index variable created for the *Car Cost *model in the section Tutorial: Creating an index variable. (*Party Location *is a decision variable, rather than an index variable, because it is directly under your control.)

*, then press the*

**Outdoors***Enter*key.

*, then press the*

**Porch***Enter*key.

*, then press*

**Indoors***Tab*to accept the changes.

The diagram should now look like this.

## Defining Weather as a probability table

In this model, as in real life, weather is unpredictable.

In this section, you will characterize weather as having two possible discrete outcomes, either sunny or rainy. In addition, you will assign probabilities for each possible outcome. This is done by defining weather as a * probability table*. A probability table is Analytica’s function for describing discrete probabilities.

**Probability Table**from the Expression popup menu.

The **Indexes** dialog box opens to confirm your choice of index for the table. *Weather (Self)* appears in the Selected Indexes list. Self indicates that the index — the possible outcomes of the discrete distribution — is contained within the probability table. Self is required as an index of a probability table.

An **Edit Table** window appears. In this table, the first column holds the outcomes and the second column holds their probabilities. You will enter the possible outcomes in the first column.

**item 1**to select the first label for

*Weather*. Type

*into the cell, replacing*

**Sunny****item 1**, and press the

*Enter*key.

A second row should be added to the table, containing the same label as the first row, *Sunny*. If a second row does not appear, make sure you have the text for Sunny selected, and press the *Enter* key again.

*and click in the first body cell to accept the entry.*

**Rainy**In the second column, you will enter the probabilities of the possible outcomes.

*and*

**0.4***for the probabilities of sunshine and rain.*

**0.6**

The mid value is *Rainy*, since more than 50% of the probability was assigned to *Rainy*.

## Defining Utility as a deterministic table

The utility of a party location decision depends on the outcome of the weather.

In this section, you will define *Utility* as a * deterministic table* (or

*) using both*

**determtable***Party Location*and

*Weather*.

A deterministic table appears similar to an edit table or probability table. At least one index of a DetermTable must be a discrete probabilistic variable (probability table). The result of evaluating a deterministic table takes into account the probability distribution described by the probability table index.

Because the *Utility* variable hasn’t been defined yet, the first function *abs()* in the first library *Math* is displayed. Libraries hold the functions available for you to use. For an overview of Analytica’s libraries and their functions, see the section Definition menu in Analytica User Guide.

You will select the DetermTable() function, which is in the **Array** library under **-Table Functions**, so click this to see it's contents...

The Object Finder dialog a brief description of the selected function.

**Determ table**.

**indexes**button.

*Party Location* and *Weather* are already selected as indexes because you drew arrows from them to *Utility* and they are defined as lists.

Press **OK** to finish the Object Finder dialog, and an Edit table window opens for you to specify the dollar values for Utility.

You will give a value for each combination of party location and weather. These values describe the amount of money it is worth to you if you use a given party location and the weather turns out a certain way. Nominally, it is most valuable to have the party outdoors if it is sunny; it is least valuable if it is rainy and you are outdoors. Other values fall between these extremes.

## Computing Utility

In this section, you will compute the value of *Utility*.

The utility of each party location corresponds to the values you just entered for *Rainy* in the Utility deterministic table, because the mid value of *Weather* is *Rainy*. With these outcomes, a deterministic assessment leads you to conclude that your best bet is to hold the party indoors.

The mean value gives you a very different assessment: the porch gives you the greatest expected utility. The mean value as estimated by the sample is approximately 40 for outdoors, 48 for the porch, and 46 for indoors.

The exact expected utility for each party location can be calculated by multiplying the probabilities of the outcomes by the values of *Utility*:

Outdoors= (100)*0.4 + (0)*0.6 = 40 Porch= (90)*0.4 + (20)*0.6 = 48 Indoors= (40)*0.4 + (50)*0.6 = 46

### Note to those with a background in discrete modeling

Analytica simulates all probability distributions and calculates the expected (mean) value of a distribution by computing the average of the samples. For a discrete distribution, the computed mean converges, with increasing sample size, toward the value obtained by multiplying the probabilities by the discrete outcome values.

## Summary

In this chapter, you have:

- Defined a variable as a probability table, a discrete distribution.
- Defined a variable as a deterministic table, a function that defines a conditional dependency on the outcome of a discrete uncertain variable.

### Exercise

As an exercise, extend the model to examine how the utility of each party location varies as the probability of rain varies from 0 to 100%.

- Create another chance node, titled p, the probability of sunshine. Define it as the range of probabilities from 0 to 100%, as Sequence(0, 1, 0.5).
- Redefine the probabilities for
*Weather*as`p`

, for sunny, and`(1- p)`

, for rainy. - Recalculate the mean value of
*Utility*. Display the result as a graph.

## See Also

- Creating the Party Problem model (based on chapter 6 of tutorial)
- Classes of variables and other objects
- Choice menu user input
- Choice menus and Checkboxes in an edit table
- Draw arrows
- Drawing arrows between the variables
- Tutorial: Drawing arrows between nodes
- Draw arrows between modules
- To edit a table
- DetermTable
- ProbTable
- Sample
- Mid
- Mean
- Average
- Tutorial videos

Enable comment auto-refresher