Skip to main content

Module morris

Module morris 

Source
Expand description

Morris’s screening: elementary effects along random one-at-a-time paths through a grid.

Guide: Sensitivity analysis’s Morris screening section.

§The method

Each factor’s range is mapped onto [0, 1] and cut into a grid of p levels, 0, 1/(p − 1), …, 1, with p even. A step is Δ = p / (2 (p − 1)), half the levels. The elementary effect of factor i at a grid point x is

dᵢ(x) = (y(x₁, …, xᵢ + Δ, …, x_k) − y(x)) / Δ

for the points with xᵢ ≤ 1 − Δ. As x runs over the grid these form a finite distribution, Fᵢ, of p^(k−1) · p/2 effects. Its mean μᵢ, the mean of its absolute values μ*ᵢ, and its standard deviation σᵢ say how much the factor matters: a large μ* is an important factor, a large σ one that is nonlinear or acts with others, and a μ* near zero one that can be left at its nominal value. Since x is on [0, 1], dᵢ is in the output’s units per the factor’s whole range: for y = c x_i in physical units, dᵢ = c (high − low).

A path (Morris’s trajectory) is k + 1 points: a random start, then each factor stepped once by ±Δ, in a random order. Each step gives one elementary effect, so r paths give r effects of each factor from r (k + 1) runs. Morris’s construction (his matrix B*, p. 164) draws the start’s coordinates from the levels 0, …, 1 − Δ, a sign for each factor, and an order; a factor whose sign is negative starts Δ higher and steps down. Each effect is then drawn uniformly from Fᵢ (Morris, p. 164), so the means of the r effects estimate μᵢ, μ*ᵢ and σᵢ, with a sampling error that falls as 1/√r (ElementaryEffects).

M. D. Morris, “Factorial sampling plans for preliminary computational experiments”, Technometrics 33(2), 161–174, 1991, https://doi.org/10.2307/1269043, defines the effects (his eq. (1), p. 163), the grid, Δ and the paths. F. Campolongo, J. Cariboni and A. Saltelli, “An effective screening design for sensitivity analysis of large models”, Environmental Modeling & Software 22, 1509–1518, 2007, https://doi.org/10.1016/j.envsoft.2006.10.004, add μ*, which doesn’t let effects of opposite signs cancel (pp. 1511–1512), and find, by experiment rather than proof, that it ranks factors as the total Sobol’ index does (p. 1517). Not always. A step is about half the range, so it misses a response that repeats over about half the range: on Ishigami’s function (on [−π, π]) a step of x₂ is pπ/(p − 1), near the period π of sin² x₂. At four levels μ* puts x₂ first (7.875 against 7.704 for x₁), the total index x₁ (0.558 against 0.442); at six or more, μ* puts x₂ last (2.687 at six levels), though its first-order index is the largest.

Morris::population computes Fᵢ’s three moments exactly, by running the model at every grid point: the numbers the paths estimate, for a model cheap enough to run p^k times.

Structs§

ElementaryEffects
A factor’s elementary effects: from a screening’s paths (MorrisDesign::analyze), or all of them on the grid (Morris::population).
Morris
A Morris screening: the factors, the grid’s number of levels and the number of paths. It serializes as its fields, and reads back through Morris::new’s checks.
MorrisDesign
The points of a Morris screening, path after path, each path’s k + 1 points in order. It is not serialized: Morris::design rebuilds it, bit for bit, from the screening and its seed.
Path
One path: where it starts on the grid, and which way and in which order its factors step.
Screening
What a Morris screening found: each factor’s effects, in the factors’ order.

Constants§

MAX_LEVELS
The most levels a grid may have: far more than a screening uses (the guide suggests 4).
MAX_POPULATION_POINTS
The most grid points Morris::population will run the model at.