Fijnmazige modellen: 7-daagse analyse

Bericht van: Kevin (Almere) , 01-08-2019 14:38 

Eind vorige maand had ik het over de nauwkeurigheid van de fijnmazige modellen voor de hitteperiode dinsdag - donderdag, wanneer ze 24 uur verder kijken: dus het inschatten van de Tx van morgen. Hier is een link naar dat bericht. Helaas zijn dergelijke kaartjes van de fijnmazige modellen niet ergens op internet bewaard, in ieder geval niet op een plek waar ik bij kan. Het viel me altijd al op dat elk model specifieke krachten en zwaktes heeft. Sommige zijn beter in het inschatten van neerslag, andere doen het beter met bodemvocht. Al met al lijkt dit te zeggen dat een specifieke combinatie van de fijnmazige modellen beter hoort te scoren dan slechts één van de modellen. Daar ben ik dus naar gaan kijken. Van een 7-daagse periode heb ik van elke dag de 12z runs van de fijnmazige modellen gebruikt om de temperatuur van de dag erop in te schatten. Ik begrijp dat deze 7-daagse periode nog veel te kort is om een definitief model te hebben, maar dit is eerder om de methode uit te leggen en de resultaten tot nu toe te laten zien. Ik zal later verdere updates geven door op dit originele bericht te beantwoorden en hopelijk komt er uiteindelijk een mooi resultaat uit voort.

Ik heb besloten 3 verschillende methodes uit te proberen en ik zal ze een voor een behandelen:

1. Een least squares solution

2. Een non-negative least squares solution

3. Een verschuiving en weging van elk weermodel aan de hand van de bias en de spreiding

1. Least squares solution

Een least-squares solution geeft een gewicht aan elk weermodel met de voorwaarde dat de totale som van residuals in het kwadraat het kleinst is. Dit heb ik berekend met python (numpy package). Door het in python in te vullen, kan ik het later ook erg gemakkelijk updaten. Het nadeel van deze methode is dat sommige modellen een negatief gewicht kunnen krijgen, wat inhoudt dat hoe warmer ze de temperatuur aangeven, hoe lager de verwachting is. De modellen met deze negatieve gewichten zijn de meest onnauwkeurige modellen. De reden voor deze negatieve gewichten is dat het een soort compensatie is voor extreme temperaturen, maar het voelt toch een beetje contra-intuïtief. 

2. Non-negative least squares solution

Eigenlijk hetzelfde als methode 2, maar zoals de naam al zegt gebruikt deze methode geen negatieve gewichten en is dat probleem opgelost. Het nadeel hier is dat sommige modellen volledig worden genegeerd en een weging van 0 hebben. Dit zijn de modellen die bij de normale least squares solutions de negatieve gewichten hadden. De non-negative least squares solution is ook te berekenen in python, door scipy te gebruiken.

3. Bias en spreiding

De 3e methode is duidelijk anders dan de eerste 2. Hierbij bereken ik voor elk weermodel wat de gemiddelde afwijking van de echte temperatuur is en wat de spreiding rondom die waarde is (= standaardafwijking). Dan maak ik in principe van elke verdeling een 'normale verdeling' en deel ik natuurlijk nog door het totaal aan gewichten. De formule om dan de temperatuur te berekenen is:

T_pred = Σ 1/(spreiding_model_n) * Σ (T_model_n - afwijking_rmodel_n)/(spreiding_model_n)

Deze formule corrigeert voor de afwijking. Daarnaast geldt dat hoe kleiner de spreiding is, hoe meer gewicht er aan het model wordt gegeven.

Resultaten

Wat heeft dit tot nu toe allemaal opgeleverd? Ten eerste kan ik wat dingen zeggen over de modellen. WRF zit gemiddeld 3.1 graden te laag en heeft ook na correctie niet een hoge nauwkeurigheid voor De Bilt. Voor de Tx in heel Nederland is de gecorrigeerde WRF echter vrij goed. COSMO zit 0.5 graden te hoog en goed voor de Tx in De Bilt en zeer goed voor de Tx in Nederland. HIRLAM zit gemiddeld 0.7 graden te laag en scoort slecht voor de Tx in De Bilt, oké voor de Tx in Nederland. HARMONIE36 zit 0.5 graden te laag en scoort slecht voor De Bilt en Nederland. AROME zit 0.6 graden te laag en scoort zeer goed voor zowel De Bilt als Nederland. ALARO heeft geen duidelijke bias en scoort ook zeer goed voor zowel De Bilt als Nederland. Al met al kan ik (natuurlijk alleen gebaseerd op deze 7-daagse periode), zeggen dat COSMO, AROME en ALARO de duidelijke uitblinkers zijn. Na correctie is WRF ook redelijk, maar HIRLAM en vooral HARMONIE36 doen het de afgelopen tijd niet goed. Dit zal vanzelfsprekend nog een beetje verschuiven met meer data en dat zal ik in mijn verdere berichtgeving dan ook aangeven. Maar ik merkte ook al eerder op COSMO en ALARO qua temperatuur vrij goede modellen zijn. Wanneer ik meer data heb, zal ik hier ook een tabel bijzetten met de performance van de modellen, maar het voelt nu nog een beetje oneerlijk om na 7 dagen al een definitieve tabel te maken waarin ik zeg welke modellen goed zijn en welke er niks van bakken.

Nu dan eindelijk de resultaten. Door de periode van 7 dagen achteraf te analyseren en vervolgens de 3 modellen te gebruiken kan ik zeer accuraat de temperatuur modelleren. Als je dan ook weer een gewogen least squares combinatie gebruikt van de 3 methodes wordt alles nog beter. Van de periode van 7 dagen kan ik een verwachting maken zonder bias en met een standaarddeviatie van 0.30 graden. Dat betekent dat de Tx in 68% van de gevallen binnen 0.3 graden van de verwachte Tx ligt en in 95% binnen 0.6 graden ligt. Hieronder de vergelijking tussen de echte Tx en verwachte Tx waarden:

Dag Tx De Bilt Tx De Bilt verwachting Tx Nederland Tx Nederland verwachting
23-jul 31.9 31.5 34.6 34.6
24-jul 36.4 36.5 39.7 39.6
25-jul 37.5 37.8 40.7 40.8
28-jul 24.2 24.1 30.8 30.7
29-jul 25.1 25.4 28.4 27.8
30-jul 27.8 27.6 31.5 31.2
31-jul 21.1 21.4 25.6 25.6

Dit is veel beter dan de nauwkeurigheid van de losse modellen. Gemiddeld ligt de standaarddeviatie van de modellen rond de 1.0 graden. Zelfs het meest accurate model (ALARO) heeft een standaarddeviatie van 0.6 graden over deze periode, 2 keer zo groot als het combinatiemodel. Nu komen natuurlijk de tekortkomingen van het combinatiemodel aan bod. Het is namelijk meestal wel mogelijk om een redelijke benadering te krijgen van 14 getallen (7 dagen, Tx De Bilt en Tx Nederland) door het gebruiken van 6 reeksen aan getallen, dus 6 constanten (= 6 weermodellen). De nauwkeurigheid van het huidige combinatiemodel is wel zeer ruim boven het gemiddelde van een benadering van willekeurige getallen met 6 constanten, maar het punt staat nog steeds dat het feit dat het combinatiemodel deze 7 dagen goed kan beschrijven, niet zegt dat het ook elke willekeurige dag in de toekomst kan beschrijven. De enige manier om dit te bewijzen en te verbeteren is door te wachten op meer data. Ik moet er wel bij zeggen dat het model langzaam begint te stabiliseren, de constanten in de formules veranderen niet meer zo veel. Dit lijkt dus in te houden dat het model langzamerhand naar een stabiele versie gaat. Op basis van de eerste 6 dagen was de verwachte Tx van gisteren 21.5 in De Bilt en 25.3 in Nederland. Uiteindelijk werd het 21.1 en 25.6. Niet perfect dus, maar veel beter dan het gebruiken van één enkel model. De dag ervoor werd de Tx ook vrijwel perfect berekend op basis van de eerste 5 dagen. Dit doet mij geloven dat er wel degelijk een nut is in de methode die ik gebruik. Mogelijk kan ik de data splitsen op weersomstandigheden (hitte-opstoot uit het Zuiden, veel neerslag, kou-inval, westcirculatie etc.) om te kijken of ik dan nog nauwkeurige modellen kan maken voor specifieke weersituaties. Maar de hoeveelheid data die ik daarvoor nodig heb, zal ik nog lang op moeten wachten.

Overzicht nieuwe verwachtingen

De tabel hierboven is na de 7 daagse periode (achteraf gemaakt) als de beste benadering van die periode. De uiteindelijke bedoeling is echter om de Tx van morgen een dag van tevoren te berekenen. Hieronder hou ik een tabel met alle verwachtingen bij. Het getal tussen haakjes is de afwijking met de werkelijke Tx. Zo betekent '-0.3' dat de verwachting 0.3 graden lager was dan de werkelijke Tx. Cursief houdt in dat de Tx van die dag mogelijk nog moet worden gehaald en dat het dus een voorlopige tussenstand is. Perfecte verwachtingen zijn rood gemaakt.

Edit: 3 augustus is de eerste dag dat het model er significant (1.2 graden voor Nederland) naast zat. Ik denk dat dit te maken heeft met het feit dat er gisteren veel neerslag viel en niet elk model daar lokaal even goed opzat. Daarnaast is dit de eerste keer sinds ik dit bijhoud dat er duidelijke wind uit het Noorden komt, wat waarschijnlijk ook iets is waarin de specialiteit van de modellen net iets anders ligt.

Dag Tx De Bilt verwachting Tx Nederland verwachting
1-aug 22.4 (-0.2) 26.2 (+0.3)
2-aug 21.0 (-0.4) 24.3 (=)
3-aug 21.9 (+0.5) 24.3 (+1.2)
4-aug 25.0 (=) 27.5 (+0.3)
5-aug 24.4 (=) 27.1 (-0.3)
6-aug 23.4 (-0.2) 25.4 (=)
7-aug 23.0 (=) 25.7 (-0.4)
8-aug 23.7 (+0.1) 25.9 (-0.3)
9-aug 24.0 (-0.2) 26.8 (+0.2)
10-aug 23.6 (-0.1) 25.8 (-0.4)
11-aug 22.1 (+0.5) 24.2 (=)
12-aug 21.7 (=) 24.9 (-0.1)
13-aug 18.6 (+0.2) 21.5 (-0.2)
14-aug 20.7 (-0.4) 23.0 (-0.5)
15-aug 19.9 (-0.9) 21.9 (-0.7)
16-aug 21.6 (+0.1) 23.8 (+0.4)
17-aug 21.3 (+2.1) 23.3 (+0.6)
18-aug 19.9 (=) 21.8 (-0.5)
19-aug 21.0 (=) 22.5 (-0.7)
20-aug 20.7 (+0.2) 22.5 (-0.2)
21-aug 22.2 (-0.3) 23.6 (+0.5)
22-aug 23.8 (-0.1) 26.1 (-0.3)
23-aug 25.6 (-0.1) 28.0 (+0.4)

 

Bericht laatst bijgewerkt: 23-08-2019 18:34

Fijnmazige modellen: 7-daagse analyse   ( 1409)
Kevin (Almere) -- 01-08-2019 14:38
Welke Harmonie gebruik je?   ( 507)
Andre (Hengelo(O)) -- 01-08-2019 15:09
Harmonie36   ( 560)
Kevin (Almere) -- 01-08-2019 15:16
Zeer interessant onderzoek   ( 617)
Lars (München) ( 530m) -- 01-08-2019 16:29
Re: Zeer interessant onderzoek   ( 531)
Kevin (Almere) -- 01-08-2019 16:49
Re: Zeer interessant onderzoek   ( 507)
Rogier (Wageningen) ( 5m) -- 02-08-2019 13:05
Tussenstand analyse na 14 dagen   ( 576)
Kevin (Almere) -- 07-08-2019 18:08