Unitate 8 / 11

Analiza serii temporale: staționaritate, ARIMA și prognoză

Câștiguri:

  • Capacitatea de a înțelege conceptele de tendință, sezonalitate, staționaritate și rădăcina unității și de a utiliza inteligența artificială cu date precise pentru modelarea și prognoza serii de timp.
  • Abilitatea de a interpreta modele ARIMA/sezoniere și de a prognoza incertitudinea (interval de încredere, analiză reziduală) și de a evita regresia falsă
  • A fi capabil să distingă faptul că predicția inteligenței artificiale se bazează pe modele din trecut și acea judecată a experților iese în prim-plan în perioadele de rupere structurală și de criză.

O mare parte din datele care constituie pâinea și untul economiștilor și analiștilor financiari sunt serii cronologice: valori ale aceleiași variabile măsurate la intervale regulate în timp (inflația lunară, prețul zilnic al acțiunilor, PIB-ul trimestrial). Seriile temporale diferă fundamental de datele transversale obișnuite, deoarece observațiile nu sunt independente: valoarea de astăzi depinde de ziua de ieri. Această dependență este atât o oportunitate (putem prezice viitorul), cât și un pericol (regresiunea obișnuită induce în eroare aici). În această unitate, vom vedea cum inteligența artificială (AI) accelerează modelarea și prognozarea seriilor temporale, dar de ce cea mai periculoasă capcană - regresia falsă - necesită atenție.

Concepte de bază

O serie cronologică conține, în general, trei componente: tendință (tendință ascendentă/descrescătoare pe termen lung), sezonalitate (model obișnuit care se repetă pe tot parcursul anului, de exemplu turism crescut vara) și ciclu/zgomot (volatilitate reziduală). Înainte de modelare, cea mai critică caracteristică a seriei este staționaritatea.

O serie staționară este o serie ale cărei proprietăți statistice (medie, varianță) rămân constante în timp. O serie non-staționară conține o tendință, varianța sa crește sau are o rădăcină unitară. O rădăcină unitară este o structură în care seria „își amintește” permanent de șocurile și nu revine la media; O astfel de serie se comportă ca o plimbare aleatorie. De ce este important? Deoarece regresia între două serii non-staționare poate produce coeficienți R pătrat mari și semnificativi, chiar dacă nu există o relație în realitate - aceasta se numește regresie falsă. Doar tendința comună face ca cele două serii să pară „înrudite”.

Atenție: două serii în creștere (de exemplu, populația unei țări și vânzările de înghețată ale unei alte țări) pot fi foarte corelate; întrucât ambele cresc în timp. Aceasta nu este o relație, ci iluzia unei tendințe comune. Asigurați-vă că verificați staționaritatea înainte de a începe regresia în seria temporală.

Flux de lucru în serie de timp pas cu pas

1. Vizualizați. Trasează seria: există o tendință, există sezonalitate, se schimbă varianța în timp, există o pauză structurală (schimbare bruscă de nivel)?

2. Testează staționaritatea. Test ADF (Augmented Dickey-Fuller) și test KPSS rădăcină/staționaritate a unității de testare. Cele două se completează: în ADF ipoteza nulă este „există o rădăcină unitară”, în KPSS este „staționară”. Este mai sigur să le folosiți pe ambele împreună.

3. Stagnează. Dacă seria este non-staționară, de obicei este diferențiată (diferența observațiilor succesive; aceasta înlătură tendința). Diferențierea odată face ca o serie „integrată de prim ordin” (I(1)) să fie staționară. Transformarea jurnalelor ajută și dacă varianța crește.

4. Construiește un model. Cel mai comun cadru este ARIMA (AutoRegressive Integrated Moving Average): Combină componentele AR (dependența seriei de propriile valori trecute), I (gradul de diferențiere), MA (efectul erorilor trecute). Dacă există sezonalitate, se utilizează SARIMA. AI generează cod pentru instrumente de selecție automată, cum ar fi auto.arima; Dar nu accepta orbește selecția automată.

5. Verificați dacă există resturi. Reziduurile unui model bun ar trebui să fie zgomot alb: fără model, fără autocorelare. Testul Ljung-Box testează acest lucru. Dacă există încă un model în reziduuri, modelul este incomplet.

6. Prezice și arată incertitudinea. Prognoza nu este o singură linie; dat întotdeauna cu un interval de încredere/estimare. Gama se lărgește pe măsură ce orizontul se prelungește - acesta este un semn de onestitate, nu de defect.

Cointegrare: relație reală cu seriale non-staționare

Două serii nestaționare nu dau întotdeauna relații false. Dacă există un echilibru real pe termen lung între ele (se mișcă împreună), aceasta se numește cointegrare și poate fi modelată cu modelul de corectare a erorilor (ECM). Deci soluția nu este „diferența și aruncă informația”; este de a testa mai întâi cointegrarea. Această distincție distinge regresia falsă de corelația adevărată pe termen lung și este o considerație teoretică pe care AI nu poate decide singură.

diagrama de comparatie

Stare

simptom

abordare corectă

serie staționară

Medie/varianță constantă

ARCHARE Direct

Cu tendință (rădăcină unitară)

Creștere continuă, ADF nu are sens

Diferență, apoi model

Două serii non-staționare

R² ridicat poate fi fals

În primul rând, testul de cointegrare

sezonieră

Model care se repetă anual

SARIMA / diferenta sezoniera

rupere structurală

Schimbare bruscă de nivel/pantă

Test de rupere, judecată expert

Patru solicitări copiabile

1. Diagnosticul staționarității:

Rolul tău: asistent în serii cronologice. Vreau cod R, nu partajez datele. „serie” este o serie temporală lunară (obiect ts). Sarcină: (1) desenați seria și graficele de autocorelare (ACF/PACF), (2) aplicați testele ADF și KPSS, (3) explicați cum să interpretați rezultatele împreună. Voi lua decizia de a lua diferența; Tu faci un diagnostic.

2. Construire model (supravegheată):

Seria mea pare staționară la prima diferență. Propuneți un model cu auto.arima dar: (1) explicați comenzile selectate (p, d, q) și DE CE au fost alese, (2) adăugați cod pentru a testa dacă reziduurile sunt zgomot alb cu Ljung-Box, (3) amintește-mi să nu accept orbește selecția automată.

3. Avertisment de regresie falsă:

Vreau să stabilesc regresia între cele două serii cronologice ale mele (X, Y), dar ambele sunt declinate. Scrieți un cod de flux de lucru care verifică riscul regresiei false: mai întâi testați staționaritatea ambelor, apoi aplicați un test de cointegrare (Engle-Granger sau Johansen). Înainte de a rula lm() direct, oprește-mă și explică de ce este periculos.

4. Previziune și incertitudine:

Scrieți un cod care produce o prognoză pe 12 luni cu modelul ARIMA pe care l-am creat; Reprezentați grafic estimarea cu intervalele sale de încredere de 80% și 95%. Adăugați o notă sub diagramă că predicția se bazează pe modele din trecut și poate deveni invalidă în cazul unei ruperi structurale/crizei.

Prompt slab / Prompt puternic

Prompt slab:

Găsiți relația dintre aceste două serii cu regresia și preziceți anul următor.

Această afirmație este o invitație la capcana regresiei false: dacă regresia este configurată fără a verifica staționaritatea, apar o „relație” cu R pătrat mare, dar fără sens și o estimare nejustificată.

Solicitare puternică:

Rolul tău: asistent atent în seriale temporale. Continuați pas cu pas: (1) testați staționaritatea ambelor serii și raportului, (2) dacă nu sunt staționare, NU faceți regresia directă, testați mai întâi cointegrarea, (3) dacă produceți o prognoză, asigurați-vă că adăugați un interval de încredere și scrieți un avertisment de rupere structurală. Lasă-mi decizia la fiecare pas; progres automat.

Diferență: cererea puternică necesită staționaritate și cointegrare înainte de regresie, prezentând estimarea cu incertitudine.

trei mini cutii

Cazul 1 – Regresia falsă. Un analist a găsit R²=0,91, p<0,001 între două serii în creștere (cifra de afaceri a unui sector și consumul de energie al altei țări) și a scris „relație puternică”. Când consultantul său a cerut testul de staționaritate, s-a văzut că amândoi aveau rădăcini unitare, iar când s-au luat diferențele, relația (r = 0,04) a dispărut complet. R-pătratul mare a fost doar o iluzie a tendinței comune. Lecție: regresia în serie de timp nu este de încredere fără testarea staționarității.

Cazul 2 — Încredere oarbă în modelul automat. Un elev a folosit modelul ales de auto.arima fără a-l examina; nu a mai observat o sezonalitate semnificativă rămasă în analiză. Modelul a subestimat sistematic lunile de vară. Testul Ljung-Box a arătat autocorelarea reziduurilor. Modul corect: a fost să adăugați componenta sezonieră (SARIMA). Lecție: selecția automată este începutul, nu ultimul cuvânt; Reziduurile trebuie verificate.

Cazul 3 – Colapsul prognozat la rupere structurală. Un model a prezis cererea pentru 2020 cu datele din 2019; intervalul de încredere a fost îngust, estimarea a fost sigură. Marele șoc (pandemie) din 2020 a distrus complet predicția, deoarece modelul cunoștea doar modelul trecut. Lecție: prognoza serii temporale presupune că trecutul va fi similar cu viitorul; În vremuri de criză/defecțiune, judecata experților iese în prim-plan.

Greșeli comune

  • Stabilirea regresiei fără a verifica staționaritatea. Regresia falsă produce o relație R-pătrat mare, dar nesemnificativă; Aplicați mai întâi ADF/KPSS.
  • Diferențierea și omiterea cointegrarii. Dacă există o relație reală pe termen lung, luarea orbește a diferenței aruncă informații; Testați mai întâi cointegrarea.
  • Utilizarea modelului automat fără a-l verifica. auto.arima este un început bun, dar nu este de încredere fără a verifica reziduurile (Ljung-Box).
  • Prezentarea devizului ca o singură linie. Estimarea fără un interval de încredere creează o precizie falsă; Arată întotdeauna incertitudinea.
  • Ignorând ruptura structurală. Criza/schimbarea regimului perturbă modelul trecut; Modelul nu poate ști acest lucru, este necesară judecata expertului.
Sfat: înainte de a scrie o constatare a unei serii cronologice, priviți din nou graficul brut al seriei. O tendință clară sau o pauză pe care o vezi cu ochii tăi este cel mai puternic avertisment că niciun test nu ar trebui să te facă să uiți.

Pe scurt

În analiza seriilor temporale, observațiile nu sunt independente; Acest lucru oferă putere predictivă și creează capcane precum regresia falsă. Testați staționaritatea (ADF/KPSS) înainte de modelare; testați cointegrarea mai degrabă decât stabilirea directă a regresiei între serii nestaționare; Verificați reziduurile modelului ARIMA/SARIMA până când apare zgomot alb; Prezentați întotdeauna estimarea cu un interval de încredere. AI generează codul pentru toți acești pași, dar expertul controlează selecția automată a modelului, decizia de cointegrare și interpretarea ruperii structurale. Predicția se bazează pe trecut; În vremuri de criză, judecata umană are ultimul cuvânt.

Sarcina de aplicare

Alegeți o serie de timp (lunar sau trimestrial). Înainte de AI, solicitați și executați diagnostice de staționaritate (grafic, ACF/PACF, ADF, KPSS) și clasificați seria ca staționară/nestaționară. Diferențiați dacă este necesar, configurați un model ARIMA/SARIMA și verificați reziduurile cu Ljung-Box. Produceți o prognoză anticipată pe 6-12 perioade și reprezentați-o cu un interval de încredere. În cele din urmă, luați în considerare într-un paragraf modul în care predicția dvs. ar putea fi greșită dacă ar exista o întrerupere structurală a datelor dvs.

lista de verificare

  • [ ] Am trasat seria și am examinat vizual tendințele, sezonalitatea și pauzele.
  • [ ] Am testat staționaritatea cu ADF și KPSS; Am obținut diferența necesară.
  • [ ] Am evitat regresia directă și am testat cointegrarea între serii non-staționare.
  • [ ] Am verificat reziduurile modelului (Ljung-Box) și am confirmat că era zgomot alb.
  • [ ] Am prezentat estimarea cu interval de încredere; Nu l-am dat ca o singură linie.
  • [ ] Am notat limitele de predicție în caz de rupere/criză structurală.