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é

prediktív adatelemzés lehetőségei a pénzügyek területén - 3. rész

üzleti tervezés és karbantartási költségek előrejelzése

2017. október 25. - György Gábor

A sorozat korábbi két bejegyzésében a prediktív analízis alapjait és eszköztárát, valamint a pénzügyi és üzleti világban előforduló alkalmazási lehetőségeit vizsgáltuk.

Most egy konkrét példán keresztül "közelebbről" is megnézünk egy felhasználási lehetőséget.

Az üzleti és pénzügy tervezés egy cég összes működési területét és aspektusát érintheti, amelyek bevételei és költségei különböző megközelítésben és módszertanok/eszközök használatával tervezhetők. Gyártó cégek esetében az alapanyag és bérköltségen felül jelentős járulékos üzemi költséget jelenthet a géppark karbantartása. Miközben az alapanyag szükséglet megtervezhető az értékesítési terv alapján (pl. adott termék receptúráját használva), addig a karbantartási költség az eszközök életkorának és használati intenzitásának a függvénye lehet.

Az alábbiakban a karbantartási költségek prediktív előrejelzésének és megtervezésének lehetőségét mutatjuk be analitikus eszközökkel, az R programnyelv (R Studio) illetve egy saját fejlesztésű genetikus algoritmus használatával:

  • Első lépésben egy lineáris regressziós modellt készítettünk a R Studio-val,
  • amit második lépésében genetikus algoritmussal próbálunk tovább optimalizálni

A „R” az egyik legnépszerűbb statisztikai és adatbányászati programozási nyelv, az R Studio pedig az egyik leggyakrabban használt integrált fejlesztési környezet (IDE). A genetikus algoritmusok olyan adaptív heurisztikus kereső algoritmusok, amelyek működése a természetes kiválasztódás és genetika elvein alapul és alapvetően optimalizálási problémák megoldására használható (ilyen lehet például egy előrejelzési modell optimalizálása, finomhangolása).

Kiinduló feltételezések, input adatok

A példában szereplő vállalat saját gépparkjára vonatkozóan hosszú távú historikus adatsorokkal rendelkezik, amely tartalmazza az egyes termelő gépek karbantartási adatait évente: adott évben a gép életkora, adott évben teljesített üzemidő, illetve könyvelési adatok alapján az adott évben a gépre fordított karbantartási költség illetve annak arán a gép beszerzési értékére vetítve. Ezek az adatok a cikksorozat első részében bemutatott leíró jellegű analitikák körébe tartoznak és inputként szolgálnak a controlling terület számára a költség előrejelzési modell elkészítéséhez.

A tapasztalatok, előzetes elemzések alapján feltételezhető, hogy a karbantartási költségek alapvetően a gép életkorától és igénybevétel intenzitásától – éves üzemóra – függ (nyilván a gép típusa, műszaki állapota is befolyásolhatja, ezzel most az egyszerűség kedvéért nem számoltunk).

A bal oldali táblában látható az input adatok struktúrája, ezeket használva a R Studio-ban létrehoztunk egy lineáris regressziós modellt, amely leírja a gép értékére vetített karbantartási költség hányad (függő változó) és az életkor/üzemóra (független változók) közötti összefüggést.

 

Prediktív modell lineáris regresszióval

Első lépésben az 1000 soros tanuló adathalmazt az R Studio "readxl" könyvtárának segítségével beolvassuk és utána dataframe adattípusra átalakítjuk. Az így kapott adathalmazt az R natív lm() függvényével feldolgozva állítjuk elő a lineáris regressziós modellt.

Ezzel az egyszerű modellel a tárgyévi karbantartási költségek előre jelezhetők, ha tudjuk az értékesítési terv alapján, hogy adott termelési mixhez a géppark egyes gépeit milyen mértékben – mekkora üzemidőben - kell igénybe venni (az életkor pedig nyilván adottság). A kapott modell paraméterei:

Költség = B0 + B1 x Életkor + B2 x Üzemóra

B0 = -0,07416

B1 = 0,01086

B2 = 0,00002768

Finomhangolás genetikus algoritmussal

A genetikus algoritmus egy speciális megközelítése bizonyos feladatok megoldásának: az alapját az evolúció képezi, mivel „evolúciós” technikákkal keressük az optimális megoldást vagy egy adott tulajdonságú elemet.

Egy kiinduló populáció (potenciális megoldási lehetőségek halmaza) képezi a keresési teret, amely populáció elemeit keresztezni és mutálni lehet, vagyis új egyedek hozhatók létre. Amennyiben ezek az új egyedek (vagyis potenciális megoldások) egy tanuló adathalmazon vizsgálva jobb megoldást adnak – ún. fittness vagy célfüggvény alapján közelebb vannak a keresett megoldáshoz – akkor kiszorítják a rosszabb megoldást jelentő egyedeket a populációból. A keresés mindaddig folyik, amíg valamilyen előre definiált leállási feltétel (pl. iterációk száma vagy valamilyen illeszkedés / fittness érték elérése) nem teljesül.

A konkrét példánkban az induló populáció méret 30 db lehetséges megoldásból állt, amely megoldásokat az R Studio-val készített fenti modell paraméterei alapján generáltuk (heurisztikus inicializáció). A mutáció esélyét 30%-osra állítottuk, maximális mértéke 5%, vagyis egy adott mutációs során az új egyed génjeinek értéke maximum 5%-al változik meg (gének alatt jelen példában a lineáris regressziós modell béta együtthatóit értjük).

A „genetikus” iterációk futtatása után a modellünk béta együtthatói az alábbiak szerint módosultak:

Költség = B0 + B1 x Életkor + B2 x Üzemóra

B0 = -0,07713

B1 = 0,01049

B2 = 0,00002768

A kapott megoldás minimális javulást jelentett mind a tanuló adathalmazon, mind a teszt adathalmazon visszamérve. Az új béta paraméterekkel számolt modell esetében az átlagos hiba 2,33% lett, míg a genetikus algoritmus futtatása előtt a hiba 2,38% volt a tanuló adathalmaz esetében.

 

A teljesség igénye nélkül a genetikus algoritmusok elvi felépítését és a konkrétan létrehozott algoritmus néhány vezérlő elemét mutatjuk meg:

 

 

 

A bejegyzés trackback címe:

https://vallalatipenzugyek.blog.hu/api/trackback/id/tr9413084802