Analiza seriilor de timp și previziuni

Timp de mulți ani, oamenii au prezis condițiile meteorologice, evenimentele economice și politice și rezultatele sportive, iar criptomonedele s-au adăugat recent la această listă extinsă. Există mai multe modalități de a elabora predicții pentru o varietate de evenimente. De exemplu, intuiția, părerea experților, utilizarea rezultatelor anterioare pentru a le compara cu statisticile convenționale, iar prognoza seriilor de timp este doar una dintre ele, fiind în același timp cel mai modern și mai precis tip de prognoză cu o gamă largă de aplicații.

Metoda seriilor de timp

Metoda seriilor de timp

O metodă a seriilor temporale (TS) este un set de date care colectează informații pe o anumită perioadă de timp. Există metode specifice pentru evidențierea de acest tip:

  • liniare și neliniare;
  • parametrice și neparametrice;
  • univariate și multivariate.

Prognoza seriilor de timp aduce cu ea un set unic de capacități pentru a rezolva problemele actuale. Modelarea se bazează pe studiul pentru a stabili forța motrice care stă la baza schimbărilor din date. Procesul este derivat din tendințele pe termen lung, efectele sezoniere sau fluctuațiile neregulate, care sunt caracteristice TS și care nu sunt observate în alte tipuri de analiză.

Învățarea automată este o ramură a științei informaticii în care algoritmii sunt compilați din date și include rețele neuronale artificiale, învățarea profundă, reguli de asociere, arbori de decizie, învățarea prin întărire și rețelele bayesiene. O varietate de algoritmi oferă opțiuni pentru rezolvarea problemelor, iar fiecare dintre aceștia are cerințe și compromisuri diferite în ceea ce privește introducerea datelor, viteza de operare și acuratețea rezultatelor. Acestea, împreună cu acuratețea predicțiilor finale, vor fi luate în considerare atunci când utilizatorul decide ce algoritm va funcționa este mai bună pentru a situației studiate.

Predicția seriilor temporale împrumută din domeniul statisticii, dar oferă noi abordări pentru sarcinile de modelare. Problema de bază a învățării automate și a seriilor de timp este aceeași - prezicerea de noi rezultate pe baza datelor cunoscute anterior.

Scopul unui model predictiv

Scopul unui model predictiv

TS este un set de puncte de date colectate la intervale constante. Acestea sunt analizate pentru a determina o tendință pe termen lung în scopul de a prezice viitorul sau de a efectua un alt tip de analiză. Există două lucruri care deosebesc TS de problema obișnuită a regresiei:

  1. Acestea sunt dependente de timp. Prin urmare, ipoteza de bază a unui model de regresie liniară, conform căreia observațiile sunt independente, nu este valabilă în acest caz.
  2. Pe lângă o tendință de creștere sau de scădere, majoritatea TS au o anumită formă de sezonalitate, adică schimbări caracteristice unei anumite perioade de timp.

Scopul unui model de predicție a seriilor de timp este de a oferi previziuni precise privind cererea. Seriile de timp au timpul (t) ca variabilă independentă și variabila dependentă țintă. În cele mai multe cazuri, predicția este un anumit rezultat, de exemplu, valoarea unei case la vânzare, rezultate sportive, rezultate de tranzacționare la bursă. Prognoza reprezintă mediana și media și include un interval de încredere care exprimă un nivel de încredere în intervalul 80-95%. Atunci când sunt fixate la intervale regulate, procesele se numesc serii temporale și sunt exprimate în două moduri:

  • unidimensională cu un indice de timp care creează o ordine implicită;
  • set cu două dimensiuni: timp cu o variabilă independentă și o altă variabilă dependentă.

Crearea caracteristicilor este una dintre cele mai importante și mai consumatoare de timp în învățarea automată aplicată. Cu toate acestea, prognoza seriilor de timp nu creează funcții, cel puțin nu în sensul tradițional. Acest lucru este valabil mai ales atunci când doriți să preziceți rezultatul cu mai mulți pași înainte, nu doar următoarea valoare.

Acest lucru nu înseamnă că funcțiile sunt complet interzise. Pur și simplu, acestea trebuie utilizate cu prudență din următoarele motive:

  1. Nu este clar care vor fi valorile reale viitoare ale acestor funcții.
  2. Dacă obiectele sunt previzibile și au anumite regularități, se poate construi un model predictiv pentru fiecare.

Cu toate acestea, este necesar să au în vedere, că utilizarea valorilor prezise ca caracteristici va propaga eroarea în variabila țintă și va conduce la erori sau va da predicții distorsionate.

Componente ale seriilor de timp

Componente ale seriilor de timp

O tendință există atunci când o serie crește, scade sau rămâne constantă în timp, deci este luată ca o funcție. Sezonalitatea se referă la o proprietate a seriilor de timp care prezintă modele periodice care se repetă cu o frecvență constantă (m), de exemplu m = 12 înseamnă că modelul se repetă la fiecare douăsprezece luni.

Variabilele fictive similare sezonalității pot fi adăugate sub forma unei funcții binare. Este posibil, de exemplu, să se ia în considerare sărbătorile, evenimentele speciale, campaniile de marketing, indiferent dacă valoarea este străină sau nu. Cu toate acestea, trebuie reamintit faptul că aceste variabile trebuie să aibă anumite modele. Numărul de zile poate fi calculat cu ușurință chiar și pentru perioade viitoare și afectează prognoza seriilor temporale, în special în domeniul financiar.

Ciclurile sunt anotimpuri care nu se produc la un ritm fix. De exemplu, atributele anuale ale reproducerii linxului canadian reflectă modele sezoniere și ciclice. Ele nu se repetă la intervale regulate și pot apărea chiar dacă frecvența este 1 (m = 1).

Valori decalate - valorile variabilelor decalate pot fi incluse ca predictori. Unele modele, cum ar fi ARIMA, Vector Autoregresiv (VAR) sau Neural Network Autoregresiv (NNAR) funcționează astfel.

Componentele variabilei de interes sunt foarte importante pentru analiza și predicția seriilor de timp pentru a înțelege comportamentul lor, modelele și pentru a putea selecta modelul adecvat.

Atributele setului de date

Atributele setului de date

Un programator poate fi folosit pentru a introduce mii, milioane sau miliarde de puncte de date în modelele de învățare automată, dar acest lucru nu este necesar pentru seriile de timp. De fapt, este posibil să se lucreze cu TS mici și medii, în funcție de frecvența și tipul de variabilă, iar acesta nu este un dezavantaj al metodei. În plus, această abordare prezintă o serie de avantaje:

  1. Astfel de seturi de date se vor potrivi cu capacitățile unui computer de acasă.
  2. În unele cazuri, efectuați analiza seriilor de timp și previziuni utilizând întregul set de date, nu doar un eșantion.
  3. Lungimile TS sunt convenabile pentru crearea de grafice care pot fi analizate. Acesta este un punct foarte important, deoarece programatorii își bazează analiza pe graficul. Acest lucru nu înseamnă că ele nu funcționează cu serii de timp uriașe, dar inițial ar trebui să fie capabile să gestioneze serii de timp mai mici TS.
  4. Orice set de date care conține un câmp legat de timp poate beneficia de analiza seriilor de timp și de previziuni. Cu toate acestea, dacă programatorul dispune de un set de date mai mare, o bază de date (TSDB) poate fi mai potrivită.

Unele dintre aceste seturi provin din evenimente înregistrate cu ajutorul timestamp-ului, a jurnalelor de sistem și a datelor financiare. Deoarece TSDB lucrează inițial cu serii de timp, este o mare oportunitate de a aplica această tehnică la seturi de date la scară mare.

Învățare automată

Învățarea automată (ML) poate depăși metodele tradiționale de predicție a seriilor temporale. Există o grămadă de studii care compară metodele de învățare automată cu cele statistice mai clasice pentru datele TS. Rețelele neuronale sunt o tehnologie care a fost destul de mult cercetată și aplică abordări TS. Metodele de învățare mecanică deschid calea în colectarea datelor din seriile temporale. Aceste abordări s-au dovedit a fi mai performante decât abordările TS pure în competiția cu M3 sau Kaggle.

MO are propriile provocări specifice. Dezvoltarea caracteristicilor sau crearea de noi predictori din setul de date este un pas important pentru acesta și poate avea un impact uriaș asupra performanței și poate fi o modalitate necesară rezolvarea problemelor tendința și caracterul sezonier al datelor TS. În plus, unele modele au probleme în ceea ce privește modul în care se potrivesc cu datele și dacă nu, s-ar putea să rateze tendința principală.

Abordările privind seriile temporale și învățarea automată nu ar trebui să existe în mod izolat. Acestea pot fi combinate pentru a oferi beneficiile fiecărei abordări. Metodele de prognoză și analiza seriilor temporale fac o treabă bună în descompunerea datelor în elemente de tendință și sezoniere. Această analiză poate fi apoi utilizată ca intrare pentru un model IO cu informații privind tendințele și sezonalitatea în algoritmul său, oferind cele mai bune rezultate din ambele lumi.

Înțelegerea enunțului problemei

De exemplu, să luăm în considerare TS asociat cu prezicerea numărului de pasageri pe un nou serviciu feroviar de mare viteză. De exemplu, există 2 ani de date disponibile (august 2016. - Septembrie 2018.), iar cu ajutorul acestor date trebuie să prognozăm numărul de pasageri pentru următoarele 7 luni, având date pentru 2 ani (2016-2018) la nivel orar cu numărul de pasageri care călătoresc, și trebuie să estimăm numărul de pasageri în viitor.

Un subset din setul de date pentru a prezice folosind serii de timp:

  1. Crearea de fișiere de formare și de testare pentru modelare.
  2. Primele 14 luni (august 2016). - Octombrie 2017.) sunt utilizate ca date de instruire, iar următoarele 2 luni (noiembrie 2017. - Decembrie 2017.) - date de testare.
  3. Agregarea zilnică a setului de date.
Agregarea setului de date

Efectuați vizualizarea datelor pentru a cunoaște modul în care acestea se modifică în timp.

Vizualizarea datelor

Metoda de construcție Naive Approach

Biblioteca utilizată în acest caz pentru a prezice TS este statsmodels. Trebuie să fie stabilit înainte de a se putea aplica oricare dintre abordările de mai sus. Probabil, statsmodels este deja instalat în mediul Python, dar nu suportă metode de prognoză, așa că va trebui să-l clonezi din depozit și să-l instalezi folosind codul sursă.

Secvența de operațiuni

Pentru acest exemplu, se presupune că tariful monedei este stabil de la început și în timp. Această metodă presupune că următorul punct așteptat este egal cu ultimul punct observat și se numește abordarea naivă.

Metoda naivă

Acum calculați abaterea standard pentru a verifica acuratețea modelului pe un set de date de test. Din valoarea RMSE și din graficul de mai sus, se poate deduce că Naive nu este potrivit pentru variantele cu variabilitate mare, ci se aplică celor stabile.

Stil mediu simplu

Pentru a demonstra metoda, se construiește un grafic, presupunând că axa Y reprezintă prețul, iar axa X reprezintă timpul (zile).

Stil mediu simplu

Se poate deduce de aici că prețul crește și scade aleatoriu cu o marjă mică, astfel încât valoarea medie rămâne constantă. În acest caz, este posibil să se prezică prețul din perioada următoare similar cu valoarea medie a tuturor zilelor anterioare.

Această metodă de predicție cu media așteptată a punctelor observate anterior se numește metoda mediei simple.

În acest caz, luăm valorile cunoscute anterior, calculăm valoarea medie și o luăm ca următoarea valoare. Desigur, nu va fi exact, dar este destul de aproape și există situații în care această metodă funcționează cel mai bun.

Metoda mijlocului simplu

Din rezultatele prezentate în grafic, se poate observa că această metodă funcționează cel mai bine atunci când valoarea medie pentru fiecare perioadă de timp rămâne constantă. Deși metoda naivă este mai bună decât metoda medie, dar nu pentru toate seturile de date. Se recomandă să încercați fiecare model pas cu pas și să vedeți dacă rezultatul se îmbunătățește sau nu.

Un model de medie mobilă

Un model de medie mobilă

Din acest grafic, putem concluziona că prețurile au crescut de mai multe ori în trecut, dar acum sunt stabile. Pentru a utiliza metoda anterioară de calculare a mediei, este necesar să se ia media tuturor datelor precedente. Prețurile din perioada inițială vor influența puternic prognoza pentru perioada următoare. Prin urmare, o medie a prețurilor doar pentru ultimele câteva perioade este considerată o îmbunătățire față de o medie simplă.

Această tehnică de prognoză se numește tehnica mediei mobile, denumită uneori "fereastră mobilă" de dimensiune "n". Folosind un model simplu, preziceți următoarea valoare în TS pentru a verifica acuratețea metodei. În mod clar, Naive depășește atât media, cât și media mobilă pentru acest set de date.

Există o variantă de prognoză care utilizează metoda simplă de netezire exponențială. În metoda mediei mobile, se ponderează în mod egal "n" observații anterioare ponderate în mod egal. În acest caz, se pot întâlni situații în care fiecare dintre cele "n" din trecut influențează predicția într-un mod diferit. Această opțiune, care cântărește diferit observațiile anterioare, se numește metoda mediei mobile ponderate.

Extrapolarea modelelor

Una dintre cele mai importante proprietăți, necesare pentru Considerarea algoritmilor de predicție a seriilor de timp, este capacitatea de a extrapola modelele dincolo de domeniul datelor de instruire. Mulți algoritmi MO nu au această opțiune, deoarece tind să se limiteze la zona definită de datele de instruire. Prin urmare, acestea nu sunt adecvate pentru TS, al căror scop este de a proiecta rezultatul în viitor.

O altă proprietate importantă a algoritmului TS este capacitatea sa de a obține intervale de încredere. Deși aceasta este proprietatea implicită pentru modelele TS, iar majoritatea modelelor MO nu au această capacitate, deoarece nu toate se bazează pe distribuții statistice.

Să nu credeți că pentru a prezice TS se folosesc doar metode statistice simple. Acest lucru nu este deloc cazul. Există multe abordări sofisticate, care pot fi foarte utile în cazuri speciale. Generalised Autoregressive Conditional Heteroskedasticity (GARCH), Bayesian și VAR sunt doar câteva dintre acestea.

Există, de asemenea, modele de rețele neuronale care pot fi aplicate la serii de timp care utilizează predictori întârziați și care pot gestiona funcții cum ar fi Neural Network Autoregression (NNAR). Există chiar și modele de serii temporale împrumutate din învățarea complexă, în special din familia rețelelor neuronale recurente, cum ar fi rețelele LSTM și GRU.

Metrici de estimare și diagnostice reziduale

Cele mai comune măsurători de estimare pentru previziuni sunt valorile RMS, pe care mulți oameni le folosesc la rezolvarea problemelor de regresie:

  • MAPE, deoarece este independent de scară și reprezintă raportul dintre eroare și valorile reale sub formă de procent;
  • MASE, care arată cât de bine se comportă prognoza în comparație cu prognoza medie naivă.

Odată ce metoda de prognoză a fost adaptată, este important să se evalueze în ce măsură aceasta este capabilă să capteze modelele. Deși metricile de estimare ajută la determinarea gradului de apropiere a valorilor față de valorile reale, acestea nu evaluează dacă modelul corespunde TS. Reziduurile sunt o modalitate bună de a evalua acest lucru. Pe măsură ce programatorul încearcă să aplice modelele TS, el se poate aștepta ca erorile să se comporte ca un "zgomot alb", deoarece ele reprezintă ceva ce nu poate fi capturat de model.

"Zgomot alb" trebuie să aibă următoarele proprietăți:

  1. Reziduurile sunt necorelate (Acf = 0)
  2. Reziduurile corespund unei distribuții normale cu medie zero (fără distorsiuni) și varianță constantă.
  3. În cazul în care una dintre aceste două proprietăți lipsește, înseamnă că modelul are loc pentru îmbunătățiri.
  4. Proprietatea mediei zero poate fi testată cu ușurință folosind criteriul T.
  5. Proprietățile de normalitate și de varianță constantă sunt controlate vizual cu ajutorul unei histograme a reziduurilor sau a unui test de normalitate univariată adecvat.

Modelul ARIMA

Modelul ARIMA (AutoRegressive Integrated Moving-Average Model) este unul dintre cele mai populare metode utilizate în prognoza TS, în principal din cauza autocorelației datelor pentru a crea modele de înaltă calitate.

În estimarea coeficienților ARIMA, ipoteza de bază este că datele sunt staționare. Acest lucru înseamnă că tendința și sezonalitatea nu pot afecta varianța. Calitatea modelului poate fi evaluată prin compararea seriei temporale a valorilor reale cu valorile prognozate. Dacă ambele curbe sunt apropiate, se poate presupune că modelul se potrivește cu cazul analizat. Ar trebui să evidențieze orice tendință și sezonalitate, dacă există.

Analiza reziduurilor ar trebui să arate apoi dacă modelul este adecvat: reziduurile aleatorii înseamnă că acesta este corect. Ajustarea ARIMA cu parametrii (0,1,1) va da aceleași rezultate ca și netezirea exponențială, iar utilizarea parametrilor (0,2,2) va da rezultate duble de netezire exponențială.

Algoritmi pentru serii de timp în SQL Server

Puteți accesa setările ARIMA în Excel:

  1. Start Excel.
  2. Găsiți XL MINER în bara de instrumente.
  3. Pe panglică, selectați ARIMA din meniul derulant.

Rezumat al caracteristicilor modelului ARIMA:

  1. ARIMA - Medie mobilă integrată autoregresivă (Autoregressive Integrated Moving Average).
  2. Model de predicție utilizat în analiza seriilor temporale.
  3. Sintaxa parametrilor ARIMA: ARIMA (p, d, q), unde p = numărul de termeni autoregresivi, d = numărul de diferențe sezoniere și q = numărul de termeni de medie mobilă.

Algoritmi în SQL Server

Efectuarea predicției încrucișate este una dintre caracteristicile importante ale seriilor de timp în prognoza problemelor financiare. În cazul în care se utilizează două serii corelate, modelul rezultat poate fi aplicat pentru a prezice rezultatele unei serii pe baza comportamentului celorlalte serii.

SQL Server 2008 are noi caracteristici puternice pentru seriile de timp pe care trebuie să le învățați și să le folosiți. Instrumentul are date TS ușor accesibile, o interfață ușor de utilizat pentru a simula și reproduce funcțiile algoritmului și o fereastră de explicații cu o legătură către interogările DMX de pe server, astfel încât să se poată să fie capabili să înțeleagă ce se întâmplă pe plan intern.

Seriile temporale ale pieței reprezintă un domeniu larg la care se pot aplica modele și algoritmi de învățare profundă. Băncile, brokerii și fondurile experimentează în prezent implementarea acestora pentru a analiza și a prezice indici, cursuri de schimb, contracte futures, prețuri ale criptomonedelor, acțiuni guvernamentale și multe altele.

Atunci când prezice seriile de timp, rețeaua neuronală găsește modele previzibile prin examinarea structurilor și tendințelor pieței și oferă sfaturi comercianților. Aceste rețele pot ajuta, de asemenea, la detectarea anomaliilor, cum ar fi vârfuri neașteptate, scăderi, schimbări de tendință și schimbări de nivel. Multe modele inteligența artificială utilizate pentru previziuni financiare.

Articole pe această temă