Analiza și prognoza seriilor temporale

Cuprins:

Analiza și prognoza seriilor temporale
Analiza și prognoza seriilor temporale
Anonim

De mulți ani, oamenii au prezis condițiile meteorologice, evenimente economice și politice și rezultate sportive, recent această listă extinsă a fost completată cu criptomonede. Pentru a prezice evenimente versatile, există multe modalități de a dezvolta prognoze. De exemplu, intuiția, opiniile experților, utilizarea rezultatelor anterioare pentru a compara cu statisticile tradiționale și prognoza serii cronologice este doar una dintre ele, în timp ce cel mai modern și precis tip de prognoză cu o gamă largă de aplicații.

Metoda serii cronologice

Metoda serii temporale
Metoda serii temporale

O metodă de serie de timp (TS) este un set de date care colectează informații pe o perioadă de timp. Există metode speciale pentru extragerea acestui tip:

  • liniar și neliniar;
  • parametric și neparametric;
  • unidimensionale și multidimensionale.

Timp de prognozăseria aduce cu sine un set unic de capabilități pentru a face față provocărilor de astăzi. Modelarea se bazează pe învățare pentru a stabili forța motrice din spatele schimbării datelor. Procesul provine din tendințe pe termen lung, efecte sezoniere sau fluctuații neregulate care sunt caracteristice TS și nu sunt observate în alte tipuri de analize.

Învățarea automată este o ramură a informaticii în care algoritmii sunt compilați din date și includ rețele neuronale artificiale, deep learning, reguli de asociere, arbori de decizie, învățare prin consolidare și rețele bayesiene. O varietate de algoritmi oferă opțiuni pentru rezolvarea problemelor și fiecare are propriile cerințe și compromisuri în ceea ce privește introducerea datelor, viteza și acuratețea rezultatelor. Acestea, împreună cu acuratețea predicțiilor finale, vor fi ponderate atunci când utilizatorul decide care algoritm va funcționa cel mai bine pentru situația studiată.

Prognoza serii de timp împrumută din domeniul statisticii, dar oferă noi abordări ale modelării problemelor. Principala problemă pentru învățarea automată și pentru seriile de timp este aceeași - să preziceți rezultate noi pe baza datelor cunoscute anterior.

Ținta modelului predictiv

Scopul modelului predictiv
Scopul modelului predictiv

TS este un set de puncte de date colectate la intervale regulate. Acestea sunt analizate pentru a determina o tendință pe termen lung, pentru a prezice viitorul sau pentru a efectua un alt tip de analiză. Există 2 lucruri care fac TS diferit de o problemă normală de regresie:

  1. Depind de timp. Asa deipoteza de bază a unui model de regresie liniară conform căreia observațiile sunt independente nu este valabilă în acest caz.
  2. Odată cu o tendință de creștere sau scădere, majoritatea TS au o anumită formă de sezonalitate, adică modificări specifice unei anumite perioade de timp.

Scopul unui model de prognoză în serie de timp este de a oferi o prognoză precisă la cerere. Seria temporală are timpul (t) ca variabilă independentă și variabila dependentă țintă. În cele mai multe cazuri, prognoza este un rezultat specific, de exemplu, prețul de vânzare al unei case, rezultatul sportiv al competiției, rezultatele tranzacționării la bursă. Predicția reprezintă mediana și media și include un interval de încredere care exprimă un nivel de încredere în intervalul 80-95%. Când sunt înregistrate la intervale regulate, procesele se numesc serii de timp și sunt exprimate în două moduri:

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

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

Aceasta nu înseamnă că funcțiile sunt complet dezactivate. Acestea trebuie folosite cu prudență din următoarele motive:

  1. Nu este clar ce viitor realvalorile vor fi pentru aceste funcții.
  2. Dacă obiectele sunt previzibile și au anumite modele, puteți construi un model predictiv pentru fiecare dintre ele.

Totuși, rețineți că utilizarea valorilor predictive ca caracteristici va propaga eroarea în variabila țintă și va duce la erori sau predicții părtinitoare.

Componente de serie de timp

Componentele seriilor temporale
Componentele seriilor temporale

Trend există atunci când seria crește, scade sau rămâne la un nivel constant în timp, deci este luată ca o funcție. Sezonalitatea se referă la o proprietate a unei serii temporale care afișează modele periodice care se repetă la o frecvență constantă (m), de exemplu, m=12 înseamnă că modelul se repetă la fiecare douăsprezece luni.

Variabilele fictive similare cu sezonalitatea pot fi adăugate ca funcție binară. Puteți, de exemplu, să țineți cont de sărbători, evenimente speciale, campanii de marketing, indiferent dacă valoarea este străină sau nu. Cu toate acestea, trebuie să rețineți că aceste variabile trebuie să aibă anumite modele. Cu toate acestea, numărul de zile poate fi calculat cu ușurință chiar și pentru perioade viitoare și influențează prognoza seriilor temporale, în special în domeniul financiar.

Cicurile sunt anotimpuri care nu au loc la o rată fixă. De exemplu, atributele anuale de reproducere ale râului din Canada 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 întârziate -valorile întârziate ale unei variabile pot fi incluse ca predictori. Unele modele, cum ar fi ARIMA, Vector Autoregression (VAR) sau Autoregressive Neural Networks (NNAR), funcționează astfel.

Componentele variabilei de interes sunt foarte importante pentru analiza și prognoza seriilor temporale, pentru a le înțelege comportamentul, modelele și pentru a putea selecta modelul potrivit.

Atribute setului de date

Atributele setului de date
Atributele setului de date

Puteți fi obișnuit să introduceți mii, milioane și miliarde de puncte de date în modelele de învățare automată, dar acest lucru nu este necesar pentru seriile de timp. De fapt, se poate lucra 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, există de fapt o serie de avantaje ale acestei abordări:

  1. Astfel de seturi de informații vor corespunde capabilităților unui computer de acasă.
  2. În unele cazuri, efectuați analize de serie cronologică și estimare folosind întregul set de date, nu doar un eșantion.
  3. Lungimea TS este utilă pentru a crea grafice care pot fi analizate. Acesta este un punct foarte important deoarece programatorii se bazează pe grafică în faza de analiză. Acest lucru nu înseamnă că nu funcționează cu serii cronologice uriașe, dar inițial ar trebui să poată face față TS mai mici.
  4. Orice set de date care conține un câmp legat de timp poate beneficia de analiza și prognoza seriilor temporale. Cu toate acestea, dacă programatorul are un set mai mare de date, DB (TSDB)poate fi mai potrivit.

Unele dintre aceste seturi provin din evenimente înregistrate cu marca temporală, jurnalele de sistem și date financiare. Deoarece TSDB funcționează nativ cu serii de timp, aceasta este o oportunitate excelentă de a aplica această tehnică la seturi de date la scară largă.

Învățare automată

Învățarea automată (ML) poate depăși metodele tradiționale de prognoză a seriilor de timp. Există o mulțime de studii care compară metodele de învățare automată cu metode statistice mai clasice privind datele TS. Rețelele neuronale sunt una dintre tehnologiile care au fost cercetate pe scară largă și aplică abordări TS. Metodele de învățare automată conduc în clasamentul pentru colectarea datelor bazate pe serii de timp. Aceste seturi s-au dovedit a fi eficiente, depășind seturile TS pure față de M3 sau Kaggle.

MO are propriile sale probleme specifice. Dezvoltarea de funcții sau generarea de noi predictori dintr-un set de date este un pas important pentru acesta și poate avea un impact uriaș asupra performanței și poate fi o modalitate necesară de a aborda problemele legate de tendințe și sezonalitate ale datelor TS. De asemenea, unele modele au probleme cu cât de bine se potrivesc datelor, iar dacă nu se potrivesc, pot rata tendința principală.

Serii de timp și abordări de învățare automată nu ar trebui să existe izolat una de ceal altă. Ele pot fi combinate împreună pentru a oferi beneficiile fiecărei abordări. Metodele de prognoză și analiza seriilor de timp sunt bune la descompunerea datelor în date de tendințe și sezoniere.elemente. Această analiză poate fi apoi utilizată ca intrare pentru un model ML care are informații despre tendințe și sezonalitate în algoritmul său, oferind tot ce este mai bun din ambele lumi.

Înțelegerea afirmației problemei

Pentru un exemplu, luați în considerare TS legate de prognoza numărului de pasageri pe un nou serviciu feroviar de mare viteză. De exemplu, aveți 2 ani de date (august 2016 - septembrie 2018) și cu aceste date trebuie să preziceți numărul de pasageri pentru următoarele 7 luni, având 2 ani de date (2016-2018) la nivel orar cu numărul de pasageri care călătoresc și este necesar să se estimeze numărul acestora în viitor.

Subset de date pentru prognoză cu serii cronologice:

  1. Crearea unui tren și fișier de testare pentru simulare.
  2. Primele 14 luni (august 2016 - octombrie 2017) sunt folosite ca date de antrenament, iar următoarele 2 luni (noiembrie 2017 - decembrie 2017) sunt date de testare.
  3. Agregați setul de date zilnic.
Agregarea setului de date
Agregarea setului de date

Efectuați vizualizarea datelor pentru a vedea cum se modifică acestea într-o perioadă de timp.

Vizualizarea datelor
Vizualizarea datelor

Metoda de construcție a abordării naive

Biblioteca utilizată în acest caz pentru predicția TS este statsmodels. Trebuie instalat înainte de a putea fi aplicată oricare dintre aceste abordări. Poate că statsmodels este deja instalat în mediul Python, dar nu acceptă metodepredicție, așa că va trebui să o clonați din depozit și să o instalați din sursă.

Secvențierea
Secvențierea

Pentru acest exemplu, înseamnă că prețurile călătoriei cu monede sunt stabile de la început și pe toată perioada de timp. Această metodă presupune că următorul punct așteptat este egal cu ultimul punct observat și se numește Abordare naivă.

Metoda naivă
Metoda naivă

Acum calculați abaterea standard pentru a testa acuratețea modelului pe setul de date de testare. Din valoarea RMSE și din graficul de mai sus, putem concluziona că Naive nu este potrivit pentru opțiunile cu volatilitate ridicată, dar este folosit pentru cele stabile.

Stil mediu simplu

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

Stil mediu simplu
Stil mediu simplu

Din acesta putem concluziona că prețul crește și scade aleator cu o marjă mică, astfel încât valoarea medie să rămână constantă. În acest caz, puteți prezice prețul pentru perioada următoare, similar cu media pentru toate zilele trecute.

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

În acest caz, se iau valorile cunoscute anterior, se calculează media și se ia ca valoare următoare. Desigur, acest lucru nu va fi exact, dar este destul de aproape și există situații în care această metodă funcționează cel mai bine.

Mediu simplumetodă
Mediu simplumetodă

Pe baza rezultatelor afișate pe grafic, 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 media, dar nu pentru toate seturile de date. Este recomandat să încercați fiecare model pas cu pas și să vedeți dacă îmbunătățește rezultatul sau nu.

Model mediu mobil

Model mediu mobil
Model mediu mobil

Pe baza acestui grafic, putem concluziona că prețurile au crescut de mai multe ori în trecut cu o marjă largă, dar acum sunt stabile. Pentru a utiliza metoda anterioară de mediere, trebuie să luați media tuturor datelor anterioare. Prețurile perioadei inițiale vor influența puternic prognoza perioadei următoare. Prin urmare, ca o îmbunătățire față de media simplă, luați media prețurilor doar pentru ultimele perioade de timp.

Această tehnică de prognoză este numită tehnica mediei mobile, uneori denumită „fereastra în mișcare” de dimensiunea „n”. Folosind un model simplu, următoarea valoare din TS este prezisă 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ă a prognozei prin metoda netezirii exponențiale simple. În metoda mediei mobile, observațiile „n” din trecut sunt ponderate în mod egal. În acest caz, puteți întâlni situații în care fiecare din trecutul „n” afectează prognoza în felul său. Această variație, care ponderează diferit observațiile din trecut, se numește metodămedie mobilă ponderată.

Extrapolarea modelelor

Una dintre cele mai importante proprietăți necesare pentru a lua în considerare algoritmii de prognoză a seriilor de timp este capacitatea de a extrapola modele în afara domeniului de date de antrenament. Mulți algoritmi ML nu au această capacitate, deoarece tind să se limiteze la o regiune care este definită de datele de antrenament. Prin urmare, nu sunt potrivite pentru TS, al cărui scop este proiectarea rezultatului în viitor.

O altă proprietate importantă a algoritmului TS este posibilitatea de a obține intervale de încredere. Deși aceasta este proprietatea implicită pentru modelele TS, majoritatea modelelor ML nu au această capacitate, deoarece nu sunt toate bazate pe distribuții statistice.

Nu credeți că sunt folosite doar metode statistice simple pentru a prezice TS. Nu este deloc așa. Există multe abordări complexe care pot fi foarte utile în cazuri speciale. Heteroscedasticitatea condiționată autoregresivă generalizată (GARCH), Bayesian și VAR sunt doar câteva dintre ele.

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

Valori de estimare și diagnosticare reziduală

Cele mai comune valori de predicție suntrms înseamnă, pe care mulți oameni le folosesc atunci când rezolvă probleme de regresie:

  • MAPE deoarece este independent de scară și reprezintă raportul dintre erori și valorile reale ca procent;
  • MASE, care arată cât de bine funcționează predicția în comparație cu predicția medie naivă.

Odată ce o metodă de prognoză a fost adaptată, este important să se evalueze cât de bine este capabilă să capteze modelele. Deși metricile de evaluare ajută la determinarea cât de apropiate sunt valorile de valorile reale, ele nu evaluează dacă modelul se potrivește cu TS. Resturile sunt o modalitate bună de a evalua acest lucru. Deoarece programatorul încearcă să aplice modele TS, se poate aștepta ca erorile să se comporte ca „zgomot alb”, deoarece reprezintă ceva ce nu poate fi capturat de model.

„Zgomotul alb” trebuie să aibă următoarele proprietăți:

  1. Reziduuri necorelate (Acf=0)
  2. Reziduurile urmează o distribuție normală cu medie zero (nepărtinitoare) și varianță constantă.
  3. Dacă lipsește oricare dintre cele două proprietăți, este loc de îmbunătățire a modelului.
  4. Proprietatea medie zero poate fi testată cu ușurință folosind testul T.
  5. Proprietățile normalității și ale variației constante sunt controlate vizual folosind o histogramă de reziduuri sau un test de normalitate univariat adecvat.

Model ARIMA

ARIMA - Modelul AutoRegressive Integrat Moving-Average, este una dintre cele mai populare metode utilizate în prognoza TS, în principalprin autocorelarea datelor pentru a crea modele de în altă calitate.

La evaluarea coeficienților ARIMA, ipoteza principală este că datele sunt staționare. Aceasta înseamnă că tendința și sezonalitatea nu pot afecta varianța. Calitatea modelului poate fi evaluată prin compararea graficului temporal al valorilor reale cu valorile prezise. Dacă ambele curbe sunt apropiate, atunci se poate presupune că modelul se potrivește cazului analizat. Ar trebui să dezvăluie orice tendințe și caracter sezonier, dacă există.

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

Algoritmi de serie temporală în SQL Server
Algoritmi de serie temporală în SQL Server

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

  1. Începe Excel.
  2. Găsiți XL MINER pe bara de instrumente.
  3. Pe panglică, selectați ARIMA din meniul drop-down.

Rezumatul capabilităților modelului ARIMA:

  1. ARIMA - Media mobilă integrată autoregresivă.
  2. Model de prognoză utilizat în analiza seriilor de timp.
  3. Sintaxa parametrului 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 medii mobile.

Algoritmi în SQL Server

Efectuarea predicției încrucișate este una dintre cele mai importantecaracteristici ale seriilor temporale în prognozarea sarcinilor financiare. Dacă sunt utilizate două serii înrudite, modelul rezultat poate fi utilizat pentru a prezice rezultatele unei serii pe baza comportamentului celorl alte.

SQL Server 2008 are noi funcții puternice de serie cronologică de învățat și utilizat. Instrumentul are date TS ușor accesibile, o interfață ușor de utilizat pentru simularea și reproducerea funcțiilor algoritmului și o fereastră de explicație cu un link către interogările DMX de pe server, astfel încât să puteți înțelege ce se întâmplă în interior.

Seria temporală a pieței este o zonă largă în care se pot aplica modele și algoritmi de învățare profundă. Băncile, brokerii și fondurile experimentează acum implementarea lor de analiză și prognoză pentru indici, rate de schimb, contracte futures, prețuri criptomonede, acțiuni guvernamentale și multe altele.

În prognoza serii de timp, rețeaua neuronală găsește modele previzibile studiind structurile și tendințele piețelor ș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țe și schimbări de nivel. Multe modele de inteligență artificială sunt folosite pentru prognozele financiare.

Recomandat: