Napsauta saadaksesi lisätietoja kirjoittajasta Maarit Widmann.
Täydellinen aikasarjaanalyysisovellus kattaa kohdan a vaiheet data Science kierros käsittelystä aikasarjatietojen muuntamiseen, mallintamiseen, arviointiin ja käyttöön ottamiseen. Aikasarjatietojen osalta näiden vaiheiden erityistehtävät eroavat kuitenkin poikkileikkaustietoihin verrattuna. Esimerkiksi poikkileikkaustiedot kerätään tilannekuvana yhdestä objektista tietyllä hetkellä, kun taas aikasarjatiedot kerätään tarkkailemalla samaa objektia tietyn ajanjakson aikana. Aikasarjatiedon säännöllisillä kaavoilla on oma terminologiansa, ja ne määrittävät tarvittavan esikäsittelyn ennen siirtymistä aikasarjojen mallintamiseen. Aikasarjoja voidaan mallintaa monentyyppisillä malleilla, mutta tietyt aikasarjamallit, kuten ARIMA-malli, hyödyntävät havaintojen välistä ajallista rakennetta.
Tässä artikkelissa esittelemme yleisimmät tehtävät aikasarjasovelluksen rakentamisen matkalla. Lopuksi toteutimme teorian käytäntöön rakentamalla esimerkkisovelluksen Analytics-alustaan.
Aikasarjan käyttö
Aikasarjoilla on useita lähteitä ja sovelluksia: päivittäiset myyntitiedot kysynnän ennustamiseen, vuosittaiset makrotaloudelliset tiedot pitkän aikavälin poliittiseen suunnitteluun, älykellon anturitiedot harjoitusistunnon analysointiin ja paljon muuta. Kaikki nämä aikasarjat eroavat toisistaan esimerkiksi tarkkuuden, säännöllisyyden ja puhtauden suhteen: Voimme olla varmoja, että meillä on maamme BKT-arvo tälle vuodelle ja myös seuraavalle 10 vuodelle, mutta emme voi taata, että älykellomme anturi toimii vakaasti missä tahansa harjoituksessa ja missä tahansa lämpötilassa. Voi myös olla, että aikasarjatietoja ei ole saatavilla säännöllisin väliajoin, vaan ne voidaan kerätä vain satunnaisista tapahtumapisteistä, kuten tautitartunnoista tai spontaaneista asiakaskäynneistä. Kaikille näille aikasarjatiedoille on kuitenkin yhteistä, että ne kerätään samasta lähteestä ajan myötä.
Sääntely- ja puhdistusaikasarja
Kun meillä on aikasarjatiedot, seuraava askel on tehdä niistä tasaisin välein sopivalla tarkkuudella, jatkuvana ja puhtaana. Tarvittavat tehtävät riippuvat tietojen alkuperäisestä muodosta ja myös meidän Analytics tarkoitus. Jos esimerkiksi suunnittelemme tuotteen yhden viikon promootiota, saatamme olla kiinnostuneita tarkemmista tiedoista kuin jos haluaisimme saada yleiskuvan jonkin tuotteen myynnistä.
lajittelu
Aikasarjat on lajiteltava ajan mukaan. Kun jaat tietoja harjoitus- ja testijoukkoon, muista säilyttää tietueiden välinen ajallinen rakenne ottamalla data ylhäältä/alhaalta testausta/harjoitusta varten. Jos tietosi sisältävät useamman kuin yhden tietueen aikaleimaa kohden, sinun on koottava ne aikaleiman mukaan. Esimerkiksi kun sinulla on useita tilauksia päivässä ja olet kiinnostunut päivittäisestä myynnistä, sinun on laskettava kunkin päivän myynti. Lisäksi, jos olet kiinnostunut aikasarjoista eri tarkkuudella kuin mitä sinulla tällä hetkellä on tiedoissa (esimerkiksi kuukausittainen myynti päivittäisen myynnin sijaan), voit edelleen koota tiedot haluamallasi tarkkuudella.
Puuttuvat arvot
Jos joitain aikaleimoja puuttuu, ne on lisättävä aikasarjaan, jotta ne jakautuvat tasavälein. Joskus puuttuvat tietueet ovat osa aikasarjan dynamiikkaa (esimerkiksi pörssi sulkeutuu perjantaina ja avautuu maanantaina).
Kun lisäät puuttuvat aikaleimat tietoihin, vastaavat arvot tietysti puuttuvat. Voit imputoida nämä puuttuvat arvot esimerkiksi lineaarisella interpoloinnilla tai liukuvalla keskiarvolla. Muista kuitenkin, että paras tekniikka puuttuvien arvojen laskemiseen riippuu datan säännöllisestä dynamiikasta. Jos esimerkiksi tarkastelet viikoittaista kausivaihtelua päivittäisissä tiedoissa, ja yhden lauantain arvo puuttuu, viime lauantain arvo on luultavasti paras vaihtoehto. Jos puuttuvat arvot eivät puutu satunnaisesti, kuten puuttuvat osakemarkkinoiden päätöskurssit viikonloppuisin, voit korvata ne kiinteällä arvolla, joka tässä tapauksessa olisi 0. Toisaalta, jos puuttuvat arvot ovat satunnaisia ja niitä esiintyy riittävän kauas menneisyydestä, voit käyttää puuttuvan arvon jälkeen olevia tietoja ja jättää vanhemmat tiedot huomioimatta.
Epäsäännölliset kuviot
Yksi hyvä tapa käsitellä nopeita vaihteluita ja poikkeavuuksia on tietojen tasoitus. Voidaan käyttää useita tekniikoita, kuten liukuva keskiarvo ja eksponentiaalinen tasoitus. Myös laatikkokaavion viiksien ulkopuolella olevien arvojen leikkaaminen tasoittaa dataa. Muista, että tietojen voimakas kausivaihtelu saattaa johtaa laajalle levinneeseen laatikkokaavioon, ja silloin on parempi käyttää ehdollista laatikkokaaviota poikkeamien havaitsemiseen.
Joskus aikasarja näyttää kuitenkin vain hyvin epäsäännöllisen ilmiön! Tällöin aikasarjaa voi yrittää tehdä säännöllisemmäksi poimimalla siitä osajoukko, esimerkiksi ottamalla huomioon vain yhden tuotteen myynti koko supermarketin myynnin sijaan tai klusteroimalla tiedot.
Aikasarjojen tutkiminen ja muuttaminen
Tässä vaiheessa meillä on aikasarjatietomme siinä muodossa, että niitä voidaan tutkia visuaalisesti ja numeerisesti. Erilaiset kaaviot ja tilastot paljastavat aikasarjojen pitkän ja lyhyen aikavälin kuvioita ja ajallisia suhteita, joiden avulla voimme paremmin ymmärtää sen dynamiikkaa ja ennustaa sen tulevaa kehitystä.
Aikasarjojen visuaalinen tutkimus
Aikasarjojen tutkimisen peruskuvaaja on viivadiagrammi (Kuva 3), joka näyttää aikasarjan mahdollisen suunnan, säännölliset ja epäsäännölliset vaihtelut, poikkeamat, aukot tai käännekohdat. Jos havaitset aikasarjassasi säännöllistä kaavaa, kuten juomien myynnin vuotuista kausivaihtelua, voit sitten tarkastaa jokaisen kausisyklin (vuoden) erikseen kausikaaviossa (Kuva 3). Kausikuvauksesta näet helposti esimerkiksi, oliko heinäkuu tänä vuonna vahvempi myyntikuukausi kuin viime vuonna, vai onko kuukausimyynti kasvamassa vuosi vuodelta.
Jos olet kiinnostunut siitä, mitä sesonkien sisällä tapahtuu, kuten mikä on mediaanimyynti kesäkuukausina ja kuinka paljon ja mihin suuntaan myynti vaihtelee kuukausittain, voit tarkastella tällaista dynamiikkaa ehdollisessa laatikkokaaviossa (Kuva 3). Vielä toinen hyödyllinen käyrä aikasarjojen tutkimiseen on viivekaavio (kuva 3). Viivekaavio näyttää nykyisten arvojen ja aiempien arvojen välisen suhteen, esimerkiksi myynnit tänään ja myynti viikkoa ennen.
Aikasarjojen klassinen hajottaminen
Klassinen dekompositio eli aikasarjan jakaminen trendiin, kausivaihteluihin ja residuaaliin on hyvä vertailukohta ennustamiselle. Aikasarjan jäljellä olevan osan, jäännösarvon, oletetaan olevan liikkumaton, ja se voidaan ennustaa esimerkiksi ARIMA-mallilla. Muista kuitenkin, että jos jäännössarja ei ole stationäärinen, saatetaan tarvita joitain lisämuunnoksia, kuten ensimmäisen kertaluvun erotus tai alkuperäisen aikasarjan log-muunnos.
Ensinnäkin, jos aikasarja osoittaa suuntaa, trendiä, aikasarjasta voidaan detrendoida esimerkiksi sovittamalla datan läpi regressiomalli tai laskemalla liukuva keskiarvo.
Toiseksi, jos aikasarjassa on säännöllinen vaihtelu – kausiluonteisuus – aikasarjaa voidaan mukauttaa sen mukaan. Löydät viiveen, jossa suurin kausiluonteisuus esiintyy, aikasarjan autokorrelaatiokaaviosta. Jos esimerkiksi havaitset huipun viiveellä 7 ja sinulla on päivittäisiä tietoja, tiedoilla on viikoittainen kausivaihtelu. Kausivaihtelua voidaan säätää erottamalla tietoja viiveellä, jossa suurin piikki esiintyy. Jos haluat säätää toista kausivaihtelua tiedoissa, voit tehdä sen toistamalla toimenpiteen mukautetulle (erotetulle) aikasarjalle.
Lopuksi, kun olet saavuttanut stationaarisen aikasarjan, joka on valmis mallinnettavaksi esimerkiksi ARIMA-mallilla, voit tehdä viimeisen tarkistuksen esim. Ljung-box testi paikallaan pysymistä varten.
Aikasarjojen mallintaminen ja arviointi
Nyt siirrytään mallintamaan aikasarjan jäännösosa, joka sisältää sen epäsäännöllisen dynamiikan. Voimme tehdä tämän ARIMA-malleilla, koneoppiminen malleja, hermoverkkoja ja monia muunnelmia niistä. Mallimme usein näillä malleilla aikasarjan jäännösosan, koska se on paikallaan. Aikasarjojen hajottaminen ei kuitenkaan aina ole välttämätöntä, koska jotkut mallit, kuten esimerkiksi kausiluonteinen ARIMA-malli, toimivat myös ei-stationaaristen aikasarjojen mallintamiseen.
Seuraavaksi keräämme näiden eri mallinnustekniikoiden ominaisuuksia, niiden yhtäläisyyksiä ja eroja, jotta voit valita käyttötarkoitukseesi sopivimman. Muista myös, että on hyödyllistä kouluttaa useita malleja ja jopa rakentaa niistä kokonaisuus!
ARIMA mallit
ARIMA (Autoregressive Integrated Moving Average) -malli on lineaarinen regressiomalli nykyisten ja menneiden arvojen välillä (AR-osa) sekä nykyisten ja menneiden ennustevirheiden välillä (MA-osa). Jos mallissa on nollasta poikkeava I-osa, data erotetaan, jotta se pysyy paikallaan. ARIMA-perusmallit olettavat, että aikasarja on stationäärinen, eikä stationaarisilla aikasarjoilla ole ennustettavia kuvioita pitkällä aikavälillä. Pitkän aikavälin ennusteiden tarkkuuden heikkeneminen näkyy ennusteiden kasvavissa luottamusväleissä. Enemmän dataa ei aina ole parempi ARIMA-mallien koulutuksessa: Suuret tietojoukot voivat tehdä ARIMA-mallin malliparametrien arvioinnista aikaa vievää, sekä liioitella todellisen prosessin ja malliprosessin välistä eroa.
Koneoppimismallit
Koneoppimismallit käyttävät viivästyneitä arvoja ennustajasarakkeina, eivätkä ne huomioi kohdesarakkeen ja ennustajasarakkeiden välistä ajallista rakennetta. Koneoppimismallit voivat myös tunnistaa datan pitkän aikavälin malleja ja käännekohtia, mikäli koulutusdatassa on riittävästi tietoa näiden mallien muodostamiseksi. Yleisesti ottaen mitä enemmän epäsäännöllisyyksiä tiedoissa näkyy, sitä enemmän tietoja tarvitaan mallin harjoittamiseen. Kun käytät koneoppimismallia, on suositeltavaa mallintaa jäännös. Muuten saatat rakentaa mallin, joka on monimutkaisempi kuin klassinen hajottelumalli, mutta joka ei itse asiassa opi mitään uutta sen lisäksi!
Vinkkejä mallin valintaan
Ensinnäkin jotkin ilmiöt ovat vaikeita ennustaa, ja tällöin on usein järkevää valita yksinkertaisempi malli eikä panostaa resursseja sellaisen mallintamiseen, jota ei voida ennustaa tarkasti.
Toiseksi mallin suorituskyky ei ole ainoa kriteeri. Jos tärkeät päätökset perustuvat mallin tuloksiin, sen tulkittavuus voi olla tärkeämpää kuin hieman parempi suoritus. Tästä huolimatta hermoverkko saattaa hävitä yksinkertaista klassista hajoamismallia vastaan, vaikka se ennustaa hieman paremmin.
Kolmanneksi selittävien muuttujien lisääminen malliin saattaa parantaa ennusteen tarkkuutta. Tällaisessa mallissa on kuitenkin ennustettava myös eksplikatiiviset muuttujat, eikä mallin lisääntyvä monimutkaisuus aina ole paremman tarkkuuden arvoista. Joskus karkeat arviot riittävät tukemaan päätöksiä: Jos lähetyssummat lasketaan kymmenissä ja sadoissa, niin ei myöskään ennustetun kysynnän tarvitse olla sen tarkempaa.
Mallin arviointi
Mallin koulutuksen jälkeen seuraava vaihe on sen arviointi. Otoksen sisäisessä ennustamisessa testijoukko on itse harjoitusjoukko, joten malliprosessi sovitetaan mallin opetuksessa käytettyihin tietoihin. Otoksen ulkopuolista ennustamista varten testisarja seuraa koulutussarjaa ajassa.
Yksi suositeltu virhemittari aikasarjamallin arvioimiseksi on keskimääräinen absoluuttinen prosenttivirhe (KARTTA), koska se antaa virheen yleisessä mittakaavassa prosentteina todellisesta arvosta. Jos todellinen arvo on kuitenkin nolla, tätä mittaria ei määritellä, ja sitten myös muita virhemittareita, kuten neliövirheen keskiarvo (RMSE), sopii. Usein kuitenkin suositellaan, ettei sitä saa käyttää R-neliö. R-neliömetriikka ei sovi aikasarjaanalyysin kontekstiin, koska painopiste on kohdesarakkeen tulevan systemaattisen vaihtelun ennustamisessa sen sijaan, että mallinnettaisiin kaikkea menneisyyttä.
Aikasarjojen ennustaminen ja rekonstruointi
Olemme melkein perillä! Viimeinen vaihe on tulevien arvojen ennustaminen ja signaalin rekonstruoiminen.
Dynaaminen ennustaminen
Jos sinulla on malli, joka ei pysty tarjoamaan tarkkoja ennusteita pitkällä aikavälillä, dynaaminen käyttöönotto parantaa usein otoksen ulkopuolisten ennusteiden tarkkuutta. Dynaamisessa käyttöönotossa vain yksi tulevaisuuden piste ennustetaan kerrallaan, ja menneet tiedot päivitetään tällä ennustearvolla seuraavan ennusteen luomiseksi (kuva 5).
Trendin ja kausivaihteluiden palauttaminen
Lopuksi, jos hajotamme aikasarjat ennen ennustamista, meidän on palautettava trendi ja/tai kausivaihtelut ennusteisiin. Jos säädämme kausivaihtelua erottamalla dataa, aloitamme signaalin rekonstruoinnin lisäämällä arvoja viiveellä, jossa kausiluonteisuus esiintyy. Jos meillä oli esimerkiksi päivittäisiä tietoja y, joissa käytimme kausivaihtelua viiveellä 7 (viikoittainen kausivaihtelu), tämän kausivaihtelun palauttaminen vaatisi seuraavan laskelman ennustearvoille yt+1, yt+2, ..., yt+h :
jossa ton harjoitustietojen viimeinen aikapiste, ja h on ennustehorisontti.
Toisen kausiluonteisuuden palauttamiseksi toistamme yllä kuvatun vaiheen palautetulle aikasarjalle. Jos halutaan palauttaa trendikomponentti aikasarjaan, sovellettaisiin trendiä edustavaa regressiomallia palautettuihin aikasarjoihin.
Täytä aikasarjasovellus Analytics-alustalla
Katsotaan lopuksi, kuinka nämä vaiheet voidaan muuttaa käytännöksi Analytics-alustallamme. Työnkulku Muutos- ja mallinnusaikasarjojen käyttäminen (saatavilla Hubissa) kuvassa 6 näyttää vaiheet pääsystä puhdistukseen, visuaaliseen tutkimiseen, hajottamiseen ja aikasarjojen mallintamiseen. Joissakin näistä tehtävistä käytämme aikasarjan komponentit jotka kapseloivat työnkulkuja aikasarjoille ominaisiksi toiminnallisuuksiksi: yhdistävät tiedot valitulla tarkkuudella, suorittavat klassisen hajotuksen ja paljon muuta.
Tässä esimerkissä käytämme Näyte – Superstore toimittamat tiedot Kuvaelma. Analyysissamme keskitymme kaikkien tuotteiden tilauksiin vuosilta 2014-2017 – yhteensä 9994 tietuetta. Aloitamme esikäsittelyn muokkaamalla tiedot aikasarjatiedoiksi laskemalla päivän kokonaismyynnin. Nyt meillä on vain yksi arvo päivässä, mutta muutama päivä puuttuu, koska tilauksia ei lähetetty näinä päivinä. Siksi esittelemme nämä päivät aikasarjoihin ja korvaamme puuttuvat myyntiarvot kiinteällä arvolla 0. Sen jälkeen aggregoimme tiedot kuukausitasolla ja tarkastelemme kunkin kuukauden keskimääräistä myyntiä jatkoanalyysissä.
Visuaalista tutkimista varten aggregoimme tiedot myös vuositasolla ja saamme selville, että vuoden 2015 alussa on käännekohta, kuten kuvan 7 oikealla oleva viivakaavio osoittaa. Vasemmalla oleva viivakaavio näyttää vuosittaisen kausivaihtelun tiedoissa: kunkin vuoden lopussa on kaksi säännöllistä huippua ja kunkin vuoden alussa alempi huippu. Havaitsemme tiedoista myös vuotuisen kausivaihtelun, mikä näkyy suurena piikkinä viiveellä 12 vasemmalla olevassa ACF-kaaviossa. Jaamme aikasarjan trendeihin, kausivaihteluihin ja residuaaliin, ja nämä komponentit näkyvät kuvan 7 keskellä olevassa viivakaaviossa. Oikeanpuoleisessa ACF-kaaviossa ei ole merkittävää autokorrelaatiota jäännössarjoissa.
Seuraavaksi mallinnetaan kuukauden keskimyynnin jäännössarja ARIMA-mallilla. Viiveen 12 erotuksen jälkeen aikasarjan pituus on 36 havaintoa. Etsimme parasta mallia Auto ARIMA Learner -komponentilla, maksimitilaus 4 AR- ja MA-osille ja maksimitilaus 1 I-osalle. Tehokkain malli perustuu Akaike-tietokriteeri on ARIMA (0, 1, 4), ja tuloksena saatu MAPE otoksen sisäisten ennusteiden perusteella on 1.153.
Lopuksi arvioimme mallin otoksen ulkopuolisen ennusteen tarkkuuden. Työnkulku Aikasarjojen ennustaminen ja rekonstruointi (saatavilla Hubissa) kuvassa 8 näyttää kuinka ennustaa päivittäistä myyntiä vuonna 2017 vuosien 2014–2016 kuukausitietojen perusteella (24 havaintoa) ja voittaneen ARIMA-mallin (0,1,4) perusteella dynaamista käyttöönottoa käyttämällä. lähestyä. Sen jälkeen rekonstruoimme signaalin, tässä tapauksessa palautamme trendin ja vuotuisen kausivaihtelun ennustearvoihin (12 kuukauden keskimääräiset myyntiarvot). Vertailemme todellisia ja ennustettuja arvoja ja saamme MAPE-arvoksi 0.336.
Yhteenveto
Aikasarjoissa, olipa kyseessä sitten anturidata, joka näyttää pienen kohteen käyttäytymistä nanosekunnin perään, makrotaloudelliset tiedot 20-luvulta tai jotain siltä väliltä, sisältävät erityisiä analyyttisiä tekniikoita, jotka koskevat pääsyä, manipulointia ja mallinnusta.
Tässä artikkelissa olemme tutustuneet aikasarjojen analytiikkatekniikoiden perusteisiin, jotka auttavat sinua pääsemään alkuun, kun työskentelet aikasarjatietojen kanssa.
Viitteet
[1] Chambers, John C., Satinder K. Mullick ja Donald D. Smith. Kuinka valita oikea ennustetekniikka. Harvardin yliopisto, Graduate School of Business Administration, 1971.
[2] Hyndman, Rob J. ja George Athanasopoulos. Ennustaminen: periaatteet ja käytäntö. OTexts, 2018.
Lähde: https://www.dataversity.net/building-a-time-series-analysis-application/
- absoluuttinen
- lisä-
- analyysi
- Analytics
- Hakemus
- sovellukset
- AR
- artikkeli
- auto
- Perusasiat
- benchmark
- PARAS
- Juomat
- elin
- Laatikko
- rakentaa
- Rakentaminen
- liiketoiminta
- Siivous
- Sarake
- Yhteinen
- komponentti
- luottamus
- maahan
- Nykyinen
- tiedot
- päivä
- Kysyntä
- Kehitys
- Sairaus
- arviot
- tapahtuma
- Käyttää
- tutkimus
- Kuva
- Vihdoin
- Etunimi
- sovittaa
- Keskittää
- Perjantai
- tulevaisuutta
- BKT
- general
- Yrjö
- hyvä
- valmistua
- Käsittely
- Harvard
- Harvardin yliopisto
- Miten
- Miten
- HTTPS
- Sadat
- tunnistaa
- kuva
- Infektiot
- tiedot
- IT
- heinäkuu
- suuri
- johtaa
- OPPIA
- oppilas
- oppiminen
- Taso
- linja
- Pitkät
- koneoppiminen
- merkittävä
- markkinat
- Metrics
- malli
- mallintaminen
- maanantai
- kuukausitiedot
- kk
- liikkua
- verkko
- verkot
- hermo-
- neuroverkkomallien
- hermoverkkoihin
- avautuu
- tilata
- määräys
- Muut
- Kuvio
- suorituskyky
- suunnittelu
- foorumi
- ennustus
- Tuotteet
- Tuotteemme
- edistäminen
- asiakirjat
- regressio
- Ihmissuhteet
- Esittelymateriaalit
- tulokset
- myynti
- Asteikko
- Koulu
- valittu
- tunne
- Sarjat
- setti
- Lähetys
- Yksinkertainen
- pieni
- fiksu
- Kuva
- So
- Alkaa
- alkoi
- tilasto
- Varastossa
- pörssi
- toimitettu
- kesä
- tuki
- Kuvaelma
- Kohde
- testi
- Perusteet
- Tulevaisuus
- aika
- ylin
- koulutus
- Muutos
- Yleismaailmallinen
- yliopisto
- arvo
- Katso
- viikko
- viikoittain
- Mikä on
- wikipedia
- sisällä
- Referenssit
- työnkulku
- treenit
- arvoinen
- vuosi
- vuotta
- nolla-