Előrejelzés

Info

Az oldal a kiválasztott sorozatok jövőbeli értékeit becsüli (előrejelzés, forecast), és megméri a becslés pontosságát. Minden számítás a böngészőben fut: a sorozatok egyetlen kéréssel érkeznek, a modell vagy bármely paraméter átállítása után a számítás helyben ismétlődik, új kérés nélkül. A sorozatok egymástól függetlenül számolhatók, ezért a munka a gép processzormagjai közt oszlik el (egy mag a felületnek marad), és az eredmény ugyanaz, mint egy szálon. Négy modellcsalád szerepel, mind a klasszikus idősoros előrejelzés eszköze (Hyndman–Athanasopoulos: Forecasting: Principles and Practice), és két automatikus modellválasztás, a szakdolgozat azonos nevű modelljeinek megfelelői: az AutoETS az exponenciális simítás tagjai közül, az AutoARIMA az ARIMA-modellek közül választ. Az exponenciális simítás ebben az alkalmazásban van megvalósítva, mind a kilenc szerkezetének tesztje igazolja, hogy a statsmodels csomag Holt, illetve ExponentialSmoothing osztályával azonos eredményt ad; az ARIMA-modellek becslését a ctsa C-könyvtár WebAssembly-fordítása végzi (az arima npm-csomag; a WebAssembly a böngészőben futtatható gépi kód), a modellek keresése ebben az alkalmazásban készült. A táblázatokban a modellnevek a megfelelő dokumentációra mutatnak, a két automatikus választás a tankönyv modellválasztási fejezeteire.

  • Seasonal naive (szezonális naiv módszer): az előrejelzés minden hónapra az egy évvel korábbi azonos hónap tényleges értéke. Nem tanul semmit; azért szerepel, mert ez az a minimum, amit egy szezonális modellnek felül kell múlnia.
  • Drift method (eltolásos naiv módszer): az utolsó megfigyelt érték, plusz időszakonként a sorozat egész történetén mért átlagos változás — egyenes az első és az utolsó megfigyelésen át, a jövőbe meghosszabbítva.
  • Holt's linear trend (Holt-féle lineáris trendmódszer): exponenciális simítás két összetevővel, a sorozat aktuális szintjével és trendjével; mindkettőt minden új megfigyelés frissíti úgy, hogy a régebbi megfigyelések súlya exponenciálisan csökken. Szezonalitást nem ismer.
  • Holt–Winters additive / multiplicative (Holt–Winters-féle szezonális módszer): Holt módszere egy harmadik, tizenkét havi szezonális összetevővel. Az additív változatban a szezonális eltérés állandó nagyságú (például minden decemberben +10 000 doboz), a multiplikatívban a szinttel arányos (minden decemberben +10%). Ez az ETS-modellcsalád (error, trend, seasonal) két tagja.
  • AutoETS (automatikus modellválasztás az ETS-családból): az ETS-család kilenc, additív hibájú tagját illeszti — trend nélkül, additív trenddel vagy csillapított (damped) additív trenddel, mindegyiket szezon nélkül, additív vagy multiplikatív szezonnal —, és a korrigált Akaike-információs kritérium (AICc) szerint a legjobbat tartja meg. Az AICc az illeszkedés hibáját a paraméterek számával bünteti, így egy bonyolultabb szerkezet csak akkor nyer, ha a jobb illeszkedés megéri a többletparamétert. A csillapított trend a jövőbe egyre kisebb lépésekkel folytatja a változást, a φ csillapítási tényező arányában (0,8 és 0,98 között). A választott szerkezet a táblázatokban ETS(A,T,S) jelöléssel áll: A az additív hiba, T a trend (N nincs, A additív, Ad csillapított), S a szezon (N nincs, A additív, M multiplikatív); ETS(A,A,A) maga a Holt–Winters additive, ETS(A,A,N) a Holt's linear trend. A szakdolgozat StatsForecast-beli AutoETS modellje ugyanezt a szabályt követi, két eltéréssel: a kezdőállapotot is becsüli (itt a klasszikus képlet adja), és a multiplikatív hibájú tagokat is vizsgálja; ezért a két program választása néha eltér. Ugyanazon trend- és szezonszerkezet pontelőrejelzése a hiba fajtájától nem függ, csak a paraméterek becslése.
  • AutoARIMA (automatikus ARIMA-modellválasztás): az ARIMA-modell (autoregressive integrated moving average) három részből áll: az autoregresszív rész (AR, p tag) a sorozat saját korábbi értékeiből, a mozgóátlag-rész (MA, q tag) a korábbi előrejelzési hibákból magyaráz, az integrálás (d) pedig azt jelenti, hogy a modell a differenciált sorozatra, az egymást követő értékek különbségére illeszkedik, hogy a trend kikerüljön belőle. A szezonális változat (SARIMA) ugyanezt a három részt tizenkét havi lépésközzel is tartalmazza (P, D, Q), jelölése ARIMA(p,d,q)(P,D,Q)[12]. Az automatikus választás a Hyndman–Khandakar-eljárás: a differenciálások számát tesztek döntik el (d a KPSS-féle stacionaritási teszttel, D a szezonális összetevő erősségéből), majd a keresés négy kiinduló modellből lépésenként halad a szomszédos rendek felé, mindig a legkisebb AICc-t követve, legfeljebb 94 modellig; a driftet (állandó, időszakonkénti eltolást) egyszeri differenciálás mellett, a konstans átlagot differenciálás nélkül veszi fel. Ez ugyanaz az eljárás, amit a szakdolgozat StatsForecast-beli AutoARIMA modellje és az R forecast csomagja követ; az itteni változat három ponton tér el: a szezonális erősséget klasszikus mozgóátlagos felbontásból számolja (a StatsForecast STL-felbontásból), minden jelöltet pontos maximum likelihood becsléssel illeszt (a StatsForecast 150 megfigyelés fölött közelítéssel keres, és csak a győztest illeszti újra), és differenciálás nélküli modellből az átlagot nem tudja elhagyni. A tesztsorozatokon a két program választása és előrejelzése egyezik. Illesztett (egy lépéssel előre becsült) vonalat ehhez a modellhez a diagram nem rajzol, mert a könyvtár nem adja vissza. Sorozatonként több másodpercbe kerül, ezért alapból nincs bekapcsolva.

A simítási paraméterek (α a szintre, β a trendre, γ a szezonra, mindegyik 0 és 1 között; minél nagyobb, annál gyorsabban felejti a modell a régebbi megfigyeléseket; a csillapított tagoknál φ is, 0,8 és 0,98 között) illesztése két lépésben történik: rácskeresés (grid search) — a paraméterek minden 0,05-ös lépésközű kombinációját kipróbáljuk, az AutoETS két négyparaméteres, csillapított szezonális tagjánál 0,1-es lépésközzel —, majd a legjobb kombinációból indulva a Nelder–Mead-féle szimplexmódszer (egy deriváltat nem igénylő numerikus optimalizálás) finomítja tovább az értékeket. Az illeszkedés mértéke minden lépésben az egy időszakkal előre jelzett és a tényleges érték eltérésének négyzetösszege. A futás determinisztikus: ugyanaz a beállítás mindig ugyanazt az eredményt adja. A modellek csak a sorozat saját múltjából tanulnak, más adatmezőt (árat, támogatást) nem használnak, így a jövőbeli előrejelzéshez sem kell azok jövőbeli értékét ismerni.

A mérés a szakdolgozat elrendezését követi. A sorozat két részre oszlik: a tanító adatokra (training set) és a tesztadatokra (test set, az utolsó 3 év). A modell a tanító adatokra illeszkedik, majd egyetlen kiindulópontból előre jelzi a tesztidőszakot; a hibamértékek ezt az előrejelzést vetik össze a tesztadatok tényleges értékeivel. MAE (mean absolute error, átlagos abszolút hiba), RMSE (root mean squared error, négyzetes középhiba), MAPE (mean absolute percentage error, átlagos abszolút százalékos hiba, a nulla értékű időszakok nélkül) és MASE (mean absolute scaled error, átlagos abszolút skálázott hiba: a MAE osztva a szezonális naiv módszer tanító adatokon mért átlagos hibájával; 1 alatt a modell jobb a szezonális naivnál, és különböző nagyságrendű sorozatok között is összehasonlítható). A hibák mindig az eredeti mértékegységben (doboz, forint) számolódnak, akkor is, ha a modell négyzetgyök- vagy logaritmikus transzformáció alatt illeszkedett: a transzformált skálán számolt hiba nem vethető össze a transzformálatlannal. A jövőbeli előrejelzés (future forecast) a teljes sorozatra újraillesztett modellből készül, 3 időszakra. Az előrejelzési intervallum (prediction interval, 90%) nem képletből, hanem a modell tényleges hibáiból származik: a tesztidőszak minden hónapjából mint kiindulópontból újra előre jelezve összegyűlnek az egy, két, … lépéses hibák, és az intervallum ezek tapasztalati kvantilise horizontonként; egy egy irányba tévedő modell sávja ezért a vonal egyik oldalára tolódik.

Az „Előrejelezhetőség” fül ugyanezt a mérést futtatja az összeg szerinti első N sorozaton (legfeljebb 500), és MASE szerint rangsorolja őket: mely sorozatok jelezhetők előre a szezonális naiv módszernél érdemben jobban. Az éves adatkészleten csak a szezon nélküli modellek érhetők el: húsz évnyi pontban nincs éven belüli mintázat, amit tanulni lehetne.

Az adatforrás a forgalom helyett a NEAK egyedi betegszáma is lehet (BSZ, a hónapban az adott ATC-kód, márka vagy készítmény alatt kiváltó betegek száma, lásd a Betegszámok oldalt). Ekkor a sorozatok a betegszám-táblákból jönnek, országosan és csak a havi adatkészleten; a rangsor az időszak utolsó hónapjának betegszáma szerint áll, mert az egyedi betegszám nem összegezhető; és csak az időszak minden hónapjában közölt (50 fölötti) sorozatok szerepelnek. Az alapértelmezett kezdet 2015. Ettől a hónaptól a táblák kb. harmadával több sort tartalmaznak, de a többlet mind 0 értékű sor (50 alatti betegszám): a 0 fölötti sorok száma és az értékek menete nem változik, a mért betegszámokat tehát a váltás nem érinti. Korábbi kezdet is választható.

Adatforrás:
Modellek:
Darab 20

Legalább egy sorozatot ki kell választani.