Klik for at lære mere om forfatteren Maarit Widmann.
En komplet tidsserieanalyseapplikation dækker trinene i en data, Science cyklus fra adgang til transformation, modellering, evaluering og implementering af tidsseriedata. For tidsseriedata adskiller de specifikke opgaver i disse trin sig dog i forhold til tværsnitsdata. For eksempel indsamles tværsnitsdata som et øjebliksbillede af et objekt på et tidspunkt, hvorimod tidsseriedata indsamles ved at observere det samme objekt over en tidsperiode. De regulære mønstre i tidsseriedata har deres specifikke terminologi, og de bestemmer den nødvendige forbehandling, før de går videre til modellering af tidsserier. Tidsserier kan modelleres med mange typer modeller, men specifikke tidsseriemodeller, såsom en ARIMA-model, benytter sig af den tidsmæssige struktur mellem observationerne.
I denne artikel introducerer vi de mest almindelige opgaver i rejsen med at bygge en tidsserieapplikation. Til sidst omsætter vi teorien i praksis ved at bygge en eksempelapplikation i Analytics-platformen.
Adgang til tidsserier
Tidsserier har forskellige kilder og applikationer: daglige salgsdata til forudsigelse af efterspørgsel, årlige makroøkonomiske data til langsigtet politisk planlægning, sensordata fra et smartur til at analysere en træningssession og mange flere. Alle disse tidsserier adskiller sig f.eks. i deres granularitet, regelmæssighed og renhed: Vi kan være sikre på, at vi har en BNP-værdi for vores land for i år og også for de næste 10 år, men vi kan ikke garantere, at sensoren på vores smartwatch fungerer stabilt i enhver træning og ved enhver temperatur. Det kan også være, at tidsseriedata ikke er tilgængelige med jævne mellemrum, men kun kan indsamles fra tilfældige hændelsespunkter, såsom sygdomsinfektioner eller spontane kundebesøg. Fælles for alle disse slags tidsseriedata er dog, at de er indsamlet fra den samme kilde over tid.
Regulering og rengøring tidsserie
Når vi har tidsseriedataene, er næste trin at gøre dem lige fordelt med en passende granularitet, kontinuerlig og ren. De nødvendige opgaver afhænger af den oprindelige form af dataene og også vores analytics formål. For eksempel, hvis vi planlægger en en-uges promovering af et produkt, kan vi være interesseret i mere detaljerede data, end hvis vi ønsker at få et overblik over salget af et produkt.
Sortering
Tidsserier skal sorteres efter tid. Når du opdeler data i trænings- og testsæt, skal du huske at bevare den tidsmæssige struktur mellem posterne ved at tage data fra top/bund til test/træning. Hvis dine data indeholder mere end én post pr. tidsstempel, skal du samle dem efter tidsstemplet. For eksempel, når du har flere ordrer pr. dag, og du er interesseret i det daglige salg, skal du summere salget for hver dag. Ydermere, hvis du er interesseret i tidsserien med en anden granularitet end den, du i øjeblikket har i dataene (f.eks. månedlige salg i stedet for daglige salg), kan du yderligere aggregere dataene med den foretrukne granularitet.
Manglende værdier
Hvis nogle tidsstempler mangler, er du nødt til at introducere dem til tidsserien for at få den lige fordelt. Nogle gange er de manglende rekorder en del af dynamikken i tidsserien (for eksempel lukker et aktiemarked på en fredag og åbner på en mandag).
Når du introducerer de manglende tidsstempler til dataene, mangler de tilsvarende værdier naturligvis. Du kan imputere disse manglende værdier ved for eksempel lineær interpolation eller glidende gennemsnitsværdier. Husk dog, at den bedste teknik til at imputere manglende værdier afhænger af den regelmæssige dynamik i dataene. For eksempel, hvis du inspicerer ugentlige sæsonbestemte data i daglige data, og der mangler en værdi på en lørdag, så er den sidste lørdags værdi sandsynligvis den bedste erstatning. Hvis de manglende værdier ikke mangler tilfældigt, som de manglende børsslutkurser i weekenden, kan du erstatte dem med en fast værdi, som ville være 0 i dette tilfælde. På den anden side, hvis de manglende værdier er tilfældige, og de forekommer langt nok i fortiden, kan du bruge dataene efter den manglende værdi og ignorere de ældre data.
Uregelmæssige mønstre
En god måde at håndtere hurtige udsving og outliers på er at udjævne dataene. Der kan bruges flere teknikker, som f.eks glidende gennemsnit , eksponentiel udjævning. Ved at skære de værdier, der ligger uden for knurhårene i et boksplot, glattes dataene også. Husk på, at stærk sæsonbestemthed i dataene kan føre til et udbredt boksplot, og så er det bedre at bruge et betinget boksplot til at detektere afvigere.
Nogle gange viser tidsserien dog bare et meget uregelmæssigt fænomen! I et sådant tilfælde kan du forsøge at gøre tidsserien mere regelmæssig ved at udtrække en delmængde af den, for eksempel ved kun at overveje salget af ét produkt i stedet for salget af hele supermarkedet, eller ved at gruppere dataene.
Udforske og transformere tidsserier
På dette tidspunkt har vi vores tidsseriedata i den form, der er egnet til at udforske dem visuelt og numerisk. De forskellige plots og statistikker afslører lang- og kortsigtede mønstre og tidsmæssige sammenhænge i tidsserien, som vi kan bruge til bedre at forstå dynamikken i den og forudsige dens fremtidige udvikling.
Visuel udforskning af tidsserier
Det grundlæggende plot til at udforske tidsserier er linjeplottet (Figur 3), der viser en mulig retning, regelmæssige og uregelmæssige udsving, outliers, huller eller vendepunkter i tidsserien. Hvis du observerer et regulært mønster i din tidsserie, såsom årlige sæsonbestemte udsving i salget af drikkevarer, kan du derefter inspicere hver sæsonbestemt cyklus (år) separat i et sæsonbetinget plot (Figur 3). I sæsonplottet kan du fx nemt se, om juli var en stærkere salgsmåned i år end sidste år, eller om det månedlige salg stiger år for år.
Hvis du er interesseret i, hvad der sker inden for sæsonerne, såsom hvad er mediansalget i sommermånederne, og hvor meget og i hvilken retning salget varierer hver måned, kan du inspicere denne form for dynamik i et betinget kasseplot(Figur 3). Endnu et nyttigt plot til at udforske tidsserier er forsinkelsesplottet (figur 3). Lag-plottet viser forholdet mellem de nuværende værdier og tidligere værdier, for eksempel salg i dag og salg uge før.
Klassisk nedbrydning af tidsserier
Klassisk dekomponering, dvs. at dekomponere tidsserien i dens trend, sæsonbestemte og resterende, giver et godt benchmark for prognoser. Den resterende del af tidsserien, den resterende del, formodes at være stationære, og kan for eksempel forudses af en ARIMA-model. Husk dog, at hvis den resterende række ikke er stationær, kan der være behov for nogle yderligere transformationer, såsom førsteordens differens eller logtransformation af den oprindelige tidsserie.
For det første, hvis tidsserien viser en retning, en trend, kan tidsserien afbrydes, for eksempel ved at tilpasse en regressionsmodel gennem dataene eller ved at beregne en glidende gennemsnitsværdi.
For det andet, hvis tidsserien viser et regulært udsving – en sæsonbestemt – kan tidsserien justeres for det. Du kan finde forsinkelsen, hvor den største sæsonvariation forekommer i autokorrelationsplottet for tidsserien. Hvis du f.eks. observerer et toppunkt ved forsinkelse 7, og du har daglige data, vil dataene have ugentlig sæsonbestemthed. Sæsonbestemtheden kan justeres ved at differentiere dataene ved forsinkelsen, hvor den største stigning opstår. Hvis du vil justere anden sæsonbestemthed i dataene, kan du gøre det ved at gentage proceduren for den justerede (forskellige) tidsserie.
Når man endelig er nået til en stationær tidsserie, der er klar til at blive modelleret af fx en ARIMA-model, kan man lave et sidste tjek med f.eks. Ljung-boks test for stationaritet.
Modellering og evaluering af tidsserier
Nu går vi videre til at modellere den resterende del af tidsserien, der indeholder dens uregelmæssige dynamik. Vi kan gøre dette med ARIMA-modeller, machine learning modeller, neurale netværk og mange variationer af dem. Vi modellerer ofte den resterende del af tidsserien efter disse modeller, fordi den er stationær. Det er dog ikke altid nødvendigt at dekomponere tidsserierne, fordi nogle modeller, som f.eks. den sæsonbestemte ARIMA-model, også fungerer til modellering af ikke-stationære tidsserier.
I det følgende samler vi nogle få egenskaber ved disse forskellige modelleringsteknikker, deres ligheder og forskelle, så du kan vælge den bedste til din brug. Husk også, at det er nyttigt at træne flere modeller og endda bygge et ensemble af dem!
ARIMA modeller
ARIMA (Autoregressive Integrated Moving Average) model er en lineær regressionsmodel mellem de nuværende og tidligere værdier (AR-del), og også mellem de nuværende og tidligere prognosefejl (MA-del). Hvis modellen har en I-del, der ikke er nul, bliver dataene differentieret for at gøre den stationær. Grundlæggende ARIMA-modeller antager, at tidsserien er stationær, og stationære tidsserier har ikke forudsigelige mønstre på lang sigt. Den faldende nøjagtighed i de langsigtede prognoser kan ses i prognosernes stigende konfidensintervaller. At have flere data er ikke altid bedre til at træne ARIMA-modeller: Store datasæt kan gøre estimering af modelparametrene for en ARIMA-model tidskrævende, samt overdrive forskellen mellem den sande proces og modelprocessen.
Maskinlæringsmodeller
Maskinlæringsmodeller bruger de forsinkede værdier som prædiktorkolonner, og de ignorerer den tidsmæssige struktur mellem målkolonnen og prædiktorkolonnerne. Maskinlæringsmodeller kan også identificere langsigtede mønstre og vendepunkter i dataene, forudsat at der er givet nok data i træningsdataene til at etablere disse mønstre. Generelt gælder det, at jo flere uregelmæssigheder dataene viser, jo flere data er nødvendige for at træne modellen. Når du anvender en maskinlæringsmodel, anbefales det at modellere resten. Ellers bygger du måske en model, der er mere kompliceret end den klassiske nedbrydningsmodel, men som faktisk ikke lærer noget nyt oven i købet!
Tips til modelvalg
For det første er nogle fænomener svære at forudsige, og i et sådant tilfælde giver det ofte mening at gå efter en mere simpel model og ikke investere ressourcer i at modellere noget, der ikke kan forudsiges præcist.
For det andet er modellens ydeevne ikke det eneste kriterium. Hvis vigtige beslutninger er baseret på resultaterne af modellen, kan dens fortolkning være vigtigere end en lidt bedre præstation. Når det er sagt, kan et neuralt netværk tabe mod en simpel klassisk nedbrydningsmodel, selvom det forudsiger lidt bedre.
For det tredje kan tilføjelse af forklarende variabler til din model forbedre prognosenøjagtigheden. Men i en sådan model skal de forklarende variable også forudsiges, og modellens stigende kompleksitet er ikke altid den bedre nøjagtighed værd. Nogle gange er grove skøn nok til at understøtte beslutningerne: Hvis forsendelsesbeløb beregnes i tiere og hundreder, behøver den forventede efterspørgsel heller ikke at have en større granularitet.
Modelvurdering
Efter træning af en model er næste skridt at evaluere den. For in-sample prognoser er testsættet selve træningssættet, så modelprocessen tilpasses til de data, der blev brugt til træning af modellen. For out-of-sample forecasting er testsættet efter træningssættet i tide.
En anbefalet fejlmåling til evaluering af en tidsseriemodel er den gennemsnitlige absolutte procentvise fejl (KORT), da det giver fejlen i en universel skala, som en procentdel af den faktiske værdi. Men hvis den sande værdi er nul, er denne metrik ikke defineret, og så også andre fejlmålinger, som f.eks.RMSE), vil gøre. Hvad der dog ofte anbefales, er IKKE at bruge R-firkantet. R-kvadrat-metrikken passer ikke ind i konteksten af tidsserieanalyse, fordi fokus er på at forudsige fremtidig systematisk variabilitet af målkolonnen i stedet for at modellere al variabilitet i fortiden.
Forudsigelse og rekonstruktion af tidsserier
Vi er der næsten! Det sidste trin er at forudsige fremtidige værdier og rekonstruere signalet.
Dynamisk prognose
Hvis du har en model, der ikke kan give nøjagtige prognoser på lang sigt, forbedrer dynamisk implementering ofte prognosenøjagtigheden uden for stikprøven. Ved dynamisk implementering forudsiges kun ét punkt i fremtiden ad gangen, og tidligere data opdateres med denne prognoseværdi for at generere den næste prognose (figur 5).
Gendannelse af trend og sæsonvariationer
Endelig, hvis vi dekomponerer tidsserierne før prognoser, er vi nødt til at genskabe tendensen og/eller sæsonvariationerne til prognoserne. Hvis vi justerer sæsonudsvinget ved at differentiere dataene, begynder vi at rekonstruere signalet ved at tilføje værdier ved forsinkelsen, hvor sæsonudsvinget opstår. Hvis vi f.eks. havde daglige data y, hvor vi anvendte sæsonbestemt forskel ved lag 7 (ugentlig sæsonudsving), ville gendannelse af denne sæsonudsving kræve følgende beregning til prognoseværdierne yt+1, yt+2, ..., yt+h :
hvor ter det sidste tidspunkt i træningsdataene, og h er prognosehorisonten.
For at genskabe anden sæsonbestemthed, ville vi gentage det ovenfor beskrevne trin for den gendannede tidsserie. Hvis vi ønskede at gendanne trendkomponenten til tidsserien, ville vi anvende regressionsmodellen, der repræsenterer trenden, på den gendannede tidsserie.
Fuldfør tidsserieapplikation i Analytics-platformen
Lad os endelig se på, hvordan du omsætter disse trin til praksis ved hjælp af vores Analytics-platform. Arbejdsgangen Adgang til Transformering og Modeling Time Series (tilgængelig på Hub) i figur 6 viser trinene fra adgang til rengøring, visuel udforskning, nedbrydning og modellering af tidsserier. Til nogle af disse opgaver bruger vi tidsseriekomponenter der indkapsler arbejdsgange som funktionaliteter, der er specifikke for tidsserier: aggregér dataene med den valgte granularitet, udfør den klassiske dekomponering og mere.
I dette eksempel bruger vi Eksempel – Superstore data leveret af Tableau. I vores analyse fokuserer vi på ordrerne på alle produkter fra 2014 til 2017 – i alt 9994 poster. Vi starter forbehandlingen med at omforme dataene til tidsseriedata ved at beregne det samlede salg pr. dag. Nu har vi kun én værdi pr. dag, men nogle dage mangler, fordi der ikke blev afgivet ordre på disse dage. Derfor introducerer vi disse dage til tidsserierne og erstatter de manglende salgsværdier med en fast værdi 0. Derefter aggregerer vi dataene på månedsniveau, og overvejer det gennemsnitlige salg i hver måned i videre analyse.
Til visuel udforskning aggregerer vi også dataene på årsniveau, og vi finder ud af, at der er et vendepunkt i begyndelsen af året 2015, som linjediagrammet til højre i figur 7 viser. Linjeplottet til venstre viser den årlige sæsonvariation i dataene: der er to regelmæssige toppe i slutningen af hvert år og en lavere top i begyndelsen af hvert år. Vi registrerer også årlige sæsonbestemte data, som vist ved den store stigning ved forsinkelsen 12 i ACF-plottet til venstre. Vi dekomponerer tidsserien i dens trend, sæsonbestemte og residual, og disse komponenter er vist i linjeplottet i midten i figur 7. ACF-plottet til højre viser ingen signifikant autokorrelation i residualserien.
Dernæst modellerer vi restserien af det månedlige gennemsnitlige salg med en ARIMA-model. Efter differentiering ved lag 12 er længden af tidsserien 36 observationer. Vi leder efter den bedste model med Auto ARIMA Learner-komponenten med maks. ordre 4 for AR- og MA-delene og max. ordre 1 for I-delen. Den bedst ydende model baseret på Akaike informationskriterium er ARIMA (0, 1, 4), og den resulterende MAPE baseret på prognoser i stikprøven er 1.153.
Til sidst vurderer vi modellens out-of-sample prognose nøjagtighed. Arbejdsgangen Forudsigelse og rekonstruktion af tidsserier (tilgængelig på Hub) i figur 8 viser, hvordan man forudsiger det daglige salg i 2017 baseret på de månedlige data i årene 2014 til 2016 (24 observationer) og den vindende ARIMA (0,1,4) model ved hjælp af den dynamiske implementering nærme sig. Derefter rekonstruerer vi signalet, i dette tilfælde genopretter vi trenden og den årlige sæsonvariation til prognoseværdierne (12 månedlige gennemsnitlige salgsværdier). Vi sammenligner de faktiske og forventede værdier og opnår en MAPE på 0.336.
Resumé
Tidsserier, hvad enten det er sensordata, der viser adfærden af et lille objekt nanosekund efter nanosekund, makroøkonomiske data for det 20. århundrede eller noget midt imellem, har specifikke analyseteknikker, der gælder for adgang til, manipulation og modellering af trin.
I denne artikel har vi introduceret dig til det grundlæggende i analyseteknikker til tidsserier, der hjælper dig med at komme i gang, når du arbejder med tidsseriedata.
Referencer
[1] Chambers, John C., Satinder K. Mullick og Donald D. Smith. Sådan vælger du den rigtige prognoseteknik. Harvard University, Graduate School of Business Administration, 1971.
[2] Hyndman, Rob J., og George Athanasopoulos. Forecasting: Principper og praksis. OTexts, 2018.
Kilde: https://www.dataversity.net/building-a-time-series-analysis-application/
- absolutte
- Yderligere
- analyse
- analytics
- Anvendelse
- applikationer
- AR
- artikel
- auto
- Grundlæggende
- benchmark
- BEDSTE
- Drikkevarer
- krop
- Boks
- bygge
- Bygning
- virksomhed
- Rengøring
- Kolonne
- Fælles
- komponent
- tillid
- lande
- Nuværende
- data
- dag
- Efterspørgsel
- Udvikling
- Sygdom
- skøn
- begivenhed
- Dyrke motion
- udforskning
- Figur
- Endelig
- Fornavn
- passer
- Fokus
- Fredag
- fremtiden
- BNP
- Generelt
- George
- godt
- eksamen
- Håndtering
- Harvard
- Harvard Universitet
- Hvordan
- How To
- HTTPS
- Hundreder
- identificere
- billede
- Infektioner
- oplysninger
- IT
- juli
- stor
- føre
- LÆR
- elev
- læring
- Niveau
- Line (linje)
- Lang
- machine learning
- større
- Marked
- Metrics
- model
- modellering
- Mandag
- månedlige data
- måned
- bevæge sig
- netværk
- net
- Neural
- neurale netværk
- neurale netværk
- åbner
- ordrer
- ordrer
- Andet
- Mønster
- ydeevne
- planlægning
- perron
- forudsigelse
- Produkt
- Produkter
- forfremmelse
- optegnelser
- regression
- Relationer
- Ressourcer
- Resultater
- salg
- Scale
- Skole
- valgt
- forstand
- Series
- sæt
- Levering
- Simpelt
- lille
- Smart
- Snapshot
- So
- starte
- påbegyndt
- statistik
- bestand
- aktiemarkedet
- indsendt
- sommer
- support
- Tableau
- mål
- prøve
- Grundlæggende
- Fremtiden
- tid
- top
- Kurser
- Transformation
- Universal
- universitet
- værdi
- Ur
- uge
- ugentlig
- Hvad er
- Wikipedia
- inden for
- Arbejde
- workflow
- workout
- værd
- år
- år
- nul