Documente Academic
Documente Profesional
Documente Cultură
Introducere
Series Student: Petrean Vlad
Secolul al XXI-lea este pe bună dreptate denumit secolul vitezei. Acest lucru este se
datoreazăat atât avansului tehnologic cât şi mai ales vitezei ridicate de acces la informaţie
precum şi utilizarea acesteia în majoritatea domeniilor existente. Unul dintre cele mai
importante aspect al avansului tehnologicaceste progrese tehnologice îl este reprezentat de
cătrereprezintă internet prin intermediul căruia putem realiza o bună parte din activităţile
noastre zilnice administrative: achitarea diferitelor facturi, achiziţia unor bunuri online
ş.a.m.d.
Nu puţine sunt aplicaţiile de tip ,,e-commerce” prin intermediul cărora se pot realiza
astfel de lucruri. Astfel de magazine online precum Amazon, Ebay, Emag etc, sunt foarte
populare în întreaga lume şi accesate într-un număr extrem de mare în fiecare lună de
utilizatori . Numărul ridicat de operaţiuni online de utilizatori permite colectarea precum şi
înregistrarea unui volumn imens de date iar mai concret pentru a avea un reper, site-ul
Amazon a avut înregistrat în luna Mai anul 2019 un număr de 2.5 miliare de accesări. Aşadar
pentru fiecare astfel de accesare putem avea stocat într-o bază de date o anumită înregistrare.
Aceste date pot fi utilizate respectiv prelucrate prin intermediul tehnologiilor contemporane
pentru a creşte profitul furnizorilor şi a ajuta la dezvoltarea acestora prinvind strategia de
vânzări. O astfel de prelucrare se poate realiza prin intermediul modelului ARIMA, ce are la
bază noţiunea de TimeSeries, în jurul căreia va fi redactat articolul de faţă.
Descrierea domeniului
Desigur, scopul fiecărei companii ce are la bază activitatea de comerţ este să realizeze
un profit cât mai ridicat prin vânzarea diferitelor articole, indiferent de natura lor: produse
alimentare, îmbrăcăminte, electronice, etc. Scoţând acest lucru în evidenţă, ei bine, trebuie să
avem în vedere, faptul că pentru a putea asigura maximizarea acestui profit, modelul ideal de
afacere ar presupune achiziţionarea unui stoc având o cantitate X şi vânzarea acestei cantităţi la
un preţ Y. Însă în realitate, mai ales datorită faptului că există o competiţie dură între
,,retaileri’’, modelul de faţă este rar întâlnit. Anume fie stocul nu este destul de mare pentru a
satisface cerea clienţilor, sau chiar dimpotrivă produsele din acel stoc nu au parte de vânzările
aşteptate şi atunci companiile trebuie să reducă din preţuri, cauzând astfel pierderi ale
profitului.
Prezentarea problemei
Din această cauză tot mai multe companii de comerţ încearcă prin diferite metode, să
estimeze valoarea şi cantitatea vânzărilor. Forme mai vechi ale acestor metode au fost
reprezentate de către programe soft care pe baza încasărilor în casele de marcat, realizau un
update în timp real pentru a nu rămâne niciodată fără produse pe stoc. Mai precis, dacă se
înregistra o vânzare, în spate se comanda acelaşi produs în mod automat, sau se aduna în
vederea aprovizionării următorului stoc.
Alte metode mai noi, constau în utilizarea diferiţilor algoritmi bazaţi pe inteligenţă
artificială ce analizează un set mare de date, şi în urma unor operaţii matematice mai avansate
vor reuşi să ofere o astfel de predicţie. Ce trebuie menţionat privind folosirea inteligenţei
artificiale, anume, nu există o soluţie generală în rezolvarea acestei probleme. Nu în cazul
fiecărei predicţii de stocuri vom putea folosi un algoritm X. Acest lucru se datorează faptului că
fiecare problemă, sau mai bine spus datele ce se doresc a fi preconizate, diferă între ele din
punct de vedere al caracteristicilor. De exemplu, dacă dorim să facem o predicţie la
îmbrăcăminte, ei bine, iarna vom avea anumite articole şi vara vom avea articole specifice
anotimpului cald. Sau un alt exemplu mai relevant şi mai cunoscut în întreaga lume: vânzarea
produselor electronice în perioada ,,Black Friday’’, când vânzăriile cresc brusc pentru o perioadă
scurtă şi trebuie asigurate stocuri mai mari pentru a satisface cererea. Din aceasta cauză trebuie
analizat fiecare caz şi observat care soluţie este mai optimă şi mai important dacă aceasta
constă în utilizarea unui algoritm bazat pe inteligenţă artificială.
Time Series
Pentru a putea descrie modelul ARIMA, întâi de toate trebuie prezentată mai pe larg
noţiunea de Time Series.
Time series sau ,,seria serie cronologică” în limba română, este defapt un mod de a
reprezenta anumite date ordonate iar prin acest mod se evidenţiază uşor evoluţia acestora
datelor într-o perioadă de timp. Spre exemplu magazinele online înregistrează fiecare vânzare
realizată printr diverse tipuri de recorduri într-o bază de date.
Recordurile constituie defapt conţinutul unei astfel de serii cronologice. Desigur
iInteresul principal în pentru a organiza şi înregistra astfel de statistici constă în observarea în
mod automat a evoluţiei acestora precum şi obţinerea unor predicţii a modului în care vor
arăta datele în viitor. Exemplul anterior este unul specific comerţului, însă domeniile în care
pot şi sunt folosite seriile cronologice este unul foarte larg, de la domeniul geografic: prezicerea
evoluţiei temperaturilor, până la cel medical: predicţia numărului de nou născuţi într-o ţară în
următorii 10 ani spre exemplu.
Sezonalitate – observarea unui ,,pattern’’ (şablon) într-un set de date. Spre exemplu
în perioada sărbătoriilor de Crăciun, vânzăriile de produse vestimentare sunt în
creştere.
Modelul ARIMA
Modelele ARIMA (Autoregressive integrated moving average) aşa cum s-a precizat
anterior, sunt modele ale seriilor de timp care pot fi folosite pentru modelarea si prognoza
datelor univariate. Astfel se presupune că datele sunt rezultate dintr-un process stochastic
(având o probabilitate aleatoare) generat de cauze neprecizate, care prognozeaza valori
viitoare ca combinatii liniare a valorilor observate pina la acel moment si estimari ale socurilor
curente si anterioare private ca variabile aleatore (Box et al. 2008).[1]
Din punct de vedere structural, acest model este alcătuit la rândul său din două modele
anume AR (Autoregressive) şi MA (Moving average). Litera ,,I” din nume provine de la
componenta ce integrează cele două părţi menţionate anterior.
Modelul AR constă în studierea intervalului de timp dat. Pentru a explica cel mai bine
rolul acestui model, ne vom imagina o perioadă de timp care începe la moment Xt=0 şi continuă
prin momentul Xt=I şi ajunge într-un final până la momentul Xt=n. Unde indexul ,,t’’ reprezintă
o dată specifică. Aşadar rolul acestuit model este de a studia relaţia dintre t=i şi t=i-1 sau t=i+1
sau t=i-2, ş.a.m.d cu scopul de a observa un şablon.
Modelul MA (moving average). Precum s-a menţionat anterior, una dintre
componetenle unei serii de timp este reprezentată de iregularitate. Factorii externi care ne
afectează evoluţia setului nostru de date şi direct logica noastră de predicţie trebuie anticipaţi.
Aşadar prin modelul MA se doreşte calcularea valorii de iregularitate, iar acest lucru fiind unul
foarte dificil, se urmăreşte să se obţină o medie a tutror acestor perturbaţii în evoluţia unui set
de date.
Calcularea acestei valorii medii a iregularităţii va contribuii şi la predicţia pe viitor,
anume se va aplica valoarea medie când vom realiza o predicţie. De exemplu se va putea
preconiza cu o marjă de eroare cât mai mică, când vânzările unui produs vor creşte sau vor
descreşte din cauza unui eveniment neanticipat.
Figura 1.3 Strucutra modelul ARIMA
După ce am verificat acest aspect, vom continua prin a calcula parametrii fiecărei
componente care alcătuiesc modelul ARIMA menţionate mai sus. Odată calculaţi aceşti
parametri, tot ceea ce rămâne de făcut este reprezentat de instanţierea unui obiect de tipul
ARIMA, folosindu-ne de setul de date modificat şi de cei doi parametri calculaţi anterior. De
menţionat este că atât pentru calcularea celor doi parametri cât şi pentru instanţierea şi
crearea unui model ARIMA, avem predefinit modulul ,,statsmodels’’.
Aşadar vom antrena acest model prin simpla apelare a unei metode prezentă în clasa
Statsmodel. Se observă prin acest mod avantajul pe care îl oferă limbajul de programare Python
în acest sens, deoarece programatorul nu mai este nevoit să implementeze algoritmi descrişi în
vedera obţinerii unor rezultate.
Rezultate obţinute
Odată antrenat modelul, putem obţine rezultate în funcţie de intervalul pentru care
dorim să realizăm o predicţie. De exemplu dacă vom prezice numărul de pasageri la un interval
de doi ani vom avea următoarele date:
An Număr de pasageri
1949 100
1951 180
1953 260
1955 330
1957 400
1959 500
1961 620
Concluzii
În zilele noastre aplicaţiile de gestionare a unui anumit tip de date se diferenţiază între
ele din punct de vedere al performanţei lor şi prin capacitatea de a prelucra aceste date, în
sensul că nu mai este de ajuns doar să execuţi operaţiile elementare şi să le afişezi unor
utilizatori.
Diferenţa între astfel de aplicaţii constă în posibilitatea propriu zisă de a obţine
,,foloase’’ ca să le numesc aşa cât mai profitabile de pe urma acestora. Un astfel de exemplu
constă în predicţia de stocuri necesară pentru un magazine, sau anticiparea numărului de
pasageri pe care îi va avea un aeroport pentru a ştii dacă anul viitor va fi nevoie să se
achiziţioneze un nou avion şi care să fie capacitatea acestuia iar astfel de probleme sunt foarte
diverse.
Desigur există multe metode prin care putem soluţiona astfel de cerinţe iar cea
prezentată în lucrarea de faţă anume, Serii cronologice este printre cele mai vechi metode cu
ajutorul căreia putem realiza o astfel de predicţie.
Aşa cum s-a prezentat, munca programatorului s-a redus foarte mult deoarece o gamă
largă de algoritmi există deja implementaţi in limbaje de programare precum Python, R, etc,
însă cu toate acestea, programatorului îi revine în continuare sarcina de a găsi algoritmul mai
optim pentru fiecare situaţie în parte.
BIBLIOGRAFIE
[1] - http://www.stiucum.com/economie/statistica/Serii-cronologice13985.php
https://www.youtube.com/watch?v=e8Yw4alG16Q
https://www.machinelearningplus.com/time-series/time-series-analysis-python/
https://www.shanelynn.ie/using-pandas-dataframe-creating-editing-viewing-data-in-python/