Definicje zależności. Kopuły w matematyce finansowej.
Transcription
Definicje zależności. Kopuły w matematyce finansowej.
Definicje zależności. Kopuły w matematyce finansowej. Aleksandra Kantowska 18.06.2014 Spis treści Wstęp 2 1 Funkcja kopuła 1.1 Podstawowe pojęcia . . . 1.2 Pochodne kopuł . . . . . . 1.3 Klasa kopuł Archimedesa 1.3.1 Kopuła Claytona . 1.3.2 Kopuła Gumbela . 1.3.3 Kopuła Franka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 10 12 16 17 18 2 Procesy stochastyczne 2.1 Proces stochastyczny . . . . 2.2 Proces Markowa . . . . . . 2.3 Proces Wienera . . . . . . . 2.4 Geometryczny ruch Browna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 22 23 3 Operacja produktowa ∗ dla kopuł i proces Markowa 3.1 Operacja produktowa ∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Operacja produktowa ∗ a proces Markowa . . . . . . . . . . . . . . . . . . . . . . . 3.3 Przykład: kopuła ruchu Browna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 26 28 32 4 Konstrukcja procesów stochastycznych opartych na kopułach 4.1 Metoda konstrukcji procesu . . . . . . . . . . . . . . . . . . . . . 4.2 Proces ruchu Browna . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Proces kopuły Franka . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Proces kopuły Claytona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 35 37 39 5 Modelowanie rynku z użyciem procesu kopuły 5.1 Opcje . . . . . . . . . . . . . . . . . . . . . . . 5.2 Model Blacka-Scholesa . . . . . . . . . . . . . . 5.3 Wycena opcji europejskiej . . . . . . . . . . . . 5.4 Wycena opcji binarnej barierowej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 46 49 Browna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Podsumowanie 53 A Załącznik - rozkłady prawdopodobieństwa 54 B Załącznik - kody B.1 Załącznik 1 . B.2 Załącznik 2 . B.3 Załącznik 3 . B.4 Załącznik 4 . B.5 Załącznik 5 . B.6 Załącznik 6 . programów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 57 58 58 60 63 Spis rysunków 71 Bibliografia 72 1 Wstęp W pracy zajmiemy się strukturą zależności jaką jest proces Markowa. Pokażemy konstrukcję procesu Markowa opartego na kopule i zastosowanie takiego procesu w finansach. Zacznijmy zatem od krótkiego przybliżenia, czym jest ta funkcja. Funkcja kopuła (ang. copula) jest to funkcja, dzięki której możemy połączyć rozkład łączny z jego rozkładami brzegowymi, krótko można powiedzieć, że jest to funkcja połączenia. W pracy często funkcje te będziemy nazywać po prostu kopułami. Pojęcie kopuły zostało po raz pierwszy przedstawione przez Abe Sklar’a w roku 1959 w twierdzeniu, które nosi teraz jego imię, a które opisuje funkcje łączące dystrybuanty jednowymiarowe z dystrybuantą wielowymiarową. Mimo, że od czasu wprowadzenia tego twierdzenia minęło już ponad 50 lat, to teoria kopuł jest to dziedzina matematyki, która cały czas się rozwija. Istnieje kilka struktur zależności pomiędzy zmiennymi losowymi, w których wykorzystuje się kopuły. Jednymi z najpopularniejszych są ρ Spearmana, czy τ Kendalla (szczegóły w [11]). My jednak zajmiemy się strukturą zależności jaką jest proces Markowa. Po raz pierwszy zastosowanie kopuł do procesów Markowa przedstawił William Darsow w pracy „Copulas and Markov Processes” (1992). Przedstawione przez niego podejscie było nowym podejsciem do tych procesów i dało nowe interpretacje. W rozdziale pierwszym przedstawimy podstawowe definicje, twierdzenia oraz własności z teorii funkcji kopuł. Przytoczymy najważniejsze twierdzenie w teorii kopuł - twierdzenie Sklara. Przedstawimy klasę kopuł Archimedesa oraz wprowadzimy przykłady kopuł należących do niej należących. Dla kopuł Claytona, Gumbela i Franka podamy ich generatory, a także wyprowadzimy wzory na te kopuły. W rozdziale drugim wprowadzimy podstawy teorii dotyczącej procesów stochastycznych. Powiemy co to jest proces stochastyczny, filtracja czy moment stopu. Przedstawimy także po krótce jak wygląda proces Wienera i geometryczny ruch Browna, a także jaki proces możemy nazwać procesem Markowa. W rozdziale trzecim zajmiemy się pokazaniem związku teorii kopuł z procesami Markowa. Wprowadzimy operację produktową ∗ wraz z podstawowymi własnościami oraz przytoczymy twierdzenie pokazujące związek procesu Markowa z kopułami. Wyprowadzimy także wzór na postać kopuły zbudowanej na procesie Wienera. W rozdziale czwartym skupimy się na konstrukcji procesów stochastycznych opartych na kopułach. Przedstawimy metodę konstrukcji takich procesów oraz przedstawimy przykłady symulacji procesów opartych na kopułach: ruchu Browna, Franka oraz Claytona. Piąty rozdział poświęcony jest sprawdzeniu jak zachowuje się rozwiązanie równania stochastycznego, gdy w miejscu procesu Wienera użyjemy pocesu kopuły ruchu Browna. Przytoczymy podstawowe pojęcia z zakresu opcji oraz skupimy się w nim na wycenie opcji i porównaniu wartości otrzymanych za pomocą standardowego modelu oraz przy użyciu procesu opartego na kopule. W szóstym rozdziale podsumujemy całą pracę oraz otrzymane wyniki. 2 Na końcu pracy znajdują się załączniki. W części A znajdziemy definicje rozkładów prawdopodobieństwa użytych w pracy. Natomiast w części B znajdują się kody z programu R użyte w pracy. Wszystkie wykresy użyte w pracy zostały wygenerowane samodzielnie w programie R i kody użyte do ich otrzymania znajdują się w tej części. Środowisko R jest to bezpłatny program używany do obliczeń statystycznych oraz prezentacji wyników. W naszym przypadku, aby uzyskać przedstawienie graficzne kopuł użyliśmy pakietu copula. 3 Rozdział 1 Funkcja kopuła Jak już wspomnieliśmy we wstępie, kopuły są to tak zwane funkcje połączenia. W tym rozdziale zajmiemy się wprowadzeniem ich podstawowych definicji, twierdzeń oraz własności. Podamy także przykłady kopuł należących do jednej z najważniejszych klas kopuł - klasy kopuł Archimedesa. 1.1 Podstawowe pojęcia Zacznijmy od wprowadzenia oznaczeń, które będziemy stosować w całej pracy. Niech I oznacza przedział jednostkowy [0, 1], a I 2 = I × I kwadrat jednostkowy. Będziemy korzystać z następującej notacji: R = (−∞, ∞), R̄ = [−∞, ∞] oraz R̄2 = R̄× R̄. Jako dom(f ) ⊂ R̄d będziemy rozumieć dziedzinę funkcji f, a przez ran(f ) ⊂ R jej zbiór wartości. Niech F12 (x1 , x2 ) = P (X1 ≤ x1 , X2 ≤ x2 ) będzie dystrybuantą łączną zmiennych losowych X1 i X2 o dystrybuantach F1 (x1 ) = P (X1 ≤ x1 ) i F2 (x2 ) = P (X2 ≤ x2 ), odpowiednio, które nazywamy dystrybuantami brzegowymi. Możemy powiedzieć, że z każdą parą liczb (x1 , x2 ) powiązane są trzy wartości: F1 (x1 ), F2 (x2 ) oraz F12 (x1 , x2 ). W związku z tym, że są to dystrybuanty możemy zauważyć, że każda z tych liczb należy do przedziału [0, 1]. Wprowadźmy teraz definicje, które będą nam potrzebne w dalszej części. Definicja 1. [11] Niech S1 , S2 będą niepustymi podzbiorami R̄, niech H będzie funkcją rzeczywistą dwóch zmiennych taką, że dom(H) = S1 × S2 . Niech B = [x1 , x2 ] × [y1 , y2 ] będzie kwadratem, którego wszystkie wierzchołki należą do dom(H). Wtedy H-objętość od zbioru B dana jest wzorem VH (B) = H(x2 , y2 ) − H(x2 , y1 ) − H(x1 , y2 ) + H(x1 , y1 ). (1.1) Definicja 2. [11] Funkcja rzeczywista dwóch zmiennych H jest 2-rosnąca, jeżeli VH (B) ≥ 0 dla każdego kwadratu B, którego wierzchołki leżą w dziedzinie dom(H). Wprowadźmy teraz definicję kopuły dla przypadku dwuwymiarowego. Definicja 3. [2] 2-wymiarową kopułą (w skrócie 2-kopułą lub kopułą) nazywamy funkcję C : I 2 → I spełniającą następujące warunki: 1. ∀u,v∈I C(u, 0) = C(0, v) = 0 4 (1.2) oraz ∀u,v∈I 2. ∀u1 ,u2 ,v1 ,v2 ∈I u1 ≤ u2 i C(u, 1) = u i C(1, v) = v, (1.3) v 1 ≤ v2 C(u2 , v2 ) − C(u2 , v1 ) − C(u1 , v2 ) + C(u1 , v1 ) ≥ 0. Pierwszy punkt daje nam warunki brzegowe, które gwarantują jednostajny rozkład brzegowy. Natomiast drugi jest warunkiem monotoniczności funkcji. Dla wymiaru d > 2 definicja d-kopuły jest następująca: Definicja 4. [2] D-wymiarową kopułą (d-kopułą) nazywamy funkcję C : I d → I spełniającą: 1. Warunki brzegowe: (a) ∀i ∀x1 ,...,xd C(x1 , . . . , xi−1 , 0, xi+1 , . . . , xd ) = 0, (b) funkcja (x1 , . . . , xi−1 , xi+1 , . . . , xd ) → C(x1 , . . . , xi−1 , 1, xi+1 , . . . , xd ) jest (d-1)-kopułą dla każdego i. 2. Warunek monotoniczności: VC (R) = X sgn(K)C(K) ≥ 0 K∈R dla każdego prostokąta R = Qd i=1 [xi , yi ], xi ≤ yi , gdzie K = (1 , . . . , d ) jest zbiorem jego wierzchołków takich, że i = xi lub yi oraz sgn(K) = −1, jeżeli liczba współrzędnych xi spośród wszystkich w przeciwnym razie. 1, współrzędnych K jest nieparzysta, W teorii kopuł istnieją także pewne ograniczenia funkcji nazywane ograniczeniami FréchetaHoeffdinga. Twierdzenie 1. [10] Dla dowolnej kopuły C(x1 , . . . , xd ) mamy ograniczenia ( max d X ) xi + 1 − d, 0 ≤ C(x1 , . . . , xd ) ≤ min {x1 , . . . , xd } . (1.4) i=1 Dowód powyższego twierdzenia można znaleźć w [10]. Zajmijmy się przez chwilę prawą stroną nierówności (1.4), którą nazywamy górnym ograniczeniem Frécheta-Hoeffdinga. Aby uprościć zapis tego ograniczenia stosujemy dla niego oznaczenie M (x1 , . . . , xd ). Interpretacja geometryczna górnego ograniczenia jest taka, że powierzchnia dowolnej kopuły musi leżeć pod powierzchnią funkcji M lub być jej równa. W przypadku, gdy powierzchnia kopuły jest równa górnemu ograniczeniu, to kopułę taką nazywamy kopułą wspólnie monotoniczną (ang. comonotonicity) i określamy ją wzorem M (x1 , . . . , xd ) = min {x1 , . . . , xd } . 5 Gdy ograniczymy się do przypadku 2-wymiarowego to kopuła wspólnie monotoniczna jest postaci M (x1 , x2 ) = min {x1 , x2 } . Interpretację stochastyczną tej kopuły możemy przedstawić następująco: zmienne losowe X1 i X2 połączone są ze sobą za pomocą kopuły M wtedy i tylko wtedy, gdy zmienna losowa X2 jest prawie na pewno niemalejącą funkcją X1 . Kopuła ta odnosi się do zależności deterministycznych. Interpretacja graficzna tej kopuły przedstawiona jest na poniższym rysunku (kod z programu R w załączniku 1A). Rysunek 1.1: Wykres powierzchni i konturu górnego ograniczenia Frécheta Przejdźmy teraz do lewej strony nierówności (1.4), którą nazywamy dolnym ograniczeniem Frécheta-Hoeffdinga oraz używamy dla niego oznaczenia W (x1 , . . . , xd ). Interpretacja geometryczna dolnego ograniczenia jest taka, że powierzchnia dowolnej kopuły musi leżeć nad powierzchnią funkcji W. Dla wymiaru d ≥ 3 funkcja W nie jest kopułą. W przypadku, gdy d = 2 dolne ograniczenie Frécheta-Hoeffdinga jest kopułą postaci W (x1 , x2 ) = max(x1 + x2 − 1, 0). Kopuła ta nosi nazwę kopuły przeciwnie monotonicznej (ang. countermonotonicity). Kopuła ta, tak samo jak kopuła wspólnie monotoniczna, odnosi się do zależności deterministycznych a jej interpretacja stochastyczna jest następująca: zmienne losowe X1 i X2 są połączone za pomocą kopuły W wtedy i tylko wtedy, gdy X2 jest prawie na pewno nierosnącą funkcją X1 . Ograniczenie to graficznie prezentuje się następująco (kod z programu R w załączniku 1B). Rysunek 1.2: Wykres powierzchni i konturu dolnego ograniczenia Frécheta 6 Nierówność (1.4) dla kopuł 2-wymiarowych oraz wykorzystując wprowadzone oznaczenia możemy zapisujemy następująco W (x1 , x2 ) ≤ C(x1 , x2 ) ≤ M (x1 , x2 ). Istnieje jeszcze jedna ważna kopuła, jest to kopuła produktowa postaci d Y Y (x1 , . . . , xd ) = xi , i=1 nazywana kopułą niezależną. Jej interpretacja stochastyczna jest następująca: zmienne losowe X1 Q i X2 są połączone za pomocą kopuły wtedy i tylko wtedy, gdy zmienne te są niezależne. Kopuła odnosi się do niezależności a nie jak to było w przypadku dwóch poprzednich kopuł do zależności deterministycznych. Poniższy wykres pokazuje powierzchnię kopuły niezależnej oraz jej wykres konturowy (kod z programu R w załączniku 1C). Rysunek 1.3: Wykres powierzchni i konturu kopuły niezależnej Przejdźmy teraz do ważnego twierdzenia w teorii kopuł jakim jest twierdzenie Sklar’a. Twierdzenie to zostało po raz pierwszy sprecyzowane przez Sklar’a w roku 1959 i określa znaczenie kopuł w badaniu dystrybuant wielowymiarowych. Dzięki temu twierdzeniu możemy zauważyć, że kopuły razem z jednowymiarowymi dystrybuantami mogą być używane w konstrukcji wielowymiarowych dystrybuant oraz że wszystkie wielowymiarowe dystrybuanty zawierają kopuły. Twierdzenie 2. [10](Sklar, 1959) Niech F12...d będzie d-wymiarową dystrybuantą łączną z dystrybuantami brzegowymi F1 , F2 , . . . , Fd . Wtedy istnieje kopuła C : I d → I taka, że dla każdego x1 , x2 , . . . xd ∈ R̄, F12...d (x1 , x2 , . . . , xd ) = C(F1 (x1 ), F2 (x2 ), . . . , Fd (xd )). (1.5) Jeżeli F1 , F2 , . . . , Fd są ciągłe to kopuła C określona jest jednoznacznie; w przeciwnym razie kopuła C określona jest jednoznacznie na ran(F1 ) × ran(F2 ) × · · · × ran(Fd ). Odwrotnie, jeżeli C jest kopułą oraz F1 , F2 , . . . , Fd są dystrybuantami, wtedy funkcja F12...d określona przez (1.5) jest dystrybuantą łączną o dystrybuantach brzegowych F1 , F2 , . . . , Fd . W dowodzie twierdzenia będziemy korzystać z uogólnionej funkcji odwrotnej wprowadźmy więc jej definicję. Definicja 5. [10] 7 Uogólnioną funkcją odwrotną funkcji rosnącej T nazywamy funkcję postaci T ←(y) = inf{x : T (x) ≥ y}, gdzie używamy konwencji inf ∅ = ∞. Zajmując się kopułami musimy także znać operacje takie jak transformacja kwantyla i prawdopodobieństwa. Są one określone w poniższym stwierdzeniu. Stwierdzenie 1. [10] Niech G będzie dystrybuantą oraz niech G← oznacza jej uogólnioną funkcję odwrotną, czyli G← (y) = inf{x : G(x) ≥ y}. 1. Transformacja kwantyla: jeżeli U ∼ U (0, 1) ma standardowy rozkład jednostajny to P (G← (U ) ≤ x) = G(x). 2. Transformacja prawdopodobieństwa: jeżeli zmienna losowa Y ma dystrybuantę G, gdzie G jest ciągłą dystrybuantą jednowymiarową, to G(Y ) ∼ U (0, 1). Dowód. twierdzenia Sklar’a [10] Przeprowadzimy szkic dowodu. Udowodnimy istnienie i jednoznaczność kopuły w sytuacji, gdy dystrybuanty brzegowe F1 , . . . , Fd są ciągłe. Dla dowolnych x1 , . . . , xd ∈ R̄ jeżeli wektor zmiennych losowych X = (X1 , . . . , Xd ) ma dystrybuantę łączną F1...d (x1 , . . . , xd ), to F1...d (x1 , . . . , xd ) = P (X1 ≤ x1 , . . . , Xd ≤ xd ) = P (F1 (X1 ) ≤ F1 (x1 ), . . . , Fd (Xd ) ≤ Fd (xd )). W związku z naszym założeniem, że jednowymiarowe dystrybuanty brzegowe są ciągłe możemy skorzystać ze Stwierdzenia 1, a dokładnie z punktu 2. o transformacji prawdopodobieństwa. Otrzymujemy zatem, że dystrybuanty mają standardowe rozkłady jednostajne. Z tego oraz z definicji kopuły otrzymujemy, że (F1 (X1 ), . . . , Fd (Xd )) jest kopułą, którą oznaczymy przez C. Zatem otrzymaliśmy (1.5). Jeżeli oszacujemy (1.5) dla argumentów xi = Fi← (ui ), 0 ≤ ui ≤ 1, i = 1, . . . , d, oraz skorzystamy z własności uogólnionej funkcji odwrotnej, która brzmi [10]: T jest rosnącą funkcją ciągłą oraz T ← (y) < ∞ ⇒ T ◦ T ← (y) = y, to otrzymujemy C(u1 , . . . , ud ) = F (F1← (u1 ) . . . , Fd← (ud )), co daje nam reprezentacje C względem F oraz jej rozkładów brzegowych. Otrzymujemy zatem jednoznaczność kopuły. Aby przeprowadzić dowód w drugą stronę załóżmy, że C jest kopułą oraz że F1 , . . . , Fd są dystrybuantami jednowymiarowymi. Skonstruujemy wektor losowy o dystrybuancie (1.5) poprzez wzięcie wektora losowego U o dystrybuancie C. Ustalmy także wektor X := (F1← (U1 ), . . . , Fd← (Ud )). Wykorzystując własność uogólnionej funkcji odwrotnej dla funkcji rosnącej i dla której zachodzi 8 T ← (y) < ∞, która brzmi [10]: jeżeli funkcja T jest prawostronnie ciągła, T (x) ≥ y ⇔ T ← (y) ≤ x, otrzymujemy P (X1 ≤ x1 , . . . , Xd ≤ xd ) = P (F1← (U1 ) ≤ x1 , . . . , Fd← (Ud ) ≤ xd ) = P (U1 ≤ F1 (x1 ), . . . , Ud ≤ Fd (xd )) = C(F1 (x1 ), . . . , Fd (xd )). Zatem dowód twierdzenia został zakończony Możemy także zauważyć kilka własności jakimi charakteryzują się kopuły. Przedstawimy je dla przypadku dwuwymiarowego, jednak można je uogólnić dla przypadków wielowymiarowych. Niech C oznacza zbiór wszystkich kopuł określonych na kwadracie jednostkowym I 2 oraz niech C ∈ C. Własność 1.[2] Dla dowolnych u1 i u2 spełniających zależność 0 ≤ u1 ≤ u2 ≤ 1, funkcja v → C(u2 , v) − C(u1 , v) (1.6) jest niemalejąca. Analogicznie dla dowolnych v1 oraz v2 spełniających zależność 0 ≤ v1 ≤ v2 ≤ 1, funkcja u → C(u, v2 ) − C(u, v1 ) (1.7) jest funkcją niemalejącą. Obie własności wynikają wprost z definicji kopuły, a dokładnie z warunku na monotoniczność funkcji. Własność 2.[2] Dla każdego u1 , u2 ∈ [0, 1] spełniających 0 ≤ u1 ≤ u2 ≤ 1 oraz dla każdego v ∈ [0, 1] zachodzi 0 ≤ C(u2 , v) − C(u1 , v) ≤ u2 − u1 . (1.8) Analogicznie, dla każdego v1 , v2 ∈ [0, 1] spełniających 0 ≤ v1 ≤ v2 ≤ 1 oraz dla każdego u ∈ [0, 1] zachodzi 0 ≤ C(u, v2 ) − C(u, v1 ) ≤ v2 − v1 . (1.9) Dowód. Nierówność (1.8) otrzymujemy poprzez podstawienie do (1.6) najpierw v = 0 a następnie v = 1, gdyż v ∈ [0, 1] oraz poprzez skorzystanie z warunków brzegowych i połączenie otrzymanych nierówności. Czyli v=0 v=1 C(u2 , 0) − C(u1 , 0) = 0, C(u2 , 1) − C(u1 , 1) = u2 − u1 , zatem ze względu na zmienną v otrzymujemy ograniczenia 0 ≤ C(u2 , v) − C(u1 , v) ≤ u2 − u1 . 9 Nierówność (1.9) otrzymujemy analogicznie, dla zmiennej u ∈ [0, 1], czyli u=0 u=1 C(0, v2 ) − C(0, v1 ) = 0, C(1, v2 ) − C(1, v1 ) = v2 − v1 , zatem ze względu na zmienną u otrzymujemy ograniczenia 0 ≤ C(u, v2 ) − C(u, v1 ) ≤ v2 − v1 . Własność 3.[2] Dla każdego u1 , u2 , v1 , v2 ∈ [0, 1] |C(u2 , v2 ) − C(u1 , v1 )| ≤ |u1 − u2 | + |v1 − v2 |. (1.10) Widzimy z tej nierówności, że kopuły są funkcjami ciągłymi w sensie Lipschitza, ponieważ stała Lipschitza wynosi 1. Dowód. Nierówność (1.10) wynika z nierówności (1.8) i (1.9). Własność 4.[2] Dla każdego u ∈ [0, 1] funkcja v → C(u, v) jest niemalejąca. Analogicznie dla każdego v ∈ [0, 1] funkcja u → C(u, v) jest także niemalejąca. Dowód. Powyższe rezultaty otrzymujemy jako specjalne przypadki funkcji z Własności 1. Uzyskujemy je poprzez wzięcie u1 = 0 dla funkcji (1.6) oraz v1 = 0 dla funkcji (1.7). Z własności tych będziemy korzystać w dalszej części pracy. 1.2 Pochodne kopuł Z definicji kopuł wiemy, że są one funkcjami monotonicznymi. W związku z tym są one różniczkowalne prawie wszędzie [9], czyli możemy określić ich pochodne cząstkowe. Poprzez C,1 będziemy oznaczać pochodną względem pierwszego argumentu, czyli C,1 (u, v) = ∂C(u, v) . ∂u Poprzez C,2 oznaczymy pochodną cząstkową względem drugiego argumentu C,2 (u, v) = ∂C(u, v) ∂v oraz przez oznaczymy C,12 pochodną cząstkową mieszaną rzędu drugiego, czyli C,12 (u, v) = ∂ 2 C(u, v) . ∂u∂v Pochodne te będą nam potrzebne, aby zdefiniować operację produktową na kopułach. Najpierw jednak zauważmy pewne własności, jakie wykazują te pochodne, a które będą nam przydatne w dalszej części pracy. Własności pochodnych tak jak i przedstawione wcześniej własności kopuł 10 przedstawimy dla przypadku dwuwymiarowego, jednak można je uogólnić dla przypadków wielowymiarowych. Twierdzenie 3. [11] Niech C będzie kopułą. Dla dowolnego v ∈ I pochodna cząstkowa C,1 (u, v) istnieje dla prawie wszystkich u względem miary Lebesgue’a. Dla takich u i v zachodzi 0 ≤ C,1 (u, v) ≤ 1. (1.11) Podobnie dla dowolnego u ∈ I pochodna cząstkowa C,2 (u, v) istnieje dla prawie wszystkich v względem miary Lebesgue’a. Dla takich u i v zachodzi 0 ≤ C,2 (u, v) ≤ 1. (1.12) Co więcej funkcje u 7→ C,2 (u, v) i v 7→ C,1 (u, v) można określić i są niemalejące prawie wszędzie na I. Dowód. [2],[11] W związku z tym, że kopuły jako funkcje monotoniczne są różniczkowalne prawie wszędzie [9] to od razu otrzymujemy istnienie pochodnych cząstkowych C,1 (u, v) i C,2 (u, v). Nierówności (1.11) i (1.12) wynikają z Własności 3 poprzez wzięcie v1 = v2 dla (1.11) i u1 = u2 dla (1.12). Dla ustalonego v1 pochodna cząstkowa C,1 (u, v1 ) istnieje dla u ∈ Iv1 ⊆ I oraz miara Lebesgue’a zbioru Iv1 wynosi Leb(Iv1 ) = 1. Tak samo dla ustalonego v2 pochodna cząstkowa C,1 (u, v2 ) istnieje dla u ∈ Iv2 ⊆ I oraz miara Lebesgue’a zbioru Iv2 wynosi Leb(Iv2 ) = 1. Zatem, gdy v1 ≤ v2 otrzymujemy, że pochodna [C(u, v2 ) − C(u, v1 )],1 = C,1 (u, v2 ) − C,1 (u, v1 ) ≥ 0 (1.13) istnieje dla zbioru Iv1 ∩ Iv2 , gdy u ∈ Iv1 ∩ Iv2 . Gdy Y jest gęstym i przeliczalnym podzbiorem I, to zbiór J= \ Iv , v∈Y ma miarę Lebesgue’a równą Leb(J) = 1. Dla wszystkich v ∈ Y i u ∈ J pochodna C,1 (u, v) istnieje. Z (1.13) wynika, że funkcja Y 3 v → C,1 (u, v) jest niemalejąca dla u ∈ J. Czyli funkcję Y 3 v → C,1 (u, v) można zdefiniować i jest ona niemalejąca prawie wszędzie dla v ∈ I i dla prawie wszystkich u ∈ J. Analogiczne rezultaty otrzymujemy dla funkcji u → C,2 (u, v). Z powyższego twierdzenia otrzymujemy następujący wniosek. Wniosek 1. Dla funkcji (1.6) oraz (1.7) zachodzi [C(u2 , v) − C(u1 , v)],2 ≥ 0 jeżeli u1 ≤ u2 , (1.14) [C(u, v2 ) − C(u, v1 )],1 ≥ 0 jeżeli v1 ≤ v2 . (1.15) 11 1.3 Klasa kopuł Archimedesa Klasa kopuł Archimedesa jest ważną klasą kopuł, gdyż kopuły te znajdują wiele zastosowań. Związane jest to z tym, że stosunkowo łatwo można je skonstruować oraz klasa ta jest złożona z wielu rodzin kopuł a co za tym idzie występuje duża różnorodność rodzin. Kopuły należące do klasy kopuł Archimedesa posiadają także wiele przydatnych własności. Zacznijmy od wprowadzenia definicji funkcji pseudo-odwrotnej, która jest wykorzystywana w postaci kopuł z klasy kopuł Archimedesa. Definicja 6. [11] Niech ϕ będzie ciągłą, ściśle malejącą funkcją ϕ : I → [0, ∞] taką, że ϕ(1) = 0. Pseudo-odwrotnością ϕ jest funkcja ϕ[−1] o dziedzinie [0, ∞) i zbiorze wartości I określoną przez ( ϕ[−1] (t) = ϕ−1 (t), 0, 0 ≤ t ≤ ϕ(0), ϕ(0) ≤ t ≤ ∞. (1.16) Wprost z definicji wynika kilka własności tej funkcji. Mianowicie funkcja ϕ[−1] jest ciągła i nierosnąca na odcinku [0, ∞] oraz ściśle malejąca na odcinku [0, ϕ(0)]. Otrzymujemy także, że ϕ[−1] (ϕ(u)) = u na całym odcinku I, oraz ( [−1] ϕ(ϕ (t)) = 0 ≤ t ≤ ϕ(0) t, ϕ(0) ≤ t ≤ ∞ ϕ(0), = min(t, ϕ(0)). W sytuacji, gdy ϕ(0) = ∞, to ϕ[−1] = ϕ−1 . Lemat 1. [11] Niech ϕ będzie ciągłą, ściśle malejącą funkcją ϕ : I → [0, ∞] taką, że ϕ(1) = 0 oraz niech ϕ[−1] będzie funkcją pseudo-odwrotną funkcji ϕ zdefiniowaną poprzez (1.16). Niech C będzie funkcją C : I 2 → I określoną przez C(u, v) = ϕ[−1] (ϕ(u) + ϕ(v)). (1.17) Wtedy C spełnia warunki brzegowe dla kopuł. Dowód. Jako pierwsze sprawdźmy, czy funkcja spełnia warunek (1.2). Wobec tego C(u, 0) = ϕ[−1] (ϕ(u) + ϕ(0)), argument funkcji pseudo-odwrotnej jest postaci t = ϕ(u) + ϕ(0), czyli t ≥ ϕ(0). Zatem z definicji otrzymujemy, że C(u, 0) = ϕ[−1] (ϕ(u) + ϕ(0)) = 0. Z symetrii mamy także C(0, v) = 0, czyli warunek ten jest spełniony. Sprawdźmy teraz, czy funkcja 12 spełnia warunek (1.3): C(u, 1) = ϕ[−1] (ϕ(u) + ϕ(1)) = ϕ[−1] (ϕ(u) + 0) = ϕ[−1] (ϕ(u)) = u Z symetrii otrzymujemy C(1, v) = v. Zatem warunek (1.3) także jest spełniony. Otrzymaliśmy więc, że funkcja postaci C(u, v) = ϕ[−1] (ϕ(u) + ϕ(v)) spełnia warunki brzegowe (1.2) i (1.3). Lemat 2. [11] Niech ϕ będzie ciągłą, ściśle malejącą funkcją ϕ : I → [0, ∞] taką, że ϕ(1) = 0 oraz niech ϕ[−1] będzie funkcją pseudo-odwrotną funkcji ϕ zdefiniowaną poprzez (1.16). Niech C będzie funkcją C : I 2 → I określoną przez C(u, v) = ϕ[−1] (ϕ(u) + ϕ(v)) (1.18) spełniającą warunki brzegowe (1.2) i (1.3). Wtedy C jest 2-rosnąca wtedy i tylko wtedy, gdy dla każdego v ∈ I oraz u1 ≤ u2 C(u2 , v) − C(u1 , v) ≤ u2 − u1 . (1.19) Dowód. Pokażemy, że nierówność (1.19) jest równoważna VC ([u1 , u2 ] × [v, 1]) ≥ 0, czyli VC ([u1 , u2 ] × [v, 1]) = C(u2 , 1) − C(u2 , v) − C(u1 , 1) + C(u1 , v) ≥ 0 u2 − C(u2 , v) − u1 + C(u1 , v) ≥ 0 C(u1 , v) − C(u2 , v) ≥ u1 − u2 C(u2 , v) − C(u1 , v) ≤ u2 − u1 . Zatem nierówność ta zachodzi zawsze, gdy funkcja C jest 2-rosnąca. Stąd załóżmy, że C spełnia nierówność (1.19). Wybierzmy v1 , v2 ∈ I takie, że v1 ≤ v2 oraz zauważmy, że C(0, v2 ) = 0 ≤ v1 ≤ v2 = C(1, v2 ). Funkcja C jest ciągła, ponieważ funkcje ϕ i ϕ[−1] są ciągłe, czyli istnieje t ∈ I takie, że C(t, v2 ) = v1 lub w równoważnej postaci otrzymujemy C(t, v2 ) = ϕ[−1] (ϕ(v2 ) + ϕ(t)) [−1] ϕ(ϕ = v1 (ϕ(v2 ) + ϕ(t))) = ϕ(v1 ) ϕ(v2 ) + ϕ(t) = ϕ(v1 ). A stąd otrzymujemy C(u2 , v1 ) − C(u1 , v1 ) = ϕ[−1] (ϕ(u2 ) + ϕ(v1 )) − ϕ[−1] (ϕ(u1 ) + ϕ(v1 )) = ϕ[−1] (ϕ(u2 ) + ϕ(v2 ) + ϕ(t)) − ϕ[−1] (ϕ(u1 ) + ϕ(v2 ) + ϕ(t)) h i = ϕ[−1] ϕ ϕ[−1] (ϕ(u2 ) + ϕ(v2 )) + ϕ(t) + h i −ϕ[−1] ϕ ϕ[−1] (ϕ(u1 ) + ϕ(v2 )) + ϕ(t) = C(C(u2 , v2 ), t) − C(C(u1 , v2 ), t) ≤ C(u2 , v2 ) − C(u1 , v2 ). Zatem otrzymaliśmy, że C jest funkcją 2-rosnącą. 13 Przejdźmy teraz do twierdzenia dzięki któremu otrzymujemy, że funkcja (1.17) jest kopułą. Dla kopuł, które daje się przedstawić w tej postaci używamy nazwy kopuł Archimedesa. Twierdzenie 4. [11] Niech ϕ będzie ciągłą, ściśle malejącą funkcją ϕ : I → [0, ∞] taką, że ϕ(1) = 0 oraz niech ϕ[−1] będzie funkcją pseudo-odwrotną funkcji ϕ zdefiniowaną poprzez (1.16). Wtedy funkcja C : I 2 → I określona przez C(u, v) = ϕ[−1] (ϕ(u) + ϕ(v)) jest kopułą wtedy i tylko wtedy, gdy ϕ jest funkcją wypukłą. Zanim przejdziemy do dowodu tego twierdzenia przypomnijmy definicję funkcji wypukłej. Definicja 7. [3] Funkcję f (x) określoną i ciągłą w przedziale A nazywamy wypukłą jeżeli dla dowolnych punktów x1 , x2 ∈ A nierówność f (αx1 + βx2 ) ≤ αf (x1 ) + βf (x2 ) jest spełniona dla wszystkich liczb dodatnich α i β takich, że α + β = 1. Powyższe twierdzenie zostało po raz pierwszy udowodnione przez Alsina et al. w 2005, my bazujemy na dowodzie Nelsena z 2006. Przejdźmy zatem do dowodu. Dowód. W Lemacie 1 udowodniliśmy już, że funkcja C spełnia warunki brzegowe występujące w definicji kopuły. Zostaje nam tylko udowodnić, że (1.19) zachodzi wtedy i tylko wtedy, gdy funkcja ϕ jest funkcją wypukłą. ⇒ Po podstawieniu do nierówności (1.19) wzoru na funkcję C dla u1 ≤ u2 otrzymujemy odpowiednik tej nierówności ϕ[−1] (ϕ(u2 ) + ϕ(v)) − ϕ[−1] (ϕ(u1 ) + ϕ(v)) ≤ u2 − u1 u1 + ϕ[−1] (ϕ(u2 ) + ϕ(v)) ≤ u2 + ϕ[−1] (ϕ(u1 ) + ϕ(v)). Jeżeli teraz oznaczymy a = ϕ(u1 ), b = ϕ(u2 ) oraz c = ϕ(v) a następnie podstawimy te oznaczenia do powyższej nierówności to otrzymujemy, że nierówność (1.19) jest równoważna z ϕ[−1] (a) + ϕ[−1] (b + c) ≤ ϕ[−1] (b) + ϕ[−1] (a + c), (1.20) gdzie a ≥ b i c ≥ 0. Załóżmy teraz, że funkcja pseudo-odwrotna ϕ[−1] spełnia nierówność (1.20). Wybierzmy dowolne s, t ∈ [0, ∞) spełniające 0 ≤ s < t. Jeżeli ustalimy a = s+t 2 ,b =sic= oraz podstawimy te wartości do nierówności (1.20) to otrzymujemy t−s s+t [−1] +ϕ s+ 2 2 s + t s + t [−1] [−1] ϕ +ϕ 2 2 s + t ϕ[−1] 2 1 1 ϕ[−1] s+ t 2 2 [−1] ϕ [−1] ≤ ϕ [−1] (s) + ϕ s+t t−s + 2 2 ≤ ϕ[−1] (s) + ϕ[−1] (t) ≤ ≤ ϕ[−1] (s) + ϕ[−1] (t) 2 1 [−1] 1 ϕ (s) + ϕ[−1] (t). 2 2 Ponieważ funkcja ϕ[−1] jest funkcją ciągłą to z powyższego wynika, że jest funkcją wypukłą. ⇐ 14 t−s 2 Załóżmy, że funkcja ϕ[−1] jest funkcją wypukłą. Ustalmy a, b, c ∈ I takie, że a ≥ b, c ≥ 0. Niech γ= a−b a−b+c . Przekształcimy teraz wzór na γ tak aby otrzymać wzory na a i b + c. (a − b + c)γ = a−b aγ − bγ + cγ = a−b aγ + b − bγ + cγ a = a = b(1 − γ) + γ(a + c). Teraz wyznaczymy wzór na b + c (a − b + c)γ = a−b aγ + b − bγ + cγ + c − c = a b+c = a + c − aγ + bγ − cγ b+c = a(1 − γ) + c(1 − γ) + bγ b+c = (1 − γ)(a + c) + bγ. Stąd nakładając na otrzymane wartości a i b+c funkcję pseudo-odwrotną otrzymujemy nierówności ϕ[−1] (a) ≤ (1 − γ)ϕ[−1] (b) + γϕ[−1] (a + c) oraz ϕ[−1] (b + c) ≤ γϕ[−1] (b) + (1 − γ)ϕ[−1] (a + c). Dodajmy teraz powyższe nierówności ϕ[−1] (a) + ϕ[−1] (b + c) ≤ (1 − γ)ϕ[−1] (b) + γϕ[−1] (a + c) + + γϕ[−1] (b) + (1 − γ)ϕ[−1] (a + c) ϕ[−1] (a) + ϕ[−1] (b + c) ≤ ϕ[−1] (b) + ϕ[−1] (a + c). Otrzymaliśmy zatem nierówność (1.20), która była równoważna nierówności (1.19). Zatem dowód został zakończony. Kopuły, które możemy przedstawić w postaci (1.17) nazywane są kopułami Archimedesa. Definicja 8. [10] Ciągłą, ściśle malejącą funkcję wypukłą ϕ : [0, 1] → [0, ∞] spełniającą ϕ(1) = 0 nazywamy generatorem kopuły Archimedesa. Jeżeli ϕ(0) = ∞ to mówimy, że ϕ jest generatorem ścisłym. W sytuacji, gdy badany generator okaże się generatorem ścisłym to możemy przyjąć ϕ[−1] = ϕ−1 . Zatem kopułę możemy przedstawić w postaci C(u, v) = ϕ−1 (ϕ(u) + ϕ(v)). Takie kopuły możemy nazywać ścisłymi kopułami Archimedesa. Przejdziemy teraz do przykładów rodzin, które należą do klasy kopuł Archimedesa. Znając generatory (Nelsen, 2006) wyprowadzimy wzory dla trzech rodzin kopuł, a mianowicie dla rodziny kopuł Claytona, Gumbela i Franka. Każda z tych rodzin należy do rodzin kopuł jednoparametrycznych, gdzie parametr θ mówi o stopniu zależności pomiędzy rozkładami brzegowymi. Więcej przykładów kopuł należących do tej klasy wraz z ich generatorami można znaleźć w [11]. 15 1.3.1 Kopuła Claytona Generator rodziny kopuł Claytona jest postaci [11]: ϕθ (t) = t−θ − 1 , θ θ ∈ [−1, ∞)\{0}. Sprawdzimy najpierw, czy generator ten jest generatorem ścisłym ϕθ (0) = 0−θ − 1 1 =− . θ θ Generator w punkcie 0 jest rożny od ∞, czyli nie jest generatorem ścisłym. Zatem dla t ∈ [0, − θ1 ] funkcja pseudo-odwrotna wynosi ϕ−1 (t), a dla t ∈ [− θ1 , ∞] wynosi 0. Możemy zatem zapisać ją w postaci ϕ[−1] (t) = max{ϕ−1 (t), 0}. Wyznaczmy teraz funkcję odwrotną dla generatora t−θ − 1 θ 1θ −θ θ · ϕθ (t) + 1 = t = t 1 1 (θ · ϕθ (t) + 1) θ = t 1 t = (θ · ϕθ (t) + 1)− θ . ϕθ (t) = Zatem funkcja pseudo-odwrotna jest postaci 1 ϕ[−1] (t) = max{(θt + 1)− θ , 0}. Podstawimy teraz otrzymaną funkcję do wzoru na kopułę (1.17) CθCl (u, v) ϕ[−1] (ϕ(u) + ϕ(v)) u−θ − 1 v −θ − 1 = ϕ[−1] ( + ) θ θ u−θ + v −θ − 2 = ϕ[−1] ( ) θ 1 u−θ + v −θ − 2 = max{(θ · + 1)− θ , 0} θ 1 = max{(u−θ + v −θ − 1)− θ , 0}. = Otrzymaliśmy zatem wzór ogólny na rodzinę kopuł Claytona dla parametru θ ∈ [−1, ∞)\{0}. W przypadku, gdy parametr θ → 0 możemy mówić o kopule, która posiada niezależne rozkłady brzegowe. Na poniższych wykresach pokazane są gęstość rozkładu kopuły Claytona oraz 1000 elementowa próba losowa z kopuły Claytona (w obu przypadkach parametr θ = 5, rozkładami brzegowymi są standardowe rozkłady jednostajne). 16 a b Rysunek 1.4: Kopuła Claytona (a) wykres gęstości, (b) próba losowa 1000 elementowa Kody z programu R generujące powyższe wykresy znajdują się w załączniku 2A. 1.3.2 Kopuła Gumbela Generator kopuły Gumbela jest postaci [11]: ϕθ (t) = (− ln t)θ , θ ∈ [1, ∞). Jako pierwsze sprawdzimy, czy generator ten jest generatorem ścisłym. Zatem ϕθ (0) = (− ln 0)θ = ∞, wartość funkcji w punkcie 0 wynosi ∞, czyli otrzymaliśmy generator ścisły. W takim przypadku funkcja pseudo-odwrotna jest równa funkcji odwrotnej dla każdego t. Wyznaczmy więc funkcję odwrotną do funkcji ϕ ϕθ (t) 1 −ϕθ (t) θ = (− ln t)θ = ln t 1 t = e−ϕθ (t) θ . 1 −t θ Wyznaczyliśmy funkcję odwrotną postaci ϕ−1 i możemy wstawić ją do wzoru na kopułę θ (t) = e (1.17). Zatem CθGu (u, v) = ϕ[−1] (ϕ(u) + ϕ(v)) = ϕ−1 ((− ln u)θ + (− ln v)θ ) = exp{−((− ln u)θ + (− ln v)θ ) θ }. 1 Czyli otrzymaliśmy wzór na rodzinę kopuł Gumbela zależną od parametru θ ∈ [1, ∞). W przypadku, gdy wartość parametru θ wynosi 1 to otrzymujemy kopułę o niezależnych rozkładach brzegowych. Na poniższych wykresach widzimy wykres gęstości kopuły Gumbela oraz 1000 elementową próbę losową z tej kopuły, dla obu wykresów przyjęliśmy θ = 5 oraz rozkładami brzegowymi są standardowe rozkłady jednostajne. 17 a b Rysunek 1.5: Kopuła Gumbela (a) wykres gęstości, (b) próba losowa 1000 elementowa Kod dla programu R, z którego otrzymaliśmy powyższe wykresy można znaleźć w załączniku 2B. 1.3.3 Kopuła Franka Generator dla rodziny kopuł Franka ma postać [11]: ϕθ (t) = − ln e−θt − 1 , e−θ − 1 θ ∈ (−∞, ∞)\{0}. Sprawdzimy, czy generator jest generatorem ścisłym ϕθ (0) = − ln e−θ·0 − 1 = ∞. e−θ − 1 Tak jak i dla kopuły Gumbela wartość funkcji w punkcie 0 wynosi ∞, zatem generator ϕ jest generatorem ścisłym i funkcja pseudo-odwrotna jest równa funkcji odwrotnej. Wyznaczymy zatem funkcję odwrotną: ϕθ (t) = −ϕθ (t) = e−ϕθ (t) = (e−θ − 1)e−ϕθ (t) + 1 = e−θt − 1 e−θ − 1 −θt e −1 ln −θ e −1 e−θt − 1 e−θ − 1 e−θt ln[(e−θ − 1)e−ϕθ (t) + 1] = ln e−θt −θt = t = − ln ln[(e−θ − 1)e−ϕθ (t) + 1] − ln[(e−θ − 1)e−ϕθ (t) + 1] . θ Czyli funkcja odwrotna jest postaci 1 −θ − 1)e−t + 1]. ϕ−1 θ (t) = − ln[(e θ 18 Tak wyznaczoną funkcję możemy wstawić do wzoru na kopułę CθF r (u, v) = ϕ[−1] (ϕ(u) + ϕ(v)) = ϕ−1 (ϕ(u) + ϕ(v)) e−θv − 1 e−θu − 1 − ln −θ = ϕ−1 − ln −θ e −1 e −1 −θ −θv e −1 e −1 −1 = ϕ ln −θu − ln −θ e −1 e −1 −θ −θ e −1 e −1 −1 = ϕ ln −θu · e − 1 e−θv − 1 (e−θ − 1)2 −1 = ϕ ln −θu (e − 1)(e−θv − 1) (e−θ −1)2 1 − ln −θu (e −1)(e−θv −1) = − ln 1 + (e−θ − 1)e θ 1 (e−θu − 1)(e−θv − 1) = − ln 1 + (e−θ − 1) θ (e−θ − 1)2 1 (e−θu − 1)(e−θv − 1) = − ln 1 + . θ (e−θ − 1) Otrzymaliśmy zatem wzór na kopuły należące do rodziny kopuł Franka w zależności od parametru θ ∈ (−∞, ∞)\{0}. Poniższe wykresy przedstawiają gęstość kopuły oraz 1000-elementową próbę losową, gdy za parametr θ przyjęliśmy wartość 5 oraz użyliśmy jednostajnych rozkładów brzegowych. a b Rysunek 1.6: Kopuła Franka (a) wykres gęstości, (b) próba losowa 1000 elementowa W załączniku 2C znajduje się kod ze środowiska R, dzięki któremu otrzymaliśmy powyższe wykresy. 19 Rozdział 2 Procesy stochastyczne Zaczniemy od ogólnego wprowadzenia do procesów stochastycznych, a następnie przejdziemy do przykładów procesów takich jak proces Wienera, czy geometryczny ruch Browna. Powiemy także jaki proces możemy nazwać procesem Markowa. 2.1 Proces stochastyczny Możemy powiedzieć, że procesy stochastyczne jest to teoria zajmująca się badaniem ciągów zmiennych losowych {Xt }t∈T określonych na danej przestrzeni probabilistycznej (Ω, F, P ), gdzie t ∈ T zazwyczaj oznacza czas. Można także powiedzieć, że jest to matematyczna teoria służąca do opisu modelowania i prognozy zjawisk losowych podlegających ewolucji. Przykładami procesów mogą być ceny akcji na giełdzie, kursy walut, gra hazardowa, wartość temperatury itp.. W pracy proces stochastyczny w skrócie będziemy nazywać procesem. Niech (Ω, F, P ) będzie przestrzenią probabilistyczną, gdzie Ω jest to zbiór zdarzeń elementarnych, F jest to σ-ciało zdarzeń, a P jest miarą probabilistyczną. Gdy proces przebiega w czasie to możemy wyróżnić dwa rodzaje czasu: czas dyskretny i czas ciągły. O czasie dyskretnym mówimy, gdy zjawisko badamy w ustalonych momentach, wtedy zbiór chwil jest zbiorem przeliczalnym i zazwyczaj w postaci T ⊆ {0, 1, . . .}∪{∞}. Natomiast o czasie ciągłym mówimy, gdy badamy zjawisko stale i wtedy zbiór chwili jest zbiorem zawartym w [−∞, ∞], zazwyczaj przyjmuje się T = [0, ∞) lub T = [0, T ]. Dla tak określonej przestrzeni możemy wprowadzić pojęcie filtracji. Definicja 9. [6] Filtracją nazywamy niemalejącą rodzinę σ-ciał F = (Ft )t∈T , gdzie Fs ⊂ Ft ⊂ F dla s < t; s, t ∈ T. Możemy powiedzieć, że filtracja niesie informację o procesie do chwili t, gdyż w chwili obecnej wiemy jaki był stan procesu wcześniej i czy dane zdarzenie zaszło. Znając definicję filtracji możemy zdefiniować, czym jest proces stochastyczny. Definicja 10. [7] Rodzinę zmiennych losowych (Xt )t∈T nazywamy procesem stochastycznym. Proces jest adaptowany do filtracji F = (Ft )t∈T , jeśli dla każdego t ∈ T zmienna losowa Xt jest Ft -mierzalna. Funkcja t 7→ X(·, ω) dla ustalonego zdarzenia ω nazywana jest realizacją procesu stochastycznego lub trajektorią procesu. Interpretacja trajektorii jest taka, że funkcja ta mówi nam o przebiegu badanego zjawiska w czasie dla konkretnego zdarzenia ω. Gdy badamy proces z czasem ciągłym, to proces taki ma trajektorie ciągłe. Gdy zbiór chwil T jest zbiorem przeliczalnym, to możemy mówić o procesie stochastycznym 20 X jako o ciągu losowym w postaci X1 , X2 , . . . . Ważnymi pojęciami są także przestrzeń stanów oraz stany procesu. Możemy powiedzieć, że pojęcie stanów procesu jest tym samym co wartość zmiennej losowej, natomiast zmianę stanów procesu nazywamy przejściem. Definicja 11. [12] Jeśli dla każdego t ∈ T funkcja X : T ×Ω → X, przekształca zbiór T ×Ω na zbiór X, to X nazywamy przestrzenią stanu procesu stochastycznego, a elementy zbioru X stanami procesu stochastycznego. Przejdźmy teraz do określenia pojęcia czasu stopu procesu. Ogólnie mówiąc czas stopu jest to moment, w którym proces osiągnie satysfakcjonujący nas wynik (ustalone wcześniej bariery) i zostanie przerwany. Formalna definicja brzmi: Definicja 12. [6] Czasem stopu względem filtracji (Ft )t∈T nazywamy zmienną losową τ : Ω → T ∪{+∞}, spełniającą warunek {τ ≤ t} ∈ Ft dla wszystkich t ∈ T. Dla czasu stopu można również użyć nazwy jak moment stopu, moment zatrzymania czy moment Markowa. Wprowadźmy jeszcze definicję na martyngał. Definicja 13. [6] Rodzina (Xt , Ft )t∈T , gdzie zmienne losowe Xt są całkowalne dla t ∈ T jest martyngałem, jeśli dla s ≤ t, s, t ∈ T E(Xt |Fs ) = Xs . 2.2 Proces Markowa Jednym z rodzajów procesów stochastycznych jest proces Markowa. Jest to dość popularny proces, gdyż charakteryzuje się on tak zwanym brakiem pamięci. Zacznijmy więc od wprowadzenia formalnej definicji. Definicja 14. [11] Proces Xt , t ∈ T jest procesem Markowa jeżeli dla każdego skończonego podzbioru {t1 , t2 , . . . , tn } zbioru T oraz dla dowolnego t ∈ T takiego, że t1 < t2 < . . . < tn < t zachodzi P (Xt ≤ x|Xt1 = x1 , Xt2 = x2 , . . . , Xtn = xn ) = P (Xt ≤ x|Xtn = xn ). (2.1) Warunek (2.1) nazywany jest własnością Markowa. Powyższą własność możemy rozumieć w następujący sposób: stan procesu stochastycznego X w badanej chwili t jest zależny od tego jaki był stan tego procesu w chwili tn , natomiast nie jest zależny od stanów procesu we wszystkich chwilach wcześniejszych niż chwila tn , czyli nie zależy od chwil t1 , t2 , . . . , tn−1 . W sytuacji, gdy chwilę t nazwiemy przyszłością, chwilę tn teraźniejszością oraz chwile t1 , . . . , tn−1 przeszłością własność Markowa możemy rozumieć następująco: procesem Markowa nazywamy taki proces stochastyczny X, którego stan w przyszłości jest zależny od stanu w teraźniejszości i nie jest zależny od stanów z przeszłości. 21 2.3 Proces Wienera Proces Wienera jest to matematyczny model fizycznego zjawiska ruchu cząsteczek zawieszonych w cieczy nazywanego ruchem Browna. Aby móc powiedzieć, że proces stochastyczny jest procesem Wienera musi on spełniać poniższą definicję: Definicja 15. [6] Standardowym procesem Wienera nazywamy proces W spełniający następujące warunki: 1. W0 = 0, 2. przyrosty procesu są niezależne, czyli jeśli 0 < t1 < . . . < tn , to zmienne losowe Wt1 , Wt2 − Wt1 , . . . , Wtn − Wtn−1 są niezależne, 3. dla wszystkich t oraz dla u ≥ 0 Wt+u − Wu ∼ N (0, t), gdzie parametr t oznacza wariancję, 4. trajektorie procesu są ciągłe. Na rysunku 2.1 widzimy 15 niezależnych symulacji trajektorii procesu Wienera (kod z programu R w załączniku 3). Rysunek 2.1: Realizacje jednowymiarowego procesu Wienera Proces Wienera jest przykładem procesu Markowa (Shmitz, 2003; za Karatzas i Shreve, 2000),[7]. Wiemy także, że chociaż trajektorie procesu są ciągłe to są one nieróżniczkowalne (dowód tego można znaleźć w [6]). Proces ten wykorzystamy w następnej części tego rozdziału, aby otrzymać geometryczny ruch Browna. 22 2.4 Geometryczny ruch Browna Zajmiemy się teraz procesem stochastycznym, który nosi nazwę geometrycznego ruchu Browna. Proces ten znajduje zastosowanie do modelowania procesów, których wartości nigdy nie schodzą poniżej zera. Przykładem takiego procesu może być proces ceny akcji, który zawsze jest dodatni. W związku z tym geometryczny ruch Browna znajduje zastosowanie przy wycenie opcji w modelu Blacka-Scholesa (model ten omówimy w rozdziale 5.2). Definicja 16. [7] Mówimy, że proces stochastyczny St jest geometrycznym ruchem Browna, gdy jest on postaci St = S0 e((µ− σ2 2 )t+σWt ) , gdzie St oznacza cenę akcji w chwili t, S0 jest to cena akcji w chwili 0. Przez µ oznaczamy dryft, przez σ oznaczamy zmienność ceny, natomiast Wt jest to proces Wienera. Wartość parametru σ zazwyczaj mieści się w przedziale [0, 15; 0, 6]. Powyższe równanie jest rozwiązaniem równania stochastycznego postaci dSt = µSt dt + σSt dWt . Pokażemy teraz własność rozwiązania tego równania: zmienna losowa (2.2) St S0 ma rozkład logaryt- micznie normalny. Skoro zmienna losowa ma mieć rozkład logarytmicznie normalny to znaczy, że logarytm tej zmiennej losowej ma rozkład normalny, zatem ln σ2 St ∼ N ((µ − )t, σ 2 t). S0 2 Powyższą własność sprawdzimy numerycznie, najpierw jednak określmy parametry na których będzie pracować. Dla 1000 trajektorii będziemy badać wartość procesu w chwili T = 1, gdzie ∆t = 0, 001. Za wartość początkową procesu przyjmujemy S0 = 1 oraz ustalamy parametry µ = 0, 15 i σ = 0, 3. Dla takich wartości będziemy generować trajektorie geometrycznego ruchu Browna. Aby wygenerować taką trajektorię i co za tym idzie rozwiązanie równania (2.2) stosujemy prostą metodę [8]. Pierwsze co musimy zrobić to zdyskretyzować czas T poprzez ustalenie kroku ∆t. Tak więc możemy określić proces dyskretny (Sn )n≥0 , dzięki któremu otrzymamy aproksymację rozwiązania równania stochastycznego w chwili T = n∆t. Dla czasu dyskretnego równanie stochastyczne możemy zapisać ( S0 Sn+1 − Sn = x = µSn ∆t + σ(W(n+1)∆t − Wn∆t ), gdzie W jest procesem Wienera, a ciąg przyrostów (W(n+1)∆t − Wn∆t ) jest ciągiem niezależnych zmiennych losowych o rozkładzie normalnym o średniej 0 i wariancji ∆t. W symulacjach przyrost √ ten zastępujemy przez gn ∆t, gdzie (gn )n≥0 jest ciągiem niezależnych zmiennych losowych o standardowym rozkładzie normalnym N (0, 1). Przy użyciu takiego oznaczenia równanie stochastyczne możemy zapisać ( S0 = Sn+1 = x √ Sn + µSn ∆t + σ ∆tgn . Możemy więc już wygenerować trajektorie. Na rysunku 2.2 (a) widoczna jest pojedyncza realizacja, natomiast na rysunku (b) widzimy 1000 niezależnych trajektorii tego procesu. 23 a b Rysunek 2.2: Realizacje geometrycznego ruchu Browna (a) pojedyncza realizacja, (b) 1000 niezależnych realizacji Dla tak wygenerowanych trajektorii sprawdzimy, czy wartość procesu w chwili T ma rozkład lognormalny. Na początku utworzymy histogram 1000 wartości SS0t . Chcemy nanieś na niego także krzywą gęstości rozkładu lognormalnego, więc dla otrzymanych wartości SS0t znajdujemy wartość oczekiwaną oraz odchylenie standardowe takie, aby zmienne miały rozkład lognormalny. Dla takich parametrów generujemy krzywą gęstości. Na poniższym rysunku widzimy histogram otrzymanych wartości wraz z krzywą gęstości rozkładu lognormalnego. Ponieważ wykresy nakładają się na siebie możemy założyć, że rozwiązanie równania różniczkowego ma rozkład lognormalny. Rysunek 2.3: Histogram wraz z krzywą gęstości rozkładu lognormalnego dla wartości ST S0 Aby mieć pewność, że zmienna ta ma rozkład lognormalny przeprowadzimy test statystyczny. Będzie to test Shapiro-Wilka, który sprawdza normalność rozkładu. Za poziom istotności przyjmujemy α = 0, 05 oraz badamy następujące hipotezy: H0 : zmienna ma rozkład normalny 24 Ha : zmienna nie ma rozkładu normalnego. Aby użyć tego testu musimy najpierw zlogarytmować otrzymane wcześniej wartości ST S0 . Zanim przejdziemy do wyników testu, stworzymy histogram zlogarytmowanych wartości wraz z krzywą gęstości rozkładu normalnego o parametrach dopasowanych do naszych wartości. Krzywa i histogram pokrywają się, co pozwala nam twierdzić, że jest to rozkład normalny. Rysunek 2.4: Histogram wraz z krzywą gęstości rozkładu normalnego dla wartości ln SST0 Dla potwierdzenia poniżej prezentujemy wyniki testu Shapiro-Wilka. Otrzymaliśmy p-wartość równą 0, 4738, jest ona większa od przyjętego poziomu istotności. Nie mamy zatem podstaw do odrzucenia hipotezy zerowej mówiącej o normalności rozkładu. Potwierdziliśmy tym, że geometryczny ruch Browna ma rozkład lognormalny. Rysunek 2.5: Wynik testu Shapiro-Wilka dla badanej próbki Kod z programu R generujący wszystkie powyższe wykresy znajduje się w załączniku 4. 25 Rozdział 3 Operacja produktowa ∗ dla kopuł i proces Markowa 3.1 Operacja produktowa ∗ Wprowadzimy teraz definicję operacji produktowej * na kopułach, która to wykorzystuje zdefiniowane wcześniej pochodne cząstkowe. Definicja 17. [2] Niech A, B ∈ C. Operacja produktowa * z A i B jest funkcją A ∗ B : I 2 → I określoną następująco Z ∀x,y∈[0,1] (A ∗ B)(x, y) = 1 A,2 (x, t)B,1 (t, y)dt. (3.1) 0 Z pokazanej wcześniej Własności 3. wiemy, że kopuły A i B są funkcjami ciągłymi, zatem całka w powyższej definicji istnieje. Kolejne twierdzenie gwarantuje nam, że tak zdefiniowana operacja produktowa jest kopułą. Twierdzenie 5. [2] A ∗ B ∈ C. Dowód. [2] Mamy wykazać, że produkt A ∗ B jest kopułą, zatem musimy sprawdzić warunki na 2-kopułę. Niech C = A ∗ B oraz niech x, ξ, y, η ∈ [0, 1] spełniają zależności 0 ≤ x ≤ ξ ≤ 1 i 0 ≤ y ≤ η ≤ 1. Jako pierwsze wykażemy spełnienie warunków brzegowych a następnie warunku monotoniczności. 1. (Warunki brzegowe) • ∀x,y∈[0,1] C(0, y) = C(x, 0) = 0 Z C(0, y) = (A ∗ B)(0, y) = 1 A,2 (0, t)B,1 (t, y)dt 0 Z 1 0 · B,1 (t, y)dt = 0, = 0 26 Z C(x, 0) = (A ∗ B)(x, 0) = 1 A,2 (x, t)B,1 (t, 0)dt 0 Z 1 A,2 (x, t) · 0dt = 0. = 0 • ∀x,y∈[0,1] C(x, 1) = x i C(1, y) = y 1 Z C(x, 1) = (A ∗ B)(x, 1) = A,2 (x, t)B,1 (t, 1)dt 0 1 Z A,2 (x, t) · 1dt = A(x, t)|10 = A(x, 1) − A(x, 0) = 0 = x − 0 = x, = (A ∗ B)(1, y) = Z C(1, y) 1 A,2 (1, t)B,1 (t, y)dt 0 1 Z 1 · B,1 (t, y)dt = B(t, y)|10 = B(1, y) − B(0, y) = 0 = y − 0 = y. Wykazaliśmy, że warunki brzegowe są spełnione. 2. (Warunek monotoniczności) Musimy wykazać, że ∀x,y,ξ,η∈[0,1];x≤ξ;y≤η C(x, y) + C(x, y) + C(ξ, η) − C(x, η) − C(ξ, y) ≥ 0, C(ξ, η) − C(x, η) − C(ξ, y) = (A ∗ B)(x, y) + (A ∗ B)(ξ, η) − (A ∗ B)(x, η) − (A ∗ B)(ξ, y) Z 1 Z 1 = A,2 (x, t)B,1 (t, y)dt + A,2 (ξ, t)B,1 (t, η)dt + = 0 Z 0 1 − Z 1 A,2 (x, t)B,1 (t, η)dt − 0 Z A,2 (ξ, t)B,1 (t, y)dt 0 1 (−A,2 (x, t) [B,1 (t, η) − B,1 (t, y)] + A,2 (ξ, t) [B,1 (t, η) − B,1 (t, y)]) dt = 0 Z 1 [A,2 (ξ, t) − A,2 (x, t)] [B,1 (t, η) − B,1 (t, y)] dt = 0 Z = 0 1 [A(ξ, t) − A(x, t)],2 [B(t, η) − B(t, y)],1 dt. Z (1.14) oraz (1.15) mamy, że funkcje podcałkowe są nieujemne zatem otrzymujemy C(x, y) + C(ξ, η) − C(x, η) − C(ξ, y) ≥ 0. Zatem wykazaliśmy, że warunek monotoniczności dla operacji * dla kopuł jest spełniony. Warunki na kopułę są spełnione, zatem A ∗ B ∈ C. Dla n > 2 definicję operacji * możemy uogólnić. W takim przypadku definicja ta brzmi następująco: Definicja 18. (Produkt ?) [2] 27 Niech A będzie m-kopułą oraz niech B będzie n-kopułą. Produkt ? jest funkcją A ? B : [0, 1]m+n−1 → [0, 1] określoną następująco Z xm A ? B(x1 , . . . , xm+n−1 ) = A,m (x1 , . . . , xm−1 , ξ)B,1 (ξ, xm+1 , . . . , xm+n−1 )dξ. (3.2) 0 W przypadku, gdy n = m = 2 pomiędzy produktami ? i ∗ zachodzi następująca relacja: A ∗ B(x, y) = A ? B(x, 1, y), A ? B jest (m+n-1)-kopułą. 3.2 Operacja produktowa ∗ a proces Markowa W tym podrozdziale przedstawimy twierdzenie, które łączy procesy Markowa z funkcjami kopuł. Gdy będziemy używać oznaczenia Ft będziemy mieli na myśli dystrybuantę FXt , natomiast Cst oznaczać będzie kopułę CXs Xt . Niech X oraz Y będą zmiennymi losowymi zdefiniowanymi na tej samej przestrzeni probabilistycznej oraz niech C oznacza ich kopułę. Kolejne twierdzenie łączy pochodne cząstkowe kopuł z dystrybuantami warunkowymi postaci E(IX<x |Y ) oraz E(IY <y |X). Twierdzenie 6. [2] Jeżeli rzeczywiste zmienne losowe X i Y mają kopułę C i ciągłe dystrybuanty brzegowe FX i FY , to ∀x∈R E(IX≤x |Y )(ω) = C,2 (FX (x), FY (Y (ω))) prawie na pewno (3.3) ∀y∈R E(IY ≤y |X)(ω) = C,1 (FX (X(ω)), FY (y)) prawie na pewno. (3.4) oraz Uwaga 1. Jeżeli założymy, że zmienne losowe X i Y mają dystrybuanty ciągłe i ściśle rosnące to zachodzi P (X ≤ x|Y = y) = C,2 (FX (x), FY (y)) czyli, że prawdopodobieństwa warunkowe są pochodnymi cząstkowymi kopuł. Dowód uwagi 1. P (X ≤ x|Y = y) = = = = = lim P (X ≤ x|y < Y ≤ y + ∆y) ∆y→0 P (X ≤ x, y < Y ≤ y + ∆y) P (y < Y ≤ y + ∆y) P (X ≤ x, Y ∈ (−∞, y + ∆y]\(−∞, y]) lim ∆y→0 P (Y ∈ (−∞, y + ∆y]\(−∞, y]) P (X ≤ x, Y ≤ y + ∆y) − P (X ≤ x, Y ≤ y) lim ∆y→0 P (Y ≤ y + ∆y) − P (Y ≤ y) FXY (x, y + ∆y) − FXY (x, y) lim ∆y→0 FY (y + ∆y) − FY (y) lim ∆y→0 28 korzystając w tym momencie z twierdzenia Sklar’a oraz wprowadzając oznaczenie ∆y = FY (y + ∆y) − FY (y) otrzymujemy P (X ≤ x|Y = y) = = = = C(FX (x), FY (y + ∆y)) − C(FX (x), FY (y)) ∆y→0 FY (y + ∆y) − FY (y) C(FX (x), FY (y) + ∆y) − C(FX (x), FY (y)) lim ∆y→0 ∆y ∂ C(FX (x), FY (y)) ∂FY (y) C,2 (FX (x), FY (y)). lim Przejdźmy teraz do dowodu twierdzenia. Dowód twierdzenia 6. [2] Dowód przeprowadzimy dla przypadku ciągłych dystrybuant, pełny dowód można znaleźć w [2]. Wykażemy tylko pierwsze równanie z twierdzenia, czyli równanie (3.3). Równanie (3.4) dowodzi się w sposób analogiczny. Niech σ(Y ) oznacza σ-algebrę generowaną przez zmienną losową Y. Ponieważ funkcja ω → C,2 (FX (x), FY (Y (ω))) jest funkcją mierzalną względem σ(Y ) to musimy pokazać, że dla każdego zbioru A należącego do tej σ-algebry oraz dla każdego x zachodzi: Z Z C,2 (FX (x), FY (Y (ω)))dP (ω)) = A IX≤x (ω))dP (ω)). (3.5) A Powyższą równość wystarczy wykazać dla A postaci A = Y −1 ((−∞, a]). Czyli Z Z C,2 (FX (x), FY (Y ))dP a C,2 (FX (x), FY (ξ))dFY (ξ) = −∞ A stosując teraz podstawienie FY (ξ) = η oraz pamiętając o założeniu o ciągłości dystrybuanty FY otrzymujemy Z a Z C,2 (FX (x), FY (ξ))dFY (ξ) FY (a) C,2 (FX (x), η)dη = −∞ 0 F (a) = C(FX (x), η)|0 Y = C(FX (x), FY (a)) − C(FX (x), 0) = C(FX (x), FY (a)) − 0 = FX,Y (x, a) Z = IX≤x IY ≤a dP ZΩ = IX≤x dP. A Zatem otrzymaliśmy równość (3.5), czyli równanie (3.3) zachodzi. Poniższy lemat wykorzystamy w dowodzie kolejnego twierdzenia, które łączy produkt * i procesy Markowa. Lemat 3. [2] 29 Niech A i B będą kopułami. Wtedy dla prawie wszystkich x, ∂ ∂x 1 Z Z A,1 (t, y)B,2 (x, t)dt = 0 1 A,1 (t, y)B,1 (x, dt). (3.6) 0 Dowód tego lematu można znaleźć w [2]. Jak już wcześniej wspomnieliśmy proces stochastyczny możemy nazwać procesem Markowa, gdy proces ten spełnia własność Markowa. Własność tę możemy także nazwać własnością warunkowej niezależności i dla przypomnienia jest ona postaci E(IXt ≤λ |Xt1 , . . . , Xtn ) = E(IXt ≤λ |Xtn ). (3.7) Poniższe twierdzenie daje nam warunek przedstawiony w języku kopuł, który jest równoważny do równania Champmana-Kołmogorowa. Twierdzenie to daje nam także interpretację operacji *. Twierdzenie 7. [2] Niech Xt , t ∈ T będzie rzeczywistym procesem stochastycznym oraz dla każdego s, t ∈ T niech Cst oznacza kopułę dla zmiennych losowych Xs i Xt . Następujące warunki są równoważne: 1. Prawdopodobieństwa przejść P (s, x, t, A) = P (Xt ∈ A|Xs = x) procesu spełniają równanie Chapmana-Kołmogorowa Z ∞ P (s, x, t, A) = P (u, ξ, t, A)P (s, x, u, dξ) (3.8) −∞ dla każdego zbioru borelowskiego A, dla każdego s < t; s, t ∈ T , dla każdego u ∈ (s, t) ∩ T oraz dla prawie wszystkich x ∈ R. 2. Dla każdego s, u, t ∈ T spełniających s < u < t, Cst = Csu ∗ Cut . (3.9) Dowód. Dowód przeprowadzimy zakładając, że zmienne losowe procesu są ciągłe. (2) ⇒ (1) Zakładamy, że dla każdego s, u, t ∈ T spełniających zależność s < u < t zachodzi Cst = Csu ∗ Cut . Zauważmy, że ponieważ dla każdego s < t i dla prawie każdego x odwzorowanie A → P (s, x, t, A) jest miarą probabilistyczną, wystarczy sprawdzić równanie Chapmana-Kołmogorowa (3.8) dla zbiorów borelowskich A, w postaci A = (−∞, a), czyli σ{A = (−∞, a)} = BR . Dla takich zbiorów otrzymujemy P (s, x, t, A) = P (s, x, t, (−∞, a)) = P (Xt ∈ (−∞, a)|Xs = x), zbiór {Xt ∈ (−∞, a)} możemy także zapisać w postaci {ω : Xt (ω) < a}, czyli P (Xt ∈ (−∞, a)|Xs = x) 30 = E(IXt <a |Xs = x), natomiast wykorzystując w tym momencie równanie (3.3) mamy E(IXt <a |Xs = x) = Cst,1 (Fs (Xs (ω), Ft (a))) = Cst,1 (Fs (x), Ft (a)). Zatem korzystając z Twierdzenia 6. otrzymujemy P (s, x, t, A) = Cst,1 (Fs (x), Ft (a)) prawie na pewno. (3.10) Dla zbiorów A w postaci A = (−∞, a) oraz dla prawie wszystkich x otrzymujemy Z ∞ Z P (u, ξ, t, A)P (s, x, u, dξ) ∞ Cut,1 (Fu (ξ), Ft (a))Csu,1 (Fs (x), Fu (dξ)) = −∞ −∞ Z 1 Cut,1 (η, Ft (a))Csu,1 (Fs (x), dη), = 0 podstawiając teraz Fs (x) = ζ oraz korzystając z Lematu 3 mamy 1 Z Cut,1 (η, Ft (a))Csu,1 (Fs (x), dη) = 0 = ∂ ∂ζ Z 1 Cut,1 (η, Ft (a))Csu,2 (ζ, η)dη|ζ=Fs (x) 0 ∂ ∂Fs (x) Z 1 Csu,2 (Fs (x), η)Cut,1 (η, Ft (a))dη, 0 wykorzystując w tym miejscu definicję operacji * otrzymujemy ∂ ∂Fs (x) 1 Z Csu,2 (Fs (x), η)Cut,1 (η, Ft (a))dη = 0 = ∂ (Csu ∗ Cut )(Fs (x), Ft (a)) ∂Fs (x) (Csu ∗ Cut ),1 (Fs (x), Ft (a)) = Cst,1 (Fs (x), Ft (a)) = P (s, x, t, A). Równanie (3.8) zostało wykazane, czyli dowód w tą stronę został zakończony. (1) ⇒ (2) Aby udowodnić twierdzenie w tą stronę zakładamy, że równanie Chapmana-Kołmogorowa (3.8) zachodzi. Zatem korzystając z tego co udowodniliśmy powyżej, a mianowicie z równości (3.10) dla prawie wszystkich x otrzymujemy Z ∞ P (u, ξ, t, A)P (s, x, u, dξ) = P (s, x, t, a) = Cst,1 (Fs (x), Ft (a)). −∞ Więc z (3.9) otrzymujemy Cst,1 (Fs (x), Ft (a)) = (Csu ∗ Cut ),1 (Fs (x), Ft (a)). Zatem dowód twierdzenia został zakończony. Powyższe twierdzenie pokazuje, że spełnienie równania Chapmana-Kołmogorowa jest warunkiem koniecznym ale nie wystarczającym na to aby badany proces był procesem Markowa. Można jednak określić warunek wystarczający w języku kopuł, służy do tego kolejne twierdzenie. Twierdzenie 8. [2] Rzeczywisty proces stochastyczny Xt , t ∈ T jest procesem Markowa wtedy i tylko wtedy, gdy dla 31 wszystkich dodatnich liczb całkowitych n oraz dla wszystkich t1 , . . . , tn ∈ T spełniających tk < tk+1 , k = 1, . . . , n − 1, zachodzi Ct1 ...tn = Ct1 t2 ? Ct2 t3 ? · · · ? Ctn−1 tn , (3.11) gdzie Ct1 ...tn jest kopułą z Xt1 , . . . , Xtn oraz Ctk tk+1 jest kopułą z Xtk oraz Xtk+1 . Dowód twierdzenia można znaleźć w pracy Darsow’a [2]. Jak zauważył Darsow(1992) w swojej pracy, podejście przez niego przedstawione jest zupełnie inne od standardowego podejścia do procesów Markowa. Darsow opisał, że standardowe podejście polega na tym, że proces Markowa określa się poprzez określenie rozkładu początkowego Ft0 oraz ustalenie rodziny prawdopodobieństw przejść P (s, x, t, A), która spełnia równanie Chapmana-Kołmogorowa. W podejściu tym, gdy będziemy mieć prawdopodobieństwo przejść ustalone i zmienimy rozkład początkowy to konieczne będzie zmienienie wszystkich rozkładów brzegowych. Natomiast podejście oparte na kopułach jest podejściem alternatywnym i polega ono na tym, że proces Markowa precyzujemy podając wszystkie rozkłady brzegowe oraz rodzinę kopuł, która spełnia równanie (3.9). W podejściu tym, gdy zmienimy rozkład początkowy nie zmieniając kopuły procesu, to nie ma to jakiegokolwiek wpływu na pozostałe rozkłady brzegowe. 3.3 Przykład: kopuła ruchu Browna Zajmiemy się teraz przykładem konstrukcji kopuły dla znanego procesu Markowa, gdyż mając taką kopułę można określić nowy proces oparty na tej rodzinie kopuł oraz o innych rozkładach brzegowych. Zajmijmy się zatem konstrukcją takiej kopuły, gdzie procesem Markowa którego do tego użyjemy będzie ruch Browna. Przykład ten jest opracowany w oparciu o [2], [14] i [11]. Niech Bt będzie procesem ruchu Browna oraz niech Φ oznacza dystrybuantę standardowego rozkładu normalnego. Dla ruchu Browna prawdopodobieństwo przejść jest postaci [11] P (s, xs ; t, xt ) := P (Bt ≤ xt |Bs = xs ) = Φ xt − xs √ t−s s < t, xs , xt ∈ R. , (3.12) Z Twierdzenia 6 wiemy, że prawdopodobieństwo warunkowe jest pochodną kopuły. Otrzymujemy zatem, że prawdopodobieństwo przejścia jest postaci P (s, xs ; t, xt ) = Cst,1 (Fs (xs ), Ft (xt )), gdzie Cst,1 oznacza kopułę od zmiennych losowych Bs i Bt , a Fs i Ft są ich odpowiednimi dystrybuantami brzegowymi. Mamy zatem wzór na pochodną kopuły w postaci Cst,1 (Fs (xs ), Ft (xt )) = Φ xt − xs √ t−s , możemy więc wyznaczyć wzór na kopułę ruchu Browna. Dla 0 < s < t otrzymujemy: Z Cst (Fs (xs ), Ft (xt )) = xs Cst,1 (Fs (z), Ft (xt ))dFs (z) xt − z Φ √ dFs (z). t−s −∞ −∞ Z xs = 32 Zakładając, że B0 = 0 przyrost Bt − B0 ma rozkład N (0, t). W związku z tym rozkład brzegowy xt jest postaci Ft (xt ) = Φ( √ ) dla t > 0. Podstawimy to do powyższego wzoru, potrzebujemy jeszcze t tylko wyznaczyć xs i xt , czyli Ft (xt ) = Φ−1 (Ft (xt )) = xt = xt Φ( √ ) t xt √ t √ −1 tΦ (Ft (xt )), Analogicznie otrzymujemy xs . Dla uproszczenia Fs (xs ) oznaczymy przez u, a Ft (xt ) przez v. Zatem otrzymujemy kopułę ruchu Browna w postaci Z Cst (u, v) = √ u Φ 0 √ tΦ−1 (v) − sΦ−1 (w) √ dw. t−s W takim przypadku pochodną możemy zapisać √ Cst,1 (u, v) = Φ √ tΦ−1 (v) − sΦ−1 (u) √ . t−s W związku z metodą konstrukcji otrzymaliśmy, że kopuła Cst (u, v) jest rodziną kopuł, która spełnia równanie (3.9). 33 Rozdział 4 Konstrukcja procesów stochastycznych opartych na kopułach Rozdział ten poświęcony jest konstrukcji procesów stochastycznych bazujących na kopułach. Przedstawimy procesy oparte na trzech kopułach: kopule ruchu Browna, kopule Claytona oraz kopule Franka. 4.1 Metoda konstrukcji procesu Opiszemy teraz sposób, w jaki tworzymy trajektorię procesu opartego na kopule. Z Twierdzenia 6 wiemy, że pochodna cząstkowa jest równa prawdopodobieństwu warunkowemu, czyli dla s < t mamy P (Xt ≤ y|Xs = x) = Cst,1 (FXs (x), FXt (y)). Będziemy konstruować procesy Markowa, zatem wartość procesu w chwili przyszłej zależy tylko od wartości procesu w chwili obecnej. Tak więc będąc w chwili s znamy aktualną wartość procesu, wynosi ona x, oraz chcemy wyznaczyć wartość y w chwili t. Oznaczmy u = FXs (x) ∈ [0, 1]. Wtedy wzór na kopułę możemy zapisać Cst,1 (u, FXt (y)) = h(FXt (y)|u). Natomiast, gdy dla FXt (y) użyjemy oznaczenia v, to powyższe równanie możemy zapisać h(v|u) = Cst,1 (u, v). Chcemy wyznaczyć przyszłą wartość procesu v w chwili t, czyli wystarczy wyznaczyć funkcję odwrotną v = h−1 (·|u). 34 Mając tak otrzymaną wartość v, wartość procesu w chwili t otrzymujemy z −1 −1 y = FX (h (·|u)). t Algorytm postępowania możemy określić następująco: 1. dyskretyzujemy czas ustalając krok d oraz ustalamy czas końcowy T, czyli tworzymy ciąg 0 = t0 < t1 < . . . < tn , n = T d, 2. dla t0 przyjmujemy wartość procesu x0 = 0, 3. dla ti , i = 1, . . . , n tworzymy ciąg wartości u1 , u2 , . . . , un , gdzie ui jest z rozkładu U [0, 1], 4. przyjmujemy wartość procesu x1 = u1 , 5. dla i = 2, . . . , n wartość procesu xi wyznaczamy następująco xi = h−1 (ui |xi−1 ; ti−1 , ti ), 6. otrzymujemy ciąg wartości x0 , x1 , . . . , xn , gdzie xi ∼ U [0, 1], −1 7. wartości yi , i = 1, . . . , n otrzymujemy z yi = FX (xi ). t 4.2 Proces ruchu Browna Możemy teraz przejść do symulacji procesu. Proces ten oparty jest na kopule ruchu Browna, którą wyznaczyliśmy w rozdziale 3.3. Aby wygenerować trajektorię procesu korzystamy z metody przedstawionej w rozdziale 4.1. Jak już pokazaliśmy wcześniej pochodna kopuły ruchu Browna jest postaci √ Cst,1 (u, v) = Φ √ tΦ−1 (v) − sΦ−1 (u) √ . t−s We wprowadzonej metodzie korzystamy z prawdopodobieństwa warunkowego, zatem z postaci pochodnej musimy wyznaczyć wartość v. Dla uproszczenia zapisu oznaczymy h(v|u) przez z. Zatem przejdźmy do wyznaczenia funkcji odwrotnej h−1 (z|u) √ √ tΦ−1 (v) − sΦ−1 (u) √ t−s √ √ −1 −1 −1 t − sΦ (z) = tΦ (v) − sΦ (u) √ −1 √ √ tΦ (v) = t − sΦ−1 (z) + sΦ−1 (u) r r t − s −1 s −1 −1 Φ (v) = Φ (z) + Φ (u) t t ! r r t − s −1 s −1 v = Φ Φ (z) + Φ (u) . t t z = Φ √ Na poniższych wykresach prezentujemy realizacje procesów uzyskanych z kopuły ruchu Browna. Pierwsza z trajektorii przedstawia proces kopuły ruchu Browna dla rozkładu brzegowego U [0, 1]. Druga trajektoria otrzymana jest, gdy jako rozkładu brzegowego użyliśmy standardowego rozkładu normalnego i trajektoria ta jest standardowym procesem Wienera. Trzeci wykres został otrzymany, gdy za rozkład brzegowy przyjęliśmy rozkład wykładniczy Exp(1). Natomiast ostatni √ √ otrzymaliśmy, gdy za rozkład brzegowy przyjęliśmy rozkład jednostajny na przedziale [− t, t]. 35 Rysunek 4.1: Trajektorie procesów z kopuły ruchu Browna dla różnych rozkładów brzegowych: (a) rozkład jednostajny √ √ U [0, 1], (b) rozkład normalny N (0, 1), (c) rozkład wykładniczy Exp(1), (d) rozkład U [− t, t] √ √ Gdy procesu kopuły ruchu Browna o rozkładzie brzegowym U [− t, t] wygenerujemy 1000 realizacji to możemy zauważyć, że proces spełnia własność prawa iterowanego logarytmu. Prawo iterowanego logarytmu jest postaci: P ( lim sup √ t→∞ Wt = 1) = 1. 2t ln ln t Własność tę możemy zauważyć na poniższym rysunku. 36 √ √ Rysunek 4.2: rozkład U [− t, t] Kod generujący powyższe procesy z programu R znajduje się w załączniku 5A. 4.3 Proces kopuły Franka Jak wykazaliśmy w rozdziale 1.3.3 funkcja określająca kopułę Franka jest postaci 1 (e−θu − 1)(e−θv − 1) CθF r (u, v) = − ln 1 + , θ (e−θ − 1) θ = (−∞, ∞)\{0}. Aby otrzymać proces generowany przez kopułę Franka postępujemy według algorytmu przedstawionego w podrozdziale 4.1. Wyznaczymy zatem pochodną kopuły Franka względem pierwszego argumentu C,1 (u, v) = = 1 (e−θ − 1) (e−θv − 1) −θu − · −θ · ·e · (−θ) θ (e − 1) + (e−θu − 1)(e−θv − 1) (e−θ − 1) e−θu · (e−θv − 1) . (e−θ − 1) + (e−θu − 1)(e−θv − 1) Z Twierdzenia 6 wiemy, że pochodna kopuły jest rozkładem warunkowym, czyli C,1 (u, v) = h(v|u). Niech u będzie ustalone oraz niech będzie z rozkładu U [0, 1]. Aby wyznaczyć wartość v musimy znaleźć funkcję odwrotną do C,1 (u, )˙ (dla uproszczenia zapisu oznaczmy C,1 (u, )˙ = z), czyli musimy znaleźć h−1 (z|u). Zatem z = z(e−θ − 1) + z(e−θu − 1)(e−θv − 1) = z(e−θ − 1) + z(e−θu − 1) = (e−θv − 1) z(e−θ − 1) = e−θv − 1 = ln e−θv = 37 e−θu · (e−θv − 1) (e−θ − 1) + (e−θu − 1)(e−θv − 1) e−θu · (e−θv − 1) e−θu −θu e − z(e−θu − 1) (e−θv − 1) z(e−θ − 1) e−θu − z(e−θu − 1) z(e−θ − 1) + 1) ln( −θu e − z(e−θu − 1) −θv = v = z(e−θ − 1) + 1) e−θu − z(e−θu − 1) z(e−θ − 1) 1 + 1). − ln( −θu θ e − z(e−θu − 1) ln( Poniższe wykresy prezentują procesy otrzymane z kopuły Franka kolejno dla parametrów θ = {0.2, 1, 5, 37}. Dla każdego θ prezentujemy trajektorie procesów otrzymane, gdy jako rozkład brzegowy użyliśmy standardowego rozkładu jednostajnego U [0, 1] i standardowego rozkładu normalnego N (0, 1). θ = 0, 2 : Rysunek 4.3: Trajektoria procesu opartego na kopule Franka (θ = 0, 2) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) θ=1: Rysunek 4.4: Trajektoria procesu opartego na kopule Franka (θ = 1) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) 38 θ=5: Rysunek 4.5: Trajektoria procesu opartego na kopule Franka (θ = 5) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) θ = 37 : Rysunek 4.6: Trajektoria procesu opartego na kopule Franka (θ = 37) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) Kod z programu R generujący powyższe realizacje znajduje się w załączniku 5B. 4.4 Proces kopuły Claytona Zgodnie z tym co wykazaliśmy w rozdziale 1.3.1 funkcja określająca kopułę Claytona jest postaci 1 CθCl (u, v) = max{(u−θ + v −θ − 1)− θ , 0}, 39 θ = [−1, ∞)\{0}. Przyjmując, że kopuła jest równa 1 CθCl (u, v) = (u−θ + v −θ − 1)− θ wyznaczmy jej pochodną względem pierwszego argumentu C,1 (u, v) − 1 −1 1 −θ u + v −θ − 1 θ · (−θ) · u−θ−1 θ − 1+θ θ · u−(1+θ) . u−θ + v −θ − 1 = − = Tak jak dla poprzednich procesów również tutaj dla uproszczenia zapisu zastosujemy oznaczenia h(v|u) = z, zatem przejdźmy do wyznaczenia v z = z · u(1+θ) = 1+θ u−θ + v −θ − 1 θ = u−θ + v −θ − 1 = v −θ = v = − 1+θ θ u−θ + v −θ − 1 · u−(1+θ) 1 1+θ (u−θ + v −θ − 1) θ 1 z · u(1+θ) θ − 1+θ z · u(1+θ) θ − 1+θ z · u(1+θ) − u−θ + 1 − θ1 θ − 1+θ (1+θ) −θ z·u −u +1 . Korzystając z metody z rozdziału 4.1 numerycznie wygenerujemy proces kopuły Claytona. Na poniższych wykresach prezentujemy otrzymane procesy kolejno dla parametrów θ = {0.2, 1, 5, 50}. Dla każdej wartości parametru θ pokazujemy, jak wygląda proces dla jednostajnego rozkładu brzegowego oraz dla standardowego rozkładu normalnego. Im większa wartość parametru θ tym większa zależność pomiędzy rozkładami brzegowymi. θ = 0, 2 : Rysunek 4.7: Trajektoria procesu opartego na kopule Claytona (θ = 0, 2) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) 40 θ=1: Rysunek 4.8: Trajektoria procesu opartego na kopule Claytona (θ = 1) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) θ=5: Rysunek 4.9: Trajektoria procesu opartego na kopule Claytona (θ = 5) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) θ = 50 : 41 Rysunek 4.10: Trajektoria procesu opartego na kopule Claytona (θ = 50) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) Kod z programu R generujący powyższe realizacje znajduje się w załączniku 5C. 42 Rozdział 5 Modelowanie rynku z użyciem procesu kopuły Browna W rozdziale tym pokażemy zastosowanie procesu opartego na kopule, a konkretnie na kopule ruchu Browna. Wycenimy opcje europejską i binarną barierową używając tego właśnie procesu i porównamy otrzymane wyniki z wynikami otrzymanymi przy użyciu procesu Wienera. Rynek finansowy złożony jest z wielu rodzajów aktywów finansowych, które najprościej możemy podzielić na instrumenty bazowe i na instrumenty pochodne. Do instrumentów bazowych zaliczamy akcje, obligacje, wartość indeksu giełdowego czy wysokość stopy procentowej. Natomiast do instrumentów pochodnych, inaczej derywatów, należą instrumenty zależne od cen instrumentów bazowych, a więc są to opcje, swapy, opcje na wysokość stopy procentowej czy kontrakty terminowe: future i forward. My zajmiemy się opisaniem podstaw teorii dotyczącej opcji. Zacznijmy zatem od krótkiego wprowadzenia co to jest opcja i jakie są jej rodzaje. 5.1 Opcje Opcja jest to instrument pochodny, którego instrumentem bazowym jest akcja. Możemy wyróżnić dwa typy opcji: opcję kupna i opcję sprzedaży (opracowane na podstawie [4]). Opcja kupna (ang. call option) jest to opcja, która daje jej posiadaczowi prawo (nie obowiązek) zakupu aktywów, na które opiewa ta opcja, w ustalonym lub przed ustalonym dniem, po ustalonej cenie. Natomiast opcja sprzedaży (ang. put option) jest to opcja, która daje jej posiadaczowi prawo sprzedaży aktywów określonych przez opcję w ustalonym lub przed ustalonym dniu, po określonej cenie. Datę wygaśnięcia opcji (ang. expiration date) oznaczamy poprzez T , natomiast jej cenę wykonania (ang. exercise price) przez K. Ze względu na czas wykonania opcje możemy podzielić na opcje europejskie i amerykańskie. Różnica pomiędzy tymi opcjami jest taka, że opcja amerykańska może zostać wykonana w dowolnym czasie przed datą wygaśnięcia, natomiast opcja europejska może zostać wykonana tylko w dniu wygaśnięcia. W związku z tym podziałem większość opcji, które są notowane na giełdach są to opcje amerykańskie. W momencie zakupu opcji nabywca płaci wystawcy za możliwość jej wykonania, zapłatę taką nazywamy premią i oznaczamy przez D. Mówimy także, że nabywca opcji zajmuje pozycję długą (ang. long position), z kolei sprzedawca zajmuje pozycję krótką (ang. short position). Możemy 43 zatem wyróżnić cztery rodzaje uczestników rynku opcji, czyli: • kupujący opcję kupna (long call), • sprzedający opcję kupna (short call), • kupujący opcję sprzedaży (long put), • sprzedający opcję sprzedaży (short put). Profile wypłat wraz z wypłatami dla poszczególnych uczestników znajdują się na poniższych wykresach. Rysunek 5.1: Profile wypłat opcji giełdowych 5.2 Model Blacka-Scholesa Jednym z najpopularniejszych a co za tym idzie i najprostszym modelem wyceny opcji giełdowych jest model Blacka-Scholesa. Model ten opiera się na przedstawionym wcześniej procesie stochastycznym jakim jest geometryczny ruch Browna. Założenia jakie stosuje się przy tym modelu mogą się nieznacznie różnić, my przyjmujemy założenia użyte w [4]. Brzmią one następująco: 1. ceny akcji kształtują się geometrycznym ruchem Browna, ze stałymi µ i σ, 2. dopuszcza się krótką sprzedaż, 3. nie uwzględnia się kosztów transakcyjnych i podatków; wszystkie papiery wartościowe są podzielne, 4. akcje nie przynoszą dywidend w czasie trwania dyratywu, 5. nie ma możliwości arbitrażu wolnego od ryzyka, 6. obrót papierami wartościowymi jest ciągły, 44 7. stopa procentowa r jest wolna od ryzyka oraz jest stała w okresie żywotności opcji. Powiedzmy jeszcze co oznacza brak możliwości arbitrażu na rynku. Brak możliwości arbitrażu oznacza, że inwestor nie ma możliwości dokonania inwestycji przynoszącej zysk bez ryzyka straty. Niech (Ω, F, P ) będzie przestrzenią probabilistyczną, niech W będzie procesem Wienera, a F = (Ft )0≤t≤T = FtW = σ{Ws , s ≤ t} filtracją. Aby wycenić instrument finansowy w modelu Blacka-Scholesa wprowadzamy miarę martyngałową Q. Przypomijmy, że S̃t jest postaci S̃t = S0 exp((r − σ2 )t − σ W̃t ). 2 Definicja 19. [5] Miarę probabilistyczną Q na (Ω, FT ) nazywamy miarą martyngałową, gdy Q ∼ P i S̃ jest Qmartyngałem lokalnym. Miarę o tej własności definiujemy w następującym twierdzeniu. Twierdzenie 9. [5] Miara probabilistyczna Q o gęstości dQ = exp dP 1 r−µ WT − σ 2 r−µ σ 2 ! T jest miarą martyngałową, dla której proces S̃ jest Q-martyngałem o dynamice dS̃t = σ S̃t W̃t , S̃0 = s rozwiązanie jest postaci S̃t = St e−rT , zaś W̃t = Wt − r−µ σ (5.1) jest procesem Wienera względem Q i filtracji F. Uwaga 2. [5] a) Warunek (5.1) możemy przedstawić w równoważnej postaci ˜ t. dSt = rSt dt + σSt dW (5.2) b) Z (5.2) wynika, że przy mierze martyngałowej Q proces cen ma postać St = S0 exp(σ W̃t + (r − σ2 )t). 2 Formuła Blacka-Scholesa służąca do wyceny europejskiej opcji kupna oraz europejskiej opcji sprzedaży (w obu przypadkach akcje nie wypłacają dywidend) w chwili 0 określona jest następującymi równaniami [4]: dla opcji kupna: C = S0 N (d1 ) − Ke−rT N (d2 ) = e−rT E Q ((S˜T erT − K, 0)+ ) = e−rT E Q (max(S˜T erT − K, 0)), 45 oraz dla opcji sprzedaży: P = Ke−rT N (−d2 ) − S0 N (−d1 ) = e−rT E Q ((K − S̃T erT , 0)+ ) = e−rT E Q (max(K − S̃T erT , 0)), gdzie d1 i d2 wyznaczmy następująco: ln( SK0 ) + (r + d1 = σT ln( SK0 ) + (r − d2 = σT σ2 2 )T σ2 2 )T √ = d1 − σ T . N (x) oznacza wartość dystrybuanty standardowego rozkładu normalnego w punkcie x, S0 oznacza cenę akcji w chwili początkowej, K jest to cena wykonania opcji, r jest to wolna od ryzyka stopa procentowa, σ oznacza zmienność cen akcji oraz T jest to czas wykonania opcji. Możemy jeszcze określić warunki monotoniczności cen opcji w zależności od wartości ceny wykonania. Są one przedstawione w poniższej uwadze. Uwaga 3. [5] Niech na rynku bez możliwości arbitrażu C0 (K) (odpowiednio P0 (K)) oznacza cenę opcji kupna (odpowiednio sprzedaży) z ceną wykonania K. Wtedy 1. K1 ≤ K2 ⇒ C0 (K1 ) ≥ C0 (K2 ) 2. K1 ≤ K2 ⇒ P0 (K1 ) ≤ P0 (K2 ). 5.3 Wycena opcji europejskiej W tym podrozdziale zajmiemy się wyceną opcji europejskiej w chwili t = 0. Wyznaczymy wartość opcji kupna i sprzedaży na trzy sposoby. Pierwszą metodą będzie użycie wzorów Blacka-Scholesa, drugą obliczenie wartości oczekiwanej, gdy użyjemy procesu Wienera. Natomiast trzecim sposobem będzie obliczenie wartości oczekiwanej, gdy zamiast procesu Wienera użyjemy procesu kopuły √ √ ruchu Browna dla rozkładów brzegowych U [− at, at]. Wartość parametru a powinna być taka, żeby proces ten miał taką samą wariancję jak proces Wienera, czyli V ar(Xt ) = t. Dla rozkładu jednostajnego U [a, b] wariancja wynosi V arXt = (b − a)2 , 12 zatem √ √ ( at + at)2 12√ (2 at)2 = t = 12t a = 3. Będziemy zatem badać wycenę opcji dla procesu kopuły ruchu Browna dla rozkładów brzegowych √ √ U [− 3t, 3t]. Opiszemy teraz jak otrzymamy wartości wycen. 46 Pierwszą metodą jaką użyjemy będzie zastosowanie wzorów Blacka-Scholesa zdefiniowanych w rozdziale 5.2. Do tak otrzymanych wartości będziemy porównywać wartości otrzymane za pomocą dwóch kolejnych metod, które teraz opiszemy. Sposób wyliczenia wyceny dla obu przebiega tak samo, jedyną różnicą jest używany w nich proces. W jednej z nich używamy procesu Wienera, natomiast w drugiej procesu kopuły ruchu Browna otrzymanego tak jak w podrozdziale 4.2 dla √ √ rozkładu U [− 3t, 3t]. Przejdźmy zatem do opisu algorytmu postępowania. 1. ustalamy liczbę realizacji oraz parametry początkowe, 2. dla każdej realizacji tworzymy trajektorię procesu Wienera (kopuły ruchu Browna), 3. dla każdej trajektorii odczytujemy wartość procesu w chwili końcowej T, 4. dla każdej realizacji wyznaczamy cenę akcji w chwili T ze wzoru 2 σ S˜T = S0 exp(− T + σ W˜T ), 2 5. dla każdej realizacji dyskontujemy cenę akcji ST = S˜T · erT , 6. wyznaczamy wartość oczekiwaną dla opcji kupna ze wzoru e−rT E Q ((S˜T erT − K, 0)+ ) = e−rT E Q (max(S˜T erT − K, 0)), oraz dla opcji sprzedaży e−rT E Q ((K − S̃T erT , 0)+ ) = e−rT E Q (max(K − S̃T erT , 0)). Przejdźmy zatem do przykładu wyceny. Przykład. Wyznaczymy wartość opcji europejskiej kupna i sprzedaży akcji trzema wspomnianymi sposobami dla opcji rocznej i 10-cio letniej. Cena akcji w chwili obecnej wynosi S0 = 62, natomiast cena wykonania wynosi K1 = 60. Przyjmujemy zmienność ceny na poziomie 20% oraz roczną stopę procentową równą 10%. Porównamy także wyniki, gdy cena wykonania będzie wynosić K2 = 61. Poniżej przedstawiamy wyniki jakie otrzymaliśmy w programie R, gdzie C (P) oznacza wartość wyceny opcji kupna (sprzedaży) otrzymanej za pomocą wzorów Blacka-Scholesa, C_wiener (P_wiener) oznacza wartość wyceny opcji kupna (sprzedaży) dla metody z użyciem procesu Wienera, natomiast C_brown (P_brown) wartość opcji kupna (sprzedaży) dla metody z użyciem procesu kopuły ruchu Browna. Prezentujemy wyniki kolejno dla opcji rocznej i 10-cio letniej. Dla T = 1 otrzymaliśmy: 47 Rysunek 5.2: Wycena rocznej opcji europejskiej, dla S0 = 62 oraz odpowiednio K1 = 60 i K2 = 61 Dla T = 10 otrzymaliśmy: Rysunek 5.3: Wycena 10-cio letniej opcji europejskiej, dla S0 = 62 oraz odpowiednio K1 = 60 i K2 = 61 Możemy zauważyć, że wartości otrzymane dla procesu Wienera i procesu kopuły ruchu Browna są zbliżone do wartości otrzymanych za pomocą wzorów Blacka-Scholesa. Z powyższych wyników widzimy także, że dla obu T wartości wyceny opcji kupna dla niższej ceny wykonania K są większe. Natomiast dla opcji sprzedaży dla większej wartości K wycena opcji jest większa. Stąd ceny opcji są monotoniczne. Kod programu użyty do tej wyceny znajduje się w załączniku 6A. 48 5.4 Wycena opcji binarnej barierowej Przejdziemy teraz do kolejnego rodzaju opcji, a mianowicie do przykładu opcji egzotycznej jakim jest opcja binarna barierowa. Możemy powiedzieć, że opcja taka zależy od całej trajektorii ceny, a nie tylko od wartości w chwili T. W naszym przypadku będziemy wyceniać tak zwaną opcję in, czyli taką która zaczyna działać w momencie, gdy osiągnie wartość bariery. Zatem opcja binarna barierowa jest to taka opcja, która wypłaca 1 w chwili T, gdy w czasie [0, T ] trajektoria procesu przekroczy wartość ustalonej bariery a. Natomiast, gdy w całym okresie żywotności opcji jej wartość nie przekroczy ustalonej bariery, funkcja ta nie wypłaca nic. Stąd funkcję wypłaty możemy zapisać w postaci ( 1l{MT ≥a} = 1, MT ≥ a > S0 0, MT < a, gdzie MT = sup St = sup S̃t ert 0≤t≤T 0≤t≤T oraz jak już wcześniej podaliśmy cena opcji w chwili t, 0 ≤ t ≤ T wynosi σ2 S̃t = S0 exp − t + σ W̃t . 2 (5.3) Przejdźmy zatem do wyceny takiej opcji. Wycenimy wartość opcji kupna wyznaczając wartość oczekiwaną funkcji wypłaty na dwa sposoby, gdy użyjemy procesu Wienera oraz procesu kopuły ruchu Browna dla rozkładów brzegowych √ √ U [− 3t, 3t]. Dla obu procesów algorytm postępowania przy wyznaczaniu wyceny jest taki sam, używamy tylko innego procesu. Zatem algorytm postępowania przy wycenie takiej opcji jest następujący: 1. ustalamy liczbę realizacji oraz parametry początkowe, 2. dla każdej realizacji wyznaczamy trajektorię procesu Wienera (procesu ruchu Browna), 3. dla każdej realizacji i dla każdego t ∈ [0, T ] wartość procesu w chwili t wstawiamy do wzoru na cenę opcji, czyli S̃t = So exp(− σ2 t + σ W̃t ), 2 4. dla każdej realizacji i dla każdego t wyznaczamy zdyskontowaną wartość ceny, czyli St = S̃t ert , . 5. dla każdej trajektorii wyznaczamy jej supremum, czyli MT = sup St = sup S̃t ert , 0≤t≤T 0≤t≤T 6. dla każdej trajektorii sprawdzamy, czy wartość MT jest większa od przyjętej bariery a, 7. gdy MT ≥ a to w chwili T wypłata z danej opcji wynosi 1, gdy MT < a to w chwili T wypłata wynosi 0, 8. dla wszystkich realizacji sumujemy otrzymane wypłaty i dzielimy przez liczbę realizacji, czyli mamy wartość oczekiwaną E Q 1l{MT ≥a} , 49 Dla porównania wyników opcję taką możemy także wycenić używając rozkładu łącznego zmiennych losowych ST oraz sup0≤t≤T St . Zajmiemy się przypadkiem, gdy proces Xt jest procesem Wienera z dryfem, czyli proces Xt jest postaci Xt = µt + W̃t . Dla procesu Xt będziemy używać oznaczenia MTX = sup Xt . 0≤t≤T Wówczas Q(MT ≥ a) = Q( sup St ≥ a) 0≤t≤T = Q( sup S̃t ert ≥ a) 0≤t≤T = Q( sup S0 exp((r − 0≤t≤T przyjmując µ= σ2 )t + σ W̃t ) ≥ a), 2 σ r − σ 2 otrzymujemy Q(MT ≥ a) = Q(S0 sup exp(σ(µt + W̃t )) ≥ a) 0≤t≤T = Q(S0 sup exp(σXt ) ≥ a) 0≤t≤T = a ) S0 a Q(exp(σ sup Xt ) ≥ ) S 0 0≤t≤T a ) Q(exp(σMTX ) ≥ S0 a 1 Q(MTX ≥ ln ). σ S0 Q( sup exp(σXt ) ≥ 0≤t≤T = = = Z [7] wiemy, że rozkład łączny (XT , MTX ) względem miary Q i w przypadku dwóch barier b i c (c > 0, b ≤ c) jest postaci P (XT < b, MTX < c) = Φ b − µT √ T − e2µc Φ b − 2c − µT √ T . My będziemy badali wycenę opcji z jedną barierą zatem, gdy przyjmiemy b = c otrzymujemy zależność XT ≤ MTX < c, wtedy rozkład łączny możemy zapisać Q(XT ≤ c, MTX < c) = = Q(MTX < c) c − µT −c − µT 2µc √ √ Φ −e Φ . T T Zatem możemy sformułować twierdzenie 50 Twierdzenie 10. [7] Wartość wyceny opcji binarnej barierowej typu in z jedną barierą a wynosi Q E 11{MT ≥a} = gdzie c = 1 σ Q(MTX ≥ c) = 1 − Φ c − µT √ T + 2µc Φ −c − µT √ T , (5.4) ln Sa0 . Przejdźmy teraz do przykładu wyceny. Przykład. Wyznaczymy wartość binarnej barierowej opcji kupna akcji dwoma sposobami dla T = 1 i dla dwóch wartości barier. Cena akcji w chwili obecnej wynosi S0 = 20, natomiast bariera raz wynosi a = 23, a raz a = 27. Przyjmujemy zmienność ceny σ na poziomie 20% oraz roczną stopę procentową równą r = 10%. 1. Gdy bariera wynosiła a = 23 dla 1000 trajektorii zdyskontowane ceny akcji St (t = 0.001, 0.002, . . . , 1) dla obu procesów kształtowały się jak na poniższych wykresach. a b Rysunek 5.4: Trajektorie zdyskontowanych cen akcji, bariera = 23. (a) proces Wienera, (b) √ a√ proces kopuły ruchu Browna dla rozkładów brzegowych U [− 3t, 3t] Dla takich trajektorii otrzymaliśmy następujące wyniki. Wycena opcji, gdy użyliśmy procesu Wienera wyniosła Q EW 1l{MT ≥a} = 0, 607 √ √ oraz gdy użyliśmy procesu kopuły ruchu Browna z rozkładem brzegowym U [− 3t, 3t] : Q EB 1l{MT ≥a} = 0, 651. Dla porównania wyznaczymy teraz wartość wyceny opcji otrzymaną z rozkładu łącznego. Dla naszych danych otrzymujemy µ = 0.4 oraz c= 1 a ln = 0, 6988097. σ S0 51 Podstawiając wszystkie dane do wzoru (5.4) otrzymujemy Q(MTX ≥ c) = 0, 6202772. 2. Dla bariery a = 27 otrzymaliśmy następujące wykresy i wyniki. Na poniższych wykresach widzimy dla 1000 realizacji wartości zdyskontowanych cen akcji St , gdzie t = 0.001, 0.002, . . . , 1. a b Rysunek 5.5: Trajektorie zdyskontowanych cen akcji, bariera = 27. (a) proces Wienera, (b) √ a√ proces kopuły ruchu Browna dla rozkładów brzegowych U [− 3t, 3t] Wycena opcji, gdy użyliśmy procesu Wienera wyniosła Q EW 1l{MT ≥a} = 0, 225 √ √ oraz gdy użyliśmy procesu kopuły ruchu Browna z rozkładem brzegowym U [− 3t, 3t] : Q EB 1l{MT ≥a} = 0, 242. Dla porównania wyznaczymy wartość wyceny opcji otrzymaną z rozkładu łącznego. Dla naszych danych otrzymujemy µ = 0.4 oraz c= 1 a ln = 1, 500523. σ S0 Podstawiając dane do wzoru (5.4) otrzymujemy Q(MTX ≥ c) = 0, 2308205. Dla obu barier widzimy, że otrzymane wartości wycen są bliskie sobie, jak również są zbliżone do wartości otrzymanych z rozkładu łącznego. Możemy także zauważyć, że przy wyższej wartości bariery od której opcja zaczyna działać jej wycena jest niższa. Kod programu użyty do tej wyceny znajduje się w załączniku 6B. 52 Rozdział 6 Podsumowanie W pracy przedstawiliśmy podstawowe informacje dotyczące kopuł, wykazaliśmy ich własności oraz udowodniliśmy najważniejsze twierdzenie w teorii kopuł - twierdzenie Sklar’a. Zapoznaliśmy się także z operacją produktową ∗ dla kopuł i przy jej wykorzystaniu udało nam się udowodnić twierdzenie łączące procesy Markowa z kopułami. Wprowadziliśmy definicje procesu Wienera oraz geometrycznego ruchu Browna oraz udało nam się wygenerować trajektorie tych procesów. Przedstawiliśmy także sposób tworzenia oraz przykłady symulacji procesów Markowa opartych na trzech kopułach: kopule ruchu Browna, kopule Claytona oraz kopule Franka. Najważniejszym co udało nam się pokazać jest jednak zastosowanie w finansach procesu opartego na kopule. Sprawdziliśmy jak zachowuje się rozwiązanie równania stochastycznego (2.2), gdy zmieniliśmy źródło losowości, czyli jakie wartości wycen opcji otrzymamy, gdy do modelowania zamiast procesu Wienera użyjemy procesu kopuły ruchu Browna. Aby zachować podobieństwo do procesu Wienera tak dobraliśmy rozkład brzegowy procesu kopuły ruchu Browna, aby oba procesy miały taką samą wariancję. Z przeprowadzonych symulacji dla procesu kopuły ruchu Browna otrzymaliśmy wartości wycen zbliżone do tych otrzymanych dla procesu Wienera, zarówno dla opcji europejskiej jak i binarnej barierowej. 53 Dodatek A Załącznik - rozkłady prawdopodobieństwa Poniżej prezentujemy rozkłady prawdopodobieństwa użyte w pracy [6]. • Rozkład normalny, jednowymiarowy N (m, σ 2 ) : −(x−m)2 dystrybuanta dla N (0, 1) : ϕm,σ (x) = σ√12π e 2σ2 Rx z2 Φ(x) = −∞ √12π e 2 dz, parametry: m ∈ R, σ ∈ (0, ∞), momenty: EX = m, V ar(X) = σ 2 . gęstość: • Rozkład jednostajny U [a, b], a, b ∈ R, a < b : gęstość: dystrybuanta: g(x) = 1 b−a I[a,b] (x), P (X ≤ t) = momenty: EX = a+b 2 ,V x ∈ R, t≤a 0, t−a b−a , t ∈ (a, b) t ≥ b, 1, ar(X) = (b−a)2 12 . • Rozkład wykładniczy Exp(λ) : gęstość: dystrybuanta: g(x) = λe−λx I(0,∞) (x), ( 0, P (X ≤ t) = −λt 1−e , parametry: λ ∈ (0, ∞), momenty: EX = λ1 , V ar(X) = 54 1 λ2 . t≤0 t > 0, Dodatek B Załącznik - kody programów B.1 Załącznik 1 Kody z programu R tworzące powierzchnię oraz wykresy konturowe dla ograniczeń Frécheta (A górne ograniczenie, B - dolne ograniczenie) oraz kopuły niezależnej (C). • (A) Kopuła minimum - górne ograniczenie Frécheta par(mfrow=c(1,2)) m=10 n=m+1 l=1/m x=1:n y=1:n x[1]=0 y[1]=0 z=matrix(1:n,nrow=n,ncol=n) z[1,]=0 z[,1]=0 for(i in 2:n){ x[i]=x[i-1]+l for(j in 2:n){ y[j]=y[j-1]+l z[i,j]=min(x[i],y[j]) } } #wykres powierzchni persp(x,y,z,xlim=c(0,1),ylim=c(0,1),zlim=c(0,1), theta=-20,phi=20) #wykres poziomic contour(x,y,z,xlim=c(0,1),ylim=c(0,1)) • (B) Kopuła maximum - dolne ograniczenie Frécheta par(mfrow=c(1,2)) m=10 n=m+1 55 l=1/m x=1:n y=1:n x[1]=0 y[1]=0 z=matrix(1:n,nrow=n,ncol=n) z[1,]=0 z[,1]=0 for(i in 2:n){ x[i]=x[i-1]+l for(j in 2:n){ y[j]=y[j-1]+l z[i,j]=max(x[i]+y[j]-1,0) } } #wykres powierzchni persp(x,y,z,xlim=c(0,1),ylim=c(0,1),zlim=c(0,1), theta=-20,phi=20) #wykres poziomic contour(x,y,z,xlim=c(0,1),ylim=c(0,1)) • (C) Kopuła niezależna par(mfrow=c(1,2)) m=10 n=m+1 l=1/m x=1:n y=1:n x[1]=0 y[1]=0 z=matrix(1:n,nrow=n,ncol=n) z[1,]=0 z[,1]=0 for(i in 2:n){ x[i]=x[i-1]+l for(j in 2:n){ y[j]=y[j-1]+l z[i,j]=x[i]*y[j] } } #wykres powierzchni persp(x,y,z,xlim=c(0,1),ylim=c(0,1),zlim=c(0,1), theta=-20,phi=20) #wykres poziomic contour(x,y,z,xlim=c(0,1),ylim=c(0,1)) 56 B.2 Załącznik 2 Kody użyte do otrzymania wykresów gęstości oraz wykresów prób losowych dla kopuł Claytona (A), Gumbela (B) oraz Franka (C). • (A) Kopuła Claytona θ = 5 library(copula) par(mfrow=c(1,2)) #utworzenie kopuły Claytona o parametrze theta=5 dla dwóch # wymiarów i jednostajnych rozkładów brzegowych clayton = claytonCopula(5, dim = 2) #wykres gęstości dla kopuły Claytona persp(clayton,dCopula) #losowanie 1000-elemetowej próby z kopuły Claytona losowe = rCopula(1000, clayton) #wyświetlenie tej próby na wykresie plot(losowe) • (B) Kopuła Gumbela θ = 5 library(copula) par(mfrow=c(1,2)) #utworzenie kopuły Gumbela o parametrze theta=5 dla dwóch # wymiarów i jednostajnych rozkładów brzegowych gumbel = gumbelCopula(5, dim = 2) #wykres gęstości dla kopuły Claytona persp(gumbel,dCopula) #losowanie 1000-elemetowej próby z kopuły Gumbela losowe = rCopula(1000, gumbel) #wyświetlenie tej próby na wykresie plot(losowe) • (C) Kopuła Franka θ = 5 library(copula) par(mfrow=c(1,2)) #utworzenie kopuły Franka o parametrze theta=5 dla dwóch # wymiarów i jednostajnych rozkładów brzegowych frank = frankCopula(5, dim = 2) 57 #wykres gęstości dla kopuły Claytona persp(frank,dCopula) #losowanie 1000-elemetowej próby z kopuły Gumbela losowe = rCopula(1000, frank) #wyświetlenie tej próby na wykresie plot(losowe) B.3 Załącznik 3 Kod użyty do symulacji standardowego procesu Wienera (procesu ruchów Browna). liczba_realizacji=100 n=1000 #liczba przedziałów T=1 #czas końcowy d=T/n #długość przedziału czas=seq(0,T,d) #wektor czasu, punkty w których wyznaczamy wartości procesu #macierz w którą będziemy wpisywać wartości procesu Wienera dla # konkretnej realizacji oraz konkretnego czasu W=array(1:n,dim=c(liczba_realizacji,n+1)) W[,1]=0 #wartość początkowa procesu, z definicji plot(czas, W[1,], type="n", ylim=c(-3,3),main="Realizacja procesu Wienera") for(i in 1:liczba_realizacji){ for(j in 2:(n+1)){ #wyliczamy wartości procesu w poszczególnych punktach W[i,j]=W[i,j-1]+sqrt(d)*rnorm(1) } # rysujemy trajektorie procesów lines(czas,W[i,],type="l", col=rgb(runif(1),runif(1),runif(1))) } B.4 Załącznik 4 Kod użyty do symulacji geometrycznego ruchu Browna. library(MASS) par(mfrow=c(2,2)) liczba_realizacji=100 mi=0.15 sigma=0.3 n=1000 #liczba przedziałów T=1 #czas końcowy 58 d=T/n #długość przedziału czas=seq(0,T,d) #wektor poszczególnych czasów S=1:(n+1) #wektor dla wartości geometrycznego ruchu Browna S[1]=1 #wartość początkowa, dowolna wartosc=1:liczba_realizacji #wektor dla wartości procesów w chwili T plot(czas, S, type="n", ylim=c(S[1]-2*sigma*S[1],S[1]+S[1]*5*sigma), main="Realizacje geometrycznego ruchu Browna") for(i in 1:liczba_realizacji){ for(j in 2:(n+1)){ S[j]=S[j-1]+mi*S[j-1]*d+sigma*S[j-1]*sqrt(d)*rnorm(1) } wartosc[i]=S[n+1]/S[1] lines(czas,S,type="l", col=rgb(runif(1),runif(1),runif(1))) } #a - dopasowuje wartości średniej i odchylenia standardowego do # rozkładu logarytmiczno-normalnego a= fitdistr(wartosc,"lognormal") #tworzymy histogram wartości procesów w chwili T hist(wartosc,freq=FALSE,breaks=25,ylim=c(0,3)) #nanosimy na histogram krzywą gęstości rozkładu lognormalnego # z parametrami a curve(dlnorm(x,meanlog=a$estimate["meanlog"],sdlog=a$estimate["sdlog"]), add=TRUE,col="blue") #logarytmujemy wartości procesów w chwili T logarytm_wartosci=log(wartosc) #b - dopasowuje wartości średniej i odchylenia standardowego # do rozkładu normalnego b=fitdistr(logarytm_wartosci,"normal") #tworzymy histogram logarytmów wartości procesów w chwili T hist(logarytm_wartosci, freq=FALSE,breaks=25,ylim=c(0,3)) #nanosimy na histogram krzywą gęstości rozkładu normalnego z # parametrami b curve(dnorm(x,mean=b$estimate["mean"],sd=b$estimate["sd"]), add=TRUE,col="red") #test Shapiro-Wilka dla zmiennej logarytm_wartosci sprawdzający # normalność rozkładu shapiro.test(logarytm_wartosci) 59 B.5 Załącznik 5 Kod użyty do symulacji procesu z użyciem kopuły ruchu Browna (A), kopuły Franka (A) i kopuły Claytona (B) . • (A) Proces kopuły ruchu Browna rm(list=ls()) par(mfrow=c(2,2)) liczba_realizacji=20 n=1000 #liczba przedziałów T=1 #czas końcowy d=T/n #długość przedziału czas=seq(0,T,d) #wektor czasów #u-macierz wartości z standardowego rozkładu jednostajnego u=array(1:10,dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ u[i,]=runif(n+1) } #x-macierz wartości procesu kopuły ruchu Browna, dla jednostajnego #rozkładu brzegowego, przyjmujemy wartość 0 w chwili t_0=0, oraz #wartość z rozkładu jednostajnego dla chwili t_1 x=array(1:(n+1), dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ x[i,1]=0 x[i,2]=u[i,2] } #tworzymy proces kopuły ruchu Browna dla każdej realizacji oraz wykres #tych trajektorii plot(czas,x[1,],type="n",ylim=c(0,1),main="Proces kopuły Browna") for(i in 1:liczba_realizacji){ for(j in 3:(n+1)){ v=pnorm(sqrt((czas[j]-czas[j-1])/czas[j])*qnorm(u[i,j])+ +sqrt(czas[j-1]/czas[j])*qnorm(x[i,j-1])) x[i,j]=v } lines(czas,x[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #w - wartości procesu ruchu Browna, gdy za rozkład brzegowy przyjmiemy #standardowy rozkład normalny w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-3,3), main="Proces kopuły Browna-rozkład normalny") for(i in 1:liczba_realizacji){ 60 for(j in 1:(n+1)){ w[i,j]=sqrt(czas[j])*qnorm(x[i,j]) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #w - wartości procesu ruchu Browna, gdy za rozkład brzegowy przyjmiemy #rozkład wykładniczy w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-3,10), main="Proces kopuły Browna-rozkład wykładniczy") for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=qexp(x[i,j]) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #w - wartości procesu ruchu Browna, gdy za rozkład brzegowy przyjmiemy #rozkład jednostajny na przedziale [-sqrt(t),sqrt(t)] w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-3,3), main="Proces kopuły Browna-rozkład jednostajny") for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=2*x[i,j]*sqrt(czas[j])-sqrt(czas[j]) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } • (B) Proces kopuły Franka rm(list=ls()) par(mfrow=c(2,1)) liczba_realizacji=1 n=1000 #liczba przedziałów theta=5 #max=37 T=1 #czas końcowy d=T/n #długość przedziału czas=seq(0,T,d) #wektor czasu na odcinku [0,T] z krokiem d #u - macierz wartości z rozkładu jednostajnego u=array(1:10,dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ u[i,]=runif(n+1) } 61 #x - macierz wartości procesu x=array(1:(n+1), dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ x[i,1]=0 x[i,2]=u[i,2] } #proces kopuły Franka, rozkład brzegowy - jednostajny plot(czas,x[1,],type="n",ylim=c(0,1), main="Proces kopuły Franka,theta=5") for(i in 1:liczba_realizacji){ for(j in 3:(n+1)){ v=-1/theta*log((u[i,j]*(exp(-theta)-1))/(exp(-theta*x[i,j-1])+ -u[i,j]*(exp(-theta*x[i,j-1])-1))+1) x[i,j]=v } lines(czas,x[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #proces kopuły Franka, rozkład brzegowy - NORMALNY w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-2,3), main="Proces kopuły Franka, N(0,1), theta=5") for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=sqrt(czas[j])*qnorm(x[i,j]) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } • (C) Proces kopuły Claytona rm(list=ls()) par(mfrow=c(2,1)) liczba_realizacji=1 n=1000 #liczba przedziałów theta=5 #max=37 T=1 #czas końcowy d=T/n #długość przedziału czas=seq(0,T,d) #wektor czasu na odcinku [0,T] z krokiem d #u - macierz wartości z rozkładu jednostajnego u=array(1:10,dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ u[i,]=runif(n+1) } 62 #x - macierz wartości procesu x=array(1:(n+1), dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ x[i,1]=0 x[i,2]=u[i,2] } #proces kopuły Claytona, rozkład brzegowy - jednostajny plot(czas,x[1,],type="n",ylim=c(0,1), main="Proces kopuły Claytona,theta=5") for(i in 1:liczba_realizacji){ for(j in 3:(n+1)){ v=((1)/((u[i,j]*x[i,j-1]^(1+theta))^(-theta/(1+theta))+ -x[i,j-1]^(-theta)+1))^(1/theta) x[i,j]=v } lines(czas,x[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #proces kopuły Claytona, rozkład brzegowy - NORMALNY w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-2,3), main="Proces kopuły Claytona, N(0,1), theta=5") for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=sqrt(czas[j])*qnorm(x[i,j]) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } B.6 Załącznik 6 Poniżej znajdują się kody programów użytych do wyceny opcji europejskiej (A) i opcji binarnej barierowej (B). • (A) Wycena opcji europejskiej par(mfrow=c(2,2)) liczba_realizacji=100 #parametry dla modelu sigma=0.2 r=0.1 #stopa procentowa wolna od ryzyka S_0=62 #cena początkowa K=60 #cena wykonania lub K=61 n=1000 #liczba przedziałów 63 T=1 #czas końcowy lub T=5/12 lub T=10 d=T/n #długość przedziału czas=seq(0,T,d) ###### #wyznaczamy cenę opcji - standardowo #konstruujemy realizacje procesu Wienera (tyle co liczba_realizacji) #oraz wykres tych realizacji W=1:(n+1) #wektor wartości procesu W[1]=0 wartosc_wienera=1:liczba_realizacji #wektor wartości procesu w chwili T plot(czas, W, type="n", ylim=c(-5,5),main="Realizacja procesu Wienera") for(i in 1:liczba_realizacji){ for(j in 2:length(W)){ #obliczamy wartość procesu w kolejnych punktach W[j]=W[j-1]+sqrt(d)*rnorm(1) } wartosc_wienera[i]=W[length(W)] lines(czas,W,type="l", col=rgb(runif(1),runif(1),runif(1))) } wartosc_wienera #wartości procesów w chwili T #wyliczamy wartość S_T=S~_T*e^{rT} dla każdego procesu S_T=1:liczba_realizacji S_t=1:liczba_realizacji for(i in 1:liczba_realizacji){ S_t[i]=S_0*exp(-sigma^2/2*T+sigma*wartosc_wienera[i]) S_T[i]=exp(r*T)*S_0*exp(-sigma^2/2*T+sigma*wartosc_wienera[i]) } #wyznaczamy wartość funkcji f(S_T)=(S_T-K)+=max{S_T-K,0} f=1:liczba_realizacji g=1:liczba_realizacji for(i in 1:liczba_realizacji){ f[i]=max(S_T[i]-K,0) g[i]=max(K-S_T[i],0) } #obliczamy wartość oczekiwaną suma=0 suma1=0 for(i in 1:liczba_realizacji){ suma=suma+f[i] suma1=suma1+g[i] C_wiener=exp(-r*T)*suma/liczba_realizacji P_wiener=exp(-r*T)*suma1/liczba_realizacji 64 } C_wiener P_wiener ###### #wyznaczamy cenę opcji - wzór Blacka-Scholesa #dla porównania cena wyliczona za pomocą wzoru Blacka-Scholesa C=S_0*pnorm((log(S_0/K)+(r+sigma^2/2)*T)/(sigma*sqrt(T)))+ -K*exp(-r*T)*pnorm((log(S_0/K)+(r-sigma^2/2)*T)/(sigma*sqrt(T))) P=K*exp(-r*T)*pnorm(-((log(S_0/K)+(r-sigma^2/2)*T)/(sigma*sqrt(T))))+ -S_0*pnorm(-((log(S_0/K)+(r+sigma^2/2)*T)/(sigma*sqrt(T)))) C P ###### #wyznaczamy cenę opcji - w miejscu procesu Wienera używamy procesu kopuły #ruchu Browna dla rozkładu brzegowego U[-sqrt(3t),sqrt(3t)] #(taka sama wariancja jak proces Wienera) #konstruujemy realizacje procesu kopuły ruchu Browna #(tyle co liczba_realizacji) oraz wykres tych realizacji #tworzymy wektor z wartościami z rozkładu jednostajnego u=array(1:10,dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ u[i,]=runif(n+1) } #tworzymy wektor z wartościami procesu kopuły Browna x=array(1:(n+1), dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ x[i,1]=0 x[i,2]=u[i,2] } plot(czas,x[1,],type="n",ylim=c(0,1),main="Proces kopuły Browna") for(i in 1:liczba_realizacji){ for(j in 3:(n+1)){ v=pnorm(sqrt((czas[j]-czas[j-1])/czas[j])*qnorm(u[i,j])+ +sqrt(czas[j-1]/czas[j])*qnorm(x[i,j-1])) x[i,j]=v } lines(czas,x[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } 65 #konstruujemy proces kopuły ruchu Browna z rozkładem #brzegowym U[-sqrt(3t),sqrt(3t)] w=array(1:(n), dim=c(liczba_realizacji,n+1)) wartosc_brown=1:liczba_realizacji plot(czas,w[1,],type="n",ylim=c(-3,3)) for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=qunif(x[i,j],min=-sqrt(3*czas[j]),max=sqrt(3*czas[j])) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) wartosc_brown[i]=w[i,n+1] } wartosc_brown #wartości procesów w chwili T #wyliczamy wartość S_T=S~_T*e^{rT} dla każdego procesu S_T=1:liczba_realizacji for(i in 1:liczba_realizacji){ S_T[i]=exp(r*T)*S_0*exp(-sigma^2/2*T+sigma*wartosc_brown[i]) } #wyznaczamy wartość funkcji f(S_T)=(S_T-K)+=max{S_T-K,0} f=1:liczba_realizacji g=1:liczba_realizacji for(i in 1:liczba_realizacji){ f[i]=max(S_T[i]-K,0) g[i]=max(K-S_T[i],0) } #obliczamy wartość oczekiwaną suma=0 suma1=0 for(i in 1:liczba_realizacji){ suma=suma+f[i] C_brown=exp(-r*T)*suma/liczba_realizacji suma1=suma1+g[i] P_brown=exp(-r*T)*suma1/liczba_realizacji } C_brown P_brown #wyświetlamy otrzymane wartości oraz K i T dla danej symulacji K T C C_wiener 66 C_brown P P_wiener P_brown • (B) Wycena opcji binarnej barierowej par(mfrow=c(2,2)) liczba_realizacji=1000 #parametry dla modelu sigma=0.2 #zmienność ceny r=0.1 #stopa procentowa S_0= 20 #cena początkowa a=27 #bariera n=1000 #liczba przedziałów T=1 #czas końcowy d=T/n #długość przedziału czas=seq(0,T,d) #konstruujemy realizacje procesu Wienera (tyle co liczba_realizacji) #oraz wykres tych realizacji W=array(1:(n), dim=c(liczba_realizacji,n+1)) #macierz wartości procesu W[,1]=0 plot(czas, W[1,], type="n", ylim=c(-5,5),main="Realizacja procesu Wienera") for(i in 1:liczba_realizacji){ for(j in 2:(n+1)){ #obliczamy wartość procesu w kolejnych punktach W[i,j]=W[i,j-1]+sqrt(d)*rnorm(1) } lines(czas,W[i,],type="l", col=rgb(runif(1),runif(1),runif(1))) } #wyznaczamy wartość ceny w chwili t oraz wartość ceny zdyskontowanej #dla procesu Wienera S_TT=array(1:(n), dim=c(liczba_realizacji,n+1)) #S_T z falką S_T=array(1:(n), dim=c(liczba_realizacji,n+1)) #S_T supremum=1:liczba_realizacji plot(czas, S_T[1,], type="n", ylim=c(S_0-10,S_0+30)) for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ S_TT[i,j]=S_0*exp((-(sigma^2)/2)*czas[j]+sigma*W[i,j]) S_T[i,j]=S_TT[i,j]*exp(r*czas[j]) } supremum[i]=max(S_T[i,]) #wyznaczamy supremum dla każdej trajektorii 67 lines(czas,S_T[i,],type="l", col=rgb(runif(1),runif(1),runif(1))) abline(h=a) #dodajemy prostą, która oznacza barierę } M_T=supremum M_T #liczymy wartość oczekiwaną, czyli wycenę opcji suma=0 for(i in 1:liczba_realizacji){ if(M_T[i]>=a) suma=suma+1 } EX=suma/liczba_realizacji EX #wynik gdy użyliśmy procesu Wienera ############## drugi sposób, używamy procesu kopuły ruchu Browna #konstruujemy realizacje procesu kopuły ruchu Browna #(tyle co liczba_realizacji) oraz wykres tych realizacji #tworzymy wektor z wartościami z rozkładu jednostajnego u=array(1:10,dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ u[i,]=runif(n+1) } #tworzymy wektor z wartościami procesu kopuły Browna x=array(1:(n+1), dim=c(liczba_realizacji,n+1)) for(i in 1:liczba_realizacji){ x[i,1]=0 x[i,2]=u[i,2] } for(i in 1:liczba_realizacji){ for(j in 3:(n+1)){ v=pnorm(sqrt((czas[j]-czas[j-1])/czas[j])*qnorm(u[i,j])+ +sqrt(czas[j-1]/czas[j])*qnorm(x[i,j-1])) x[i,j]=v } } #konstruujemy proces kopuły ruchu Browna z rozkładem brzegowym #U[-sqrt(3t),sqrt(3t)] w=array(1:(n), dim=c(liczba_realizacji,n+1)) plot(czas,w[1,],type="n",ylim=c(-3,3)) 68 for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ w[i,j]=qunif(x[i,j],min=-sqrt(3*czas[j]),max=sqrt(3*czas[j])) } lines(czas,w[i,],type="l",col=rgb(runif(1),runif(1),runif(1))) } #wyznaczamy wartość ceny w chwili t oraz wartość ceny zdyskontowanej #dla procesu kopuły ruchu Browna z rozkładem #brzegowym U[-sqrt(3t),sqrt(3t)] S_TT2=array(1:(n), dim=c(liczba_realizacji,n+1)) #S_T z falką S_T2=array(1:(n), dim=c(liczba_realizacji,n+1)) supremum2=1:liczba_realizacji plot(czas, S_T2[1,], type="n", ylim=c(S_0-10,S_0+30)) for(i in 1:liczba_realizacji){ for(j in 1:(n+1)){ S_TT2[i,j]=S_0*exp((-(sigma^2)/2)*czas[j]+sigma*w[i,j]) S_T2[i,j]=S_TT2[i,j]*exp(r*czas[j]) } supremum2[i]=max(S_T2[i,]) #wyznaczamy supremum dla każdej trajektorii lines(czas,S_T2[i,],type="l", col=rgb(runif(1),runif(1),runif(1))) abline(h=a) } M_T2=supremum2 supremum2 #liczymy wartość oczekiwaną, czyli wycenę opcji suma2=0 for(i in 1:liczba_realizacji){ if(M_T2[i]>=a) suma2=suma2+1 } EX2=suma2/liczba_realizacji EX2 #wynik wyceny, gdy użyliśmy procesu kopuły ruchu Browna #obliczenie wartości wyceny, gdy korzystamy z rozkładu łącznego mi=r/sigma-sigma/2 mi c=1/sigma*log(a/S_0) c rozklad=1-pnorm((c-mi*1)/sqrt(T))+exp(2*mi*c)*pnorm((-c-mi*1)/sqrt(T)) rozklad 69 Spis rysunków 1.1 Wykres powierzchni i konturu górnego ograniczenia Frécheta . . . . . . . . . . . . 6 1.2 Wykres powierzchni i konturu dolnego ograniczenia Frécheta . . . . . . . . . . . . . 6 1.3 Wykres powierzchni i konturu kopuły niezależnej . . . . . . . . . . . . . . . . . . . 7 1.4 Kopuła Claytona (a) wykres gęstości, (b) próba losowa 1000 elementowa . . . . . . 17 1.5 1.6 Kopuła Gumbela (a) wykres gęstości, (b) próba losowa 1000 elementowa . . . . . . Kopuła Franka (a) wykres gęstości, (b) próba losowa 1000 elementowa . . . . . . . 18 19 2.1 Realizacje jednowymiarowego procesu Wienera . . . . . . . . . . . . . . . . . . . . 22 2.2 Realizacje geometrycznego ruchu Browna (a) pojedyncza realizacja, (b) 1000 nieza- 2.3 Histogram wraz z krzywą gęstości rozkładu lognormalnego dla wartości 2.4 Histogram wraz z krzywą gęstości rozkładu normalnego dla wartości ln leżnych realizacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST S0 ST S0 24 . . . . 24 . . . . . 25 2.5 Wynik testu Shapiro-Wilka dla badanej próbki . . . . . . . . . . . . . . . . . . . . 25 4.1 Trajektorie procesów z kopuły ruchu Browna dla różnych rozkładów brzegowych: (a) 4.2 rozkład jednostajny U [0, 1], (b) rozkład normalny N (0, 1), (c) rozkład wykładniczy √ √ Exp(1), (d) rozkład U [− t, t] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . √ √ rozkład U [− t, t] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Trajektoria procesu opartego na kopule Franka (θ = 0, 2) o rozkładzie brzegowym 4.4 Trajektoria procesu opartego na kopule Franka (θ = 1) o rozkładzie brzegowym (a) (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Trajektoria procesu opartego na kopule Franka (θ = 5) o rozkładzie brzegowym (a) 4.6 Trajektoria procesu opartego na kopule Franka (θ = 37) o rozkładzie brzegowym U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Trajektoria procesu opartego na kopule Claytona (θ = 0, 2) o rozkładzie brzegowym 4.8 Trajektoria procesu opartego na kopule Claytona (θ = 1) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 36 37 38 38 39 39 40 41 Trajektoria procesu opartego na kopule Claytona (θ = 5) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.10 Trajektoria procesu opartego na kopule Claytona (θ = 50) o rozkładzie brzegowym (a) U [0, 1], (b) N (0, 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1 Profile wypłat opcji giełdowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 Wycena rocznej opcji europejskiej, dla S0 = 62 oraz odpowiednio K1 = 60 i K2 = 61 48 70 5.3 5.4 5.5 Wycena 10-cio letniej opcji europejskiej, dla S0 = 62 oraz odpowiednio K1 = 60 i K2 = 61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Trajektorie zdyskontowanych cen akcji, bariera a = 23. (a) proces Wienera, (b) √ √ proces kopuły ruchu Browna dla rozkładów brzegowych U [− 3t, 3t] . . . . . . . 51 Trajektorie zdyskontowanych cen akcji, bariera a = 27. (a) proces Wienera, (b) √ √ proces kopuły ruchu Browna dla rozkładów brzegowych U [− 3t, 3t] . . . . . . . 52 71 Bibliografia [1] Cherubini U., Gobbi F.,Mulinacci S., Romagnoli S., Dynamic Copula Methods in Finance, Wiley, 2012, s.49-66. [2] Darsow W.F., Nguyen B., Olsen E.T., Copulas and Markov processes, Illinois Journal of Mathematics, Vol. 36, Nr 4, 600-642, 1992 [3] Fichtenholz G.M., Rachunek Różniczkowy i Całkowy, tom I, Wyd. Naukowe PWN, 2007, s.256-257. [4] Hull J.C., Option, Futures and other derivatives, 7th Edition, Pearson Education Inc., 2009, s.1-19, 259-309. [5] Jakubowski J., Modele matematyczne rynków instrumentów pochodnych I, Uniwersytet Warszawski, 2011, mst.mimuw.edu.pl/wyklady/ip1/wyklad.pdf, data dostępu: 20.05.2014. [6] Jakubowski J., Sztencel R., Wstęp do teorii prawdopodobieństwa, SCRIPT, 2004, s.64, 117119, 221-222, 304-305. [7] Jakubowski J., Palczewski A., Rutkowski M., Stettner Ł., Matematyka finansowa: Instrumenty pochodne, Wydawnictwo Naukowo-Techniczne, 2003, s.72-95, 173-195. [8] Lamberton D., Lapeyre B., Introduction to Stochastic Calculus Applied to Finance, Chapman & Hall, 1996, s.165-167. [9] Łojasiewicz S., Wstęp do teorii funkcji rzeczywistych, PWN, 1976, s.158. [10] McNeil A.J., Frey R., Embrechts P., Quantitative Risk Management: Concepts, Techniques & Tools, Princeton University Press, 2005, s.184-192, 494-495. [11] Nelsen R.B., An Introduction to Copula, Springer, 2006, s.7-24, 109-135, 244-249. [12] Plucińska A., Pluciński E., Probabilistyka: Rachunek Prawdopodobieństwa, Statystyka Matematyczna, Procesy stochastyczne, Wydawnictwo Naukowo-Techniczne, 2000, s.321-326. [13] Pumi G., Lopes S.R.C., Simulation of Univariate Times Series Using Copulas, Federal Univerity of Rio Grande do Sul, 2010. [14] Schmitz V., Copulas and Stochastic Processes, der Rheinish-Westfalischen Technischen Hochschule Aachen, 2003, doktorat. 72