Analyse en voorspelling van tijdreeksen

Inhoudsopgave:

Analyse en voorspelling van tijdreeksen
Analyse en voorspelling van tijdreeksen
Anonim

Al vele jaren hebben mensen weersomstandigheden, economische en politieke gebeurtenissen en sportresultaten voorspeld, onlangs is deze uitgebreide lijst aangevuld met cryptocurrencies. Voor het voorspellen van veelzijdige gebeurtenissen zijn er veel manieren om prognoses te ontwikkelen. Intuïtie, meningen van experts, resultaten uit het verleden gebruiken om te vergelijken met traditionele statistieken en voorspellingen van tijdreeksen zijn er bijvoorbeeld slechts één van, terwijl het de meest moderne en nauwkeurige soort voorspellingen is met een breed scala aan toepassingen.

Tijdreeksmethode

Tijdreeksmethode
Tijdreeksmethode

Een tijdreeksmethode (TS) is een dataset die informatie verzamelt over een bepaalde periode. Er zijn speciale methoden om dit type te extraheren:

  • lineair en niet-lineair;
  • parametrisch en niet-parametrisch;
  • eendimensionaal en multidimensionaal.

Voorspellingstijdserie brengt een unieke reeks mogelijkheden met zich mee om de uitdagingen van vandaag aan te gaan. Modellering is gebaseerd op het leren om de drijvende kracht achter gegevensverandering vast te stellen. Het proces komt voort uit langetermijntrends, seizoenseffecten of onregelmatige fluctuaties die kenmerkend zijn voor TS en niet worden gezien in andere soorten analyses.

Machine learning is een tak van de informatica waar algoritmen worden samengesteld uit gegevens en kunstmatige neurale netwerken, deep learning, associatieregels, beslissingsbomen, versterkend leren en Bayesiaanse netwerken omvatten. Een verscheidenheid aan algoritmen biedt opties voor het oplossen van problemen, en elk heeft zijn eigen vereisten en afwegingen in termen van gegevensinvoer, snelheid en nauwkeurigheid van resultaten. Deze zullen, samen met de nauwkeurigheid van de uiteindelijke voorspellingen, worden gewogen wanneer de gebruiker beslist welk algoritme het beste werkt voor de bestudeerde situatie.

Tijdreeksvoorspelling leent van het veld van statistiek, maar geeft nieuwe benaderingen voor probleemmodellering. Het grootste probleem voor machine learning en tijdreeksen is hetzelfde: nieuwe resultaten voorspellen op basis van eerder bekende gegevens.

Het doel van het voorspellende model

Doel van het voorspellende model
Doel van het voorspellende model

TS is een set gegevenspunten die met regelmatige tussenpozen worden verzameld. Ze worden geanalyseerd om een langetermijntrend te bepalen, om de toekomst te voorspellen of om een ander soort analyse uit te voeren. Er zijn 2 dingen die TS anders maken dan een normaal regressieprobleem:

  1. Ze zijn afhankelijk van de tijd. Dusde basisveronderstelling van een lineair regressiemodel dat de waarnemingen onafhankelijk zijn, gaat in dit geval niet op.
  2. Samen met een stijgende of dalende trend, hebben de meeste TS'en een vorm van seizoensgebondenheid, d.w.z. veranderingen die specifiek zijn voor een bepaalde periode.

Het doel van een tijdreeksvoorspellingsmodel is om een nauwkeurige voorspelling op aanvraag te geven. De tijdreeks heeft tijd (t) als de onafhankelijke variabele en de doelafhankelijke variabele. In de meeste gevallen is de prognose een specifiek resultaat, bijvoorbeeld de verkoopprijs van een huis, het sportresultaat van de competitie, de resultaten van de handel op de beurs. De voorspelling vertegenwoordigt de mediaan en het gemiddelde en omvat een betrouwbaarheidsinterval dat een betrouwbaarheidsniveau in het bereik van 80-95% uitdrukt. Wanneer ze met regelmatige tussenpozen worden geregistreerd, worden de processen tijdreeksen genoemd en worden ze op twee manieren uitgedrukt:

  • eendimensionaal met een tijdindex die een impliciete volgorde creëert;
  • een verzameling met twee dimensies: tijd met een onafhankelijke variabele en een andere afhankelijke variabele.

Het maken van functies is een van de belangrijkste en meest tijdrovende taken in toegepaste machine learning. Tijdreeksprognoses creëren echter geen functies, althans niet in de traditionele zin. Dit is met name het geval wanneer u het resultaat meerdere stappen vooruit wilt voorspellen, en niet alleen de volgende waarde.

Dit betekent niet dat functies volledig zijn uitgeschakeld. Ze moeten om de volgende redenen met voorzichtigheid worden gebruikt:

  1. Onduidelijk wat de toekomst werkelijk iswaarden zijn voor deze functies.
  2. Als de objecten voorspelbaar zijn en patronen hebben, kun je voor elk van hen een voorspellend model bouwen.

Houd er echter rekening mee dat het gebruik van voorspellende waarden als kenmerken fouten in de doelvariabele zal verspreiden en tot fouten of vertekende voorspellingen zal leiden.

Tijdreekscomponenten

Tijdreekscomponenten
Tijdreekscomponenten

Trend bestaat wanneer de reeks toeneemt, afneemt of in de loop van de tijd op een constant niveau blijft, dus het wordt als een functie beschouwd. Seizoensgebondenheid verwijst naar een eigenschap van een tijdreeks die periodieke patronen weergeeft die met een constante frequentie (m) worden herhaald. M=12 betekent bijvoorbeeld dat het patroon zich elke twaalf maanden herha alt.

Dummy-variabelen vergelijkbaar met seizoensinvloeden kunnen als binaire functie worden toegevoegd. U kunt bijvoorbeeld rekening houden met feestdagen, speciale evenementen, marketingacties, ongeacht of de waarde buitenlands is of niet. U moet echter onthouden dat deze variabelen bepaalde patronen moeten hebben. Het aantal dagen kan echter gemakkelijk worden berekend, zelfs voor toekomstige perioden en kan de voorspelling van tijdreeksen beïnvloeden, vooral op financieel gebied.

Cyclussen zijn seizoenen die niet met een vast tarief plaatsvinden. De jaarlijkse reproductiekenmerken van de Canadese lynx weerspiegelen bijvoorbeeld seizoensgebonden en cyclische patronen. Ze worden niet met regelmatige tussenpozen herhaald en kunnen zelfs voorkomen als de frequentie 1 is (m=1).

Lagged waarden -achterblijvende waarden van een variabele kunnen als voorspellers worden opgenomen. Sommige modellen, zoals ARIMA, Vector Autoregression (VAR) of Autoregressive Neural Networks (NNAR), werken op deze manier.

De componenten van de variabele van belang zijn erg belangrijk voor analyse en voorspelling van tijdreeksen, om hun gedrag en patronen te begrijpen en om het juiste model te kunnen selecteren.

Dataset attributen

Gegevenssetattributen
Gegevenssetattributen

Je bent misschien gewend om duizenden, miljoenen en miljarden datapunten in te voeren in modellen voor machine learning, maar dit is niet vereist voor tijdreeksen. In feite is het mogelijk om met kleine en middelgrote TS te werken, afhankelijk van de frequentie en het type variabele, en dit is geen nadeel van de methode. Bovendien kleven er eigenlijk een aantal voordelen aan deze aanpak:

  1. Dergelijke informatieverzamelingen komen overeen met de mogelijkheden van een thuiscomputer.
  2. Voer in sommige gevallen tijdreeksanalyses en voorspellingen uit met behulp van de volledige dataset, niet alleen een steekproef.
  3. TS-lengte is handig voor het maken van grafieken die kunnen worden geanalyseerd. Dit is een zeer belangrijk punt omdat programmeurs in de analysefase vertrouwen op grafische afbeeldingen. Dit betekent niet dat ze niet met enorme tijdreeksen werken, maar in eerste instantie zouden ze in staat moeten zijn om kleinere TS aan te kunnen.
  4. Elke dataset die een tijdgerelateerd veld bevat, kan profiteren van tijdreeksanalyse en prognoses. Als de programmeur echter een grotere set gegevens heeft, kan de DB (TSDB)is misschien meer geschikt.

Sommige van deze sets zijn afkomstig van gebeurtenissen die zijn vastgelegd met een tijdstempel, systeemlogboeken en financiële gegevens. Aangezien TSDB native werkt met tijdreeksen, is dit een geweldige kans om deze techniek toe te passen op grootschalige datasets.

Machineleren

Machine learning (ML) kan beter presteren dan traditionele voorspellingsmethoden voor tijdreeksen. Er zijn een heleboel onderzoeken die machine learning-methoden vergelijken met meer klassieke statistische methoden op TS-gegevens. Neurale netwerken zijn een van de technologieën die op grote schaal zijn onderzocht en die TS-benaderingen toepassen. Machine learning-methoden leiden de ranglijst voor gegevensverzameling op basis van tijdreeksen. Deze sets hebben bewezen effectief te zijn en presteren beter dan pure TS-sets tegen M3 of Kaggle.

MO heeft zijn eigen specifieke problemen. Het ontwikkelen van functies of het genereren van nieuwe voorspellers uit een dataset is daarvoor een belangrijke stap en kan een enorme impact hebben op de prestaties en een noodzakelijke manier zijn om trend- en seizoensproblemen van TS-gegevens aan te pakken. Sommige modellen hebben ook problemen met hoe goed ze passen bij de gegevens, en als dat niet het geval is, missen ze mogelijk de belangrijkste trend.

Tijdreeksen en machine learning-benaderingen mogen niet los van elkaar bestaan. Ze kunnen met elkaar worden gecombineerd om de voordelen van elke benadering te bieden. Prognosemethoden en tijdreeksanalyse zijn goed in het ontleden van gegevens in trend- en seizoensgegevens.elementen. Deze analyse kan vervolgens worden gebruikt als invoer voor een ML-model dat trend- en seizoensinformatie in zijn algoritme heeft, waardoor het beste van twee werelden wordt verkregen.

De probleemstelling begrijpen

Beschouw bijvoorbeeld TS in verband met het voorspellen van het aantal passagiers op een nieuwe hogesnelheidstrein. U hebt bijvoorbeeld 2 jaar aan gegevens (augustus 2016 - september 2018) en met deze gegevens moet u het aantal passagiers voor de komende 7 maanden voorspellen, met 2 jaar gegevens (2016-2018) op uurniveau met de aantal passagiers dat reist, en het is noodzakelijk om het aantal van hen in de toekomst te schatten.

Subset van dataset voor prognoses met tijdreeksen:

  1. Een trein- en testbestand maken voor simulatie.
  2. De eerste 14 maanden (aug 2016 - okt 2017) worden gebruikt als trainingsgegevens en de volgende 2 maanden (november 2017 - dec 2017) zijn testgegevens.
  3. Voeg de dataset dagelijks samen.
Aggregatie van datasets
Aggregatie van datasets

Voer datavisualisatie uit om te zien hoe deze in de loop van de tijd verandert.

Data visualisatie
Data visualisatie

Naïeve benadering bouwmethode

De bibliotheek die in dit geval wordt gebruikt voor TS-voorspelling is statsmodels. Het moet worden geïnstalleerd voordat een van deze benaderingen kan worden toegepast. Misschien is statsmodels al geïnstalleerd in de Python-omgeving, maar ondersteunt het geen methodenvoorspelling, dus je moet het uit de repository klonen en vanaf de bron installeren.

Volgorde aanbrengen in
Volgorde aanbrengen in

Voor dit voorbeeld betekent dit dat de reisprijzen met munten vanaf het begin en gedurende de gehele periode stabiel zijn. Deze methode gaat ervan uit dat het volgende verwachte punt gelijk is aan het laatst waargenomen punt en wordt Naive Approach genoemd.

Naïeve methode
Naïeve methode

Bereken nu de standaarddeviatie om de nauwkeurigheid van het model op de testdataset te testen. Uit de RMSE-waarde en de bovenstaande grafiek kunnen we concluderen dat Naive niet geschikt is voor opties met een hoge volatiliteit, maar voor stabiele opties.

Eenvoudige medium stijl

Om de methode te demonstreren, wordt een grafiek getekend, ervan uitgaande dat de Y-as de prijs vertegenwoordigt en de X-as de tijd (dagen).

Eenvoudige medium stijl
Eenvoudige medium stijl

Hieruit kunnen we concluderen dat de prijs willekeurig stijgt en da alt met een kleine marge, zodat de gemiddelde waarde constant blijft. In dit geval kunt u de prijs van de volgende periode voorspellen, vergelijkbaar met het gemiddelde van alle afgelopen dagen.

Deze methode van voorspellen met het verwachte gemiddelde van eerder waargenomen punten wordt de eenvoudige gemiddelde methode genoemd.

In dit geval worden eerder bekende waarden genomen, het gemiddelde wordt berekend en als de volgende waarde genomen. Dit zal natuurlijk niet exact zijn, maar het komt aardig in de buurt, en er zijn situaties waarin deze methode het beste werkt.

Eenvoudig Gemiddeldmethode
Eenvoudig Gemiddeldmethode

Op basis van de resultaten die in de grafiek worden weergegeven, werkt deze methode het beste wanneer de gemiddelde waarde over elke periode constant blijft. Hoewel de naïeve methode beter is dan het gemiddelde, maar niet voor alle datasets. Het wordt aanbevolen om elk model stap voor stap uit te proberen en te kijken of het het resultaat verbetert of niet.

Model met voortschrijdend gemiddelde

voortschrijdend gemiddelde model
voortschrijdend gemiddelde model

Op basis van deze grafiek kunnen we concluderen dat de prijzen in het verleden verschillende keren met een ruime marge zijn gestegen, maar nu stabiel zijn. Om de vorige middelingsmethode te gebruiken, moet u het gemiddelde nemen van alle eerdere gegevens. De prijzen van de beginperiode zullen de voorspelling van de volgende periode sterk beïnvloeden. Neem daarom, als een verbetering ten opzichte van het eenvoudige gemiddelde, het gemiddelde van de prijzen alleen voor de laatste paar tijdsperioden.

Deze voorspellingstechniek wordt de voortschrijdend gemiddelde techniek genoemd, ook wel een "n"-formaat "bewegend venster" genoemd. Met behulp van een eenvoudig model wordt de volgende waarde in TS voorspeld om de nauwkeurigheid van de methode te controleren. Naïef presteert duidelijk beter dan zowel het gemiddelde als het voortschrijdend gemiddelde voor deze dataset.

Er is een variant van de voorspelling door de methode van eenvoudige exponentiële afvlakking. Bij de methode met voortschrijdend gemiddelde worden de eerdere "n"-waarnemingen gelijk gewogen. In dit geval kunt u situaties tegenkomen waarin elk van de 'n' uit het verleden de prognose op zijn eigen manier beïnvloedt. Deze variatie, die eerdere waarnemingen anders weegt, wordt de methode genoemdgewogen voortschrijdend gemiddelde.

Extrapolatie van patronen

Een van de belangrijkste eigenschappen die nodig zijn om rekening te houden met algoritmen voor het voorspellen van tijdreeksen, is de mogelijkheid om patronen te extrapoleren buiten het domein van trainingsgegevens. Veel ML-algoritmen hebben deze mogelijkheid niet, omdat ze meestal beperkt zijn tot een regio die wordt gedefinieerd door de trainingsgegevens. Daarom zijn ze niet geschikt voor TS, waarvan het doel is om het resultaat in de toekomst te projecteren.

Een andere belangrijke eigenschap van het TS-algoritme is de mogelijkheid om betrouwbaarheidsintervallen te verkrijgen. Hoewel dit de standaardeigenschap is voor TS-modellen, hebben de meeste ML-modellen deze mogelijkheid niet omdat ze niet allemaal gebaseerd zijn op statistische distributies.

Denk niet dat alleen simpele statistische methoden worden gebruikt om TS te voorspellen. Het is helemaal niet zo. Er zijn veel complexe benaderingen die in speciale gevallen zeer nuttig kunnen zijn. Gegeneraliseerde autoregressieve voorwaardelijke heteroscedasticiteit (GARCH), Bayesiaans en VAR zijn slechts enkele van hen.

Er zijn ook neurale netwerkmodellen die kunnen worden toegepast op tijdreeksen die achterblijvende voorspellers gebruiken en die functies aankunnen zoals neurale netwerkautoregressie (NNAR). Er zijn zelfs tijdreeksmodellen die zijn ontleend aan complex leren, met name in de familie van terugkerende neurale netwerken, zoals LSTM- en GRU-netwerken.

Geschatte metrische gegevens en resterende diagnostiek

De meest voorkomende voorspellingsstatistieken zijnrms betekent, dat veel mensen gebruiken bij het oplossen van regressieproblemen:

  • MAPE omdat het schaalonafhankelijk is en de verhouding tussen fouten en werkelijke waarden als een percentage weergeeft;
  • MASE, die laat zien hoe goed de voorspelling presteert in vergelijking met de naïeve gemiddelde voorspelling.

Als een voorspellingsmethode eenmaal is aangepast, is het belangrijk om te evalueren hoe goed deze in staat is om de modellen vast te leggen. Hoewel de evaluatiestatistieken helpen bepalen hoe dicht de waarden bij de werkelijke waarden liggen, evalueren ze niet of het model bij de TS past. Restjes zijn een goede manier om dit te evalueren. Aangezien de programmeur TS-patronen probeert toe te passen, kan hij verwachten dat fouten zich als "witte ruis" gedragen, omdat ze iets vertegenwoordigen dat niet door het model kan worden vastgelegd.

"Witte ruis" moet de volgende eigenschappen hebben:

  1. Residuen ongecorreleerd (Acf=0)
  2. Residuen volgen een normale verdeling met nulgemiddelde (onbevooroordeeld) en constante variantie.
  3. Als een van de twee eigenschappen ontbreekt, is er ruimte voor verbetering in het model.
  4. De eigenschap nulgemiddelde kan eenvoudig worden getest met behulp van de T-test.
  5. De eigenschappen van normaliteit en constante variantie worden visueel gecontroleerd met behulp van een histogram van residuen of een geschikte univariate normaliteitstest.

ARIMA Model

ARIMA - AutoRegressive Integrated Moving-Average-model, is een van de meest populaire methoden die wordt gebruikt bij TS-prognoses, voornamelijkdoor middel van autocorrelatie van gegevens om modellen van hoge kwaliteit te maken.

Bij het evalueren van ARIMA-coëfficiënten is de belangrijkste aanname dat de gegevens stationair zijn. Dit betekent dat trend en seizoensinvloeden de variantie niet kunnen beïnvloeden. De kwaliteit van het model kan worden beoordeeld door de tijdgrafiek van de werkelijke waarden te vergelijken met de voorspelde waarden. Als beide curven dicht bij elkaar liggen, kan worden aangenomen dat het model bij het geanalyseerde geval past. Het moet eventuele trends en seizoensgebondenheid onthullen.

Analyse van de residuen zou dan moeten uitwijzen of het model past: willekeurige residuen betekenen dat het nauwkeurig is. Als u ARIMA aanpast aan parameters (0, 1, 1), krijgt u dezelfde resultaten als exponentiële afvlakking en als u parameters (0, 2, 2) gebruikt, krijgt u dubbel exponentiële afvlakkingsresultaten.

Tijdreeksalgoritmen in SQL Server
Tijdreeksalgoritmen in SQL Server

U hebt toegang tot ARIMA-instellingen in Excel:

  1. Start Excel.
  2. Vind XL MINER op de werkbalk.
  3. Selecteer op het lint ARIMA in het vervolgkeuzemenu.

Samenvatting van de mogelijkheden van het ARIMA-model:

  1. ARIMA - Autoregressief geïntegreerd voortschrijdend gemiddelde.
  2. Voorspellingsmodel gebruikt in tijdreeksanalyse.
  3. ARIMA-parametersyntaxis: ARIMA (p, d, q) waarbij p=aantal autoregressieve termen, d=aantal seizoensverschillen en q=aantal voortschrijdend gemiddelde termen.

Algoritmen in SQL Server

Het uitvoeren van kruisvoorspelling is een van de belangrijkstekenmerken van tijdreeksen bij het voorspellen van financiële taken. Als er twee gerelateerde reeksen worden gebruikt, kan het resulterende model worden gebruikt om de resultaten van de ene reeks te voorspellen op basis van het gedrag van de andere.

SQL Server 2008 heeft krachtige nieuwe tijdreeksfuncties om te leren en te gebruiken. De tool heeft gemakkelijk toegankelijke TS-gegevens, een gebruiksvriendelijke interface voor het simuleren en reproduceren van algoritmefuncties, en een uitlegvenster met een link naar server-side DMX-query's zodat je kunt begrijpen wat er binnenin gebeurt.

Markttijdreeksen is een breed gebied waarop modellen en algoritmen voor diep leren kunnen worden toegepast. Banken, makelaars en fondsen experimenteren nu met hun inzet van analyse en prognoses voor indices, wisselkoersen, futures, cryptocurrency-prijzen, overheidsaandelen en meer.

Bij het voorspellen van tijdreeksen vindt het neurale netwerk voorspelbare patronen door de structuren en trends van de markten te bestuderen en geeft het advies aan handelaren. Deze netwerken kunnen ook helpen bij het detecteren van anomalieën zoals onverwachte pieken, dalen, trendveranderingen en niveauverschuivingen. Voor financiële prognoses worden veel kunstmatige-intelligentiemodellen gebruikt.

Aanbevolen: