Analyse og prognose av tidsserier

Innholdsfortegnelse:

Analyse og prognose av tidsserier
Analyse og prognose av tidsserier
Anonim

I mange år har folk spådd værforhold, økonomiske og politiske begivenheter og sportsresultater, nylig har denne omfattende listen blitt fylt opp med kryptovalutaer. For å forutsi allsidige hendelser er det mange måter å utvikle prognoser på. For eksempel er intuisjon, ekspertuttalelser, bruk av tidligere resultater for å sammenligne med tradisjonell statistikk og tidsserieprognoser bare en av dem, mens den mest moderne og nøyaktige typen prognoser med et bredt spekter av bruksområder.

Tidsseriemetode

Tidsseriemetoden
Tidsseriemetoden

En tidsseriemetode (TS) er et datasett som samler inn informasjon over en tidsperiode. Det finnes spesielle metoder for å trekke ut denne typen:

  • lineær og ikke-lineær;
  • parametrisk og ikke-parametrisk;
  • endimensjonal og flerdimensjonal.

Prognosetidserien bringer med seg et unikt sett med evner for å møte dagens utfordringer. Modellering er avhengig av å lære å etablere drivkraften bak dataendringer. Prosessen kommer fra langsiktige trender, sesongeffekter eller uregelmessige svingninger som er karakteristiske for TS og ikke sees i andre typer analyser.

Maskinlæring er en gren av informatikk der algoritmer er kompilert fra data og inkluderer kunstige nevrale nettverk, dyp læring, assosiasjonsregler, beslutningstrær, forsterkende læring og Bayesianske nettverk. En rekke algoritmer gir muligheter for å løse problemer, og hver har sine egne krav og avveininger når det gjelder datainndata, hastighet og nøyaktighet av resultater. Disse, sammen med nøyaktigheten av de endelige spådommene, vil bli vektet når brukeren bestemmer hvilken algoritme som vil fungere best for situasjonen som studeres.

Tidsserieprognoser låner fra statistikkfeltet, men gir nye tilnærminger til problemmodellering. Hovedproblemet for maskinlæring og tidsserier er det samme - å forutsi nye utfall basert på tidligere kjente data.

Målet for den prediktive modellen

Hensikten med den prediktive modellen
Hensikten med den prediktive modellen

TS er et sett med datapunkter som samles inn med jevne mellomrom. De analyseres for å bestemme en langsiktig trend, for å forutsi fremtiden eller for å utføre en annen type analyse. Det er 2 ting som gjør TS forskjellig fra et vanlig regresjonsproblem:

  1. De er avhengige av tid. Såden grunnleggende antakelsen for en lineær regresjonsmodell om at observasjonene er uavhengige holder ikke i dette tilfellet.
  2. Sammen med en økende eller avtagende trend har de fleste TS-er en form for sesongvariasjoner, dvs. endringer som er spesifikke for en viss tidsperiode.

Målet med en tidsserieprognosemodell er å gi en nøyaktig prognose på forespørsel. Tidsserien har tid (t) som uavhengig variabel og målavhengig variabel. I de fleste tilfeller er prognosen et spesifikt resultat, for eksempel salgsprisen på et hus, sportsresultatet av konkurransen, resultatene av handel på børsen. Prediksjonen representerer medianen og gjennomsnittet og inkluderer et konfidensintervall som uttrykker et konfidensnivå i området 80-95 %. Når de registreres med jevne mellomrom, kalles prosessene tidsserier og uttrykkes på to måter:

  • endimensjonal med en tidsindeks som skaper en implisitt rekkefølge;
  • et sett med to dimensjoner: tid med en uavhengig variabel og en annen avhengig variabel.

Å lage funksjoner er en av de viktigste og mest tidkrevende oppgavene innen anvendt maskinlæring. Tidsserieprognoser skaper imidlertid ikke funksjoner, i hvert fall ikke i tradisjonell forstand. Dette gjelder spesielt når du ønsker å forutsi resultatet flere skritt fremover, og ikke bare neste verdi.

Dette betyr ikke at funksjoner er fullstendig deaktivert. De bør bare brukes med forsiktighet av følgende grunner:

  1. Uklart hvilken fremtid ekteverdier vil være for disse funksjonene.
  2. Hvis objektene er forutsigbare og har noen mønstre, kan du bygge en prediktiv modell for hver av dem.

Vær imidlertid oppmerksom på at bruk av prediktive verdier som funksjoner vil spre feil inn i målvariabelen og føre til feil eller partiske prediksjoner.

Tidsseriekomponenter

Tidsseriekomponenter
Tidsseriekomponenter

Trend eksisterer når serien øker, reduseres eller forblir på et konstant nivå over tid, så det tas som en funksjon. Sesongvariasjon refererer til en egenskap for en tidsserie som viser periodiske mønstre som gjentas med en konstant frekvens (m), for eksempel betyr m=12 at mønsteret gjentas hver tolvte måned.

Dummy-variabler som ligner på sesongvariasjoner kan legges til som en binær funksjon. Du kan for eksempel ta høyde for høytider, spesielle arrangementer, markedsføringskampanjer, uansett om verdien er utenlandsk eller ikke. Du må imidlertid huske at disse variablene må ha visse mønstre. Antall dager kan imidlertid enkelt beregnes selv for fremtidige perioder og påvirke tidsserieprognoser, spesielt på finansområdet.

Sykluser er årstider som ikke skjer til en fast rate. For eksempel gjenspeiler de årlige reproduksjonsattributtene til Canada gaupa sesongmessige og sykliske mønstre. De gjentas ikke med jevne mellomrom og kan forekomme selv om frekvensen er 1 (m=1).

Forsinkede verdier -etterslepende verdier for en variabel kan inkluderes som prediktorer. Noen modeller, som ARIMA, Vector Autoregression (VAR) eller Autoregressive Neural Networks (NNAR), fungerer på denne måten.

Komponentene i variabelen av interesse er svært viktige for tidsserieanalyse og prognoser, for å forstå deres oppførsel, mønstre og for å kunne velge riktig modell.

Datasettattributter

Datasettattributter
Datasettattributter

Du kan være vant til å legge inn tusenvis, millioner og milliarder av datapunkter i maskinlæringsmodeller, men dette er ikke nødvendig for tidsserier. Det er faktisk mulig å jobbe med små og mellomstore TS, avhengig av frekvens og type variabel, og dette er ikke en ulempe ved metoden. Dessuten er det faktisk en rekke fordeler med denne tilnærmingen:

  1. Slike sett med informasjon vil samsvare med egenskapene til en hjemmedatamaskin.
  2. I noen tilfeller, utfør tidsserieanalyse og prognoser ved å bruke hele datasettet, ikke bare et utvalg.
  3. TS-lengde er nyttig for å lage grafer som kan analyseres. Dette er et veldig viktig poeng fordi programmerere er avhengige av grafikk i analysefasen. Dette betyr ikke at de ikke fungerer med enorme tidsserier, men i utgangspunktet skal de kunne håndtere mindre TS.
  4. Alle datasett som inneholder et tidsrelatert felt kan dra nytte av tidsserieanalyse og prognoser. Men hvis programmereren har et større sett med data, vil DB (TSDB)kan være mer passende.

Noen av disse settene kommer fra hendelser registrert med tidsstempel, systemlogger og økonomiske data. Siden TSDB jobber naturlig med tidsserier, er dette en flott mulighet til å bruke denne teknikken på store datasett.

Machine learning

Maskinlæring (ML) kan utkonkurrere tradisjonelle metoder for tidsserieprognoser. Det er massevis av studier der ute som sammenligner maskinlæringsmetoder med mer klassiske statistiske metoder på TS-data. Nevrale nettverk er en av teknologiene som har blitt mye forsket på og anvender TS-tilnærminger. Maskinlæringsmetoder leder rangeringene for datainnsamling basert på tidsserier. Disse settene har vist seg å være effektive, og overgår rene TS-sett mot M3 eller Kaggle.

MO har sine egne spesifikke problemer. Å utvikle funksjoner eller generere nye prediktorer fra et datasett er et viktig skritt for det og kan ha en enorm innvirkning på ytelsen og være en nødvendig måte å håndtere trend- og sesongmessige problemer for TS-data. Noen modeller har også problemer med hvor godt de passer til dataene, og hvis de ikke gjør det, kan de gå glipp av hovedtrenden.

Tidsserier og maskinlæringsmetoder bør ikke eksistere isolert fra hverandre. De kan kombineres for å gi fordelene ved hver tilnærming. Prognosemetoder og tidsserieanalyse er gode til å dekomponere data til trend- og sesongdata.elementer. Denne analysen kan deretter brukes som input til en ML-modell som har trend- og sesonginformasjon i sin algoritme, og gir det beste fra begge verdener.

Forstå problemformuleringen

Vurder for eksempel TS knyttet til prognoser for antall passasjerer på en ny høyhastighetsbanetjeneste. For eksempel har du 2 års data (august 2016 - september 2018) og med disse dataene må du forutsi antall passasjerer for de neste 7 månedene, ha 2 års data (2016-2018) på timenivå med antall passasjerer som reiser, og det er nødvendig å anslå antallet av dem i fremtiden.

Undersett av datasett for prognoser med tidsserier:

  1. Opprette et tog og testfil for simulering.
  2. De første 14 månedene (aug 2016 – okt 2017) brukes som treningsdata, og de neste 2 månedene (nov 2017 – des 2017) er testdata.
  3. Samle datasettet på daglig basis.
Datasettaggregering
Datasettaggregering

Utfør datavisualisering for å se hvordan de endrer seg over en tidsperiode.

Datavisualisering
Datavisualisering

Naiv tilnærmingskonstruksjonsmetode

Biblioteket som brukes i dette tilfellet for TS-prediksjon er statsmodeller. Den må installeres før noen av disse tilnærmingene kan brukes. Kanskje statsmodeller allerede er installert i Python-miljøet, men det støtter ikke metoderprediksjon, så du må klone den fra depotet og installere den fra kilden.

Sekvensering
Sekvensering

For dette eksempelet betyr det at myntreiseprisene er stabile helt fra begynnelsen og gjennom hele tidsperioden. Denne metoden forutsetter at det neste forventede punktet er lik det sist observerte punktet og kalles Naive Approach.

Naiv metode
Naiv metode

Beregn nå standardavviket for å teste nøyaktigheten til modellen på testdatasettet. Fra RMSE-verdien og grafen ovenfor kan vi konkludere med at Naive ikke er egnet for høyvolatilitets alternativer, men brukes for stabile.

Enkel middels stil

For å demonstrere metoden tegnes et diagram, forutsatt at Y-aksen representerer prisen og X-aksen representerer tid (dager).

Enkel middels stil
Enkel middels stil

Fra den kan vi konkludere med at prisen øker og synker tilfeldig med liten margin, slik at gjennomsnittsverdien forblir konstant. I dette tilfellet kan du forutsi prisen for neste periode, på samme måte som gjennomsnittet for alle de siste dagene.

Denne metoden for prognoser med forventet gjennomsnitt av tidligere observerte punkter kalles den enkle gjennomsnittsmetoden.

I dette tilfellet tas tidligere kjente verdier, gjennomsnittet beregnes og tas som neste verdi. Dette vil selvfølgelig ikke være nøyaktig, men det er ganske nærme, og det er situasjoner der denne metoden fungerer best.

Enkelt mediummetode
Enkelt mediummetode

Basert på resultatene som vises på grafen, fungerer denne metoden best når gjennomsnittsverdien for hver tidsperiode forblir konstant. Selv om den naive metoden er bedre enn gjennomsnittet, men ikke for alle datasett. Det anbefales å prøve hver modell trinn for trinn og se om det forbedrer resultatet eller ikke.

Moving Average Model

Glidende gjennomsnittsmodell
Glidende gjennomsnittsmodell

Basert på dette diagrammet kan vi konkludere med at prisene har økt flere ganger tidligere med god margin, men er nå stabile. For å bruke den forrige gjennomsnittsmetoden, må du ta gjennomsnittet av alle tidligere data. Prisene for den første perioden vil sterkt påvirke prognosen for neste periode. Derfor, som en forbedring i forhold til det enkle gjennomsnittet, ta gjennomsnittet av prisene bare for de siste tidsperiodene.

Denne prognoseteknikken kalles glidende gjennomsnittsteknikk, noen ganger referert til som et "bevegelig vindu" i størrelsen "n". Ved å bruke en enkel modell, er neste verdi i TS spådd for å kontrollere nøyaktigheten til metoden. Klart naivt overgår både gjennomsnitt og glidende gjennomsnitt for dette datasettet.

Det er en variant av prognosen med metoden for enkel eksponentiell utjevning. I den glidende gjennomsnittsmetoden vektes de tidligere "n"-observasjonene likt. I dette tilfellet kan du støte på situasjoner der hver av de tidligere 'n' påvirker prognosen på sin egen måte. Denne variasjonen, som vekter tidligere observasjoner ulikt, kalles metodenvektet glidende gjennomsnitt.

Ekstrapolering av mønstre

En av de viktigste egenskapene som trengs for å vurdere algoritmer for tidsserieprognoser, er muligheten til å ekstrapolere mønstre utenfor treningsdatadomenet. Mange ML-algoritmer har ikke denne muligheten, da de har en tendens til å være begrenset til et område som er definert av treningsdataene. Derfor er de ikke egnet for TS, hvis formål er å projisere resultatet inn i fremtiden.

En annen viktig egenskap ved TS-algoritmen er muligheten for å oppnå konfidensintervaller. Selv om dette er standardegenskapen for TS-modeller, har de fleste ML-modeller ikke denne muligheten, siden de ikke alle er basert på statistiske distribusjoner.

Ikke tro at det kun brukes enkle statistiske metoder for å forutsi TS. Det er ikke sånn i det hele tatt. Det er mange komplekse tilnærminger som kan være svært nyttige i spesielle tilfeller. Generalisert autoregressiv betinget heteroskedastisitet (GARCH), Bayesian og VAR er bare noen av dem.

Det finnes også nevrale nettverksmodeller som kan brukes på tidsserier som bruker lagging prediktorer og kan håndtere funksjoner som nevrale nettverk autoregresjon (NNAR). Det er til og med tidsseriemodeller som er lånt fra kompleks læring, spesielt i den tilbakevendende nevrale nettverksfamilien, som LSTM- og GRU-nettverk.

Estimatberegninger og restdiagnostikk

De vanligste prediksjonsberegningene errms betyr, som mange bruker når de løser regresjonsproblemer:

  • MAPE fordi det er skalauavhengig og representerer forholdet mellom feil og faktiske verdier i prosent;
  • MASE, som viser hvor godt prediksjonen presterer sammenlignet med den naive gjennomsnittsprediksjonen.

Når en prognosemetode er tilpasset, er det viktig å vurdere hvor godt den er i stand til å fange opp modellene. Selv om evalueringsmålene hjelper til med å bestemme hvor nær verdiene er de faktiske verdiene, evaluerer de ikke om modellen passer til TS. Rester er en god måte å vurdere dette på. Siden programmereren prøver å bruke TS-mønstre, kan han forvente at feil oppfører seg som "hvit støy" siden de representerer noe som ikke kan fanges opp av modellen.

"Hvit støy" må ha følgende egenskaper:

  1. Rester ukorrelerte (Acf=0)
  2. Rester følger en normalfordeling med null gjennomsnitt (ubias) og konstant varians.
  3. Hvis en av de to egenskapene mangler, er det rom for forbedringer i modellen.
  4. Nullmiddelegenskapen kan enkelt testes ved hjelp av T-testen.
  5. Egenskapene til normalitet og konstant varians kontrolleres visuelt ved hjelp av et histogram av residualer eller en passende univariat normalitetstest.

ARIMA-modell

ARIMA - AutoRegressive Integrated Moving-Average-modell, er en av de mest populære metodene som brukes i TS-prognoser, hovedsakeliggjennom dataautokorrelasjon for å lage modeller av høy kvalitet.

Når man evaluerer ARIMA-koeffisienter, er hovedantakelsen at dataene er stasjonære. Dette betyr at trend og sesongvariasjoner ikke kan påvirke variansen. Kvaliteten på modellen kan vurderes ved å sammenligne tidsplottet til de faktiske verdiene med de predikerte verdiene. Hvis begge kurvene er nære, kan det antas at modellen passer til det analyserte tilfellet. Den bør avsløre eventuelle trender og sesongvariasjoner, hvis noen.

Analyse av residualene skal da vise om modellen passer: tilfeldige residualer betyr at den er nøyaktig. Å tilpasse ARIMA med parametere (0, 1, 1) vil gi de samme resultatene som eksponentiell utjevning, og bruk av parametere (0, 2, 2) vil gi doble eksponentielle utjevningsresultater.

Tidsseriealgoritmer i SQL Server
Tidsseriealgoritmer i SQL Server

Du kan få tilgang til ARIMA-innstillinger i Excel:

  1. Start Excel.
  2. Finn XL MINER på verktøylinjen.
  3. På båndet velger du ARIMA fra rullegardinmenyen.

Sammendrag av ARIMA-modellfunksjoner:

  1. ARIMA - Autoregressivt integrert glidende gjennomsnitt.
  2. Prognosemodell brukt i tidsserieanalyse.
  3. ARIMA parametersyntaks: ARIMA (p, d, q) der p=antall autoregressive termer, d=antall sesongforskjeller og q=antall glidende gjennomsnittstermer.

Algorithms in SQL Server

Å utføre kryssprediksjon er en av de viktigstetrekk ved tidsserier i prognoser for økonomiske oppgaver. Hvis to relaterte serier brukes, kan den resulterende modellen brukes til å forutsi resultatene av én serie basert på oppførselen til de andre.

SQL Server 2008 har kraftige nye tidsseriefunksjoner å lære og bruke. Verktøyet har lett tilgjengelige TS-data, et brukervennlig grensesnitt for simulering og reprodusering av algoritmefunksjoner, og et forklaringsvindu med en lenke til serverside DMX-spørringer, slik at du kan forstå hva som foregår på innsiden.

Markedstidsserier er et bredt område som dyplæringsmodeller og algoritmer kan brukes på. Banker, meglere og fond eksperimenterer nå med deres distribusjon av analyser og prognoser for indekser, valutakurser, futures, kryptovalutapriser, offentlige aksjer og mer.

I tidsserieprognoser finner det nevrale nettverket forutsigbare mønstre ved å studere strukturene og trendene i markedene og gir råd til handelsmenn. Disse nettverkene kan også bidra til å oppdage anomalier som uventede topper, fall, trendendringer og nivåskift. Mange kunstig intelligens-modeller brukes til økonomiske prognoser.

Anbefalt: