Laiko eilučių analizė ir prognozavimas

Turinys:

Laiko eilučių analizė ir prognozavimas
Laiko eilučių analizė ir prognozavimas
Anonim

Daugelį metų žmonės prognozavo oro sąlygas, ekonominius ir politinius įvykius bei sporto rezultatus, pastaruoju metu šis platus sąrašas pasipildė kriptovaliutomis. Norint numatyti įvairiapusius įvykius, yra daug būdų, kaip sudaryti prognozes. Pavyzdžiui, intuicija, ekspertų nuomonės, ankstesnių rezultatų naudojimas palyginimui su tradicine statistika ir laiko eilučių prognozavimas yra tik vienas iš jų, o moderniausias ir tiksliausias prognozių tipas su plačiu pritaikymo spektru.

Laiko eilutės metodas

Laiko eilučių metodas
Laiko eilučių metodas

Laiko eilučių (TS) metodas yra duomenų rinkinys, renkantis informaciją per tam tikrą laikotarpį. Yra specialūs šio tipo ištraukimo būdai:

  • tiesinis ir nelinijinis;
  • parametrinis ir neparametrinis;
  • vienmatis ir daugiamatis.

Prognozuojamas laikasserija suteikia unikalių galimybių, leidžiančių įveikti šiandienos iššūkius. Modeliavimas remiasi mokymusi nustatyti duomenų pasikeitimo varomąją jėgą. Šis procesas atsiranda dėl ilgalaikių tendencijų, sezoninių padarinių arba netaisyklingų svyravimų, kurie būdingi TS ir nėra matomi atliekant kitų tipų analizę.

Mašininis mokymasis yra kompiuterių mokslo šaka, kurioje algoritmai sudaromi iš duomenų ir apima dirbtinius neuroninius tinklus, gilųjį mokymąsi, asociacijų taisykles, sprendimų medžius, mokymąsi sustiprinant ir Bajeso tinklus. Įvairūs algoritmai suteikia problemų sprendimo galimybes, ir kiekvienas iš jų turi savo reikalavimus ir kompromisus dėl duomenų įvedimo, greičio ir rezultatų tikslumo. Jie, kartu su galutinių prognozių tikslumu, bus pasverti, kai vartotojas nuspręs, kuris algoritmas geriausiai veiks tiriamoje situacijoje.

Laiko eilučių prognozavimas skolinamasi iš statistikos srities, tačiau suteikia naujų požiūrių į problemų modeliavimą. Pagrindinė mašininio mokymosi ir laiko eilučių problema yra ta pati – numatyti naujus rezultatus remiantis anksčiau žinomais duomenimis.

Numatomojo modelio taikinys

Numatymo modelio paskirtis
Numatymo modelio paskirtis

TS yra reguliariais intervalais renkamų duomenų taškų rinkinys. Jie analizuojami siekiant nustatyti ilgalaikę tendenciją, numatyti ateitį ar atlikti kitokią analizę. Yra du dalykai, dėl kurių TS skiriasi nuo įprastos regresijos problemos:

  1. Jie priklauso nuo laiko. Taigipagrindinė tiesinės regresijos modelio prielaida, kad stebėjimai yra nepriklausomi, šiuo atveju negalioja.
  2. Didėjant arba mažėjant tendencijai, daugumai TS būdingas tam tikras sezoniškumas, t. y. tam tikram laikotarpiui būdingi pokyčiai.

Laiko eilučių prognozavimo modelio tikslas yra pateikti tikslią prognozę pagal poreikį. Laiko eilutėje yra laikas (t) kaip nepriklausomas kintamasis ir tikslinis priklausomas kintamasis. Dažniausiai prognozuojamas konkretus rezultatas, pavyzdžiui, būsto pardavimo kaina, varžybų sportinis rezultatas, prekybos biržoje rezultatai. Prognozė atspindi medianą ir vidurkį ir apima pasikliautinąjį intervalą, išreiškiantį 80–95% pasikliovimo lygį. Kai jie įrašomi reguliariais intervalais, procesai vadinami laiko eilutėmis ir išreiškiami dviem būdais:

  • vienmatis su laiko indeksu, sukuriančiu numanomą tvarką;
  • dviejų matmenų rinkinys: laikas su nepriklausomu kintamuoju ir kitu priklausomu kintamuoju.

Funkcijų kūrimas yra viena svarbiausių ir daugiausiai laiko reikalaujančių taikomojo mašininio mokymosi užduočių. Tačiau laiko eilučių prognozavimas nesukuria savybių, bent jau ne tradicine prasme. Tai ypač aktualu, kai norite nuspėti rezultatą keliais žingsniais į priekį, o ne tik kitą reikšmę.

Tai nereiškia, kad funkcijos visiškai išjungtos. Jie turėtų būti naudojami atsargiai dėl šių priežasčių:

  1. Neaišku, kokia ateitis tikrareikšmės bus skirtos šioms funkcijoms.
  2. Jei objektai yra nuspėjami ir turi tam tikrų šablonų, galite sukurti kiekvienam iš jų nuspėjamą modelį.

Tačiau atminkite, kad naudojant nuspėjamąsias reikšmes kaip ypatybes, klaida bus perkelta į tikslinį kintamąjį, o tai sukels klaidų arba šališkų prognozių.

Laiko eilutės komponentai

Laiko eilutės komponentai
Laiko eilutės komponentai

Tendencija egzistuoja, kai serija didėja, mažėja arba laikui bėgant išlieka pastovaus lygio, todėl ji laikoma funkcija. Sezoniškumas reiškia laiko eilutės, kurioje rodomi periodiniai modeliai, pasikartojantys pastoviu dažniu (m), savybę, pavyzdžiui, m=12 reiškia, kad modelis kartojasi kas dvylika mėnesių.

Į sezoniškumą panašius netikrus kintamuosius galima pridėti kaip dvejetainę funkciją. Galite, pavyzdžiui, atsižvelgti į šventes, specialius renginius, rinkodaros kampanijas, neatsižvelgiant į tai, ar vertė yra svetima, ar ne. Tačiau reikia atsiminti, kad šie kintamieji turi turėti tam tikrus modelius. Tačiau dienų skaičių galima nesunkiai apskaičiuoti net ir būsimiems laikotarpiams ir daryti įtaką laiko eilučių prognozavimui, ypač finansinėje srityje.

Dviračiai yra sezonai, kurie nevyksta fiksuotu greičiu. Pavyzdžiui, kasmetiniai Kanados lūšių dauginimosi požymiai atspindi sezoninius ir cikliškus modelius. Jie nesikartoja reguliariais intervalais ir gali atsirasti net jei dažnis yra 1 (m=1).

Atidėtos vertės –kintamojo atsiliekančios reikšmės gali būti įtrauktos kaip prognozės. Kai kurie modeliai, pvz., ARIMA, vektorinė automatinė regresija (VAR) arba autoregresyvūs neuroniniai tinklai (NNAR), veikia taip.

Dominamojo kintamojo komponentai yra labai svarbūs laiko eilučių analizei ir prognozavimui, norint suprasti jų elgesį, modelius ir pasirinkti tinkamą modelį.

Duomenų rinkinio atributai

Duomenų rinkinio atributai
Duomenų rinkinio atributai

Galite būti įpratę į mašininio mokymosi modelius įvesti tūkstančius, milijonus ir milijardus duomenų taškų, bet tai nėra būtina laiko eilutėms. Tiesą sakant, galima dirbti su mažu ir vidutiniu TS, priklausomai nuo kintamojo dažnio ir tipo, ir tai nėra metodo trūkumas. Be to, iš tikrųjų šis metodas turi daug privalumų:

  1. Tokie informacijos rinkiniai atitiks namų kompiuterio galimybes.
  2. Kai kuriais atvejais atlikite laiko eilučių analizę ir prognozavimą naudodami visą duomenų rinkinį, o ne tik pavyzdį.
  3. TS ilgis naudingas kuriant grafikus, kuriuos galima analizuoti. Tai labai svarbus momentas, nes programuotojai analizės etape remiasi grafika. Tai nereiškia, kad jie neveikia su didžiulėmis laiko eilutėmis, bet iš pradžių jie turėtų sugebėti valdyti mažesnes TS.
  4. Bet kuriam duomenų rinkiniui, kuriame yra su laiku susijęs laukas, gali būti naudinga laiko eilučių analizė ir prognozavimas. Tačiau jei programuotojas turi didesnį duomenų rinkinį, DB (TSDB)gali būti tinkamesnis.

Kai kurie iš šių rinkinių gaunami iš įvykių, įrašytų naudojant laiko žymą, sistemos žurnalus ir finansinius duomenis. Kadangi TSDB savaime veikia su laiko eilutėmis, tai puiki galimybė pritaikyti šią techniką didelio masto duomenų rinkiniams.

Mašininis mokymasis

Mašininis mokymasis (ML) gali pranokti tradicinius laiko eilučių prognozavimo metodus. Yra daugybė tyrimų, kuriuose mašininio mokymosi metodai lyginami su klasikiniais statistiniais TS duomenų metodais. Neuroniniai tinklai yra viena iš plačiai ištirtų technologijų, kuriose taikomi TS metodai. Mašininio mokymosi metodai pirmauja duomenų rinkimo reitinguose pagal laiko eilutes. Šie rinkiniai pasirodė esą veiksmingi ir pranoksta grynus TS rinkinius, palyginti su M3 arba Kaggle.

MO turi specifinių problemų. Funkcijų kūrimas arba naujų prognozių generavimas iš duomenų rinkinio yra svarbus žingsnis, galintis turėti didelį poveikį našumui ir būti būtinas būdas spręsti TS duomenų tendencijų ir sezoniškumo problemas. Be to, kai kurie modeliai turi problemų dėl to, kaip gerai jie atitinka duomenis, o jei ne, jie gali nepastebėti pagrindinės tendencijos.

Laiko eilutės ir mašininio mokymosi metodai neturėtų egzistuoti vienas nuo kito atskirai. Juos galima derinti kartu, kad būtų suteikta kiekvieno požiūrio pranašumai. Prognozavimo metodai ir laiko eilučių analizė gerai išskaido duomenis į tendencijų ir sezoninius duomenis.elementai. Tada šią analizę galima naudoti kaip įvestį į ML modelį, kurio algoritme yra informacijos apie tendencijas ir sezoniškumą, suteikiant geriausią iš abiejų pasaulių.

Problemos teiginio supratimas

Pavyzdžiui, apsvarstykite TS, susijusią su keleivių skaičiaus prognozavimu naujoje greitojo geležinkelio paslauga. Pavyzdžiui, turite 2 metų duomenis (2016 m. rugpjūčio mėn. – 2018 m. rugsėjis) ir su šiais duomenimis turite numatyti keleivių skaičių per ateinančius 7 mėnesius, turėdami 2 metų duomenis (2016–2018 m.) valandiniu lygiu su keliaujančių keleivių skaičių ir būtina įvertinti jų skaičių ateityje.

Duomenų rinkinio pogrupis, skirtas prognozuoti su laiko eilutėmis:

  1. Traukinio ir bandymo failo kūrimas modeliavimui.
  2. Pirmieji 14 mėnesių (2016 m. rugpjūčio mėn.–2017 m. spalio mėn.) naudojami kaip treniruočių duomenys, o kiti 2 mėnesiai (2017 m. lapkričio mėn.–2017 m. gruodžio mėn.) yra bandymų duomenys.
  3. Duomenų rinkinį kaupkite kasdien.
Duomenų rinkinio agregavimas
Duomenų rinkinio agregavimas

Atlikite duomenų vizualizavimą, kad pamatytumėte, kaip jie keičiasi per tam tikrą laikotarpį.

Duomenų vizualizacija
Duomenų vizualizacija

Naiviojo požiūrio konstravimo metodas

Šiuo atveju TS numatymui naudojama biblioteka yra statistiniai modeliai. Prieš pradedant taikyti bet kurį iš šių metodų, jis turi būti sumontuotas. Galbūt statsmodels jau įdiegtas Python aplinkoje, bet nepalaiko metodųnumatymas, todėl turėsite jį klonuoti iš saugyklos ir įdiegti iš š altinio.

Sekos nustatymas
Sekos nustatymas

Šiam pavyzdžiui tai reiškia, kad monetos kelionių kainos yra stabilios nuo pat pradžių ir per visą laikotarpį. Taikant šį metodą daroma prielaida, kad kitas laukiamas taškas yra lygus paskutiniam stebimam taškui ir vadinamas naivu požiūriu.

Naivus metodas
Naivus metodas

Dabar apskaičiuokite standartinį nuokrypį, kad patikrintumėte modelio tikslumą bandymo duomenų rinkinyje. Iš RMSE reikšmės ir aukščiau pateikto grafiko galime daryti išvadą, kad „Naive“netinka didelio nepastovumo parinktims, tačiau naudojama stabiliems variantams.

Paprastas vidutinis stilius

Norint parodyti metodą, nubraižoma diagrama, darant prielaidą, kad Y ašis reiškia kainą, o X ašis – laiką (dienomis).

Paprastas vidutinis stilius
Paprastas vidutinis stilius

Iš to galime daryti išvadą, kad kaina didėja ir mažėja atsitiktinai su nedidele marža, todėl vidutinė vertė išlieka pastovi. Tokiu atveju galite numatyti kito laikotarpio kainą, panašią į visų praėjusių dienų vidurkį.

Šis prognozavimo metodas su numatomu anksčiau stebėtų taškų vidurkiu vadinamas paprastu vidurkio metodu.

Šiuo atveju imamos anksčiau žinomos reikšmės, apskaičiuojamas vidurkis ir imama kita reikšmė. Žinoma, tai nebus tikslus, bet tai gana artima, ir yra situacijų, kai šis metodas veikia geriausiai.

Paprasta vidutinėmetodas
Paprasta vidutinėmetodas

Remiantis grafike rodomais rezultatais, šis metodas geriausiai veikia, kai vidutinė vertė per kiekvieną laikotarpį išlieka pastovi. Nors naivus metodas yra geresnis už vidutinį, bet ne visiems duomenų rinkiniams. Rekomenduojama žingsnis po žingsnio išbandyti kiekvieną modelį ir pamatyti, ar tai pagerina rezultatą, ar ne.

Judančio vidurkio modelis

Slenkančio vidurkio modelis
Slenkančio vidurkio modelis

Remiantis šia diagrama, galime daryti išvadą, kad kainos praeityje kelis kartus išaugo dideliu skirtumu, tačiau dabar yra stabilios. Norėdami naudoti ankstesnį vidurkinimo metodą, turite paimti visų ankstesnių duomenų vidurkį. Pradinio laikotarpio kainos stipriai paveiks kito laikotarpio prognozę. Todėl kaip patobulinimą, palyginti su paprastu vidurkiu, imkite tik kelių pastarųjų laikotarpių kainų vidurkį.

Ši prognozavimo technika vadinama slankiojo vidurkio technika, kartais vadinama „n“dydžio „judančiu langu“. Naudojant paprastą modelį, numatoma kita TS reikšmė, kuri patikrins metodo tikslumą. Šiam duomenų rinkiniui aiškiai Naive viršija vidutinį ir slenkantįjį vidurkį.

Yra prognozės variantas naudojant paprastą eksponentinį išlyginimą. Taikant slankiojo vidurkio metodą, praeities „n“stebėjimai yra vienodai pasverti. Tokiu atveju galite susidurti su situacijomis, kai kiekvienas iš praeities „n“savaip paveikia prognozę. Šis variantas, kuris skirtingai įvertina ankstesnius stebėjimus, vadinamas metodusvertinis slenkamasis vidurkis.

Raštų ekstrapoliacija

Viena iš svarbiausių savybių, kurių reikia norint atsižvelgti į laiko eilučių prognozavimo algoritmus, yra galimybė ekstrapoliuoti modelius už mokymo duomenų srities ribų. Daugelis ML algoritmų neturi šios galimybės, nes dažniausiai apsiriboja regionu, kurį apibrėžia mokymo duomenys. Todėl jie netinka TS, kurio tikslas – projektuoti rezultatą į ateitį.

Kita svarbi TS algoritmo savybė yra galimybė gauti pasikliautinuosius intervalus. Nors tai yra numatytoji TS modelių savybė, dauguma ML modelių neturi šios galimybės, nes ne visi jie pagrįsti statistiniais pasiskirstymais.

Nemanykite, kad TS prognozuoti naudojami tik paprasti statistiniai metodai. Tai visai ne taip. Yra daug sudėtingų metodų, kurie gali būti labai naudingi ypatingais atvejais. Apibendrintas autoregresyvus sąlyginis heteroskedastiškumas (GARCH), Bajeso ir VAR yra tik keletas iš jų.

Taip pat yra neuroninių tinklų modelių, kurie gali būti taikomi laiko eilutėms, kuriose naudojami atsiliekantys prognozės ir gali valdyti tokias funkcijas kaip neuroninio tinklo autoregresija (NNAR). Yra net laiko eilučių modeliai, pasiskolinti iš sudėtingo mokymosi, ypač pasikartojančių neuroninių tinklų šeimoje, pvz., LSTM ir GRU tinkluose.

Įvertinimo metrika ir likutinė diagnostika

Dažniausia numatymo metrika yraRMS reiškia, kurią daugelis žmonių naudoja spręsdami regresijos uždavinius:

  • MAPE, nes jis nepriklauso nuo masto ir parodo paklaidos ir faktinių verčių santykį procentais;
  • MASE, kuri parodo, kaip gerai numatymas veikia, palyginti su naiviu vidutiniu numatymu.

Pritaikius prognozavimo metodą, svarbu įvertinti, kaip gerai jis gali užfiksuoti modelius. Nors vertinimo metrika padeda nustatyti, kiek reikšmės yra artimos tikrosioms reikšmėms, jos neįvertina, ar modelis atitinka TS. Likučiai yra geras būdas tai įvertinti. Kadangi programuotojas bando pritaikyti TS šablonus, jis gali tikėtis, kad klaidos elgsis kaip „b altas triukšmas“, nes jos yra kažkas, ko modelis negali užfiksuoti.

„B altasis triukšmas“turi turėti šias savybes:

  1. Likučiai nesusiję (Acf=0)
  2. Likučiai atitinka normalųjį pasiskirstymą su nuliniu vidurkiu (nešališka) ir pastovia dispersija.
  3. Jei vienos iš dviejų savybių trūksta, modelį galima tobulinti.
  4. Nulio vidurkio savybę galima lengvai patikrinti naudojant T testą.
  5. Normalumo ir pastovios dispersijos savybės yra vizualiai valdomos naudojant likučių histogramą arba atitinkamą vienmačio normalumo testą.

ARIMA modelis

ARIMA – automatinio regresyvaus integruoto slankiojo vidurkio modelis yra vienas iš populiariausių metodų, naudojamų TS prognozavimui, daugiausianaudojant automatinę duomenų koreliaciją, kad būtų sukurti aukštos kokybės modeliai.

Vertinant ARIMA koeficientus, pagrindinė prielaida yra ta, kad duomenys yra stacionarūs. Tai reiškia, kad tendencija ir sezoniškumas negali turėti įtakos dispersijai. Modelio kokybę galima įvertinti lyginant faktinių verčių laiko grafiką su numatomomis reikšmėmis. Jei abi kreivės yra artimos, galima daryti prielaidą, kad modelis atitinka analizuojamą atvejį. Jame turėtų būti atskleistos visos tendencijos ir sezoniškumas, jei tokių yra.

Tada likučių analizė turėtų parodyti, ar modelis tinka: atsitiktiniai likučiai reiškia, kad jis tikslus. ARIMA pritaikymas parametrams (0, 1, 1) duos tokius pačius rezultatus kaip ir eksponentinis išlyginimas, o naudojant parametrus (0, 2, 2) - dvigubai eksponentinis išlyginimas.

Laiko eilučių algoritmai SQL serveryje
Laiko eilučių algoritmai SQL serveryje

Galite pasiekti ARIMA nustatymus programoje Excel:

  1. Paleiskite Excel.
  2. Įrankių juostoje raskite XL MINER.
  3. Juostoje išskleidžiamajame meniu pasirinkite ARIMA.

ARIMA modelio galimybių santrauka:

  1. ARIMA – automatiškai regresinis integruotas slenkamasis vidurkis.
  2. Prognozavimo modelis, naudojamas laiko eilučių analizei.
  3. ARIMA parametro sintaksė: ARIMA (p, d, q), kur p=autoregresyvių terminų skaičius, d=sezoninių skirtumų skaičius ir q=slenkančio vidurkio terminų skaičius.

Algoritmai SQL serveryje

Kryžminis numatymas yra vienas iš svarbiausių dalykųlaiko eilučių ypatumai prognozuojant finansines užduotis. Jei naudojamos dvi susijusios serijos, gautas modelis gali būti naudojamas prognozuoti vienos serijos rezultatus, remiantis kitų elgesiu.

SQL Server 2008 turi galingų naujų laiko eilučių funkcijų, kurias reikia išmokti ir naudoti. Įrankyje yra lengvai pasiekiami TS duomenys, paprasta naudoti sąsaja, skirta algoritmo funkcijoms imituoti ir atkurti, ir paaiškinimo langas su nuoroda į serverio pusės DMX užklausas, kad galėtumėte suprasti, kas vyksta viduje.

Rinkos laiko eilutės yra plati sritis, kurioje galima pritaikyti giluminio mokymosi modelius ir algoritmus. Bankai, brokeriai ir fondai dabar eksperimentuoja su indeksų, valiutų kursų, ateities sandorių, kriptovaliutų kainų, vyriausybės akcijų ir kt. analizės ir prognozių diegimu.

Prognozuojant laiko eilutes, neuroninis tinklas randa nuspėjamus modelius, tyrinėdamas rinkų struktūras ir tendencijas bei pataria prekybininkams. Šie tinklai taip pat gali padėti aptikti anomalijas, tokias kaip netikėti smailės, kritimai, tendencijų pokyčiai ir lygio poslinkiai. Daugelis dirbtinio intelekto modelių naudojami finansinėms prognozėms.

Rekomenduojamas: