Idősor előrejelzés adatbányászati módszerekkel

Először nagyon szkeptikusan álltam az Excelből történő adatbányászathoz. Láttam bemutatókon, láttam hogy működik, de nem nagyon hittem benne. Egészen addig, amíg egy konkrét feladaton ki nem próbáltam.

A feladat a következő volt: Termékcsoportok következő havi értékesítési árbevételét kellett előre jelezni napi bontásban figyelembe véve a trendet és az adott termékcsoport múltbeli szezonális viselkedését. A termékcsoport múltbeli viselkedéséről tudtuk, hogy havi, negyedéves és éves szezonalitása is van, és ezeket szerettük volna mind figyelembe venni az előrejelzés során.

Továbbá tudtuk azt is, hogy lesznek olyan termékcsoportok, amelyek még fiatalok s így nem állnak rendelkezésre az előrejelzéshez szükséges historikus adatok és ezért ebben az esetben más, hasonlóan viselkedő termékcsoportok szezonalitásából kell majd kiindulnunk. És végül: Tudtuk azt is, hogy a tavalyi decemberi értékesítést torzították olyan egyszeri tételek, amelyeket nem szabad figyelembe venni az előrejelzéskor.

További feltétel volt, hogy az informatika segít az adatok leválogatásában és előkészítésében, de az ezt követő finomításokat, illetve a modell paraméterezését már a szakterületnek kell elvégezni.

Ez volt a feladat. Megvalósításához az SQL Serverrel kapott adatbányász motor idősor előrejelző (Time Series) algoritmusát és az Excel Data Mining bővítményét választottuk.

Következzenek a tapasztalatok:

Excel adatbányász bővítmény (Data Mining Add-in)

Nagyon jól használható, parametrizálható, és ami a legfontosabb: nagyon lerövidíti a tanulási ciklust.

A Table Analysis tool-lal, ami egy előre felparaméterezett algoritmust tartalmaz, villámgyorsan megismerhetjük hogy mire leszünk képesek a Time Series algoritmus használatával. A szintén a Data Mining Add-in bővítmény részét képező, paraméterezhető Time Series algoritmus használatával pedig finomhangolt modelleket készíthetünk. (Ez utóbbit használtuk mi is.)

Time series algoritmus

Néhány szó az algoritmusról. (Tényleg csak néhány szó, mert nagyon messzire vezetne, ha ebbe mélyebben belemennénk)

  • A Time Series algoritmus az ARTXP és az ARIMA modelleket használja. Az ARTXP-t a Microsoft Research fejlesztése és a rövidtávú várható értékek megbecslésekor jobb eredményt ad, mint az adatbányászok által szélesebb körben ismert ARIMA (AutoRegressive Integrated Moving Average) algoritmus. (Ami viszont a hosszabb (5 periódusnál több) időtávra ad jobb becslést.)
  • Az modellépítés során az ARIMA és ARTXP algoritmusokat használhatjuk tisztán is és használhatjuk kombinálva is. (0-1 közé súlyozva egyik illetve a másik algoritmust)
  • A modellépítés során hintekkel támogathatjuk az algoritmus működését. Ha pl. tudjuk, hogy az adott termékcsoport szezonalitása hónapon, negyedéven és éven belül is megfigyelhető, akkor a Periodicty_hint-tek megadásával javíthatunk az algoritmus hatékonyságán.
  • Ha a vizsgálat tárgyáról, például egy termékcsoportról nincs kellő mennyiségű historikus adatunk, vagy lyukacsos a historikus adatsor, akkor a kereszt előrejelzés (Cross prediction) segítségével meghatározhatjuk a forgalom várható értékeit egy másik termék múltbeli viselkedése alapján.

Az algoritmus bemutatása utá következzen az algoritmus által készett előrejelzés. Íme:

Idősor előrejelzés a Time Series algoritmus segítségével

Idősor előrejelzés a Time Series algoritmus segítségével (szagatottan a várható értékesítés)

Mire használhatjuk még a Time Series algoritmust?

A megvalósítás során gondolkodtam, hogy milyen korábban már felmerült problémát tudtunk volna megoldani az idősor előrejelző algoritmussal, ha akkor rendelkezésünkre állt volna. Az első dolog, ami eszembe jutott az értékesítés előrejelzésének analógiáján az a készlethiány előrejelzése volt.

Készletek előrejelzése

Ha a Time Series algoritmussal elő tudnunk állítani egy relatíve pontos rövidtávú értékesítési előrejelzést, akkor ezzel finomíthatjuk az értékesítési tervet, ami pontosabb várható készletfogyás-becslést eredményez és ez végső soron hatékonyabb készletgazdálkodás megvalósítását teszi lehetővé. (akár készáru, akár alapanyag oldalon.) A lassabb forgási sebességű termékeknél a Time Series algoritmus használatának talán még nem lenne akkora eredménye, de gyorsabb forgási sebességű, rövidebb gyártási vagy beszállítási ciklusú termékeknél már igen.

A másik ötlet a készletek analógiájára a cash-flow előrejelzés.

Cash Flow előrejelzés

Jó 10 éve küszködtünk azzal, hogy megpróbáljuk előre jelezni a vállalat várható cash-flowját, azaz azt, hogy az elkövetkező időszakban várhatóan mennyi pénzt kell kifizetni a vállalatnak és mennyi pénz fog befolyni a vállalathoz. A legfőbb problémát az jelentette, hogy míg a befolyó pénzek 90-95%-a rendelkezett pontos analitikával addig a kifolyó pénzeknek mindössze csak 40% -a. Kicsit egyszerűbben fogalmazva:

A bejövő pénzek 90-95%-áról rendelkeztünk olyan információval (számlával), ami alapján meg tudtuk becsülni a pénznek várható befolyásának idejét. A kimenő tételeknek ugyanakkor csak a 40%-a volt szállítói kötelezettség, a többi tételről (pl.: munkabér, törlesztő részletek, stb.) fogalmunk sem volt hogy mikor és milyen összegben válnak esedékessé.

Annak idején gondolkodtunk azon, hogy elhatároltatjuk (előre lekönyveltetjük) a könyvelőkkel a nagyobb tételeket, hogy ők tegyék mellé a hiányzó információkat (esedékesség), de ezt végül elvetettük. Helyette nyitottunk egy Excel táblát, ahol az analitikával nem rendelkező nagyobb kiadásokat terveztettük. Több-kevesebb sikerrel.

Lehet, hogy nagyobb sikert értünk volna el, ha az analitikával nem rendelkező tételeket gépi úton jelezzük előre. A kiadások jelentős része periodikusan ismétlődő, amit talán kihasználhattunk volna az előrejelzéshez. De ezt már csak akkor tudhatnánk meg, ha újra, ilyen szemüvegen keresztül is megvizsgálnánk a problémát. (lehet, hogy 10 év után visszamegyek a céghez, hogy megtaláltam a megoldást :-))

Más. Hagy osszak meg Önnel egy örömteli hírt: Idén újra megkaptam az MVP címet.

Kővári Attila - BI projekt

Önkiszolgáló BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jelentkezzen a 2024. március 27-28.-i Excel Power Pivot videókurzusra!  Részletek >>

 

Új hozzászólás