
Vrijwel iedereen die met data werkt, krijgt vroeg of laat te maken met data over tijd. Omzet per dag, energieverbruik per uur, aantallen per maand, metingen per minuut. Het zijn ogenschijnlijk simpele datasets: met een datum en een waarde.
Toch zien we in de praktijk dat juist dit type data vaak tot verwarring leidt. Analyses lijken technisch te kloppen, grafieken zien er logisch uit, maar conclusies houden geen stand zodra je ze tegen de realiteit aanhoudt. Niet omdat de code of analyse fout is, maar omdat tijd een rol speelt die gemakkelijk wordt onderschat.
In deze blog leggen we uit wat time series analyse en forecasting is, waarom het verschilt van gewone data-analyse, en hoe je er in Python praktisch mee werkt.
Wat is time series data?
Van time series data spreken we wanneer metingen:
- Gekoppeld zijn aan een tijdstip.
- In een vaste volgorde staan.
- Onderling samenhangen.
Die laatste eigenschap is cruciaal. Een meting van vandaag staat vrijwel altijd in relatie tot eerdere metingen. Dat klinkt logisch, maar wordt in analyses vaak onbewust genegeerd.
Een tabel met datums en waarden lijkt op het eerste gezicht een gewone dataset, maar doordat de metingen elkaar in de tijd opvolgen, ontstaat er samenhang die je niet kunt negeren.

Waarom time series analyse anders is dan gewone data-analyse
Veel analysetechnieken gaan ervan uit dat metingen onafhankelijk zijn. Bij time series data klopt die aanname niet. Daardoor ontstaan situaties waarin analyses technisch correct zijn uitgevoerd, maar toch tot verkeerde conclusies leiden.
Een eenvoudig voorbeeld: je vergelijkt de gemiddelde omzet van periode A met periode B en ziet dat B hoger is. De berekening klopt. En toch trek je de verkeerde conclusie.
De reden: omzet is in de zomer structureel hoger dan in de winter. Als periode B relatief meer zomermaanden bevat (of periode A meer wintermaanden), vergelijk je seizoenen met elkaar. Wat hier had gemoeten, is binnen dezelfde maanden vergelijken (bijvoorbeeld juli met juli), of jaar-op-jaar vergelijken zodat je dezelfde seizoensfase tegenover elkaar zet.
Structuur in tijdreeksen
De meeste tijdreeksen bestaan uit een combinatie van meerdere onderdelen:
- Een trend: de langetermijnontwikkeling.
- Seizoenspatronen: terugkerende bewegingen.
- Ruis: onregelmatige variatie.
Time series analyse draait in grote mate om het herkennen en uit elkaar trekken van deze onderdelen. Zonder dat onderscheid wordt het lastig om te bepalen wat structureel is en wat tijdelijk. In de praktijk blijkt dit vaak al verhelderend voordat er ook maar één model is toegepast.
Eerst visualiseren, dan modelleren
Bij time series analyse is visualisatie belangrijk. Door data over de tijd te plotten, zie je patronen die in tabellen of samenvattende statistieken niet of minder goed zichtbaar zijn.

Visualisatie helpt om vragen te beantwoorden als:
- Is er een duidelijke trend?
- Zijn er patronen die zich herhalen?
- Zijn er momenten waarop het gedrag verandert?
Pas wanneer hier globaal zicht op is, heeft het zin om modellen in te zetten.
Wat is forecasting?
Forecasting is het voorspellen van toekomstige waarden op basis van historische data. Daarbij ga je ervan uit dat patronen uit het verleden, zoals trend en seizoensgedrag, zich in bepaalde mate voortzetten.
Forecasting levert geen zekerheid, maar een onderbouwde verwachting, gebaseerd op patronen die tot nu toe zichtbaar zijn. Met goede forecasting laat een data scientist zien welke trends en seizoenspatronen de data ondersteunt, en waar de onzekerheid te groot wordt om harde conclusies te trekken.
Time series analyse en forecasting in Python
Python wordt veel gebruikt voor time series analyse omdat het sterke ondersteuning biedt voor het werken met tijd. Met packages zoals pandas kun je data indexeren op tijd, aggregeren naar andere tijdsfrequenties en berekeningen uitvoeren over opeenvolgende perioden in de tijd, zoals voortschrijdende gemiddelden.
Voor forecasting bestaan verschillende benaderingen, van klassieke statistische modellen tot hulpmiddelen die zijn ontworpen met interpretatie en uitlegbaarheid als uitgangspunt. In de praktijk worden in Python onder andere de volgende packages veel gebruikt:
- pandas: basisbewerkingen voor time series: datetime-indexen, resampling, rolling windows.
- statsmodels: klassieke statistische modellen zoals ARIMA en SARIMA.
- Prophet: trend- en seizoensgedreven forecasting met focus op interpretatie.
- scikit-learn: machine learning met eerdere waarden als input en tijdsvolgorde als randvoorwaarde.
- matplotlib / seaborn: visualisatie van tijdreeksen en patronen over tijd.
Welke aanpak geschikt is, hangt sterk af van het doel: begrijpen, monitoren of voorspellen.
Voorbeeld van time series analyse in Python met Prophet
Om forecasting concreet te maken, is het vaak nuttig om te beginnen met een eenvoudig model. Daarvoor wordt in de praktijk veel gebruikgemaakt van package Prophet.
Stel dat je beschikt over maandelijkse omzetdata van enkele jaren. Prophet verwacht deze data in twee kolommen:
ds: het tijdstipy: de waarde
We maken een dummy dataset:
import pandas as pd
df = pd.DataFrame({
"ds": pd.date_range("2019-01-01", periods=36, freq="MS"),
"y": [
120, 118, 125, 132, 140, 155, 170, 168, 160, 150, 138, 130, # 2019
128, 126, 133, 142, 150, 168, 182, 180, 172, 162, 148, 140, # 2020
138, 136, 145, 155, 165, 182, 198, 196, 186, 174, 160, 150 # 2021
]
})
df.set_index("ds").plot()
In deze grafiek zien we al een trend en een seizoenspatroon, nog voordat er een model is toegepast.
Vervolgens gebruiken we package Prophet om een model te maken. Dit trainen we op de dataset met .fit().
from prophet import Prophet
# Prophet model (voor maanddata: yearly seasonality is logisch)
model = Prophet(yearly_seasonality=True, weekly_seasonality=False, daily_seasonality=False)
model.fit(df)Na het trainen van het model kun je een voorspelling maken voor een toekomstige periode. Hier maken we ook een grafiek van.
# 12 maanden vooruit voorspellen
df_future = model.make_future_dataframe(periods=12, freq="MS")
df_forecast = model.predict(df_future)
model.plot(df_forecast)
model.plot_components(df_forecast)
Wat je terugkrijgt is meer dan alleen een lijn vooruit. Je ziet ook onzekerheidsmarges en afzonderlijke componenten voor trend en seizoenspatronen. Dat maakt het eenvoudiger om te beoordelen of het modelgedrag logisch is.
Beperkingen van forecasting
Geen enkel model begrijpt context uit zichzelf. Forecasting-modellen doen slechts één ding: ze trekken bestaande patronen door. Wanneer gedrag structureel verandert, bijvoorbeeld door beleid, marktverstoringen of proceswijzigingen, kan een model dat pas herkennen nadat het effect zichtbaar is geworden.
Daarom hoort forecasting altijd samen te gaan met inhoudelijke interpretatie. Het model ondersteunt daarbij het denkproces, maar vervangt het niet.
Wanneer forecasting zinvol is
Forecasting is zinvol wanneer:
- Historische patronen redelijk stabiel zijn.
- Je richting of orde van grootte wilt begrijpen.
- Onzekerheid expliciet mag worden meegenomen.
Forecasting is minder geschikt wanneer:
- Gedrag fundamenteel verandert.
- Externe factoren dominant zijn.
- Exacte voorspellingen worden verwacht.
In die gevallen levert beschrijvende analyse of scenario-denken vaak meer inzicht op dan een voorspelling.
Tot slot
Time series analyse en forecasting gaan over het analyseren van data in samenhang met tijd. Door rekening te houden met volgorde, terugkerende patronen en verandering door de tijd, wordt het mogelijk om gedrag te begrijpen en verwachtingen voor de toekomst te formuleren.
Vaak is een eenvoudige aanpak al voldoende om dit soort inzichten boven tafel te krijgen. Python biedt krachtige hulpmiddelen om met tijdreeksen te werken. De echte winst zit echter in het begrijpen van wat tijd doet met data, en wat je daar wel en niet uit mag concluderen.
Voor wie zich verder wil verdiepen in Python en machine learning, biedt onze Data Science Opleiding of Data Science Bootcamp een logisch vervolg.










