Philip 2020 - Trend Models and Natural Variability

Summary

Non-stationarity is introduced by making distribution parameters functions of a covariate: the 4-year smoothed global mean surface temperature anomaly . Temperature: the distribution shifts (, ). Precipitation and wind: it scales (, ), constant dispersion (index-flood assumption). Evaluate at and to get and . Natural modes (ENSO, AMO) can be regressed out.

Overview

Covariate choice: smoothed GMST is used because (i) smoothing removes ENSO fluctuations that would contaminate the global warming fingerprint, (ii) CO concentration or radiative forcing give nearly the same result ( for annual means), (iii) a linear time trend misses the non-linear forcing increase and depends strongly on start date, (iv) non-parametric trend tests like Mann-Kendall ignore the time evolution of the climate signal.

Main Content

Shift fit

For a temperature event assume the trend shifts with GMST: , , constant; is fitted jointly with . Intensity change independent of event magnitude: . varies strongly with magnitude for heat events. Significance: a one- or two-sided 95% CI for excluding zero.

Scale fit

For precipitation, drought, wind: , , so (the dispersion parameter) is constant - reducing the parameter count and justified by the index-flood assumption in hydrology (Hanel et al. 2009), tested with large ensembles (Otto et al. 2018a; Philip et al. 2018b). Exponential dependence mirrors Clausius-Clapeyron (Allen and Ingram 2002; Lenderink and van Meijgaard 2008). Relative change: percent.

Shift and scale fit (both relaxed): two trend parameters, larger uncertainty (Risser and Wehner 2017).

Probability ratios are obtained by inverting the covariate-dependent function: evaluate the distribution for year (past) and (present), , return periods ; bootstrap CIs; if the CI of excludes 1 the climates differ significantly.

Worked examples from the paper

EventModelResult
Peru JJA 2013 cold wave (min temperature; CRU TS4.00)Normal shifting with GMST (GPD fits also good)return period 17 y (95% CI 7-75); (0.02-0.21): 4 to 50 times more often before warming
De Bilt 2018 highest daily mean temperature (29.7 C; record broken by 1.6 C)GEV shifting with GMST, 1901-2017trend 2-4 x GMST; return period roughly 300 y (95% CI > 30 y); event above the 1900 upper limit so formally impossible, - stated as “extremely unlikely around 1900”
Southern Louisiana August 2016, 3-day precipitation (19 stations >= 80 y, >= 0.5 deg apart)GEV scaling with GMST; bootstrap in blocks of cross-correlated stations (average 2.3 stations, ~8 d.o.f.)return period ~500 y (360-1400); (1.7-3.8); intensity +17% (10-21%)

Natural variability (4.4)

ENSO influences temperature and precipitation but not everywhere (weak in Europe). Quantify with lagged correlation of Nino3.4. Philip et al. (2018c) Ethiopia 2015 drought: remove the ENSO effect (regression slope of Nino3.4 on log precipitation) from 2015 only; return period few hundred years (lowest estimate 60 y) became 80 y (lowest 20 y) under ENSO-neutral conditions - “less severe but still exceptional”. Decadal variability can mask the trend; if a known index (AMO) correlates strongly and physically, regress it out; residual autocorrelation absent means trend detection is valid (van Oldenborgh et al. 2016a, polar winter temperatures vs AMO). Murakami et al. (2015): El Nino and decadal variability interplayed with anthropogenic forcing in the 2014 Hawaii tropical cyclone season.

Examples

Python: scale-fit log-likelihood for a GEV with covariate (maximum likelihood)

import numpy as np
from scipy import stats, optimize
def nll(par, x, T):
    mu0, log_s0, alpha, xi = par
    mu = mu0 * np.exp(alpha * T / mu0)               # scale fit
    sig = np.exp(log_s0) * np.exp(alpha * T / mu0)
    if abs(xi) > 0.4: return 1e12                    # |xi|<=0.4 penalty
    return -stats.genextreme.logpdf(x, -xi, loc=mu, scale=sig).sum()
rng = np.random.default_rng(1); T = np.linspace(0, 1.2, 70)
g = np.exp(3.0 * T / 50)                              # true alpha = 3.0, mu0 = 50, sigma0 = 6

x = stats.genextreme.rvs(0.05, loc=50 * g, scale=6 * g, size=70, random_state=rng) # scipy c = -xi

fit = optimize.minimize(nll, [x.mean(), np.log(x.std()), 0.5, -0.05], args=(x, T), method=“Nelder-Mead”) print(fit.x)

Connections

Philip 2020 - Bayesian GEV Attribution in PyMC places priors on . Linear-trend time-series analogues: Local Linear Trend and Seasonality.

See Also

Philip 2020 - Extreme Event Attribution Protocol - Overview