ENSOCast v2

Last month I wrote an article about my preliminary attempts to use neural nets to make ENSO predictions. The first iteration of the model was a pretty simple LSTM which used the past six months of the SST 3.4 time series to make predictions for the next year. The results weren’t bad, but they weren’t outstanding either. I encourage you to take a look at the post and at the website with the first model before continuing on.

Today I’m introducing ENSOCast v2. It’s a small and logical iteration from v1 that introduces an external predictor: trade winds. Normally, the trade winds in the central Pacific run from east to west in the low levels. [This is primarily because the Pacific Warm Pool (just east of Indonesia) creates an area of semi-permanent low-pressure relative to the higher pressure of the eastern Pacific. Air travels from high to low pressure, which results in easterly trade winds.] A relaxation of those winds, and sometimes even a complete reversal, is often a clear indication of an El Niño.

So let’s see what happens when I add the trade winds predictor averaged over the western equatorial Pacific to the model. I’m using the past three months of the SST 3.4 index as a predictor in addition to the past three months of the trade winds index. (Somewhere during my testing this month I determined that 3 month windows do a better job than 6 month windows.)

Version 2 is on left, Version 1 is on right.

For the first four months, v2 performs better than v1. Things become a bit dicier by t=5 as the RMSE in v1 is better than in v2, despite the correlations being better in v2 than v1. However, I’d argue that the sign and trend of the SST index is more important than its actual value, so I’d chalk up the win to v2.

If this were my day job, I’d have done a cross-correlation plot showing the correlation of trades with SST 3.4 as a function of time before doing this. I suspect there’s a peak around t=2–4 months and then a sharp drop off after than. I’d also have tested and validated against more data (perhaps from a climate model) and more carefully tested the neural net (i.e., what’s the relationship between # of neurons and RMSE?). Unfortunately, there are only so many hours in a day, so these will remain on my to-do list (see below).

The real-time forecasts from this version are different as well. Version 2 shows a much more gradual trend towards El Niño conditions than version 1, a crucial distinction that could have significant impacts on the upcoming winter.

Version 2 on left, Version 1 on right.

So, what’s left to try for version 3? Well, here’s my to-do list:

  • Test sub-surface predictors (e.g.: 20°C isotherm depth).
  • Test the impacts of using d(index)/dt instead of just the index values.
  • Cross-correlation plots would probably be beneficial.
  • Careful analyses to determine optimal parameters: training window length, number of neurons, epochs, and dropout values.

Also, I plan to keep all the versions of the model active on my website in real-time so that we can compare them as I test and add features.

You can always view the latest model at https://www.KyleMacRitchie.com/ENSO.