Analyse och prognos av tidsserier

Innehållsförteckning:

Analyse och prognos av tidsserier
Analyse och prognos av tidsserier
Anonim

I många år har människor förutspått väderförhållanden, ekonomiska och politiska händelser och sportresultat, nyligen har denna omfattande lista fyllts på med kryptovalutor. För att förutsäga mångsidiga händelser finns det många sätt att utveckla prognoser. Till exempel är intuition, expertutlåtanden, användning av tidigare resultat för att jämföra med traditionell statistik och tidsserieprognoser bara en av dem, medan den mest moderna och exakta typen av prognoser med ett brett utbud av tillämpningar.

Tidsseriemetod

Tidsseriemetoden
Tidsseriemetoden

En tidsseriemetod (TS) är en datauppsättning som samlar in information över en tidsperiod. Det finns speciella metoder för att extrahera den här typen:

  • linjär och icke-linjär;
  • parametrisk och icke-parametrisk;
  • endimensionell och flerdimensionell.

Prognostidserien för med sig en unik uppsättning möjligheter för att möta dagens utmaningar. Modellering bygger på att lära sig att fastställa drivkraften bakom dataförändringar. Processen kommer från långsiktiga trender, säsongseffekter eller oregelbundna fluktuationer som är karakteristiska för TS och som inte syns i andra typer av analyser.

Machine learning är en gren inom datavetenskap där algoritmer sammanställs från data och inkluderar artificiella neurala nätverk, djupinlärning, associationsregler, beslutsträd, förstärkningsinlärning och Bayesianska nätverk. En mängd olika algoritmer ger alternativ för att lösa problem, och var och en har sina egna krav och avvägningar när det gäller datainmatning, hastighet och noggrannhet av resultaten. Dessa, tillsammans med noggrannheten i de slutliga förutsägelserna, kommer att viktas när användaren bestämmer sig för vilken algoritm som fungerar bäst för den aktuella situationen.

Tidsserieprognoser lånar från statistikområdet, men ger nya tillvägagångssätt för problemmodellering. Huvudproblemet för maskininlärning och tidsserier är detsamma - att förutsäga nya resultat baserat på tidigare kända data.

Målet för den prediktiva modellen

Syftet med den prediktiva modellen
Syftet med den prediktiva modellen

TS är en uppsättning datapunkter som samlas in med jämna mellanrum. De analyseras för att fastställa en långsiktig trend, för att förutsäga framtiden eller för att utföra någon annan typ av analys. Det finns två saker som skiljer TS från ett vanligt regressionsproblem:

  1. De är beroende av tid. Sådet grundläggande antagandet om en linjär regressionsmodell att observationerna är oberoende håller inte i detta fall.
  2. Tillsammans med en ökande eller minskande trend har de flesta TS:er någon form av säsongsvariationer, det vill säga förändringar som är specifika för en viss tidsperiod.

Målet med en tidsserieprognosmodell är att ge en korrekt prognos på begäran. Tidsserien har tid (t) som oberoende variabel och målberoende variabel. I de flesta fall är prognosen ett specifikt resultat, till exempel försäljningspriset för ett hus, tävlingens sportresultat, resultatet av handeln på börsen. Förutsägelsen representerar medianen och medelvärdet och inkluderar ett konfidensintervall som uttrycker en konfidensnivå i intervallet 80-95 %. När de spelas in med jämna mellanrum kallas processerna för tidsserier och uttrycks på två sätt:

  • endimensionell med ett tidsindex som skapar en implicit ordning;
  • en uppsättning med två dimensioner: tid med en oberoende variabel och en annan beroende variabel.

Att skapa funktioner är en av de viktigaste och mest tidskrävande uppgifterna inom tillämpad maskininlärning. Tidsserieprognoser skapar dock inga funktioner, åtminstone inte i traditionell mening. Detta gäller särskilt när du vill förutsäga resultatet flera steg framåt, och inte bara nästa värde.

Detta betyder inte att funktioner är helt inaktiverade. De bör bara användas med försiktighet av följande skäl:

  1. Oklart vilken framtid verkligvärden kommer att vara för dessa funktioner.
  2. Om objekten är förutsägbara och har vissa mönster kan du bygga en prediktiv modell för vart och ett av dem.

Var dock medveten om att användning av prediktiva värden som funktioner kommer att sprida fel till målvariabeln och leda till fel eller partiska förutsägelser.

Tidsseriekomponenter

Tidsseriekomponenter
Tidsseriekomponenter

Trend finns när serien ökar, minskar eller förblir på en konstant nivå över tiden, så det tas som en funktion. Säsongsvariation avser en egenskap hos en tidsserie som visar periodiska mönster som upprepas med en konstant frekvens (m), till exempel betyder m=12 att mönstret upprepas var tolfte månad.

Dummyvariabler som liknar säsongsvariationer kan läggas till som en binär funktion. Du kan till exempel ta hänsyn till helgdagar, speciella evenemang, marknadsföringskampanjer, oavsett om värdet är utländskt eller inte. Du måste dock komma ihåg att dessa variabler måste ha vissa mönster. Antalet dagar kan dock enkelt beräknas även för framtida perioder och påverka tidsserieprognoser, särskilt inom det finansiella området.

Cykler är säsonger som inte sker till en fast takt. Till exempel återspeglar de årliga reproduktionsattributen för lodjuret i Kanada säsongsmässiga och cykliska mönster. De upprepas inte med jämna mellanrum och kan förekomma även om frekvensen är 1 (m=1).

Försenade värden -eftersläpande värden för en variabel kan inkluderas som prediktorer. Vissa modeller, som ARIMA, Vector Autoregression (VAR) eller Autoregressive Neural Networks (NNAR), fungerar på detta sätt.

Komponenterna i variabeln av intresse är mycket viktiga för tidsserieanalys och prognoser, för att förstå deras beteende, mönster och för att kunna välja lämplig modell.

Datauppsättningsattribut

Datauppsättningsattribut
Datauppsättningsattribut

Du kanske är van vid att ange tusentals, miljoner och miljarder datapunkter i maskininlärningsmodeller, men detta krävs inte för tidsserier. Det är faktiskt möjligt att arbeta med små och medelstora TS, beroende på frekvens och typ av variabel, och det är inte en nackdel med metoden. Dessutom finns det faktiskt ett antal fördelar med detta tillvägagångssätt:

  1. Sådan information kommer att motsvara funktionerna hos en hemdator.
  2. I vissa fall, utför tidsserieanalys och prognos med hela datamängden, inte bara ett urval.
  3. TS-längden är användbar för att skapa grafer som kan analyseras. Detta är en mycket viktig punkt eftersom programmerare förlitar sig på grafik i analysfasen. Det betyder inte att de inte fungerar med enorma tidsserier, men initi alt borde de kunna hantera mindre TS.
  4. Alla datauppsättningar som innehåller ett tidsrelaterat fält kan dra nytta av tidsserieanalys och prognoser. Men om programmeraren har en större uppsättning data, DB (TSDB)kan vara mer lämpligt.

En del av dessa uppsättningar kommer från händelser som registrerats med tidsstämpel, systemloggar och ekonomiska data. Eftersom TSDB arbetar inbyggt med tidsserier är detta ett utmärkt tillfälle att tillämpa denna teknik på storskaliga datamängder.

Machine learning

Machine learning (ML) kan överträffa traditionella metoder för tidsserieprognoser. Det finns massor av studier där ute som jämför maskininlärningsmetoder med mer klassiska statistiska metoder på TS-data. Neurala nätverk är en av de teknologier som har undersökts brett och tillämpar TS-metoder. Maskininlärningsmetoder leder rankingen för datainsamling baserat på tidsserier. Dessa set har visat sig vara effektiva och överträffar rena TS-set mot M3 eller Kaggle.

MO har sina egna specifika problem. Att utveckla funktioner eller generera nya prediktorer från en datauppsättning är ett viktigt steg för det och kan ha en enorm inverkan på prestanda och vara ett nödvändigt sätt att ta itu med trend- och säsongsproblem för TS-data. Vissa modeller har också problem med hur väl de passar data, och om de inte gör det kan de missa huvudtrenden.

Tidsserier och metoder för maskininlärning bör inte existera isolerade från varandra. De kan kombineras för att ge fördelarna med varje tillvägagångssätt. Prognosmetoder och tidsserieanalyser är bra på att dekomponera data i trend- och säsongsdata.element. Denna analys kan sedan användas som input till en ML-modell som har trend- och säsongsinformation i sin algoritm, vilket ger det bästa av två världar.

Förstå problemformuleringen

Tänk till exempel att TS är relaterad till prognostisering av antalet passagerare på en ny höghastighetståg. Till exempel har du 2 års data (augusti 2016 - september 2018) och med dessa data behöver du förutsäga antalet passagerare för de kommande 7 månaderna, med 2 års data (2016-2018) på timnivå med antal passagerare som reser, och det är nödvändigt att uppskatta antalet av dem i framtiden.

Underuppsättning av datauppsättning för prognoser med tidsserier:

  1. Skapa ett tåg och testfil för simulering.
  2. De första 14 månaderna (aug 2016 - okt 2017) används som träningsdata och de kommande två månaderna (nov 2017 - dec 2017) är testdata.
  3. Aggregera datauppsättningen dagligen.
Datauppsättning aggregering
Datauppsättning aggregering

Utför datavisualisering för att se hur det förändras över en tidsperiod.

Datavisualisering
Datavisualisering

Naiv metod för konstruktion

Biblioteket som används i det här fallet för TS-förutsägelse är statsmodeller. Den måste installeras innan någon av dessa metoder kan tillämpas. Kanske är statsmodels redan installerat i Python-miljön, men det stöder inte metoderförutsägelse, så du måste klona den från förvaret och installera den från källan.

Sekvensering
Sekvensering

För det här exemplet betyder det att myntresepriserna är stabila från första början och under hela tidsperioden. Denna metod förutsätter att nästa förväntade punkt är lika med den senast observerade punkten och kallas Naive Approach.

Naiv metod
Naiv metod

Beräkna nu standardavvikelsen för att testa modellens noggrannhet på testdatauppsättningen. Från RMSE-värdet och grafen ovan kan vi dra slutsatsen att Naive inte är lämpligt för alternativ med hög volatilitet, utan används för stabila.

Enkel medium stil

För att demonstrera metoden ritas ett diagram, förutsatt att Y-axeln representerar priset och X-axeln representerar tid (dagar).

Enkel medellång stil
Enkel medellång stil

Därav kan vi dra slutsatsen att priset ökar och minskar slumpmässigt med en liten marginal, så att medelvärdet förblir konstant. I det här fallet kan du förutsäga priset för nästa period, liknande genomsnittet för alla de senaste dagarna.

Denna metod för att prognostisera med det förväntade medelvärdet av tidigare observerade punkter kallas den enkla medelvärdesmetoden.

I detta fall tas tidigare kända värden, medelvärdet beräknas och tas som nästa värde. Naturligtvis kommer detta inte att vara exakt, men det är ganska nära, och det finns situationer där den här metoden fungerar bäst.

Enkelt mediummetod
Enkelt mediummetod

Baserat på resultaten som visas i grafen fungerar den här metoden bäst när medelvärdet för varje tidsperiod förblir konstant. Även om den naiva metoden är bättre än genomsnittet, men inte för alla datamängder. Det rekommenderas att prova varje modell steg för steg och se om det förbättrar resultatet eller inte.

Moving Average Model

Glidande medelmodell
Glidande medelmodell

Baserat på detta diagram kan vi dra slutsatsen att priserna har ökat flera gånger tidigare med stor marginal, men nu är stabila. För att använda den tidigare medelvärdesmetoden måste du ta medelvärdet av alla tidigare data. Priserna för den inledande perioden kommer starkt att påverka prognosen för nästa period. Som en förbättring jämfört med det enkla genomsnittet, ta därför genomsnittet av priserna endast för de senaste tidsperioderna.

Denna prognosteknik kallas för glidande medelvärde, ibland kallad ett "rörligt fönster" i storleken "n". Med hjälp av en enkel modell förutsägs nästa värde i TS för att kontrollera metodens noggrannhet. Klart naivt överträffar både genomsnittligt och glidande medelvärde för denna datamängd.

Det finns en variant av prognosen med metoden för enkel exponentiell utjämning. I metoden med glidande medelvärde vägs de tidigare "n"-observationerna lika. I det här fallet kan du stöta på situationer där var och en av de tidigare "n" påverkar prognosen på sitt eget sätt. Denna variation, som väger tidigare observationer olika, kallas metodenvägt glidande medelvärde.

Extrapolering av mönster

En av de viktigaste egenskaperna som behövs för att överväga tidsserieprognosalgoritmer är förmågan att extrapolera mönster utanför träningsdatadomänen. Många ML-algoritmer har inte denna förmåga eftersom de tenderar att vara begränsade till en region som definieras av träningsdata. Därför är de inte lämpliga för TS, vars syfte är att projicera resultatet in i framtiden.

En annan viktig egenskap hos TS-algoritmen är möjligheten att erhålla konfidensintervall. Även om detta är standardegenskapen för TS-modeller, har de flesta ML-modeller inte denna funktion eftersom de inte alla är baserade på statistiska distributioner.

Tänk inte att bara enkla statistiska metoder används för att förutsäga TS. Det är inte alls så. Det finns många komplexa tillvägagångssätt som kan vara mycket användbara i speciella fall. Generaliserad autoregressiv villkorlig heteroskedasticitet (GARCH), Bayesian och VAR är bara några av dem.

Det finns också neurala nätverksmodeller som kan tillämpas på tidsserier som använder eftersläpande prediktorer och kan hantera funktioner som neural nätverksautoregression (NNAR). Det finns till och med tidsseriemodeller lånade från komplex inlärning, särskilt i den återkommande neurala nätverksfamiljen, som LSTM- och GRU-nätverk.

Uppskattningsstatistik och restdiagnostik

De vanligaste prognoserna ärrms-medel, som många använder när de löser regressionsproblem:

  • MAPE eftersom det är skaloberoende och representerar förhållandet mellan fel och faktiska värden i procent;
  • MASE, som visar hur väl förutsägelsen presterar jämfört med den naiva genomsnittliga förutsägelsen.

När en prognosmetod har anpassats är det viktigt att utvärdera hur väl den kan fånga modellerna. Även om utvärderingsmåtten hjälper till att avgöra hur nära värdena är de faktiska värdena, utvärderar de inte om modellen passar TS. Rester är ett bra sätt att utvärdera detta. Eftersom programmeraren försöker tillämpa TS-mönster kan han förvänta sig att fel beter sig som "vitt brus" eftersom de representerar något som inte kan fångas av modellen.

"Vit brus" måste ha följande egenskaper:

  1. Rester okorrelerade (Acf=0)
  2. Rester följer en normalfördelning med nollmedelvärde (opartisk) och konstant varians.
  3. Om någon av de två egenskaperna saknas finns det utrymme för förbättringar i modellen.
  4. egenskapen nollmedelvärde kan enkelt testas med T-testet.
  5. Egenskaperna för normalitet och konstant varians kontrolleras visuellt med hjälp av ett histogram av residualer eller ett lämpligt univariat normalitetstest.

ARIMA-modell

ARIMA - AutoRegressive Integrated Moving-Average-modell, är en av de mest populära metoderna som används i TS-prognoser, främstgenom dataautokorrelation för att skapa högkvalitativa modeller.

När man utvärderar ARIMA-koefficienter är huvudantagandet att data är stationära. Detta gör att trend och säsongsvariationer inte kan påverka variansen. Kvaliteten på modellen kan bedömas genom att jämföra tidsdiagrammet för de faktiska värdena med de förutsagda värdena. Om båda kurvorna är nära kan man anta att modellen passar det analyserade fallet. Den bör avslöja eventuella trender och säsongsvariationer, om några.

Analys av residualerna ska sedan visa om modellen passar: slumpmässiga residualer betyder att den är korrekt. Att anpassa ARIMA med parametrar (0, 1, 1) ger samma resultat som exponentiell utjämning, och användning av parametrar (0, 2, 2) ger resultat med dubbla exponentiella utjämningar.

Tidsseriealgoritmer i SQL Server
Tidsseriealgoritmer i SQL Server

Du kan komma åt ARIMA-inställningarna i Excel:

  1. Starta Excel.
  2. Hitta XL MINER i verktygsfältet.
  3. På menyfliksområdet, välj ARIMA från rullgardinsmenyn.

Sammanfattning av ARIMA-modellens funktioner:

  1. ARIMA - Autoregressive Integrated Moving Average.
  2. Prognosmodell som används i tidsserieanalys.
  3. ARIMA parametersyntax: ARIMA (p, d, q) där p=antal autoregressiva termer, d=antal säsongsskillnader och q=antal glidande medelvärden.

Algorithms in SQL Server

Att utföra korsprediktion är en av de viktigaegenskaper hos tidsserier vid prognostisering av finansiella uppgifter. Om två relaterade serier används kan den resulterande modellen användas för att förutsäga resultaten av en serie baserat på de andras beteende.

SQL Server 2008 har kraftfulla nya tidsseriefunktioner att lära sig och använda. Verktyget har lättillgänglig TS-data, ett lättanvänt gränssnitt för att simulera och återskapa algoritmfunktioner och ett förklaringsfönster med en länk till DMX-frågor på serversidan så att du kan förstå vad som händer inuti.

Marknadstidsserier är ett brett område där djupinlärningsmodeller och algoritmer kan tillämpas. Banker, mäklare och fonder experimenterar nu med sin användning av analyser och prognoser för index, växelkurser, terminer, kryptovalutapriser, statliga aktier och mer.

I tidsserieprognoser hittar det neurala nätverket förutsägbara mönster genom att studera strukturer och trender på marknaderna och ger råd till handlare. Dessa nätverk kan också hjälpa till att upptäcka anomalier som oväntade toppar, fall, trendförändringar och nivåförskjutningar. Många artificiell intelligensmodeller används för finansiella prognoser.

Rekommenderad: