Componenten en stationariteit van tijdreeksen
Trend, seizoenspatroon, ruis, ADF-test voor stationariteit, differentiëren om stationariteit te bereiken.
Componenten en stationariteit van tijdreeksen is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat is een tijdreeks?
Een tijdreeks bestaat uit gegevens die in tijdsvolgorde zijn geïndexeerd, zoals dagelijkse verkopen of de temperatuur per uur. Omdat waarnemingen geordend zijn en vaak samenhangen, zijn speciale technieken nodig; je kunt de rijen niet zomaar door elkaar husselen zoals bij gewone tabelgegevens.
De drie componenten
Een klassieke benadering splitst een tijdreeks op in:
- Trend: beweging op lange termijn omhoog of omlaag.
- Seizoenspatroon: patronen die zich met vaste perioden herhalen, bijvoorbeeld wekelijks of jaarlijks.
- Residu: de overgebleven willekeurige ruis nadat trend en seizoenspatroon zijn verwijderd.
Additief versus multiplicatief
In een additief model geldt: y = trend + seasonality + residual. Dit gebruik je wanneer seizoensschommelingen even groot blijven.
In een multiplicatief model geldt: y = trend * seasonality * residual. Dit gebruik je wanneer seizoensschommelingen meegroeien met de trend.
seasonal_decompose
statsmodels kan een tijdreeks automatisch opsplitsen in de bijbehorende componenten.
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(series, model="additive", period=12)
result.trend
result.seasonal
result.residDe decompositie visualiseren
Als je het resultaat uitzet, zie je elke component onder elkaar. Daardoor zijn trend en seizoenspatroon eenvoudig te herkennen en kun je gemakkelijker een aanpak voor voorspellingen kiezen.
import matplotlib.pyplot as plt
result.plot()
plt.tight_layout()
plt.show()Wat is stationariteit?
Een tijdreeks is stationair wanneer de statistische eigenschappen ervan (gemiddelde, variantie en autocorrelatie) in de loop van de tijd constant blijven. Veel klassieke modellen, zoals ARIMA, gaan uit van stationariteit. Daarom is controleren en afdwingen daarvan een belangrijke eerste stap.
Waarom stationariteit belangrijk is
Als het gemiddelde verschuift of de variantie in de loop van de tijd onbeheerst toeneemt, zal een model dat op vroege gegevens is aangepast niet goed generaliseren naar latere gegevens. Door de trend te verwijderen en de variantie stabiel te maken, wordt de tijdreeks op een consistente manier voorspelbaar.
De ADF-toets
De Augmented Dickey-Fuller (ADF)-toets controleert op stationariteit. De nulhypothese is "niet-stationair (heeft een eenheidswortel)". Met een p-waarde lager dan 0,05 kun je de nulhypothese verwerpen en de tijdreeks als stationair beschouwen.
from statsmodels.tsa.stattools import adfuller
stat, pvalue, *_ = adfuller(series)
print("p-value:", pvalue)
# pvalue < 0.05 -> stationaryDifferentiëren voor stationariteit
Differentiëren trekt van elke waarde de vorige waarde af en verwijdert zo de trend. Differentiatie van de eerste orde behandelt meestal een lineaire trend; pas het indien nodig nogmaals toe.
diff1 = series.diff().dropna() # first difference
diff2 = series.diff().diff().dropna() # second differenceBevestigen na differentiatie
Voer de ADF-toets opnieuw uit op de gedifferentieerde tijdreeks. Zodra de p-waarde onder 0,05 daalt, heb je stationariteit bereikt en de differentiatieorde d vastgelegd. Die wordt rechtstreeks in ARIMA gebruikt.
stat, pvalue, *_ = adfuller(series.diff().dropna())
print("p-value after differencing:", pvalue)Andere stabiliserende transformaties
Als de variantie in de loop van de tijd toeneemt, stabiliseert een log- of Box-Cox-transformatie deze vóór het differentiëren. Door een logtransformatie te combineren met differentiatie kun je veel tijdreeksen met multiplicatieve groei verwerken.
import numpy as np
log_series = np.log(series)
stationary = log_series.diff().dropna()Korte controle
Test je begrip van stationariteit.
Samenvatting
Je hebt tijdreeksen met seasonal_decompose opgesplitst in trend, seizoenspatroon en residu, additieve en multiplicatieve modellen geleerd, stationariteit getest met de ADF-toets en differentiatie (orde d) gebruikt om een tijdreeks stationair te maken. Hierna: ARIMA en SARIMA.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “Componenten en stationariteit van tijdreeksen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Componenten en stationariteit van tijdreeksen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “Componenten en stationariteit van tijdreeksen”?
Trend, seizoenspatroon, ruis, ADF-test voor stationariteit, differentiëren om stationariteit te bereiken. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Componenten en stationariteit van tijdreeksen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Componenten en stationariteit van tijdreeksen
- ARIMA- en SARIMA-modellen
- Prophet voor geautomatiseerde voorspellingen
- LSTM voor voorspellingen in tijdreeksen