Chapter 9 · Error growth beyond the linear regime
Overview
Chapter 7 measured and turned it into a doubling time; chapter 8 turned it into an exchange rate of 3.8 days per decimal digit of initial precision. Both assume the error stays small enough for the tangent linear approximation to hold.
A real forecast error does not. It grows exponentially for a while and then stops, because a forecast cannot be more wrong than a randomly chosen state of the attractor. So the exponential picture describes the beginning of a forecast’s life, and the part that decides when to stop using it is the part the exponential picture does not describe.
Lorenz’s logistic model adds one term:
This chapter asks whether it works, and finds three separate traps — one in the statistics, one in the fitting, one in the model. All three are measured, and all three were found the hard way while writing the chapter.
The model
The measurements are twin experiments: perturb by , integrate both copies, and
average the error over 1024 starting points on the Lorenz 63 attractor (256 for
Lorenz 96), at five amplitudes four decades apart. chaoslib.errorgrowth supplies the
model, the fit, and the saturation level.
Integrating the ensemble is knob-free and expensive; fitting a model to the resulting curve is microseconds. So the curves are precomputed and the notebook’s controls change the model, not the data — the reader is not allowed to move the measurement.
What the curve looks like
Five curves, each a hundred times smaller at than the one above, run parallel while the error is small — a factor in is a shift in time, which is what exponential growth means — then bend over and converge. Within about ten time units they are indistinguishable: nothing about the initial error survives.
The logarithmic exchange rate does carry into the nonlinear regime. Each extra digit of initial accuracy buys close to of lead time even though most of the curve is not exponential, which is not obvious and is worth knowing — it is what lets chapter 20’s operational measurement agree with a calculation done in the infinitesimal limit.
One feature that looks like a bug and is not: the mean error curve is non-monotonic. It falls back for stretches on the approach to saturation, and that survives 1024 members, so it belongs to the attractor. In Lorenz 63 it is the two lobes — a pair of trajectories on opposite wings are far apart, and the distance shrinks again when they land on the same wing.
Three traps
Fitting in the wrong space. curve_fit minimises squared residuals in , and the
curve spans ten orders of magnitude in — so the handful of points near saturation
outweigh the entire exponential phase, and comes out of a fit that never looked
at the phase that defines it. On the shipped Lorenz 63 curve, against an early-time rate
of 0.921: log-space fitting returns and ;
linear-space returns 0.748 and — 19% out in the rate and fiftyfold
in the amplitude, while producing a curve that looks entirely convincing on a linear
plot. The log fit is also stable across seeds (0.920, 0.919, 0.921) where the linear one
is not (0.716, 0.748, 0.722). fit_logistic_error_growth now fits in log space by
default.
Mixing two saturation statistics. An ensemble-mean error curve must be compared
against the mean pair distance, not the RMS one. By Jensen the mean is smaller, and how
much smaller depends on the attractor: 0.889 for Lorenz 63, whose two lobes broaden
the distribution of pair distances, against 0.995 for Lorenz 96, where distances
concentrate in forty dimensions. Compare a mean curve against an RMS saturation and it
appears to stop growing at 89% of saturation — which then shows up as a spurious
12-percentage-point error in the model’s shape. On the first pass through this chapter
Lorenz 63 came out 19% from logistic; matching the statistics moved it to 2.7%, and the
12 points were mine. saturation_level now takes a statistic argument.
There is an exact identity worth checking any implementation against: for independent draws, , so the RMS saturation is exactly times the RMS spread about the mean — verified to .
The model’s form. Rearranged, the model says : a straight line in with slope-to-intercept ratio exactly . That is a fitting-free test, and it gives for Lorenz 63 — a 2.7% deviation, a good result for a one-parameter closure and why the model has lasted — but for Lorenz 96, off by 17%. The reason is in chapter 11: Lorenz 96 has thirteen positive exponents spanning 0.03 to 1.67, so its error is a superposition of components growing at different rates and saturating at different times, and one cannot represent that. Chapter 12 makes the same point from the other end.
Note also that the fitted intercept is not : 0.797 against 0.906 for Lorenz 63, and 1.236 against 1.67 for Lorenz 96. Fitted over the nonlinear range, the logistic that best describes it is smaller than the infinitesimal growth rate. They are different quantities, and which one a paper means is worth checking.
The doubling time is a function of amplitude
Since falls as grows, the doubling time is a property of the system and the amplitude you measured it at. For Lorenz 63 it runs from MTU at infinitesimal amplitude to roughly four times that by 70% of saturation.
The operational consequence runs in a direction worth care. A doubling time measured from real forecasts is measured from errors that are already large, so it is longer than , and extrapolating it backwards underestimates how fast small errors grow. Using to extrapolate forwards overestimates growth at large error and so underestimates the useful horizon. Both mistakes are available, they point opposite ways, and neither is detectable from a single number — which is why chapter 13 cannot simply quote a .
Exercises
Analytic. Show that the time for the logistic model to reach a fraction of saturation exceeds the pure-exponential estimate by , and evaluate it at and .
Computational. Fit the same curve in linear and log space and reproduce the two values. Then explain the difference from the fact that least squares on weights each point by .
Exploratory. Before looking, decide which of Lorenz 63 and Lorenz 96 should be worse described by a one- model, using their Lyapunov spectra from chapters 7 and 11. Then check against the slope-to-intercept test.
Further reading
- Lorenz, E. N. (1982). Atmospheric predictability experiments with a large numerical model. Tellus, 34, 505–513.
- Lorenz, E. N. (1969). The predictability of a flow which possesses many scales of motion. Tellus, 21, 289–307.
- Palmer, T. and Hagedorn, R., eds. (2006). Predictability of Weather and Climate, ch. 3 [citation needed: pages].