Monte Carlo method application in simulations/cs

From Simulace.info
Jump to: navigation, search

Budoucnost nelze plánovat pouze na základě historických údajů, jelikož vždy se mohou objevit nějaké náhodné jevy, které ji mohou ovlivnit jak pozitivně tak i negativně. Lepší pohled na budoucnost než poskytuje vycházení z historických čísel, nám umožňuje právě metoda Monte Carlo.

Úvod

Metodu Monte Carlo lze uplatnit v řadě simulací různého typu ať z oblasti hazardních her, projektového managementu, financí, pojišťovnictví, techniky, či například i matematiky a fyziky. Některé oblasti použití jsou blíže vysvětleny níže v tomto textu. Tuto metodu lze využít především v simulacích, ve kterých je řešení problému jistým způsobem závislé na pravděpodobnostech. Podstatou této metody je generování velkého počtu scénářů pomocí pseudonáhodných čísel. Tato pseudonáhodná čísla jsou generována na základě pravděpodobnostního rozdělení, které vychází z historických údajů nebo ze znalostí a zkušeností expertů, kteří dobře rozumí povaze rizikových faktorů. Metoda Monte Carlo tedy vnáší do modelu náhodou veličinu, která vyjadřuje to, že budoucnost se může od minulosti nějakým způsobem vychýlit.

Metoda Monte Carlo vyžaduje po zainteresovaných stranách, aby hlouběji přemýšleli nad jednotlivými rizikovými faktory. Velmi důležitým krokem je také stanovení rozdělení pravděpodobnosti daných rizikových faktorů, které není vždy snadným úkolem. Toto rozdělení bývá většinou stanoveno na obecných vlastnostech či expertních analýzách.[1]

Postup při simulaci Monte Carlo[2][3]

Než začneme provádět simulaci, je důležité si ujasnit otázku, na niž pomocí simulačního modelu budeme hledat odpověď. Dalším důležitým krokem je určení základních částí modelu a zajištění, aby těmto částem rozuměly všechny zainteresované strany. V případě, že by došlo k nepochopení, mohl by nastat problém v pozdějším zamítnutí či požadavku na přepracování, čemuž je samozřejmě nejlepší předcházet. K lepšímu pochopení nám může pomoci tzv. influenční diagram (viz obrázek 1), který umožňuje jasně a přehledně zachytit základní prvky simulačního modelu a jejich vzájemné vazby.

Obrázek 1: Infuenční diagram, zdroj: [4]

Prvky influenčního diagramu

Pro snazší orientaci a pochopení je dobré rozlišovat mezi hlavními prvky influenčního diagramu. Je důležité rozeznávat:

  • proměnné, jejichž hodnotu můžeme (do určité míry) ovlivnit,
  • rizikové faktory, které nemůžeme přímo ovlivnit,
  • kriteriální proměnnou, tedy proměnnou, kterou chceme pomocí modelu analyzovat.

Vzájemné vazby mezi prvky modelu značíme šipkami. Lze také modelovat více úrovní diagramu. Například náklady můžeme rozdělit na fixní a variabilní. Dalším příkladem je rozdělení marketingových výdajů na online a offline apod.

Pokud všechny zainteresované strany rozumí základním prvkům modelu, vazbám mezi nimi a cíli modelu, lze začít sestavovat model například v nástroji MS Excel, který se následně rozšíří o simulace Monte Carlo.

Postup simulace Monte Carlo

1. Stanovení cíle

Obrázek 2: Schéma postupu metody Monte Carlo, zdroj:[5]

Nejdříve je důležité jasně definovat, čeho má být dosaženo a pomocí jakých veličin (například zisk, marže atd.).

2. Tvorba deterministického matematického modelu

V dalším kroku sestavíme deterministický matematický model, který by měl popisovat určitou reálnou situaci, měl by ji skutečně vyjadřovat, ale zároveň by neměl být příliš složitý. Tento model se vyznačuje tím, že v něm nalezneme pouze nenáhodná čísla. Při tvorbě modelu je nutné dbát na rozdělení vstupních a výstupních veličin.

3. Tvorba stochastického modelu

V tomto kroku vytvoříme stochastický model, který se bude od deterministického lišit v tom, že některé parametry uvažujeme jako náhodné veličiny. Tento model se přibližuje reálným dějům, ve kterých je náhodná veličina také obvykle přítomná. Nelze říci, že stochastický model odpovídá reálné situaci zcela přesně, ale s určitou pravděpodobností. Výstupem modelu je funkce náhodných veličin a konstant.

4. Určení klíčových rizikových faktorů

Dalším důležitým krokem je stanovení rizikových faktorů, tedy těch veličin, které budou významně ovlivňovat nejistotu výstupů simulace. Mezi těmito faktory jistě budou takové, na jejichž změny jsou výstupy simulace značně citlivé.

5. Stanovení rozdělení pravděpodobnosti klíčových rizikových faktorů

K zajištění úspěšného použití metody Monte Carlo je nezbytné správně určit rozdělení pravděpodobností rizikových faktorů. V předchozím kroku jsme identifikovali klíčové rizikové faktory a nyní pro ně musíme stanovit rozdělení pravděpodobnosti. U diskrétních faktorů rizika (faktory s několika málo hodnotami) má rozdělení pravděpodobnosti tabulkový tvar a u spojitých rizikových faktorů se běžně volí určitý typ rozdělení a zadávají se jeho parametry. V případě, že máme k dispozici historická data určitého faktoru, můžeme využít ke stanovení jeho rozdělení aproximace nějakým teoretickým rozdělením. Pokud historická data k dispozici nemáme, je nutné vycházet ze znalostí a zkušeností expertů, kteří dobře rozumí povaze rizikových faktorů.

Obrázek 3: Výstup simulace Monte Carlo, zdroj:[6]

6. Stanovení statistické závislosti rizikových faktorů

Nesmíme opomenout, že některé rizikové faktory mohou být závislé na některých jiných faktorech. V případě, že nějakou závislost zjistíme, je důležité ji při simulaci respektovat, jinak by výsledky simulace byly zkreslené. Příkladem statistické závislosti je například poptávka po určitém zboží, která může být závislá na prodejní ceně tohoto zboží. Pokud cena stoupá, poptávka po tomto zboží klesá a naopak.

7. Provedení simulace pomocí počítačového programu

Počítačový program (například MS Excel, Crystal Ball, Matlab, ModelRisk atd.) provádí velký počet scénářů, které se opakují až do konce simulace. Konec simulace nastává provedením posledního scénáře ze stanoveného počtu. V každém simulačním kroku jsou programem vygenerovány možné hodnoty rizikových faktorů z jejich rozdělení pravděpodobnosti a je propočteno výstupní kritérium. Každý tento simulační krok neboli scénář odpovídá jednomu možnému vývoji reálné situace. Po proběhnutí dostatečného počtu simulačních kroků dostaneme výsledky, které mohou být interpretovány jak graficky tak i číselně. Graficky mohou být výstupy interpretovány například pomocí histogramu (viz. obrázek 3), funkce hustoty či pomocí číselných charakteristik, kterými jsou průměr, medián, horní kvartil, dolní kvartil atd.

Druhy simulací

Hazardní hry

Hru lze považovat za posloupnost tahů (konečnou) prováděných v určitém pořadí a popisující každý tah. Tahy můžeme rozdělit na osobní tahy, které závisí na vůli hráče, náhodné tahy, které na hráči vůbec nezávisí a smíšené tahy, kdy je výsledek tahu kombinací záměru hráče a náhody. Monte Carlo je ukázkou procesů, kdy systém osobních tahů bude simulovat systém náhodných tahů. Hry založené na náhodě jsou nazývány jako hazardní hry. Mezi nejznámější a nejstarší hazardní hry patří hrací kostky, náhodný tah kuliček z urny či ruleta. Tyto hry lze simulovat pomocí metody Monte Carlo.

Metodu Monte Carlo lze velmi dobře pochopit na příkladu házení klasickou hrací kostkou. Běžný hráč se nejspíš nezamýšlí nad pravděpodobností toho, že hodí právě šestku v součtu dvou kostek (například 4+2, 3+3, 5+1). Tím, že hod kostkou nasimulujeme a tuto simulaci provedeme tisíckrát čí i mnohem víckrát, tak získáme výsledek, který nám řekne, jak je pravděpodobné, že hozená šestka bude například kombinací 4+2. Metoda Monte Carlo nám navíc umožňuje tuto simulaci provést rychle a efektivně.[5][7]

Dalším příkladem, kdy lze využít metodu Monte Carlo jsou například šachy. Na trhu je k dispozici mnoho šachových programů, jejichž cílem je hledat a nacházet nejlepší možné tahy. Tyto programy se snaží napodobovat lidský mozek a očekávat soupeřovi tahy. Program zná tahy, které je možné realizovat v jednotlivých situacích, avšak některé pozice dělají šachovým programům problémy. Tento problém lze vyřešit pomocí metody Monte Carlo, která sehraje velmi mnoho rychlých šachových partií a na konci vyhodnotí statistiku výsledků. V případě, že například v pozici s krajním pěšcem a špatným střelcem algoritmus programu vyhodnotí, že má převahu k výhře, ale pomocí metody Monte Carlo zjistíme, že tisíc z tisíce rychlých partií skončí remízou, usoudí, že je pozice opravdu remízová.[8]

Projektový management

Může se zdát, že metoda Monte Carlo nemá v projektovém managementu příliš velké uplatnění, ale opak je pravdou. Metoda Monte Carlo může pomoci projektovým manažerům lépe a přesněji predikovat vývoj projektu. Na projekt musíme nahlížet jako na množinu úkolů, které se mohou vzájemně ovlivňovat a kde můžeme každému úkolu přiřadit pravděpodobnost, s jakou se ho podaří včas dokončit. S tímto pohledem na projekt můžeme aplikovat metodu Monte Carlo a přiřadit proměnné zasazené do systému náhodných čísel v rozptylu rovnajícímu se rozptylu odhadů k danému úkolu. Tento krok provedeme pro každý úkol projektu nebo případně alespoň pro každý souhrnný úkol projektu. Na výsledné hodnoty je aplikována deterministická analýza a tento proces se opakuje dle námi stanoveného počtu opakování (tisíce, desetitisíce atd.). Výstupem analýzy jsou data, která mají díky velkému počtu opakování dostatečnou vypovídací schopnost. Projektový manažer, tak získá podklad, který mu může pomoci v jednání o dřívějším zahájení projektu či jeho prodloužení.[9]

Finance

Metoda Monte Carlo má ve financích široké možnosti využití. Lze ji uplatnit pro simulace v oblasti podnikových financí, oceňování opcí, dluhových cenných papírů, řízení portfolia, vývoj měnového kurzu či například osobním finančním plánování. Velmi časté uplatnění má tato metoda také v oblasti analýzy a řízení rizika, kde jsou získané výsledky přesnější než při použití jiných metod. Metoda Monte Carlo je velmi užitečná, jelikož pokud bychom analýzy zakládali pouze na historických datech, nemusely by být tyto analýzy správné, neboť budoucnost se může značně vychýlit. Metoda Monte Carlo poskytuje širokou škálu možností a navíc je velmi flexibilní, díky možnosti měnit jednotlivé rizikové faktory a tím modelovat řadu možných výstupů. K dispozici poté máme různé budoucí výsledky, které můžeme porovnávat a vyhodnocovat. Pomocí metody Monte Carlo mohou analytici a finanční poradci převést investiční příležitosti do podoby možností.[5]

Analýza rizik

Jednou z oblastí financí, ve které se velmi často využívá metoda Monte Carlo, je analýza rizik, která slouží k vyhodnocení možných důsledků důležitých strategických rozhodnutí či dopadů významných změn ekonomické situace, což je v dnešní době také aktuálním tématem. V podnicích ji lze využít v modelování určitých situací (optimistické, pesimistické hodnoty) při tvorbě finanční plánů. Takovéto analýzy jsou ale pouze výsledkem omezeného odhadu budoucí hodnoty. Metoda Monte Carlo poslouží v analýze rizik v situacích, kdy potřebujeme získat odpověď na otázku, jaká je pravděpodobnost, že u sledované veličiny dosáhneme určitý užší rozsah.[10]

Ostatní

Metodu Monte Carlo lze využít i v dalších oborech činnosti jako například ve fyzice, matematice, statistice či informatice. Ve fyzice se tato metoda často používá v případech, kdy kvůli nedostatku financí není možné provést reálný experiment. Aplikuje se zejména v těchto oblastech fyziky: statistická fyzika, fyzikální chemie, kvantová fyzika, aerodynamika či předpovědi počasí. V matematice se metoda Monte Carlo využívá při výpočtu určitých jednoduchých i složitých integrálů, při řešení systému lineárních algebraických rovnic, při řešení parciálních diferenciálních rovnic nebo také při hledání kořenů rovnic. Ve statistice se nejčastěji používá k testování statistických hypotéz. V informatice se metoda využívá zejména ve hrách, jak již bylo zmíněno výše v kapitole hazardní hry, k tomu, aby počítač uměl zvolit nejlepší možný tah v dané situaci.[11]

Simulační programy

  • GPSS/H (jeden z nejstarších simulačních jazyků),
  • SIMSCRIPT,
  • SIMULA,
  • MODSIM,
  • ECSL,
  • MOR/DS,
  • MS Excel s možností rozšíření o:
    • @RISK,
    • Crystal Ball.

Příklady k procvičení[12]

Příklad - Úvěr

Společnost ABC a.s. má dne 15. dubna splatit 1 mil. Kč. Počáteční zůstatek běžného účtu v pondělí 5. dubna je 2 350,25 tis. Kč. Do 19. dubna přijdou na účet tržby z 5. - 10. dubna, naopak bude nutné uhradit náklady za období 5 – 17. dubna. Tržby v jednotlivých dnech v týdnu mají rovnoměrné rozdělení viz. zadání níže. Náklady tvoří 70 % z tržeb.

Jaká je pravděpodobnost, že firma bude muset žádat o úvěr?

Zadání příkladu: Priklad zadani.jpg

Výsledky: File:Priklad uver.xlsx

Příklad - Oligopolní trhy

Dovoz zeleniny z jižní Evropy je ovládán dvěma firmami A a B. Podíl na trhu v prvním týdnu je u firmy A 55 % a u firmy B 45 %. Vzhledem k problémům na hranicích se stává, že zboží bývá občas dodáno se zpožděním. U firmy A se tak děje s 20 % dodávek, u firmy B s 25 % dodávek. V případě zpoždění se očekává, že 10 % zákazníků příští zboží objedná u konkurenční firmy. Ve čtyřicátém týdnu je plánováno převzetí firmy A zahraniční firmou, přičemž hlavním kritériem kupní ceny bude podíl na tuzemském trhu.

Jaký podíl na trhu za výše uvedených předpokladů lze očekávat u firmy A ve čtyřicátém týdnu?

Výsledky: File:Priklad oligopolni trhy.xlsx

Zdroje

  1. TradingSystems.eu. Monte Carlo [online]. Dostupné z: http://systemy.etrading.cz/systemy/vzdelavani/monte-carlo.html
  2. HÉŽA, Lukáš. Simulace Monte Carlo v MS Excel : diplomová práce [online]. Olomouc : Univerzita Palackého v Olomouci, Přírodovědecká fakulta, 2013 [cit. 2015-05-22]. Dostupné z:http://theses.cz/id/gxbjr4/00172153-589053968.rar
  3. Hlinica, J. (2009). Aplikovaná analýza rizika ve finančním managementu a investičním rozhodování. Praha: Grada Publishing, a.s.
  4. Influence Diagram. UNIVERSITY LEARNING INSTITUTE. TheCourse for Project Management [online]. 2012 [cit. 2015-06-18]. Dostupné z: http://www.thecourse-pm.com/Library/InfluenceDiagram.htm
  5. 5.0 5.1 5.2 Jak využít simulace Monte Carlo ve financích. Měšec [online]. 2015 [cit. 2015-06-18]. Dostupné z: http://trhy.mesec.cz/clanky/jak-vyuzit-simulace-monte-carlo-ve-financich/
  6. WITTWER, Jon. Creating a Histogram in Excel. Vertex42: The Guide to Excel in Everything [online]. 2015 [cit. 2015-06-18]. Dostupné z: http://www.vertex42.com/ExcelArticles/mc/Histogram.html
  7. FABIAN, František a Zdeněk KLUIBER. Metoda Monte Carlo a možnosti jejího uplatnění. Praha: PROSPEKTRUM spol. s.r.o., 1998. ISBN 80-7175-058-1.
  8. Metoda “Monte Carlo”. In: DevBlog [online]. 2012 [cit. 2015-06-18]. Dostupné z: http://devblog.cz/2012/07/metoda-monte-carlo/
  9. DVOŘÁK, Drahoslav. Matematické metody v projektovém managementu. SystemOnline [online]. 2013, (11) [cit. 2015-06-18]. Dostupné z: http://www.systemonline.cz/clanky/matematicke-metody-v-projektovem-managementu.htm
  10. KOLÁŘ, Jan. Controlling a reporting z pohledu analytických nástrojů [online]. 2012 [cit. 2015-06-18]. Dostupné z: http://e-controlling.cz/controlling-a-reporting-z-pohledu-analytickych-nastroju/
  11. KOŠINA, Martin. Metoda Monte Carlo a její využití ve financích : bakalářská práce [online]. Praha : Vysoká škola ekonomická v Praze, Fakulta informatiky a statistiky, 2014 [cit. 2015-05-22]. Dostupné z: http://www.vse.cz/vskp/show_file.php?soubor_id=1248931
  12. DLOUHÝ, Martin, Jan FÁBRY a Marina KUNCOVÁ. Simulace pro ekonomy. Praha: Oeconomica, 2005. ISBN 80-245-0973-3.