Tijdreeksvoorspelling (forecasting)

Wat is tijdreeksvoorspelling?

Tijdreeksvoorspelling, in de praktijk bijna altijd forecasting genoemd, schat de toekomstige waarden van iets dat je op vaste momenten meet: verkoop per product per week, je banksaldo op het einde van elke maand, oproepen per uur aan de helpdesk, gepickte stuks per dag in het magazijn, kWh per dag op de meter. Je neemt de historiek van dat ene cijfer, voegt toe wat je al weet over de komende periode, en komt uit op een beste schatting voor de volgende weken of maanden.

Het verschil met het bredere veld van predictive analytics zit in de tijdsas. Een churn-model geeft één klant een score op basis van de data van vandaag. Een forecast volgt één cijfer vooruit in de tijd: volgende week rond de 1.200 bakken, de week erna rond de 1.350 door de hittegolf en het verlengd weekend. Predictive analytics is de paraplu; forecasting is het gereedschap dat de meeste KMO's het eerst nodig hebben, omdat aankoop, personeelsplanning en cashplanning er allemaal op draaien.

Eén ding zet je best meteen goed in je hoofd: een forecast is een verdeling, geen getal. Hyndman en Athanasopoulos, van wie het handboek Forecasting: Principles and Practice het standaardwerk is, zeggen het zonder omwegen: een puntvoorspelling zonder bijhorend voorspellingsinterval is bijna niets waard. Het cijfer in je rapport is het midden van een waaier aan mogelijke toekomsten. Een forecast van 1.200 bakken met een waarschijnlijke marge van 1.050 tot 1.380 is iets waarop je kan bestellen. Een kale 1.200 is een gok met een zelfzeker gezicht.

Waaruit een tijdreeks bestaat

Bijna elke bedrijfsreeks is een optelsom van een paar onderdelen, en je wil weten welke er in de jouwe zitten voor je een methode kiest.

Niveau en trend. Waar de reeks nu staat, en de trage beweging omhoog of omlaag over jaren heen: een groeiend klantenbestand, een product dat uitloopt.

Seizoen. Een terugkerend patroon met een vaste, gekende periode: de dag van de week, de maand van het jaar, het kwartaal. IJs in juli, stookolie in november, maandagpieken aan de helpdesk.

Kalendereffecten. Die lijken op seizoen, maar ze schuiven. In België gaat dat over de tien wettelijke feestdagen (paasmaandag, Hemelvaart en pinkstermaandag vallen elk jaar op een andere datum), het bouwverlof in juli dat hele klantensegmenten drie weken stillegt en per provincie verschilt, de schoolvakanties, en het aantal werkdagen in een maand. Een maart met 23 werkdagen gevolgd door een maart met 20 toont een dip die niets met vraag te maken heeft.

Promoties en externe factoren. Je eigen acties (een prijsverlaging, een folder, een nieuwe listing bij een retailer) en zaken buiten je controle (het weer, een concurrent zonder voorraad). Wat je vooraf kent, kan in de forecast. Wat je pas achteraf kent, kan enkel de fout verklaren.

De rest. Wat overblijft als trend, seizoen en gekende factoren eruit zijn. Een deel daarvan zal je nooit voorspellen, en leren om dat met rust te laten is de helft van het vak.

Welke methode kies je?

Vier families dekken zowat elk KMO-geval. Welke past, hangt af van hoeveel reeksen je hebt, hoe proper ze zijn, en of je factoren hebt om mee te geven.

Naïef en seizoensnaïef. Naïef zegt: volgende week is gelijk aan deze week. Seizoensnaïef zegt: volgende juli is gelijk aan vorige juli, volgende maandag aan vorige maandag. Dat is de basislijn die elke andere methode moet kloppen, en het handboek van Hyndman is duidelijk dat je een nieuwe methode enkel invoert als ze beter doet. Verrassend vaak is seizoensnaïef moeilijk om met veel te kloppen.

Exponential smoothing en ARIMA. De twee klassieke statistische families. Exponential smoothing neemt een gewogen gemiddelde van vorige waarden, waarbij het gewicht afneemt naarmate een meting ouder is, met varianten die trend en seizoen toevoegen (de Holt-Winters-methode). ARIMA modelleert de samenhang tussen een waarde en haar eigen recente verleden. Allebei werken ze reeks per reeks, hebben ze weinig data nodig en geven ze deftige voorspellingsintervallen. Ze zijn de juiste keuze voor een handvol propere reeksen: totale maandomzet, weekuren op één site, een kaspositie.

Gradient-boosted trees met lag-features. Heb je honderden of duizenden verwante reeksen, en factoren die erbij horen, dan schakel je over op een machine learning-opzet. Je bouwt een tabel waarin elke rij één product in één week is, met kolommen voor de verkoop van de vorige weken, dezelfde week vorig jaar, de prijs, een promotievlag, de feestdagvlaggen en de mix van weekdagen. Een boosted-tree-model zoals LightGBM leert dan over alle reeksen tegelijk. Dat is wat de M5-wedstrijd in 2020 won, waar teams 30.490 dagelijkse product-winkelreeksen van Walmart voorspelden: bijna alle top 50-methodes gebruikten LightGBM, en de winnaar klopte de beste exponential smoothing-referentie met 22 procent. De keerzijde: deze opzet vraagt een engineer, een feature-pipeline en iemand die het draaiende houdt.

Foundation models voor tijdreeksen. Sinds 2024 is er een nieuwe familie: modellen die vooraf getraind zijn op enorme verzamelingen tijdreeksen en een nieuwe reeks voorspellen zonder training op jouw data. TimesFM van Google (februari 2024, met TimesFM-3 in augustus 2026) en Chronos van Amazon (maart 2024, met Chronos-2 in oktober 2025) zijn de bekendste. Ze zijn open, draaien op een gewone machine, en de nieuwere versies aanvaarden factoren zoals promoties of feestdagen; Google heeft TimesFM ook als SQL-functie in BigQuery gestoken. Voor veel reeksen en weinig engineeringbudget zijn ze een ernstige optie, maar de benchmarks van de leveranciers zijn publieke onderzoeksdatasets, en je moet het model nog altijd tegen seizoensnaïef testen op je eigen data voor je het vertrouwt.

Tools, enkel als voorbeeld. Power BI zet vanuit het Analytics-paneel een forecast met betrouwbaarheidsband op een lijngrafiek, één reeks per keer: goed voor een maandelijkse omzetgrafiek, meer niet. Azure Machine Learning heeft een AutoML-forecastingjob die naïef, ARIMA, exponential smoothing, Prophet en boosted trees afloopt; in Fabric-notebooks draai je dezelfde Python-bibliotheken, waarvan statsforecast van Nixtla de statistische familie dekt inclusief Croston voor onregelmatige vraag, en Prophet nog vaak gebruikt wordt voor seizoensreeksen met feestdagen al zit het intussen in onderhoudsmodus. Sommige ERP-systemen hebben eigen forecasting aan boord; Business Central heeft een Sales and Inventory Forecast-extensie die per artikel een Azure-dienst aanspreekt.

Seizoensnaïef tegenover een machine learning-forecast

De vergelijking die telt voor een KMO is deze: hoeveel nauwkeurigheid win ik echt op de seizoensnaïeve basislijn, en wat kost het me om die winst in leven te houden?

Wat je wint. In de M5-wedstrijd klopte ongeveer een derde van alle teams seizoensnaïef met hun eindinzending, en minder dan één op tien klopte de beste exponential smoothing-referentie. De winnende boosted-tree-opzet was 22 procent beter dan die referentie. Die cijfers komen van een retailer met promoties, prijzen, kalenderdata en duizenden samenhangende reeksen om over te leren. Met een paar losse reeksen zonder factoren krimpt het verschil tot enkele procentpunten, soms tot niets.

Wat het kost. Seizoensnaïef kost één formule. Exponential smoothing kost één namiddag en een bibliotheek. Een boosted-tree-pipeline kost een feature-tabel die elke week opnieuw gebouwd wordt, een hertrainingsschema, een monitoringjob die forecasts naast realisaties legt, en een mens die merkt wanneer het model stilletjes begint af te wijken na een prijswijziging of een assortimentswissel. Dat onderhoud is de echte prijs. Het loont wanneer de voorraad, de personeelsinzet of de cash groot genoeg is dat een paar punten nauwkeurigheid echt geld waard zijn. Het loont niet voor een reeks waar een foute forecast je een telefoontje kost.

Een praktische regel: laat seizoensnaïef altijd meedraaien naast wat je bouwt. De dag dat het slimme model er niet meer boven zit, heb je iets geleerd.

Hoe meet je een forecast?

Je meet op data die het model niet gezien heeft, met een rollende backtest: doe alsof het januari is, voorspel februari tot april, vergelijk met wat er gebeurde; schuif op naar februari, herhaal. Gewone cross-validation die rijen door elkaar schudt, lekt de toekomst in de trainingsset en geeft je een gevleid cijfer.

MAPE (mean absolute percentage error) is het cijfer waar de meeste zaakvoerders om vragen, omdat het als een percentage leest. Het deelt door de werkelijke waarde, dus bij kleine getallen ontploft het: een product dat 2 stuks verkoopt en op 4 voorspeld was, scoort 100 procent fout, een product dat 2.000 verkoopt en op 2.100 voorspeld was, scoort 5 procent. Voor traagdraaiers en reeksen met nullen is MAPE ondefinieerbaar of betekenisloos.

MAE (mean absolute error) blijft in eenheden, bakken of euro's, en gaat niet door het dak. Het is het betere cijfer om een magazijn op te sturen, want 40 bakken te veel is een kost waar je een prijs op kan plakken.

Bias is de gemiddelde fout mét teken. Een forecast kan een behoorlijke MAPE hebben en toch elke week 8 procent te hoog zitten, en dan loopt je magazijn vol. Kijk naar het teken, niet alleen naar de grootte.

Altijd tegenover de basislijn. Welke maatstaf je ook rapporteert, zet het seizoensnaïeve cijfer ernaast. Een geschaalde fout zoals MASE doet dat in één getal: onder 1 betekent dat je naïef klopt. Hetzelfde idee zit achter forecast value added, een praktijk die Michael Gilliland bij demand planners heeft binnengebracht: meet elke stap in je proces (statistische forecast, aanpassing door de planner, correctie door de verkoop) tegenover de naïeve forecast en tegenover de vorige stap, en schrap de stappen die het cijfer slechter maken. Het is de enige manier om te weten of de aanpassing van de planner helpt of schaadt.

Horizon, detailniveau en de planningslus

Twee keuzes bepalen al de rest. De horizon is hoe ver vooruit je het cijfer nodig hebt: drie weken om een bestelling te plaatsen, drie maanden om personeel te plannen, twaalf maanden voor een budget. Het detailniveau is hoe fijn het cijfer moet zijn: per SKU per week voor de aankoper, per categorie per maand voor de raad van bestuur. Voorspel op het niveau waar de beslissing valt, niet fijner: de nauwkeurigheid zakt snel van categorie naar SKU en van maand naar dag, en de intervallen worden breder hoe verder je vooruitkijkt.

Daarna moet de forecast in een lus leven, anders wordt het een rapport dat niemand leest:

  1. Voorspellen. Het model levert het cijfer en de marge voor elke reeks op de afgesproken horizon.

  2. Menselijke aanpassing. De aankoper of planner past aan waar hij iets weet dat het model niet kan weten: een klant die vertrekt, een listing die binnen is, een leverancier met problemen. Elke aanpassing wordt gelogd met een reden.

  3. Bestellen of plannen. De bestelbon, het uurrooster of het cashplan wordt gebouwd op de aangepaste forecast.

  4. De fout meten. Als de realisaties binnenkomen, worden fout en bias berekend per reeks en per stap, de aanpassingsstap inbegrepen.

  5. Terugkoppelen. Reeksen die afwijken worden hertraind; aanpassingen die consequent schaden worden gestopt; factoren die de fout verklaren (een feestdag die je vergat) worden toegevoegd.

Uitgewerkt voorbeeld: een drankenhandel met 400 SKU's

Een drankengroothandel voorspelt de weekvraag voor 400 SKU's om bestellingen te sturen met een levertermijn van twee weken. Als basislijn berekent het team seizoensnaïef per SKU (dezelfde week vorig jaar, geschaald met de trend van dit jaar) en backtest dat over de laatste 26 weken: 28 procent MAPE over het hele gamma, veel slechter op traagdraaiers, veel beter op de top 50.

Daarna bouwen ze een boosted-tree-model met lag-features, de Belgische feestdagenkalender, het bouwverlof per provincie, een promotievlag uit het ERP en de weekvoorspelling van de temperatuur. Zelfde backtest: 19 procent MAPE. De bias zakt van plus 6 procent (vorig jaar had een warmere zomer, dus de basislijn zat het hele seizoen te hoog) naar onder 1 procent.

Wat betekent dat in voorraad? Afgerond: de groothandel draait zowat 250.000 euro aan goederen per week aan kostprijs. De buffervoorraad die ze aanhouden om de voorspellingsfout op te vangen, schaalt ruwweg mee met die fout. Bij 28 procent zit de buffer rond 70.000 euro; bij 19 procent rond 47.000. Dat is zo'n 20.000 euro minder kapitaal dat vastzit, nog voor je de vermeden stockbreuken op de snelle draaiers meetelt, waar het model het meest won. Die ruwe rekensom beslist of de pipeline een engineerdag per maand onderhoud waard is. En let op wat die 19 procent verbergt: het is een gemiddelde over 400 reeksen. De top 50 SKU's zitten misschien op 8 procent en de onderste 100 op 40, en de aankoper heeft die twee cijfers meer nodig dan het gemiddelde.

Waar moet je op letten bij tijdreeksvoorspelling

Het gemiddelde voorspellen van onregelmatige vraag. Een wisselstuk verkoopt 0, 0, 0, 5, 0, 0, 2. Een smoothing-model voorspelt ongeveer 1 per week, een hoeveelheid die nooit voorkomt. Zulke reeksen vragen methodes die voor onregelmatige vraag gemaakt zijn (de methode van Croston en haar opvolgers) of, beter, een andere vraag: hoe waarschijnlijk is een bestelling in de komende vier weken, en hoe groot is ze als ze komt.

Stockbreuken die de echte vraag verbergen. Verkoophistoriek is geen vraaghistoriek. Was een product drie weken niet op voorraad, dan leren de nullen het model dat niemand het wilde. Markeer de periodes zonder voorraad en sluit ze uit of vul ze bij, anders blijft de forecast je te kort houden op net de producten waar je al zonder viel.

Een model dat de promotiekalender van vorig jaar van buiten leerde. Zat er vorig jaar een promotie in week 14, dan voorspelt een model zonder promotiefeature dit jaar een piek in week 14, of je er nu een doet of niet. Promoties zijn een factor, geen seizoen: geef ze expliciet mee, de voorbije en de geplande.

Eén nauwkeurigheidscijfer voor 3.000 SKU's. Een totale MAPE van 22 procent zegt de raad van bestuur iets en de aankoper niets. Rapporteer nauwkeurigheid per ABC-klasse of per volumeband, en weeg op waarde: fout zitten op een product dat 10.000 euro per week draait, weegt zwaarder dan hetzelfde percentage op een product van 100 euro.

Een forecast die verandert wat ze voorspelt. Een lage forecast leidt tot lage voorraad, lage voorraad tot lage verkoop, lage verkoop bevestigt de forecast. Hou die lus in het oog in het eerste jaar na de invoering van een model.

Het getal als het antwoord nemen. Bestel op de marge, niet op het punt. Voor een goedkoop product met lange houdbaarheid en een breed interval bestel je richting de bovenkant; voor een vers product met korte houdbaarheid bestel je richting het midden en aanvaard je af en toe een stockbreuk. De forecast geeft je de verdeling, en wat je ermee doet is de bedrijfsbeslissing.

Laatst Bijgewerkt: September 3, 2026 Terug naar Woordenboek
Trefwoorden
tijdreeksvoorspelling forecasting vraagvoorspelling predictive analytics machine learning anomaliedetectie data drift cross-validation feature engineering foundation model kpi erp