Klicka för att lära dig mer om författare Maarit Widmann.
En komplett applikation för tidsserieanalys täcker stegen i en Data Science cykel från åtkomst till transformering, modellering, utvärdering och distribution av tidsseriedata. Men för tidsseriedata skiljer sig de specifika uppgifterna i dessa steg i jämförelse med tvärsnittsdata. Tvärsnittsdata samlas till exempel in som en ögonblicksbild av ett objekt vid en tidpunkt, medan tidsseriedata samlas in genom att observera samma objekt under en tidsperiod. De vanliga mönstren i tidsseriedata har sin specifika terminologi, och de bestämmer vilken förbearbetning som krävs innan man går vidare till modellering av tidsserier. Tidsserier kan modelleras med många typer av modeller, men specifika tidsseriemodeller, såsom en ARIMA-modell, använder sig av den tidsmässiga strukturen mellan observationerna.
I den här artikeln introducerar vi de vanligaste uppgifterna i resan med att bygga en tidsserieapplikation. Slutligen omsätter vi teorin i praktiken genom att bygga en exempelapplikation i Analytics-plattformen.
Få tillgång till tidsserier
Tidsserier har olika källor och tillämpningar: daglig försäljningsdata för efterfrågeförutsägelse, årlig makroekonomisk data för långsiktig politisk planering, sensordata från en smart klocka för att analysera en träningssession och många fler. Alla dessa tidsserier skiljer sig till exempel i sin granularitet, regelbundenhet och renhet: Vi kan vara säkra på att vi har ett BNP-värde för vårt land för detta år och även för de kommande 10 åren, men vi kan inte garantera att sensorn på vår smarta klocka presterar stabilt i alla träningar och vid alla temperaturer. Det kan också vara så att tidsseriedata inte är tillgängliga med jämna mellanrum, utan endast kan samlas in från slumpmässiga händelsepunkter, såsom sjukdomsinfektioner eller spontana kundbesök. Vad alla dessa typer av tidsseriedata har gemensamt är dock att de samlas in från samma källa över tiden.
Tidsserier för reglering och rengöring
När vi väl har tidsseriedata är nästa steg att göra den jämnt fördelad med lämplig granularitet, kontinuerlig och ren. De uppgifter som krävs beror på den ursprungliga formen på datan och även vår analytics syfte. Om vi till exempel planerar en en veckas marknadsföring av en produkt kan vi vara intresserade av mer detaljerad information än om vi vill få en överblick över försäljningen av en produkt.
sortering
Tidsserier måste sorteras efter tid. När du delar upp data i tränings- och testset, kom ihåg att bevara den tidsmässiga strukturen mellan posterna genom att ta data från toppen/botten för testning/träning. Om din data innehåller mer än en post per tidsstämpel måste du sammanställa dem efter tidsstämpeln. Till exempel, när du har flera beställningar per dag och du är intresserad av den dagliga försäljningen, måste du summera försäljningen för varje dag. Dessutom, om du är intresserad av tidsserien med en annan granularitet än vad du för närvarande har i data (till exempel månadsförsäljning istället för daglig försäljning) kan du ytterligare aggregera data med önskad granularitet.
Värden saknas
Om några tidsstämplar saknas måste du introducera dem till tidsserien för att göra den jämnt fördelad. Ibland är de saknade rekorden en del av dynamiken i tidsserien (till exempel stänger en börs på en fredag och öppnar på en måndag).
När du introducerar de saknade tidsstämplarna till datan saknas givetvis motsvarande värden. Du kan imputera dessa saknade värden genom till exempel linjär interpolation eller glidande medelvärden. Kom dock ihåg att den bästa tekniken för att imputera saknade värden beror på den vanliga dynamiken i data. Till exempel, om du inspekterar veckosäsongsvariationer i dagliga data och ett värde på en lördag saknas, är den senaste lördagens värde förmodligen den bästa ersättningen. Om de saknade värdena inte saknas slumpmässigt, som de saknade börsens stängningskurser på helger, kan du ersätta dem med ett fast värde, som skulle vara 0 i detta fall. Å andra sidan, om de saknade värdena är slumpmässiga och de förekommer tillräckligt långt i det förflutna, kan du använda data efter det saknade värdet och ignorera äldre data.
Oregelbundna mönster
Ett bra sätt att hantera snabba fluktuationer och extremvärden är att jämna ut data. Flera tekniker kan användas, som t.ex glidande medelvärde och exponentiell utjämning. Genom att skära av värdena som ligger utanför morrhåren i en boxplot jämnas data ut. Tänk på att stark säsongsvariation i data kan leda till en utbredd boxplot, och då är det bättre att använda en villkorad boxplot för att upptäcka extremvärden.
Men ibland visar tidsserien bara ett mycket oregelbundet fenomen! I ett sådant fall kan du försöka göra tidsserien mer regelbunden genom att extrahera en delmängd av den, till exempel genom att bara ta hänsyn till försäljningen av en produkt istället för försäljningen av hela snabbköpet, eller genom att gruppera data.
Utforska och transformera tidsserier
Vid det här laget har vi vår tidsseriedata i den form som är lämplig för att utforska den visuellt och numeriskt. De olika handlingarna och statistiken avslöjar långsiktiga och kortsiktiga mönster och tidsmässiga samband i tidsserien som vi kan använda för att bättre förstå dynamiken i den och förutsäga dess framtida utveckling.
Visuell utforskning av tidsserier
Den grundläggande plotten för att utforska tidsserier är linjediagrammet (Figur 3) som visar en möjlig riktning, regelbundna och oregelbundna fluktuationer, extremvärden, luckor eller vändpunkter i tidsserien. Om du observerar ett regelbundet mönster i din tidsserie, till exempel årlig säsongsvariation i försäljningen av drycker, kan du sedan inspektera varje säsongscykel (år) separat i ett säsongsdiagram (Figur 3). I säsongsplotten kan du till exempel enkelt se om juli var en starkare försäljningsmånad i år än förra året, eller om månadsförsäljningen ökar år för år.
Om du är intresserad av vad som händer under säsongerna, till exempel vad är medianförsäljningen under sommarmånaderna och hur mycket och i vilken riktning försäljningen varierar varje månad, kan du inspektera den här typen av dynamik i en villkorlig boxplot(Figur 3). Ytterligare en annan användbar plot för att utforska tidsserier är fördröjningsplotten (Figur 3). Fördröjningsdiagrammet visar förhållandet mellan nuvarande värden och tidigare värden, till exempel försäljning idag och försäljningsveckan innan.
Klassisk nedbrytning av tidsserier
Klassisk nedbrytning, det vill säga att dekomponera tidsserien i dess trend, säsongsvariationer och kvarvarande, ger ett bra riktmärke för prognoser. Den återstående delen av tidsserien, den resterande delen, är tänkt att vara stationär, och kan till exempel prognostiseras av en ARIMA-modell. Kom dock ihåg att om den kvarvarande serien inte är stationär kan vissa ytterligare transformationer krävas, såsom första ordningens differens eller logtransformation av den ursprungliga tidsserien.
För det första, om tidsserien visar en riktning, en trend, kan tidsserien avskiljas, till exempel genom att passa in en regressionsmodell genom data, eller genom att beräkna ett glidande medelvärde.
För det andra, om tidsserien visar en regelbunden fluktuation – en säsongsvariation – kan tidsserien justeras för det. Du kan hitta eftersläpningen där den största säsongsvariationen inträffar i autokorrelationsdiagrammet för tidsserien. Om du till exempel observerar en topp vid lag 7 och du har dagliga data, kommer data att ha veckovis säsongsvariation. Säsongsvariationen kan justeras genom att differentiera data vid eftersläpningen där den stora spiken inträffar. Om du vill justera andra säsongsvariationer i data kan du göra det genom att upprepa proceduren för den justerade (differentierade) tidsserien.
Slutligen, när du nått en stationär tidsserie som är redo att modelleras av till exempel en ARIMA-modell, kan du göra en sista kontroll med t.ex. Ljung-box test för stationäritet.
Modellering och utvärdering av tidsserier
Nu går vi vidare till att modellera den resterande delen av tidsserien som innehåller dess oregelbundna dynamik. Vi kan göra detta med ARIMA-modeller, maskininlärning modeller, neurala nätverk och många varianter av dem. Vi modellerar ofta den återstående delen av tidsserien med dessa modeller, eftersom den är stationär. Det är dock inte alltid nödvändigt att dekomponera tidsserierna, eftersom vissa modeller, som till exempel den säsongsbetonade ARIMA-modellen, också fungerar för att modellera icke-stationära tidsserier.
I det följande samlar vi några egenskaper hos dessa olika modelleringstekniker, deras likheter och skillnader, så att du kan välja den bästa för ditt användningsfall. Kom också ihåg att det är användbart att träna flera modeller, och till och med bygga en ensemble av dem!
ARIMA modeller
ARIMA (Autoregressive Integrated Moving Average) modell är en linjär regressionsmodell mellan nuvarande och tidigare värden (AR-del), och även mellan nuvarande och tidigare prognosfel (MA-del). Om modellen har en I-del som inte är noll, så är data differentierade för att göra den stationär. Grundläggande ARIMA-modeller antar att tidsserien är stationär, och stationära tidsserier har inte förutsägbara mönster på lång sikt. Den vikande träffsäkerheten i långtidsprognoserna kan ses i prognosernas ökande konfidensintervall. Att ha mer data är inte alltid bättre för att träna ARIMA-modeller: Stora datauppsättningar kan göra det tidskrävande att uppskatta modellparametrarna för en ARIMA-modell, samt överdriva skillnaden mellan den verkliga processen och modellprocessen.
Maskininlärningsmodeller
Maskininlärningsmodeller använder de fördröjda värdena som prediktorkolumner, och de ignorerar den tidsmässiga strukturen mellan målkolumnen och prediktorkolumnerna. Maskininlärningsmodeller kan också identifiera långsiktiga mönster och vändpunkter i data, förutsatt att tillräckligt mycket data tillhandahålls i träningsdata för att fastställa dessa mönster. Generellt gäller att ju fler oegentligheter data visar, desto mer data behövs för att träna modellen. När du tillämpar en maskininlärningsmodell rekommenderas att du modellerar resten. Annars kan du bygga en modell som är mer komplicerad än den klassiska nedbrytningsmodellen, men som faktiskt inte lär sig något nytt utöver det!
Tips om modellval
För det första är vissa fenomen svåra att förutse, och i ett sådant fall är det ofta vettigt att välja en enklare modell och inte investera resurser i att modellera något som inte kan prognostiseras exakt.
För det andra är modellens prestanda inte det enda kriteriet. Om viktiga beslut baseras på modellens resultat kan dess tolkningsbarhet vara viktigare än en något bättre prestanda. Som sagt, ett neuralt nätverk kan förlora mot en enkel klassisk nedbrytningsmodell även om den förutsäger något bättre.
För det tredje, att lägga till förklarande variabler till din modell kan förbättra prognosens noggrannhet. Men i en sådan modell måste de explikativa variablerna också prognostiseras, och modellens ökande komplexitet är inte alltid värd den bättre noggrannheten. Ibland räcker grova uppskattningar för att stödja besluten: Om fraktbelopp beräknas i tiotals och hundratals, behöver inte heller den prognostiserade efterfrågan ha en större granularitet.
Modellutvärdering
Efter att ha tränat en modell är nästa steg att utvärdera den. För prognoser i urvalet är testsetet själva träningsuppsättningen, så modellprocessen anpassas till de data som användes för att träna modellen. För prognostisering utanför urvalet följer testsetet efter träningsuppsättningen i tid.
Ett rekommenderat felmått för att utvärdera en tidsseriemodell är det genomsnittliga absoluta procentuella felet (KARTA), eftersom det ger felet i en universell skala, i procent av det faktiska värdet. Men om det sanna värdet är noll, definieras inte detta mått, och då även andra felmått, som rotmedelkvadratfelet (RMSE), ska göra. Vad som ofta rekommenderas är dock att INTE använda R-kvadrat. R-kvadratmåttet passar inte in i sammanhanget för tidsserieanalys eftersom fokus ligger på att förutsäga framtida systematisk variabilitet för målkolumnen istället för att modellera all variabilitet i det förflutna.
Prognos och rekonstruktion av tidsserier
Vi är nästan där! Det sista steget är att prognostisera framtida värden och rekonstruera signalen.
Dynamisk prognoser
Om du har en modell som inte kan ge korrekta prognoser på lång sikt, förbättrar dynamisk implementering ofta prognosnoggrannheten utanför urvalet. Vid dynamisk implementering prognostiseras endast en punkt i framtiden åt gången, och tidigare data uppdateras med detta prognosvärde för att generera nästa prognos (Figur 5).
Återställ trend och säsongsvariationer
Slutligen, om vi dekomponerar tidsserien före prognoser, måste vi återställa trenden och/eller säsongsvariationerna till prognoserna. Om vi justerar säsongsvariationen genom att skilja på data börjar vi rekonstruera signalen genom att lägga till värden vid eftersläpningen där säsongsvariationen uppstår. Om vi till exempel hade dagliga data y där vi tillämpade säsongsskillnad vid lag 7 (veckovis säsongsvariation), skulle följande beräkning av prognosvärdena krävas för att återställa denna säsongsvariation yt+1, yt+2, ..., yt+h :
var ti är den sista tidpunkten i träningsdata, och h är prognoshorisonten.
För att återställa andra säsongsvariationer skulle vi upprepa steget som beskrivs ovan för den återställda tidsserien. Om vi ville återställa trendkomponenten till tidsserien, skulle vi tillämpa regressionsmodellen som representerar trenden på den återställda tidsserien.
Komplettera tidsserieapplikationen i Analytics-plattformen
Låt oss slutligen ta en titt på hur du omsätter dessa steg i praktiken med hjälp av vår Analytics-plattform. Arbetsflödet Få tillgång till Transforming and Modeling Time Series (tillgänglig på navet) i figur 6 visar stegen från åtkomst till rengöring, visuell undersökning, nedbrytning och modellering av tidsserier. För några av dessa uppgifter använder vi tidsseriekomponenter som kapslar in arbetsflöden som funktionaliteter specifika för tidsserier: aggregera data med den valda granulariteten, utför den klassiska nedbrytningen och mer.
I det här exemplet använder vi Prov – Superstore uppgifter som tillhandahålls av Tableau. I vår analys fokuserar vi på beställningar av alla produkter från 2014 till 2017 – totalt 9994 rekord. Vi börjar förbearbetningen med att omforma data till tidsseriedata genom att beräkna den totala försäljningen per dag. Nu har vi bara ett värde per dag, men vissa dagar saknas eftersom inga beställningar skickades in dessa dagar. Därför introducerar vi dessa dagar till tidsserien och ersätter de saknade försäljningsvärdena med ett fast värde 0. Därefter aggregerar vi data på månadsnivå, och tar hänsyn till den genomsnittliga försäljningen i varje månad i vidare analys.
För visuell utforskning aggregerar vi också data på årsnivå, och vi får reda på att det finns en vändpunkt i början av år 2015, som linjediagrammet till höger i figur 7 visar. Linjediagrammet till vänster visar den årliga säsongsvariationen i data: det finns två regelbundna toppar i slutet av varje år och en lägre topp i början av varje år. Vi upptäcker också årlig säsongsvariation i data, vilket framgår av den stora spiken vid fördröjningen 12 i ACF-diagrammet till vänster. Vi delar upp tidsserien i dess trend, säsongsvariation och residual, och dessa komponenter visas i linjediagrammet i mitten i figur 7. ACF-diagrammet till höger visar ingen signifikant autokorrelation i restserien.
Därefter modellerar vi restserien av den månatliga genomsnittliga försäljningen med en ARIMA-modell. Efter differens vid lag 12 är längden på tidsserien 36 observationer. Vi letar efter den bästa modellen med Auto ARIMA Learner-komponenten med maxordning 4 för AR- och MA-delarna och maxordning 1 för I-delen. Den bäst presterande modellen baserad på Akaike informationskriterium är ARIMA (0, 1, 4), och den resulterande MAPE baserad på prognoser i urvalet är 1.153.
Slutligen bedömer vi modellens prognosexakthet utanför urvalet. Arbetsflödet Prognos och rekonstruktion av tidsserier (tillgänglig på navet) i figur 8 visar hur man prognostiserar den dagliga försäljningen 2017 baserat på månadsdata under åren 2014 till 2016 (24 observationer), och den vinnande ARIMA-modellen (0,1,4) med den dynamiska implementeringen närma sig. Därefter rekonstruerar vi signalen, i det här fallet återställer vi trenden och den årliga säsongsvariationen till prognosvärdena (12 månatliga genomsnittliga försäljningsvärden). Vi jämför de faktiska och prognostiserade värdena och får en MAPE på 0.336.
Sammanfattning
Tidsserier, oavsett om det är sensordata som visar beteendet hos ett litet objekt nanosekund efter nanosekund, makroekonomiska data för 20-talet, eller något däremellan, har specifika analystekniker som gäller för åtkomst, manipulering och modelleringssteg.
I den här artikeln har vi introducerat dig till grunderna för analystekniker för tidsserier som hjälper dig att komma igång när du arbetar med tidsseriedata.
Referensprojekt
[1] Chambers, John C., Satinder K. Mullick och Donald D. Smith. Hur man väljer rätt prognosteknik. Harvard University, Graduate School of Business Administration, 1971.
[2] Hyndman, Rob J. och George Athanasopoulos. Prognos: Principer och praxis. OTexts, 2018.
Källa: https://www.dataversity.net/building-a-time-series-analysis-application/
- Absolut
- Annat
- analys
- analytics
- Ansökan
- tillämpningar
- AR
- Artikeln
- bil
- Grunderna
- riktmärke
- BÄST
- Drycker
- kropp
- Box
- SLUTRESULTAT
- Byggnad
- företag
- Rengöring
- Kolumn
- Gemensam
- komponent
- förtroende
- länder
- Aktuella
- datum
- dag
- Efterfrågan
- Utveckling
- Sjukdom
- uppskattningar
- händelse
- Motionera
- utforskning
- Figur
- Slutligen
- Förnamn
- passa
- Fokus
- Fredag
- framtida
- BNP
- Allmänt
- George
- god
- uppgradera
- Arbetsmiljö
- Harvard
- Harvard Universitet
- Hur ser din drömresa ut
- How To
- HTTPS
- Hundratals
- identifiera
- bild
- Infektioner
- informationen
- IT
- Juli
- Large
- leda
- LÄRA SIG
- elev
- inlärning
- Nivå
- linje
- Lång
- maskininlärning
- större
- marknad
- Metrics
- modell
- modellering
- Måndag
- månadsdata
- månader
- flytta
- nät
- nätverk
- neural
- neurala nätverk
- neurala nätverk
- öppnas
- beställa
- ordrar
- Övriga
- Mönster
- prestanda
- planering
- plattform
- förutsägelse
- Produkt
- Produkter
- främjande
- register
- regression
- Förhållanden
- Resurser
- Resultat
- försäljning
- Skala
- Skola
- vald
- känsla
- Serier
- in
- Frakt & Leverans
- Enkelt
- Small
- smarta
- Snapshot
- So
- starta
- igång
- statistik
- lager
- aktiemarknaden
- lämnats
- sommar
- stödja
- Tableau
- Målet
- testa
- Grunderna
- Framtiden
- tid
- topp
- Utbildning
- Transformation
- Universell
- universitet
- värde
- Kolla på
- vecka
- vecka
- Vad är
- wikipedia
- inom
- Arbete
- arbetsflöde
- träning
- värt
- år
- år
- noll-