![](img/tr.png)
V minulé kapitole jsme se seznámili s nejjednodušším typem neuronové sítě - lineární sítí MADALINE. Ukázali jsme si, že touto sítí se dá řešit řada ekonomických úloh. Ve třetí kapitole si probereme další rozsáhlou aplikační oblast využití neuronových sítí - ekonomické prognózování s využitím časových řad...
3. kapitola
Časové řady jako nástroj ekonomického prognózování
Nejdůležitější metodou předpovědi budoucího vývoje je analýza časových řad. Časovou řadou se rozumí posloupnost pozorování kvantitativní charakteristiky uspořádané v čase směrem od minulosti k přítomnosti. Poznání zákonitosti vývoje časových řad a rozbor příčin, které k nim vedly, umožňuje předvídání budoucího vývoje těchto řad. To pomáhá ekonomům lépe odhadnout pravděpodobnou situaci v jejich podniku i podmínky, ve kterých budou podnikat v příštím období, a tak s předstihem plánovat své aktivity.
Na rozdíl od systémů, které při prognózování vycházejí z informací expertů, není uvedená metoda založena na subjektivních představách odborníků. Budoucí vývoj jevu se předpovídá na základě jeho současného a minulého chování.
Složky časové řady
Každá časová řada může obsahovat čtyři složky: trend, sezónní složku, cyklickou složku a nepravidelnou náhodnou složku.
- Trendem se rozumí obecná tendence vývoje zkoumaného jevu za dlouhé období. Je výsledkem dlouhodobých a stálých procesů. Trend může být rostoucí, klesající nebo je řada bez trendu.
- Sezónní složka je pravidelně se opakující odchylka od trendové složky s periodicitou kratší než 1 rok. Kolísání může být zapříčiněno střídáním ročních období, různým pracovním cyklem, metodami plánování (např. čtvrtletními plány) apod.
- Cyklická složka je kolísání okolo trendu v důsledku dlouhodobého cyklického vývoje s periodou větší než jeden rok, zpravidla dva a více roků. Někteří autoři ji neuvádějí, ale zahrnují ji pod složku trendovou jako tzv. střednědový trend, který má oscilační charakter s neznámou a často proměnnou periodicitou. Původně uvedený trend naproti tomu chápou jako dlouhodobý monotónní trend.
- Nepravidelná složka je taková, kterou nelze popsat funkcí času. V ideálním případě jsou zdrojem drobné, nepostižitelné příčiny, vzájemně nezávislé. Jde o náhodnou, stochastickou složku s pravděpodobnostním chováním.
Matematicky se dají všechny závislosti vyjádřit vzorcem
yt = Tt + St + Ct + et
kde Tt je trend, St je sezónní složka, Ct je cyklická složka a et je nepravidelná složka. Podle toho, zda jsou přítomny všechny složky trendové řady nebo pouze některé, vznikají různé modifikace modelu.
Modely trendové složky
Zkušenosti ukazují, že v oblasti ekonomických analýz a prognóz zpravidla vystačíme s malým okruhem trendových funkcí. Mezi nejdůležitější patří:
- Lineární trend je nejjednodušší a nejčastěji používaný trend. V určité míře se může použít jako vhodná aproximace jiných trendových funkcí. Je možné jej vyjádřit ve tvaru Tt = a0 + a1 t , kde a0 a a1 jsou parametry a t = 1, 2, ... , n je časová proměnná, která určuje jednotlivé časové okamžiky.
- Polynomický trend je vyjádřen ve tvaru Tt = a0 + a1 t + a2 t2 + ... + ak tk. V praxi se používá maximálně druhý stupeň, pro vyšší stupeň funkce kolísá.
Východiskem pro vyhledání vhodného typu je především rozbor empirických údajů. Nejčastěji se minimalizuje součet čtverců odchylek empirických hodnot od teoretických. Tato metoda však nemusí být rovněž spolehlivá, protože se zvyšujícím se počtem parametrů klesá reziduální součet čtverců, ale taková křivka nemusí postihovat skutečný trend.
Modely sezónní složky
Pro časovou řadu se sezónními vlivy, tj. vlivy s periodou kratší než jeden rok, platí:
Yt = Tt + St       t = tij = r ( i - 1 ) + j, kde i je číslo roku a j je číslo období v rámci roku.
Existuje řada modelů sezónní složky. Nejdůležitější jsou:
- Model konstantní sezónnosti - při použití tohoto modelu předpokládáme, že se sezónní vlivy pravidelně opakují ve stejné absolutní výši.
- Model proporcionální sezónnosti - vychází z představy, že v daném dílčím období se sezónní výkyvy mění přímo úměrně složce trendové.
- Model smíšené sezónnosti - je kombinací předchozích.
Principem aproximace je nalézt takové neznámé parametry funkce popisující časovou řadu, pro které chyba et nabývá nejmenších hodnot. Pro výpočet se používá regrese metodou nejmenších čtverců.
Modelování časových řad neuronovými sítěmi
K modelování časové řady můžeme použít také lineární neuronovou síť a neznámé parametry určit metodou učení neuronové sítě. Síť pak bude po naučení schopna do určité míry odhadnout vývoj zkoumaných jevů v příštím období. Abychom průběh takových jevů dokázali předpovídat, nesmí být ovšem jejich chování zcela nahodilé a v trénovací množině musí být dostatečný počet tréninkových vzorů postihujících všechny vlivy na tento jev působící.
- Topologie neuronové sítě předpovícající vývoj ekonomického ukazatele je zpravidla jednoduchá a je dána zvoleným typem časové řady, kterou modeluje. V dalším jsou popsány topologie pro základní modely časových řad. Každý ekonomický jev je reprezentován jedním neuronem.
- Trénovací množina se skládá z dvojic (xk, dk), kde xk je vektor vstupních hodnot, který vždy obsahuje jako jednu ze složek časový úsek, dk je naměřená hodnota sledované číselné charakteristiky. Trénovací množina se může průběžně doplňovat o nové prvky.
- Adaptivní dynamika neuronové sítě modelující časovou řadu spočívá v nalezení takových hodnot vah neuronů, aby vystupní hodnoty na neuronech se co nejvíce blížily výstupům požadovaným.
- Aktivní dynamika spočívá v předložení vstupního vektoru x s hodnotou časové funkce t, která není obsažena v trénovací množině a výpočtů výstupních hodnot. Zpravidla se počítají hodnoty v některém z budoucích časových okamžiků.
Modelování lineárního trendu
Lineární trend můžeme modelovat neuronem podle následujícího obrázku. Na jeden vstup přivádíme časový úsek t, na druhý konstantu 1. Neuron se naučí lineární závislost
y = w1 * t + w0,
chyba neuronové sítě složené z tohoto neuronu je ztotožněna s náhodnou složkou časové řady.
Tímto způsobem se například dají odhadovat směnné kurzy. Výhodou je, že podle velikosti koeficientu učení síť více nebo méně rychle "zapomíná" staré vlivy a přizpůsobuje se novým skutečnostem.
Příklad - kurz
V příkladech programu TNeuron vyhledejte položku kurz.top (start TNeuron.exe, Popis, Parametry, Vyhledej). Úloha znázorňuje vývoj ceny hypotetické devizy v průběhu 12měsíců. Prohlédněte si trénovací množinu, položku Situace si vysvětlíme později.
Zvolte Zpracování, Učení sítě a přesvědčte se, že síť po naučení téměř přesně modeluje časovou řadu. Zvolte pak ve Výsledky Dotaz časový úsek 13, 14 atd., tj. příští a další měsíce, a zjistíte, že síť dokáže přibližně odhadnout vývoj v budoucnu.
Modelování polynomického trendu
Polynomický trend můžeme modelovat neuronem podle následujícího obrázku. Na vstupy přivádíme mocniny časového úseku t a konstantu 1. Neuron se naučí koeficienty polynomu, chyba neuronové sítě je opět ztotožněna s náhodnou složkou časové řady.
Tento postup dával dobré výsledky například při prognózování úspory materiálu. Při zahájení úsporných opratření se spotřeba materiálu snižuje rychleji, po vyčerpání rezerv se tempo úspor zmenšuje.
Modelování sezónní řady
Řadu s konstantní sezónní složkou modeluje neuron podle dalšího obrázku. Na vstupy přivádíme časový úsek t a konstantu 1. Vedle toho jsou na vstupu proměnné x2,1 ... x2,n, které mají následující význam: x2,i = 1, jestliže data se vztahují k sezóně č. i.
Tímto způsobem se dá například předpovídat spotřeba elektrické energie.
Příklad - ener_ct
V příkladech programu TNeuron vyhledejte položku ener_ct.top. Úloha znázorňuje vývoj hypotetické spotřeby elektrické energie za 2 roky. Přesvědčte se, že po naučení dokáže síť odhadnout spotřebu energie v příštím čtvrtletí. V dotazu zadejte čtvrtletí 9, první v roce 1 (1 = ano). Systém odhadne pravděpodobnou spotřebu.
Všimněte si jedné zásadní věci - sezónní složku nezadáváme čísly 1, 2, 3, 4, ale jako binání vstup čtvrtletí - první v roce = 1 (ano) nebo 0 (ne), druhé v roce = 1 (ano) nebo 0 (ne) atd. Samozřejmě v aplikačním programu si můžeme vytvořit interface s jedním číselným vstupem a údaj pak zpracovat pomocí přepínače nebo podmínkovými příkazy, to je však úprava, která nesouvisí s problematikou neuronové sítě.
Vícerozměrné modely
Dosud jsme předpokládali, že číselné charakteristiky časové řady jsou závislé pouze na časovém okamžiku, ke kterému se charakteristika vztahuje. Řada ekonomických veličin je však určena nejen časovým průběhem, ale také dalšími faktory, na kterých jsou závislé. Topologie takové sítě je na dalším obrázku. Vedle trendu a sezónní složky jsou na vstup přivedeny i proměnné x3,1 ... x3,n2, které představují vlivy dalších jevů na zkoumaný výsledek.
Příklad - kurz
Vraťme se nyní k prvnímu příkladu kurz.top. Cena devizy se ve skutečnosti neodvíjí jen od časového okmažiku, ale mají na ni vliv i další okolnosti, jako hospodářská stabilita, politická situace i přírodní podmínky. V našem příkladě je to znázorněno proměnnou "situace", kde 0 znamená stabilitu, 1 méně stabilní situaci. Zjistěte pokusně, jak se mění prognóza vývoje cen valuty v dalším období, jestliže měníte hodnotu proměnné situace. Všimněte si, že můžete odhadovat i kurz v případě, že nastaly zvlášť nepříznivé podmínky (situace = 2), tento odhad bude ovšem v praxi velmi přibližný.
Závěrečný příklad - ekon
Úlohy, které jsme zatím řešili, byly pouze teoretické. Přesvědčili jste se, že neuronová síť se z modelových dat dokáže naučit vývoj jevů v čase a pak poměrně přesně předpovídat, jak se bude ekonomická veličina chovat v budouctnu. V praktických úlohách není situace tak jednoduchá. Data jsou zatížena chybami, nemusí být známy všechny nahodilé jevy, které v určité míře ovlivňují výsledek, a proto odhad je zpravidla pouze přibližný. Přesto však je pro ekonomy i taková předpověď přínosem.
V příkladu ekon.top jsou reálné hodnoty ekonomických veličin za dvouleté období, tj. 8 čtvrtletí. Přitom energie je sezónní veličina, v letních měsících je výrazně nižší než v zimních, ostatní nemají sezónní složku. Přesvědčte se, že i v případě reálných dat dokáže systém poskytnout rozumnou předpověď, i když není tak přesná jako v teoretických úlohách.
Závěr
V této kapitole jsme se zabývali další rozsáhlou aplikační oblastí neuronových sítí v ekonomii, předpovídáním vývoje ekonomických ukazatelů. Ukázali jsme si, že takové systémy dokáží prognózovat jevy, které nejsou úplně náhodné, a to i v případě, že reálná data jsou zatížena chybami a procesy jsou částečně ovlivněny nahodilými jevy.
Příště si probereme další typy neuronových sítí a možnosti jejich využití v ekonomických úlohách.