This document is published with DOI 10.5281/zenodo.57081.


Simplex projection is an important method for forecasting times series. The aim of this document is to explain how simplex projection work, in terms that are very easy to understand.

This document was created in Rmarkdown the Rmarkdown version on github.

This document is one from a collection of reproductions / explanations.

Why should you care about simplex projection?

One important use of forecasting via simplex projection is distinguishing chaotic time series from ones that are just random noise. This was invented by George Sugihara and Bob May back in 1990, and presented in the article Sugihara, G. & May, R.M. (1990) Nonlinear forecasting as a way of distinguishing chaos from measurement error in time series. Nature, 344, 734–741.

Simplex projection may be very useful for practical forecasting. A closely related method, S-map projection, can make more skillful forecasts of dynamics than even the correct / true mechanistic model (Perretti, C.T., Munch, S.B. & Sugihara, G. (2013) Model-free forecasting outperforms the correct mechanistic model for simulated and experimental data. Proceedings of the National Academy of Sciences of the United States of America, 110, 5253–5257.)

Explanation in the published articles

Published explanations are very clear, and require thinking about a time series in an embedded state space, about nearest neighbours in that state space, and about the projection of a simplex.

The Sugihara and May (1990) article states (the following is modified from the original) The basic idea of simplex forecasting is that even for a chaotic time series, future values may be predicted from the behaviour of similar past values.

From the supplementary information of another article: Simplex projection is a nearest-neighbor forecasting algorithm that involves tracking the forward evolution of nearby points in an embedding (a lagged coordinate state space reconstruction). Thus, similar past events are used to forecast the future, with the important caveat that the dimensionality of the embedding determines what past events are similar (nearby) to the predictee. Hsieh, C., Glaser, S.M., Lucas, A.J. & Sugihara, G. (2005) Distinguishing random environmental fluctuations from ecological catastrophes for the North Pacific Ocean. Nature, 435, 336–340.

If you’ve read that, the full articles, and others, and still don’t have an idea of what is simplex projection, read on. If you want to verify your understanding, read on. If you’re all clear about simplex projection, but think others might not be and you want to help them, then you might read on to see an explanation from a different angle.

Explaining simplex projection

Creating a time series to explain with

As in Sugihara and May (1990) we create chaotic time series (here we use the same model as they did).

Here’s the full time series we’re going to work with. Our goal will be to use simplex projection to predict the last value in the time series (the pink one) from the previous values in the time series (the black ones).

What just happened?

The first step of simplex projection is to find dynamics in the past, that match the dynamics that just happened. What do we mean by the dynamics that just happened?

In the following graph the dynamics of the final four data points in the times series are highlighted in red – this is the dynamics that just happened. (Note that the pink data point (the one we want to predict) has been removed.)