Kuinka mitata kahden tuotteen myynnin välistä korrelaatiota ja käyttää toista tuotetta toisen kysynnän ennustamisessa hyväksi?

Monesti olen törmännyt kysymykseen ”Miten mitataan kahden eri tuotteen myynnin välistä korrelaatiota?” tai vastaavasti ”Miten tuotteen A myynnin historiaa voidaan käyttää tuotteen B kysynnän ennustamisessa lähitulevaisuuteen?”. Konseptina näissä kysymyksissä esiintyivät aikasarjat.

Alkuun voisi kuvitella, että näihin kysymyksiin löytyisi selkeät ja yksikäsitteiset vastaukset, näin ei asianlaita kuitenkaan ole, ainakaan jokaiselle datan ja mallintamisen parissa työskentelevälle. Melkeinpä uskaltaisi väittää, että jokainen aikasarjojen kanssa puuhastellut data-analyytikko on ainakin kerran huomaamattaan laskenut kahden aikasarjan välisen korrelaation teoreettisessa mielessä virheellisesti. Se, onko korrelaation laskennan oletuksien huomiotta jättäminen aiheuttanut liiketoiminnan mielessä katastrofaalisia seuraamuksia on toinen seikka.

Käymme tässä kirjoituksessa läpi vastauksia edellä esitettyihin kysymyksiin esimerkkiaineiston avulla. Esimerkkiaineistoksi on generoitu seuraavat kuvitteelliset myynnin aikasarjat:

1) Lada Samaran kappalemääräinen myynti kuukausitasolla; 2010-01 -> 2013-12,

2) Lada Samaran sytytyspuolien kappalemääräinen myynti kuukausitasolla; 2010-01 -> 2013-12.

Se, miksi tarkastelemme juuri Lada Samaran ja sen varaosana sytytyspuolia ei ole titenkään kovinkaan oleellista, mutta se, että tarkastelemme tuoteparia {auto, varaosa} on oleellista jatkon tarkasteluissa. Oletetaan vielä lisäksi, että tarkasteltavan Lada Samaran kanta on pienehkö ennen tarkasteltavaa aikaväliä ja, että sytytyspuolien rikkoutuminen on Lada Samaroiden tyyppivika.

Seuraavassa tarkasteltavien aikasarjojen kuvaajat:

ladasamara

ladasamarapuola

 

Kuinka mitata kahden aikasarjan välistä korrelaatiota? Mitä on syytä ottaa huomioon? Onko korrelaation laskentatapa yksikäsitteinen?

 

Ennen korrelaation (vai korrelaatioiden?) laskemista on syytä tarkastella aikasarjojen kuvaajia samasta kuvasta päällekkäin ajallisesti sijoitettuna, sillä usein jo silmämääräinen tarkastelu antaa tietoa tuotteiden myyntien välisestä suhteesta. Tässä esimerkkitapauksessa voimme ajatella korrelaation arvon heijastavan myös ”kausaalisuuden suuruutta”, koska tarkasteltavaksi tuotepariksi oli valittu {auto, varaosa}.

ladasamara_ladapuola

 

Ensipuraisulla näyttää siltä, että myyntien välillä voisi vallita vahva korrelaatio, mutta kuinka korrelaatio tässä esimerkkitapauksessa laskettaisiin?

1) Tavallisesti numeerisien satunnaismuuttujien välisenä (lineaarisen riippuvuuden) korrelaationa käytetään Pearsonin korrelaatiokerrointa. Aikasarjojen tapauksessa korrelaatio lasketaan tarkastelemalla aikasarjojen vastakkaisia havaintopareja, esimerkin tapauksessa 3 ensimmäistä havaintoparia ovat (1028030, 2991930), (597848, 1021953), (1220731, 1222494). Havaintoparien ensimmäiset lukuarvot vastaavat Lada Samara:n myyntiä ja vastaavasti jälkimmäiset sytytyspuolien myyntiä tarkasteltavana ajankohtana. Pearsonin korrelaatiokerroin on tässä tapauksessa 0.46 (yllättävän pieni arvo?), kerroin näyttää hyvältä ja sen merkkikin ongelman kannalta lienee oikea. Olemmeko tyytyväisiä? Emme!

Mikä edellisen kohdan laskennassa jäi huomioitta?

2) Itse ilmiötä pohtiessa tulee mieleen, että eikö autojen myynnin ja varaosien ostojen välillä tulisi ilmetä jokin ”keskimääräinen viive”, ainakin tapauksissa, jossa varaosan hankkiminen johtuu tyyppiviasta? Pitäisikö siis laskea 1)-kohdan tapaan korrelaatiokertoimien arvot eri viiveillä (siirretään sytytyspuolien myynnin aikasarjaa taaksepäin kuukausi kerrallaan)? Tässä kertoimet 9:llä eri viiveen arvolla:

korrelaatio_kertoimet

 

Näyttäisi siltä, että suurin aikasarjojen välinen korrelaatiokerroin esiintyy, kun tarkastellaan sytytystulppia 6kk viiveellä. Pillit pussiin, case solved, alakerran baariin? Ei!

Jäiköhän jotain vielä huomioimatta?

3) Itseasiassa edellisessä kohdassa laskettiin ns. ristikorrelaatioita, eli kahden aikasarjan välisiä korrelaatioita eri viiveen arvoilla. Jos olemme jossain määrin täsmällisiä, niin ristikorrelaatio on (ensisijaisesti) määritelty (vahvasti) stationaarisille aikasarjoille.

Onko esimerkissä tarkasteltavat aikasarjat stationaarisia, ts. tulee tarkastaa muuttuuko niiden jakaumat eri ajanhetkien välillä, jos muuttuvat, niin kyseiset aikasarjat eivät ole stationaarisia. Molemmissa aikasarjoissa on selkeästi havaittavissa nouseva trendi, joten aikasarjat eivät selvästikkään ole stationaarisia. Tyypillisin ”todellista” korrelaatiota vääristävä tilanne on juuri se, että molemmat tarkasteltavista aikasarjoista sisältävät likipitäen saman suuntaisen trendin. Tälläisissa tapauksissa laskennallinen korrelaation arvo tulee olemaan yli arvioitu, vaikkei aikasarjojen välillä todellisuudessa tulisikaan esiintyä merkittävää korrelaatiota (kausaalisuutta).

Ratkaisuna edellä mainittuun ongelmaan voidaan yrittää dekomponoida aikasarjat (huom! vaatii kuukausittaisilta aikasarjoilta yleensä väh. 3 vuoden datan). Dekomponoinnissa aikasarjat paloitellaan kolmeen erilliseen komponenttiin: trendi-, kausivaihtelu- ja jäännöskomponentti. Seuraavassa kuvat aikasarjojen dekomponoinneista:

decomp_ladasamara

decomp_sytytyspuola

 

Erityisen kiinnostavaa esimerkkitapauksessa on tutkia kausikomponenttien välistä yhteyttä, sillä sytytyspuolien myynnin kausivaihtelu ei näytä olevan ainakaan vuodenaikaan loogisesti sidottuna => sytytyspuolien myynnin kausivaihtelu ”täytyy” johtua kausittaisesta autojen myynnistä. Auton myynnin ja sytytyspuolien (6kk viive) myynnin kausikomponenttien välinen ristikorrelaatio on 0.92. Voidaanko/pitäisikö kausikomponenttien ajatella olevan stationaarisia, satunnaisia, deterministisiä?

Ei paneuduta edellä esitettyihin pohdintoihin sen tarkemmin, pääasia on kuitenkin se, että pääsimme jossain määrin eroon trendin vaikutuksesta. Mainittakoon kuitenkin vielä kerran, että oleellista tässä laskennassa oli se, että kummankaan tuotteen kausivaihtelu ei seurannut mitään vuodenaikaa säännöllisesti. Jos näin kuitenkin päitisi tarkasteltavien kausikomponenttien suhteen, niin ristikorrelaation arvo ei olisi antanut oikeaa kuvaa tuotteiden välisestä suhteesta. Jos esimerkiksi molemmat tuotteet olisivat olleet kesäsesonki-tuotteita, niin ristikorrelaatio olisi varmasti ollut suuri vaikkei tuotteilla olisi mitään tekemistä keskenään. Korrelaatio laskettuna, wippii! Eiku…?

4) Yleisessä tapauksessa teoreettisessa mielessä lähinnä oikeaa laskentatapaa olisi laskea jäännössarjojen välinen ristikorrelaation arvo, olettaen, että aikasarjojen dekomponointi tuottaa jäännössarjat, jotka ovat likipitäen stationaarisia. Jäännöstermien välinen suurin ristikorrelaation arvo löytyy jälleen viiveellä 6kk ja on 0.39, mitäs hittoa? No jippohan piilee siinä, että tarkasteltavien tuotteiden kausivaihtelut ovat sen verran vahvat ja sidoksissa toisiinsa, että jos poistamme kausikomponentit alkuperäisistä sarjoista häviämme rutkasti informaatiota tuotteiden välisestä suhteesta, sillä kyseessä ei ollut tavanomainen vuodenajasta johtuva sarjojen kausivaihtelu.

5) Lasketaan vielä kerran ristikorrelaatioiden arvot de-trendatuille (kausi+jäännös) Lada Samaran ja sytytyspuolien aikasarjoille, päädymme ristikorrelaation arvoon 0.75 (viiveellä 6kk).

Kuten edellä esitetyt kohdat tuovat ilmi, ei korrelaation laskeminen aikasarjojen tapauksessa välttämättä ole aivan yksiselitteistä ja helppoa. Tässä esimerkin tapauksessa aikasarjojen välinen ”todellinen” korrelaatio lienee 0.7 ja 0.92 välillä vai onko?

Olipa oikea korrelaation arvo mitä tahansa edellä mainittujen lukujen väliltä, voidaan varmasti todeta, että tuotteiden väliltä löytyy ilmeinen kausaalisuussuhde: autojen myynnin kasvu kasvattaa sytytyspuolien myyntiä ja tämähän on täysin loogista. Lisäksi voitanee olettaa, että viive auton myynnin ja sytytyspuolan rikkoutumisen välillä on keskimäärin 6kk.

 

Kuinka auton myynnin avulla voidaan ennustaa sytytyspuolien myyntiä lähitulevaisuuteen?

 

Edellisessä kohdassa saimme selville, että sytytyspuolien myynti (kysyntä) reagoi 6kk viiveellä autojen myyntiin. Tämän seurauksena voimme ennustaa historiatoteumien perusteella sytytyspuolien kysynnän 6kk päähän nykyhetkestä (melko tarkasti?) käyttämällä autojen myynnin toteumatietoa.

Seuraavassa kuvat ennusteista:

(Ylin) Ennusteet käyttämällä selittävänä muuttujana autojen myynnin aikasarjaa sellaisenaan,

(Keskellä) Ennusteet käyttämällä de-trendattua autojen myynnin aikasarjaa,

(Alin) Ennusteet käyttämällä selittävänä muuttujana auton myynnin kausivaihtelukomponenttia.

whole_timeseries

 

 

forecast_not_trend

 

 

decomp_only

Myöskään ennustamisessa ei ole yksiselitteistä käyttääkö selittävää aikasarjaa sellaisenaan vai esimerkiksi jotain sen dekomponoinnin tuottamaa komponenttiaikasarjaa. Ennusteet eroavat yllättävän paljon esimerkin tapauksessa. Ristiinvalidoinnin avulla voi tietysti tapauskohtaisesti katsoa mikä näistä vaihtoehdoista toimii parhaiten tarkastelavan ilmiön osalta, ongelmana ristiinvalidoinnissa on vain yleensä saatavilla oleva myyntihistoria.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Yhteydenotto

Mikäli olet kiinnostunut yrityskohtaisista palveluista tai sinulla kysyttävää palvelujemme sisällöstä, niin ota yhteyttä oheisella lomakkeella tai soita Mikalle numeroon 040 845 8432.

Please leave this field empty.