California Investment Network

Recent Blog

Pitching Help Desk


"Thank you very much for the extra input with my Restaurant/Nightclub proposal. I already have a couple investors who are requesting more info, and that's less than 24hrs after submitting the proposal to you. I am very pleased."
Rodrick Agcaoili

 BLOG >> Recent

Devil is in the Details [Decision Trees
Posted on September 10, 2013 @ 04:25:00 AM by Paul Meagher

In my previous blog, I showed how to construct a nice decision tree for a decision about how much nitrogen to apply to a crop. In this blog, I want to advance our thinking about decision trees in two ways:

  1. Show how expected returns can be calculated using PHP.
  2. Discuss the issue of how detailed we should get when constructing a decision tree.

Computing Expected Return

In my blog titled Computing Expected Values I referred you to a video tutorial on how to calculate expected values. In this blog, I will implement that calculation in a PHP script. Implementing the calculation programmatically allows us to see what types of data structures need to be defined and how they looped over in order to compute expected returns. We need a data structure to represent our actions (i.e., a $nitrogen array), our events (i.e., a $weather), our outcomes (i.e., a $payoffs matrix), and to store the expected returns that are computed for each action option (i.e., an $EV array). With these basic elements in place we can compute our expected values in a straightforward manner as illustrated in the code below:

* @author Paul Meagher
* @modified Sept 10/2013
* @purpose Compute expected return on nitrogen application amounts

$nitrogen['lo']= 100;
$nitrogen['med'] = 160;
$nitrogen['hi'] = 220;

$weather['good'] = .2;
$weather['ave']  = .5;
$weather['poor'] = .3;

$payoffs['lo']['good'] = 8000;
$payoffs['lo']['ave']  = 7000;
$payoffs['lo']['poor'] = 6000;

$payoffs['med']['good'] = 9000;
$payoffs['med']['ave']  = 8000;
$payoffs['med']['poor'] = 7000;

$payoffs['hi']['good'] = 10000;
$payoffs['hi']['ave']  = 9000;
$payoffs['hi']['poor'] = 8000;

$weather AS $type=>$prob) {
$nitrogen AS $level=>$amount) {
$EV[$level] += $payoffs[$level][$type] * $prob;


The output of this script looks like this:

    [lo] => 6900
    [med] => 7900
    [hi] => 8900

These are the expected returns for low, medium, and high levels of nitrogen application and correspond to the expect returns that appeared in the decision tree appearing in my last blog.

Levels of Detail

The decision tree we have constructed to represent a nitrogen application decision is vague in many of its details and, as such, would be difficult to use for the purposes of making an actual decision about whether to apply nitrogen or not.

Our biggest omission is to just talk about an "expected return" without talking specifically about whether this is expected revenue, expected profit, or expected utility. If our payoffs are expected revenue amounts then our decision tree is not going to be that useful because it hides the costs involved. For this reason, the expected profit would be a better value to compute as our "payoffs" rather than expected revenues. Theoretically, an even better value to compute would be the expected utility associated with each action option but that is a tricky value to compute because it depends on subjective factors and more complex formulas. For this reason, we can be satisfied if we can at least compute expected profits for each decision option.

Another omission in our decision tree is any discussion of the costs associated with each proposed action. In order to compute such costs we must get detailed about the when, where, and how of applying nitrogen. We also need to estimate the price of nitrogen at the time of application. If we have already purchased our nitrogen then this would simplify our calculations. Other costs include the cost of fuel to apply our nitrogen. We also need to be specific about what crop we are applying our nitrogen to. In order to compute expected profits we would need to compute some other costs associated with planting, cultivating, and harvesting the crop per acre so that these can be subtracted from the overall revenue generated to compute our expected profits.

Our nitrogen application decision is impacted by weather which we have characterized as poor, average, or good. This is also not very precise and would need to be specified in more detail. Weather could specifically mean rainfall amounts in the spring phase of the year.

Once we get very specific about costs and what our variables specifically refer to, then our decision tree would provide better guidance on how to act. The visual depiction of a decision as a decision tree helps to organize our research efforts but it omits much of the research work that will have gone into making the decision tree useful and realistic.




 Agriculture [70]
 Bayesian Inference [14]
 Books [15]
 Business Models [24]
 Causal Inference [2]
 Creativity [7]
 Decision Making [15]
 Decision Trees [8]
 Design [36]
 Eco-Green [4]
 Economics [11]
 Education [10]
 Energy [0]
 Entrepreneurship [59]
 Events [2]
 Farming [20]
 Finance [25]
 Future [15]
 Growth [18]
 Investing [24]
 Lean Startup [10]
 Leisure [5]
 Lens Model [9]
 Making [1]
 Management [9]
 Motivation [3]
 Nature [22]
 Patents & Trademarks [1]
 Permaculture [34]
 Psychology [1]
 Real Estate [2]
 Robots [1]
 Selling [11]
 Site News [14]
 Startups [12]
 Statistics [3]
 Systems Thinking [3]
 Trends [7]
 Useful Links [3]
 Valuation [1]
 Venture Capital [5]
 Video [2]
 Writing [2]