szakmai vélemények, ötletek és tanácsok, valamint hírek a vállalati pénzügyek világából szakembereknek, cégtulajdonosoknak és minden érdeklődőnek

vállalati pénzügyek - néhány percben, kávé mellé

vállalati pénzügyek - néhány percben, kávé mellé

bevétel tervezés - Exceltől a gépi tanulásig

hatékonyabb előrejelzés, gyorsabb alkalmazkodás fejlett analitikus módszerekkel

2019. december 04. - György Gábor

A mai üzleti környezetben az értékesítésre ható tényezők folyamatosan változnak, a fogyasztói szokások gyorsabban átalakulhatnak, mint korábban. Így sokszor a hosszabb távú bevétel előrejelzési modellek hamar érvényüket veszíthetik vagy legalábbis gyakrabban felülvizsgálatra szorulnak.

Szerencsére egyre inkább rendelkezésünkre állnak olyan adatforrások és analitikus módszerek, illetve algoritmusok, amelyekkel ezekhez a változásokhoz gyorsan és hatékonyan tudjuk adaptálni a bevétel előrejelzéseinket. Ráadásul ezek a fejlett analitikus vagy gépi tanuláson alapuló módszerek sokszor pontosabbak is, mint az ún. szakértői becslések (ugyanakkor ezeknek a módszereknek is megvannak a maguk korlátai).

Ebben a bejegyzésben rendszerbe foglalva áttekintjük a lehetséges módszereket, valamint azok lényegi elemeit, de nem célunk, hogy részletes leírást adjunk az egyes előrejelzési technikák megvalósításáról vagy matematikai hátteréről. Az áttekintést követően a 2. részben egy konkrét értékesítési adatsoron keresztül, Excel illetve Python eszközöket használva bemutatjuk majd az egyes előrejelzési módszerek eredményeit, valamint azokkal kapcsolatos kihívásokat.

Idősoros előrejelzések, "hagyományos" autoregresszív technikák

1)  Excel alapú trend és szezonalitás analízis

Múltbeli idősoros adatokon alapuló előrejelzést Excel segítségével is gyorsan, néhány lépésben összeállíthatunk. Az idősoros elemzések lényege, hogy a rendelkezésünkre álló adatokban mintázatokat (szabályszerűségeket) keresünk, például trendeket és szezonális hatásokat, valamint az egyedi hatásokat is megpróbáljuk elkülöníteni.

A módszer azon alapul, hogy

  • valamilyen mozgó átlagolási technikával „kisimítjuk” az adatsort,
  • amelyből már a tendenciára - tulajdonképpen az átlagos változásra - tehetünk becslést (előrejelzést)
  • valamint "simított" adatsor és tényleges értékek viszonya alapján a szezonális hatásokat és ún. "zajokat" kiszűrjük

 

2) ARIMA modellek

Az ARIMA modellekre inkább egy rendkívül kiterjedt modell családként érdemes gondolni: valójában egy olyan "előrejelzési keretrendszerről" van szó, amely különböző típusú modelleket foglal magába. Amikor ARIMA modellekről beszélünk, akkor abba az ARMA, ARIMA, ARIMAX, SARIMAX stb. altípusokat is beleértjük és ezen típusok is számtalan "konfigurációban" állíthatók elő.

Az ARIMA egyébként egy mozaik szó, amely az AutoRegressive Integrated Moving Average . Matematikailag 3 fő komponensből áll:

  1. AR - autoregresszív komponens, amely az idősor egy vagy több korábbi értékeire utal, pontosabban ezeknek valamilyen lineáris kombinációjára: pl. a T előrejelzési időszak értéke a T-1 és T-2 értékektől függ valamilyen módon
  2. I - ezzel a taggal a tendenciát, vagyis az idősor korábbi változását integráljuk valamilyen módon az előrejelzésbe
  3. MA - moving average komponens a nevével ellentétben nem a szokásos mozgó átlagolásra utal, hanem a múltbeli előrejelzési hibák hatását "görgetjük" tovább vele a következő ciklusokra.

 

A fentiek mellett az ARIMA kiterjesztett verzióiban a szezonalitást (SARIMA - seasonal ARIMA), valamint akár ún. exogén változókat is figyelembe vehetünk (SARIMAX - ARIMA w/ eXogenous variable). A SARIMA modellek általános matematikai alakja meglehetősen bonyolultak, ennek magyarázatába most nem megyünk bele:

 forrás: https://www.datasciencecentral.com/profiles/blogs/tutorial-forecasting-with-seasonal-arima

Bár érdemes megérteni, hogy miért úgy működnek, ahogy... de szerencsére a Python, R stb adatelemző programozás nyelvek segítségével a mélyebb matematikai modellezési ismeretek nélkül is lehet előrejelzést készíteni.

Többváltozós regressziós modellek

A fenti technikákat idősoros előrejelzések során szokták használni, amelyek alapvetően azon a feltételezésen alapulnak, hogy meglevő tendenciák / mintázatok a jövőben is igazak lesznek. Az ARIMA modellek az idősor korábbi értékein alapuló előrejelzésre alkalmasak. A modell AR (autoregressive) tagja olyan kapcsolatot ír le, ahol a magyarázó változó a vizsgált változónak a saját korábbi értéke: pl. értékesítés hogy függ az előző időszaki vagy épp N időszakkal korábbi eladásoktól. 

A SARIMAX modellek már többváltozós regressziós modellek, amely esetében az elemzést kiterjeszthetjük számos magyarázó változóra. Ha a vizsgált változó saját korábbi értékeit nem használjuk magyarázó változóként, akkor pedig hagyományos regressziós modellt kapunk.

Nézzünk egy egyszerű ilyen képzeletbeli példát - egy prémium teákat forgalmazó webshop forgalmát szeretnék előre jelezni. Ha tudjuk, hogy az eladásainkat jelentősen befolyásolja a hőmérséklet (évszak), az online hirdetésekre költött összeg valamint a szortiment nagysága, akkor ezen adatok alapján felállíthatunk előrejelző modellt.

Egy ilyen modell valahogy így nézne ki: 

ELADÁS = B0 + B1 x Hőmérséklet + B2 x MarketingKöltés + B3 x SzortimentDb

Regressziós modelleknek is számos fajtája létezik. A a fenti példa pl. egy lineáris kapcsolatot mutat, de a gyakorlatban pl. valószínűleg nem lineáris a kapcsolat a hőmérséklet és eladás között, hanem inkább logaritmikus (és a marketing költés emelésével sem növelhető a végtelenségig az eladás). Az értékesítési volumenek a gyakorlatban sokszor logaritmikus összefüggést mutatnak a magyarázó változók értékeivel!

AI, avagy a fejlett gépi tanulás adta lehetőségek

A neurális hálózatok (NH) fejlesztésének alapjait már az 50es években lerakták, de azok gyakorlati alkalmazása a különböző mesterséges intelligencia alapú megoldásokban az utóbbi 10-15 évben kezdett el igazán "rutinszerűvé" válni. A NH-ok nyújtotta lehetőségeket a vállalati pénzügyeken belül is több területen lehet alkalmazni: egy korábbi bejegyzésben már bemutattunk egy hitelkockázat modellezési példát és most arra térünk ki, hogy a bevétel előrejelzésben mely hálózatok használhatók.

A neurális hálózatok olyan matematikai struktúrák (gráf alapú modellek), amelyek az idegrendszer működésének elvét másolva tanulnak meg felismerni egy ún. tanuló adathalmaz alapján bizonyos összefüggéseket. Az idősoros bevételi adatok vizsgálata esetében ez konkrétan azt jelenti, hogy a múltbeli értékesítési adatokban rejlő mintázatok alapján a hálózat azt próbálja kikövetkeztetni, hogyan fognak a bevételeink alakulni? 

A neurális hálózatoknak, az ARIMA modellekhez hasonlóan, számos típusa létezik, amely többek között a hálózat struktúrája (pl. rétegek száma) és a jelátvitelért felelős neuronok, azokban alkalmazott ún. aktivációs függvények határoznak meg. A két hálózat típus amivel mi most foglalkozunk a "hagyományos" multilayer perceptron illetve az ún. LSTM hálózatok (ezen kívül vannak még egyéb hálózat típusok, mint pl. a "CNN - convolutional NN", amelyet a képfeldolgozásban használnak).

 

1)  Multilayer perceptron, vagyis MLP hálózatok

 A hagyományos hálózatok estében a neuronokat (ld. a képen a gráf csomópontjai) 1-1 ún aktivációs függvény alkotja. Ez az aktivációs függvény bináris vagy klasszifikációs problémák esetén ún. sigmoid vagy hiperbolikus tangens, amely a bemeneti értékekből a kimenetet [0 -- 1] vagy a [-1 -- 1] intervallumba tömöríti. Ez idősoros előrejelzések esetén nem szerencsés, ezért ilyenkor az ún ReLu (rectified linear unit) neuront alkalmazzuk, amely a kimenetet a [0 --> végtelen] tartományba képezi le. A bementet egy ARIMAX modellhez hasonlóan alkothatják az idősor korábbi értékei, pl. az x1, x2, x3 az 1-2-3 időszakkal korábbi értéket jelentheti. De akár "exogén" változókat is megadhatunk, pl. olyan keresletet befolyásoló tényezők mint a fogyasztói árindex vagy épp a marketing aktivitás.  

 

2) LSTM network - long short-term memory hálózatok

 Az LSTM hálózatok ún. visszacsatolásos hálózatok és kifejezetten szekvenciális adatokon alapuló feladatok megoldásában használható. Szekvenciális adatsor lehet egy videó (egymás után következő képkockák), szöveg vagy éppen egy pénzügyi adatsor.

Az LSTM hálózat neuronjai speciális felépítésűek: a gráf csomópontjait több ún. kapuból (kvázi aktivációs függvények) álló struktúra alkotja, pl. input gate, forget gate, outpu gate. Ezek az LSTM cellák - ld. a rejtett réteg zöld cellái a képen - és azon belüli kapuk vezérlik, hogy a szekvenciálisan feldolgozott adatokból milyen jelet küld tovább az adott cella, ebből mire "emlékszik" a következő cella.

Az LSTM hálózatoknak is többfajta struktúrája van, nem feltétlenül úgy néznek ki mint a képen, amely egy many-to-one LSTM hálózat. Ráadásul a zöld rétegekből több is egymásra halmozható, következő részben bemutatott példában mi pl. egy 3 LSTM réteget magába foglaló hálózattal készítünk majd előrejelzést.

 

---------------------------------------------------------------------- 

Hamarosan jelentkezünk a 2. résszel, amelyben egy 5 éves historikus értékesítési adatsor alapján, Python és Excel eszközökkel készített előrejelzések eredményeit mutatjuk be: hagyományos trend analízisen alapuló, illetve SARIMA és MLP valamint LSTM neurális hálók eredményeit fogjuk összehasonlítani.

 

 

 

A bejegyzés trackback címe:

https://vallalatipenzugyek.blog.hu/api/trackback/id/tr4815092958
süti beállítások módosítása