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§
- Elementary
Effects - 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. - Morris
Design - The points of a Morris screening, path after path, each path’s
k + 1points in order. It is not serialized:Morris::designrebuilds 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::populationwill run the model at.