Modelleren kun je leren! 7 Gouden Regels uit de praktijk

1. Begin met een plan

Zodra je data hebt ga je gewoon coderen en je ziet wel waar je uitkomt. Zeer begrijpelijk, doe ik ook. Sommigen presteren het zelfs om al te gaan coderen zonder dat er data is. Toch is dit, hoe begrijpelijk ook, geen best practice. Een financieel risico model vereist ook draagvlak in de organisatie, bij gebruikers, de risk managers, het management. De tip is dus om eerst (kort en bondig) op papier te zetten waar het model voor dient, welke inputs het gebruikt, hoe het gaat werken, en welke prestatievereisten worden opgelegd aan het model. Van belang is ook waar de data vandaan komt en hoe deze wordt geschoond. Is soms wel 90% van de inspanning, terwijl slechts 10% van de tijd aan het echte modelleren wordt besteed. Verspreid zo’n ontwikkelplan en 10 tegen 1 dat je er feedback op krijgt waardoor er toch dingen anders moeten.

2. Fit modellen aan het verleden, toets ze aan de toekomst

Basel II modellen worden doorgaans met een historie van 5 à 7 jaar geschat. Dit wordt geacht ongeveer één complete conjuncturele cyclus te bevatten. We zien ook regelmatig dat langetermijn waardes over grotere tijdspannes worden geschat, bijvoorbeeld een Long Term Average PD die wordt berekend over de afgelopen 20 jaar. Een extreem lange historie is gebruikt door CEIOPS om de Ultimate Forward Rate vast te stellen: ruim 100 jaar. Twee vragen zijn hierbij aan de orde:

  • Regime relevance, ofwel is de historie waarop we het model ijken relevant voor de (naaste) toekomst?
  • Is het handig om te wegen? Het is soms verstandig om recente waarnemingen zwaarder mee te wegen dan waarnemingen verder terug in de tijd. Voor bijvoorbeeld rentemodellen kun je een gewicht vaststellen met behulp van een exponentieel decay model. Wel heb je meteen een lastige discussie: hoe calibreer je de decay parameter, de snelheid waarin je het verleden tot minder relevant bestempelt?

3. Doe altijd een out-of-sample test en gebruik meerdere prestatievereisten

Splits meteen de beschikbare data op in een ontwikkelset en een testset. Er zijn softwareprogramma’s die dit keurig voor je kunnen doen, met allerlei toegevoegde trucs. Eén zo’n truc kan zijn om voor je PD model een set samen te stellen met meer defaults dan in de realiteit. Hiermee kun je makkelijker een model schatten dat puur is gericht op het onderscheidend vermogen. Het is ook altijd handig om meerdere prestatiemaatstaven te berekenen. Gini en Area under the Curve zijn tot elkaar te herleiden, maar Gini en goodness-of-fit maatstaven kunnen elkaar prima tegenspreken. Welk model kies je? Vaak ontstaat in de praktijk ook de vraag of er absolute grenzen zijn voor de Area under the Curve. Ik vind dit lijstje handig (toegegeven: het komt uit de medische diagnostiek en niet uit de finance):

  • .90-1 = excellent (A)
  • .80-.90 = good (B)
  • .70-.80 = fair (C)
  • .60-.70 = poor (D)
  • .50-.60 = fail (F)

Het belang van out-of-sample tests kan niet genoeg worden benadrukt. Mooi trading algo gevonden dat de markt verslaat? Mooi, maar werkt het ook out-of-sample?

4. Experts zijn ook maar mensen

En dus hebben zij ook last van framing en recency bias en follow the leader en alle andere psychologische verschijnselen die iedereen heeft. Tip: laat de expert zijn oordeel geven en confronteer hem pas daarna met modeluitkomsten. Geeft de expert aan dat betalingshistorie voor bepaalde klanten helemaal niet van belang is, terwijl dat wel uit de data blijkt, dan start daar een interessante discussie (framing). Experts laten zich ook leiden door recency bias: net een fiks verlies geleden op een institutionele klant? Dan moeten de PD’s daarvan maar eens flink omhoog. En zet bij voorkeur experts niet bij elkaar in een vergaderruimte voor een open discussie. Veel kans dat er een opinieleider tussen zit die door de anderen wordt gevolgd (follow the leader).

5. Complexiteit: less is more

De druk om modellen beter voorspellend te maken moet soms wijken voor de druk om modellen te vereenvoudigen. Het samenvoegen van tientallen PD- en LGD-modellen tot 5 of 6 modellen kan – indien goed uitgevoerd – een erg prettige exercitie zijn. Het maakt het onderhoud en gebruik van de modellen een stuk beter te beheersen en de kans op fouten wordt verkleind. Maar het gaat absoluut ten koste van de voorspelkracht, er is immers minder ruimte voor specifieke modellering. Hier het juiste evenwicht in vinden levert altijd complexe discussies op. (Het begint dus met nog meer complexiteit…) Ik ben zelf ook altijd voorstander van code die goed te snappen is, zelfs als deze bij de executie misschien wat meer tijd nodig heeft dan de meer onleesbare code. Dit speelt met name bij simulatie en bij optimalisatieroutines. Heb zelf een keer standaard statistische dichtheidsfuncties gebruikt bij het maximeren van de log likelihood functie, waardoor het vinden van de beste parameters langer duurde, maar de code wel veel beter leesbaar is (en minder foutgevoelig). Overigens is lang niet iedereen het eens met deze Gouden Regel, maar dat geldt voor alle Gouden Regels…

6. Anticipeer op gebruik van het model in de praktijk

Ga altijd na of er sprake kan zijn van gaming the system. Bevat een model bijvoorbeeld gunstige verstekwaardes als bepaalde inputs niet door de gebruiker worden ingevoerd, dan is dat niet bevorderlijk voor de datakwaliteit, met name de vulgraad. Beter is dan om een penalty te zetten op een missend data-element.

7. Laat de zaak netjes achter

Iedereen weet hoe moeilijk het is om je eigen code na een jaar (wat zeg ik: na een maand!) nog eens terug te lezen. Ontwikkel en documenteer code altijd met in het achterhoofd dat anderen het ook nog moeten snappen. Hoewel een waarheid als een koe, wordt hier in de praktijk veelvuldig tegen gezondigd.

 

Zie ook:

Quants, het zijn net mensen

Advertenties

Over Folpmers
Financial Risk Management consultant, manager van een FRM consulting department, bijzonder hoogleraar FRM

One Response to Modelleren kun je leren! 7 Gouden Regels uit de praktijk

  1. Pingback: Quants, het zijn net mensen « Folpmers

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s