Sensitivity analysis

Imagine that you have a process with a complicated formula. For instance, we model a piece of land used for growing wheat. This piece of land is a square with a specified length: length = 500 m. Only a fraction this land is actually used to grow the crop: area_usage = 0.95 u. And, finally, the farming technology is characterized by yield = 300 kg / 10000 m2. Say you want to assess the unitary impact, in terms of land use, of the wheat so produced. One could write something like that:

process p {
    params {
        length = 500 m
        area_usage = 0.95 u
        yield = 300 kg / 10000 m2
    }
    products {
        1 kg wheat
    }
    variables {
       area = length^2.0 
       crop_area = area_usage * area
       ratio = yield / 1 kg
    }
    impacts {
         area / (ratio * crop_area ) LU
    }
}

Assessing this process yields the following results

ItemQuantityUnitLU [m2]
wheat1kg35

Now, what happens if the yield increases by 1%? or the length, or area_usage? If we develop the formula, the unitary impact is 1 kg / (yield * area_usage). Therefore, we should expect the following behaviour:

  • Increasing length by 1% should not influence the unitary impact. The sensitivity coefficient is 0.
  • Increasing yield by 1% should decrease the unitary impact by 1%. The sensitivity coefficient is -1.
  • Increasing area_usage by 1% should decrease the unitary impact by 1%. The sensitivity coefficient is -1.

Of course, the analytic formula of an impact is not easy to derive. The next sections presents two ways to compute numerical approximations of these sensitivity coefficients.

Manual approach

Of course, one way to do it is to manually vary the parameter value. For instance,

process p_vary_yield {
    params {
        length = 500 m
        area_usage = 0.95 u
        yield = (300 kg / 10000 m2) * 1.01 u
    }
    products {
        1 kg wheat
    }
    variables {
        area = length^2.0
        crop_area = area_usage * area
        ratio = yield / 1 kg
    }
    impacts {
        area / (ratio * crop_area ) LU
    }
}

Assessing this process yields

itemquantityunitlu [m2]
wheat1kg34.7

Therefore, the variation of the unitary impact is 34.7/35 - 1, that is about -1 %. In other words, the sensitivity coefficient is -1.

However, repeating this procedure for every parameter is cumbersome, especially if you have lots of parameters.

Direct approach

Click on the icon for the process p. You should see an action named Analyze sensitivity. Clicking on it yields the following table

nameamountunitLU
length500m-2.32e-16
area_usage0.95u-1
yield0.03kg.m2⁻¹-1

This table displays the sensitivity coefficients the impact with respect to each parameter. It is found indeed that the sensitivity coefficients of area_usage and yield equal -1. The sensitivity coefficient of length, however, is very small, but not exactly zero (you may even see a different value). This is because these results are numerical approximations.