Eenheid 8 / 11

Tijdreeksanalyse: stationariteit, ARIMA en prognoses

Winst:

  • Vermogen om de concepten trend, seizoensinvloeden, stationariteit en eenheidswortel te begrijpen en kunstmatige intelligentie met nauwkeurige gegevens te gebruiken voor het modelleren en voorspellen van tijdreeksen.
  • Vermogen om ARIMA-/seizoensmodellen te interpreteren en onzekerheid te voorspellen (betrouwbaarheidsinterval, restanalyse) en valse regressie te voorkomen
  • In staat zijn te onderscheiden dat voorspellingen van kunstmatige intelligentie gebaseerd zijn op patronen uit het verleden en dat het oordeel van deskundigen naar voren komt in perioden van structurele breuken en crises.

Veel van de gegevens die het brood en de boter vormen van economen en financiële analisten zijn tijdreeksen: waarden van dezelfde variabele die met regelmatige tussenpozen in de loop van de tijd worden gemeten (maandelijkse inflatie, dagelijkse aandelenkoers, driemaandelijks bbp). Tijdreeksen verschillen fundamenteel van gewone cross-sectionele gegevens omdat de waarnemingen niet onafhankelijk zijn: de waarde van vandaag hangt af van gisteren. Deze afhankelijkheid is zowel een kans (we kunnen de toekomst voorspellen) als een gevaar (gewone regressie is hier gemakkelijk misleidend). In dit onderdeel zullen we zien hoe kunstmatige intelligentie (AI) het modelleren en voorspellen van tijdreeksen versnelt, maar waarom de gevaarlijkste valkuil – valse regressie – aandacht vereist.

Basisconcepten

Een tijdreeks bevat over het algemeen drie componenten: trend (opwaartse/neerwaartse langetermijntrend), seizoensinvloeden (regelmatig patroon dat zich het hele jaar door herhaalt, bijvoorbeeld toegenomen toerisme in de zomer) en cyclus/ruis (resterende volatiliteit). Vóór het modelleren is het meest kritische kenmerk van de serie stationariteit.

Een stationaire reeks is een reeks waarvan de statistische eigenschappen (gemiddelde, variantie) in de loop van de tijd constant blijven. Een niet-stationaire reeks bevat een trend, de variantie ervan wordt groter of de reeks heeft een eenheidswortel. Een eenheidswortel is een structuur waarin de reeks schokken permanent "herinnert" en niet terugkeert naar het gemiddelde; Zo'n serie gedraagt ​​zich als een willekeurige wandeling. Waarom is het belangrijk? Omdat regressie tussen twee niet-stationaire reeksen hoge R-kwadraat- en significante coëfficiënten kan opleveren, zelfs als er in werkelijkheid geen verband bestaat, wordt dit valse regressie genoemd. Alleen de gemeenschappelijke trend zorgt ervoor dat de twee series ‘gerelateerd’ lijken te zijn.

Let op: twee stijgende reeksen (bijvoorbeeld de bevolking van het ene land en de ijsverkoop van een ander land) kunnen sterk gecorreleerd zijn; aangezien ze beide in de loop van de tijd toenemen. Dit is geen relatie, maar de illusie van een gemeenschappelijke trend. Zorg ervoor dat u de stationariteit controleert voordat u met regressie in de tijdreeks begint.

Stapsgewijze workflow voor tijdreeksen

1. Visualiseer. Teken de reeks: is er een trend, is er sprake van seizoensinvloeden, verandert de variantie in de loop van de tijd, is er een structurele breuk (plotselinge niveauverandering)?

2. Test de stationariteit. ADF-test (Augmented Dickey-Fuller) en KPSS-test testen root/stationariteit van de eenheid. De twee vullen elkaar aan: in ADF is de nulhypothese "er is een eenheidswortel", in KPSS is deze "stationair". Het is veiliger om beide samen te gebruiken.

3. Stagneren. Als de reeks niet-stationair is, is deze meestal gedifferentieerd (het verschil tussen opeenvolgende waarnemingen; hierdoor wordt de trend opgeheven). Eén keer differentiëren maakt een "eerste orde geïntegreerde" (I(1)) serie stationair. Logboektransformatie helpt ook als de variantie groter wordt.

4. Bouw een model. Het meest gebruikelijke raamwerk is ARIMA (AutoRegressive Integrated Moving Average): het combineert de componenten AR (afhankelijkheid van de reeks van zijn eigen waarden uit het verleden), I (mate van verschil), MA (effect van fouten uit het verleden). Als er sprake is van seizoensinvloeden, wordt SARIMA gebruikt. AI genereert code voor automatische selectietools zoals auto.arima; Maar accepteer niet blindelings automatische selectie.

5. Controleer op restjes. De residuen van een goed model moeten witte ruis zijn: geen patroon, geen autocorrelatie. De Ljung-Box-test test dit. Als er nog steeds een patroon in de residuen zit, is het model incompleet.

6. Voorspel en toon onzekerheid. De voorspelling bestaat niet uit één lijn; altijd gegeven met een betrouwbaarheids-/schattingsinterval. Het bereik wordt groter naarmate de horizon langer wordt – dit is een teken van eerlijkheid, niet van gebrekkigheid.

Co-integratie: echte relatie met niet-stationaire reeksen

Twee niet-stationaire reeksen geven niet altijd valse relaties. Als er tussen beide een echt langetermijnevenwicht bestaat (ze bewegen samen), wordt dit co-integratie genoemd en kan worden gemodelleerd met het foutcorrectiemodel (ECM). De oplossing is dus niet “verschil maken en de informatie weggooien”; is om eerst de co-integratie te testen. Dit onderscheid onderscheidt valse regressie van echte langetermijncorrelatie en is een theoretische overweging waar AI niet op eigen kracht over kan beslissen.

vergelijkingstabel

Status

symptoom

juiste aanpak

stationaire serie

Constant gemiddelde/variantie

Directe BOOG

Met trend (eenheidswortel)

Voortdurende stijging, ADF is zinloos

Verschil, dan modelleren

Twee niet-stationaire series

Hoge R² kan nep zijn

Ten eerste de co-integratietest

seizoensgebonden

Jaarlijks herhalend patroon

SARIMA / seizoensverschil

structurele breuk

Plotselinge verandering van niveau/helling

Breuktest, deskundig oordeel

Vier kopieerbare aanwijzingen

1. Stationariteitsdiagnose:

Jouw rol: tijdreeksassistent. Ik wil R-code, ik deel de gegevens niet. 'serie' is een maandelijkse tijdreeks (ts-object). Taak: (1) teken de reeks- en autocorrelatiegrafieken (ACF/PACF), (2) pas de ADF- en KPSS-tests toe, (3) leg uit hoe de resultaten samen moeten worden geïnterpreteerd. Ik zal de beslissing nemen om het verschil te nemen; Je stelt een diagnose.

2. Modelbouw (onder begeleiding):

Mijn serie lijkt bij het eerste verschil stil te staan. Stel een model voor met auto.arima, maar: (1) leg de geselecteerde (p, d, q) orders uit en WAAROM ze zijn gekozen, (2) voeg code toe om te testen of de residuen witte ruis zijn met Ljung-Box, (3) herinner me eraan om de automatische selectie niet blindelings te accepteren.

3. Valse regressiewaarschuwing:

Ik wil regressie instellen tussen mijn twee tijdreeksen (X, Y), maar ze zijn beide gedetrendeerd. Schrijf workflowcode die het risico op valse regressie controleert: test eerst de stationariteit van beide en pas vervolgens een co-integratietest toe (Engle-Granger of Johansen). Voordat ik lm() rechtstreeks uitvoer, moet je me tegenhouden en uitleggen waarom het gevaarlijk is.

4. Voorspelling en onzekerheid:

Schrijf een code die een prognose voor de komende twaalf maanden produceert met het ARIMA-model dat ik heb gemaakt; Maak een grafiek van de schatting met de betrouwbaarheidsintervallen van 80% en 95%. Voeg onder het diagram een ​​opmerking toe dat de voorspelling gebaseerd is op patronen uit het verleden en ongeldig kan worden in het geval van een structurele breuk/crisis.

Zwakke prompt/sterke prompt

Zwakke prompt:

Zoek de relatie tussen deze twee reeksen met regressie en voorspel het volgende jaar.

Deze bewering is een uitnodiging voor de valse regressieval: als regressie wordt opgezet zonder te controleren op stationariteit, ontstaat er een hoge R-kwadraat maar betekenisloze 'relatie' en een ongegronde schatting.

Krachtige prompt:

Jouw rol: zorgvuldige tijdreeksassistent. Ga stap voor stap te werk: (1) test de stationariteit van zowel de reeksen als het rapport, (2) als ze niet stationair zijn, voer dan GEEN directe regressie uit, test eerst de co-integratie, (3) als u een voorspelling doet, zorg er dan voor dat u een betrouwbaarheidsinterval toevoegt en een waarschuwing voor een structurele breuk schrijft. Laat de beslissing bij elke stap aan mij over; automatische voortgang.

Verschil: de sterke vraag vereist stationariteit en co-integratie vóór regressie, waardoor de schatting met onzekerheid wordt gepresenteerd.

drie minikoffers

Geval 1 — Onechte regressie. Een analist vond R²=0,91, p<0,001 tussen twee stijgende reeksen (omzet van de ene sector en energieverbruik van een ander land) en schreef "sterke relatie". Toen zijn adviseur om de stationariteitstest vroeg, bleek dat ze allebei eenheidswortels hadden, en toen hun verschillen werden genomen, verdween de relatie (r = 0,04) volledig. Het hoge R-kwadraat was slechts een illusie van een gemeenschappelijke trend. Les: tijdreeksregressie is onbetrouwbaar zonder te testen op stationariteit.

Casus 2 — Blind vertrouwen in het automatische model. Een student gebruikte het door auto.arima gekozen model zonder het te onderzoeken; hij merkte niet langer dat er in zijn analyse nog sprake was van significante seizoensinvloeden. Het model onderschatte systematisch de zomermaanden. De Ljung-Box-test toonde autocorrelatie in de residuen aan. Juiste manier: was om de seizoenscomponent (SARIMA) toe te voegen. Les: automatische selectie is het begin, niet het laatste woord; Residuen moeten worden gecontroleerd.

Geval 3 — Voorspelde ineenstorting bij structurele breuk. Eén model voorspelde de vraag voor 2020 op basis van gegevens uit 2019; het betrouwbaarheidsinterval was smal, de schatting was betrouwbaar. De grote schok (pandemie) van 2020 verpestte de voorspelling volledig omdat het model alleen het patroon uit het verleden kende. Les: tijdreeksvoorspellingen gaan ervan uit dat het verleden vergelijkbaar zal zijn met de toekomst; In tijden van crisis/crisis komt het oordeel van deskundigen op de voorgrond.

Veel voorkomende fouten

  • Regressie vaststellen zonder te controleren op stationariteit. Onechte regressie levert een hoge R-kwadraat maar onbeduidende relatie op; Pas eerst ADF/KPSS toe.
  • Differentiëren en co-integratie overslaan. Als er sprake is van een echte langetermijnrelatie, gooit het blindelings nemen van het verschil informatie weg; Test eerst de co-integratie.
  • Het automatische model gebruiken zonder het te controleren. auto.arima is een goed begin, maar onbetrouwbaar zonder de residuen (Ljung-Box) te controleren.
  • Presentatie van de schatting als één regel. Schatting zonder betrouwbaarheidsinterval creëert valse precisie; Toon altijd onzekerheid.
  • Het negeren van de structurele breuk. Crisis-/regimeverandering ontwricht het patroon uit het verleden; Het model kan dit niet weten, er is een deskundig oordeel nodig.
Tip: Voordat u een tijdreeksbevinding schrijft, kijkt u nogmaals naar de ruwe grafiek van de reeks. Een duidelijke trend of breuk die u met eigen ogen ziet, is de sterkste waarschuwing die geen enkele test u mag doen vergeten.

Samengevat

Bij tijdreeksanalyse zijn waarnemingen niet onafhankelijk; Dit geeft voorspellende kracht en creëert valkuilen zoals valse regressie. Test de stationariteit (ADF/KPSS) vóór modellering; co-integratie testen in plaats van direct regressie tussen niet-stationaire reeksen tot stand te brengen; Controleer de resten van het ARIMA/SARIMA-model totdat er witte ruis ontstaat; Presenteer de schatting altijd met een betrouwbaarheidsinterval. AI genereert de code voor al deze stappen, maar de expert controleert de automatische modelselectie, co-integratiebeslissing en interpretatie van structurele breuken. Voorspelling is gebaseerd op het verleden; In tijden van crisis heeft het menselijk oordeel het laatste woord.

Applicatie taak

Kies een tijdreeks (maandelijks of driemaandelijks). Vraag vóór AI stationariteitsdiagnostiek aan en voer deze uit (grafiek, ACF/PACF, ADF, KPSS) en classificeer de reeks als stationair/niet-stationair. Differentieer indien nodig, zet een ARIMA/SARIMA-model op en controleer de residuen met de Ljung-Box. Maak een voorwaartse voorspelling voor zes tot twaalf perioden en zet deze uit met een betrouwbaarheidsinterval. Bedenk ten slotte in een paragraaf hoe uw voorspelling verkeerd zou kunnen zijn als er een structurele breuk in uw gegevens zou optreden.

controlelijst

  • [ ] Ik heb de serie uitgezet en de trends, seizoensinvloeden en pauzes visueel onderzocht.
  • [ ] Ik heb de stationariteit getest met ADF en KPSS; Ik kreeg het vereiste verschil.
  • [ ] Ik vermeed directe regressie en testte co-integratie tussen niet-stationaire reeksen.
  • [ ] Ik controleerde de modelresiduen (Ljung-Box) en bevestigde dat het witte ruis was.
  • [ ] Ik heb de schatting gepresenteerd met een betrouwbaarheidsinterval; Ik heb het niet als één regel gegeven.
  • [ ] Ik heb de grenzen van de voorspelling opgemerkt in het geval van een structurele breuk/crisis.