Tomasz Rolski Instytut Matematyczny Uniwersytet Wrocławski METODY MONTE CARLO W INŻYNIERII FINANSOWEJ Walim, 13.12.2013.
Plan wykładu: Coś o generatorach, Statystyczne opracowanie wyników, Coś o redukcji wariancji, Problemy matematyki finansowej, Symulacja ruchu Browna, Symulacja geometrycznego ruchu Browna, Użycie metody warst. Slide 2/??
Rysunek 1: Kostka z Eurandom Ogólny schemat generowania liczb losowych: Slide 3/??
(S,s 0,f,U,g), gdzie S jest skończoną przestrzenią stanów, s 0 S jest wartościa początkową rekurencji s i+1 = f(s i ), gdzie f : S S, natomiast U skończoną przestrzenią wartości oraz g : S U. Wtedy mówimy, że (S,s 0,f,U,g) jest generatorem liczb losowych (GLL). Slide 4/??
Example[Metoda kongruencji liniowej] Najprostszym przykładem GLL jest ciąg U n zadany przez X n /M, gdzie Należy wybrać X n+1 = (ax n +c) mod M. (1) M, moduł; 0 < M a, mnożnik; 0 a < M c, krok 0 c < M X 0, wartość początkowa; 0 X 0 < M. Aby otrzymać ciąg z przedziału (0,1) musimy teraz wybrać U n = X n /M. Ciąg (X n ) ma okres nie dłuższy niż M. Slide 5/??
Example Java X i+1 = (25214903917X i +11) mod 2 48 U i = (2 27 X 2i /2 22 + X 2i+1 /2 21 )/2 53. VB X i = (1140671485X i 1 +12820163) mod 2 24 U i = X i /2 24. Excel U i = (0.9821U i 1 +0.211327) mod 1. Slide 6/??
MATLAB rand randn randperm(n) W dalszym ciągu przez (U 1,U 2,... ędziemy oznaczali ciąg iid o rozkładzie jednostajnym U(0,1). Slide 7/??
Dobroć generatorów. Na przykładzie generatorów w MATLABIE. Generujemy U 1,... i niech X n odległość pomiędzy wielkościami mniejszymi niż δ. (X n ) jest ciągiem iid rozkładzie geometrycznym. rand( state,0); n = 5*10^7; delta =.01; runs = diff(find(rand(n,1)<delta))-1; y = histc(runs, 0:100)./ length(runs); plot(0:100,(1-delta).^(0:100).*delta, k--, 0:100,y, b- ); title( Distribution of run lengths ) xlabel( Run Length ); ylabel( Relative Frequency ); legend({ Expected (Geometric) Distribution Actual Distribution }) Slide 8/??
Dla metody state możemy zaobserwować tajemniczą odchyłkę przy k = 27; patrz rys. 2. 11 x 10 3 Distribution of run lengths 10 Expected (Geometric) Distribution Actual Distribution 9 Relative Frequency 8 7 6 5 4 3 0 10 20 30 40 50 60 70 80 90 100 Run Length Rysunek 2: Histogram pojawiania się małych wielkości; generator state, n = 5 10 7, δ = 0.01 Slide 9/??
10 x 10 3 Distribution of run lengths 9 Expected (Geometric) Distribution Actual Distribution 8 Relative Frequency 7 6 5 4 3 0 10 20 30 40 50 60 70 80 90 100 Run Length Rysunek 3: Histogram pojawiania się małych wielkości; generator twister, n = 5 10 7, δ = 0.01 Slide 10/??
Dla kontrastu symulacja jeśli zamiast odstępów pomiędzy liczbami mniejszymi od δ = 0.01 rozważamy odstępy pomiędzy liczbami większymi od δ = 0.99. 11 x 10 3 Distribution of run lengths 10 Expected (Geometric) Distribution Actual Distribution 9 Relative Frequency 8 7 6 5 4 3 0 10 20 30 40 50 60 70 80 90 100 Run Length Rysunek 4: Histogram pojawiania się dużych wielkości; generator state, n = 5 10 7, δ = 0.01 Slide 11/??
Testowanie generatorów testy równomierności sprawdzający czy wygenerowane liczby są równomiernie rozmieszczone między zerem a jedynką, test serii podobnie jak równomierności tylko dla kolejnych t-rek, test odstępów notujemy odstępy pomiędzy liczbami losowymi, które nie należą do [a, b], gdzie 0 a < b 1, i sprawdzamy zgodność z rozkładem geometrycznym. Slide 12/??
Zgodność z rozkładem jednostajnym; test λ Kołmogorowa Generujemy liczby U 1,...,U n, i definiujemy odpowiadającą im dystrybunatę empiryczną ˆF n (t) = 1 n n 1(U i t), 0 t 1. i=1 Pamiętając, że naszą hipotezą jest rozkład jednostajny U(0,1), tj. F(t) = t dla t (0,1), naszą statystyką testową jest D n = sup ˆF n (t) t. 0 t 1 Twierdzenia Gliwienko Cantelli: D n 0. Natomiast unormowane zmienne nd n K(t). Mamy λ 0.1 = 1.224, λ 0.05 = 1.358 oraz λ 0.01 = 1.628, gdzie 1 K(λ α ) = α. Slide 13/??
Algorytm dla D n. U (1),...,U (n) - statystyka porządkowa. D + n D n ( i = max 1 i n = max 1 i n ) n U (i), ( U (i) i 1 n ). Wtedy D n = max(d + n,d n). Slide 14/??
Generowanie losowej permutacji ciągu 1,..., N ALGORYTM 1. podstaw t = N oraz A[i] = i dla i = 1,..., N ; 2. generuj liczbȩ losow a u pomiȩdzy 0 i 1; 3. podstaw k = 1 + tu ; zamień A[k] z A[t]; 4. podstaw t = t - 1; jeśli t > 1, to powrót do kroku 2; w przeciwnym razie stop i A[1],..., A[N ] podaj a losow a permutacjȩ. Złożoność algorytmu jest O(N ). Slide 15/??
Feller, t.1; rozdz. 3. Gracz A i B. Rzuty symetryczn a monet a. w n-tym rzucie wygrywa A jeśli 1 = orzeł, w przeciwnym razie -1= reszka wygrywa B S n wygrana A po n rzutach Pytania: Jak wygl adaj a oscylacje S n (n = 0,1,...,N) S 0 = 0. Demonstracja w MATLABIE - plik rand_walk_simple.m Jakie jest prawdopodobieństwo P(α,β), że przy N rzutach bȩdziemy nad kresk a w przedziale pomiȩdzy 100α% a 100β% procent czasu? L + N łączny czas prowadzenia przez A Slide 16/??
14000 12000 10000 8000 6000 4000 2000 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Rysunek 5: Histogram dla L + 1000 ; R = 100000, 25 klas Slide 17/??
Przykładowa symulacja prostego symetrycznego błądzenia przypadkowego. M PLIK dem2-1.m N=100; xi=2*floor(2*rand(1,n))-1; A=triu(ones(N)); y=xi*a; for i=2:n+1 s(i)=y(i-1); end s(1)=0; x=1:n+1; plot(x,s) Slide 18/??
Analiza statystyczna wyników. Chcemy obliczyć wartość I o której wiemy, że można przedstawić w postaci I = EY dla pewnej liczby losowej Y, takiej, że EY 2 <. Niech Y 1,...,Y n będą niezależnymi replikacjami liczby losowej Y i będziemy rozważać estymatory Ŷ n = 1 n n Y j. j=1 Slide 19/??
Estymator În jest nieobiążony t.j. EŶ n = I, mocno zgodny to znaczy z prawdopodobieństwem 1 zachodzi zbieżność dla n Ŷ n I, co pociąga ważną dla nas słabą zgodność, to znaczy, że dla każdego b > 0 mamy P( Ŷn I > b) 0. Slide 20/??
Zauważmy, że Ŷ n Y b oznacza, że błąd bezwzględny nie przekracza b. Dla każdego b i liczby 0 < α < 1 istnieje n 0, t.ż. P(Ŷn b I Ŷn +b) 1 α, n n 0. A więc z prawdopodobieństwem większym niż 1 α szukana wielkość I należy do przedziału losowego [Ŷn b,ŷn +b] i dlatego α nazywa się poziomem istotności. Z CTG n P j=1 Y j EY 1 x Φ(x), σ Y n gdzie σ Y = VarY 1. Niech z 1 α/2 będzie α/2 kwantylem rozkładu normalnego. Slide 21/??
Stąd lim P( z 1 α/2 < n n j=1 Y j EY 1 σ Y n z 1 α/2 ) = 1 α. A więc, po pewnych przekształceniach P(Ŷ n z 1 α/2 σ Y n I Ŷ n +z 1 α/2 σ Y n ) 1 α, skąd mamy fundamentalny związek wiążący n,α,σy 2 : σ Y b = z 1 α/2. (2) n W teorii Monte Carlo α = 0.05 skąd z tablic możemy odczytać, że z 1 0.025 = 1.96. Slide 22/??
Metody obniżania wariancji. 1. metoda warstw, 2. metoda zmiennych antytetycznych, 3. metoda wspólnych liczb losowych, 4. metoda zmiennych kontrolnych, 5. warunkowa metoda MC, 6. metoda losowania istotnościowego. Slide 23/??
Metoda zmiennych antytetycznych Rozpatrzmy teraz n zmiennych losowych Y 1,Y 2,...,Y n, przy czym n jest parzyste. Ponadto zakładamy, że pary (Y 2i 1,Y 2i ) i, i = 1,...,n/2 są niezależne o jednakowym rozkładzie, zmienne losowe (Y j ) n j=1 brzegowy co Y. mają ten sam rozkład Niech n j=1 Ŷ = Y j n będzie naszym estymatorem. Będziemy porównywać ten estymator z zgrubnym estymatorem Ŷ CMC = 1 n n j=1 Y j gdzie Y 1,Y 2,... są niezależnymi replikacjami Y. Dlatego estymatora wariancja jest VarY/n. Zauważmy, że jeśli będziemy rozpatrywać Slide 24/??
estymator to jego wariancja Ŷ = n j=1 Y j n Var(Ŷ ) n = Var(Y 1+Y 2 2 ) n/2 = 1 2n (2Var(Y)+2cov(Y 1,Y 2 )) = 1 2n (2Var(Y)+2Var(Y 1)Corr(Y 1,Y 2 )) = 1 n Var(Y)(1+Corr(Y 1,Y 2 )). A więc Corr(Y 1,Y 2 )) powinno być ujemne. W praktyce aby to osiągnąć stsuje sie zmienne antytetyczne. Przykładem pary takich zmiennych jest F 1 (U),F 1 (1 U), gdzie F jest dystrybunatą Y. Slide 25/??
Przykład symulacji antytetycznej Mamy N zadań do wykonania. czasy zadan... Mamy do dyspozycji c = 2 serwerów. Możemy te zadania wykonać na dwa sposoby: według najdłuższego zadania (Longest Processing Time First - LPTF), lub najkrótszego zadania (Shortest Processing Time First - SPTF). Decyzje podejmuje się w momentach zakończenia poszczególnych zadań. Celem jest policzenie EC SPTF, EC LPTF, gdzie C jest czasem do zakończenia ostatniego zadania. Slide 26/??
Na przykład, niech N = 5 i c = 2 oraz zadania są wielkości 3,1,2,4,5. wg SPTF: zaczynamy z zadaniami wielkości 1 i 2 i po jednej jednostce czasu resztowe wielkości tych zadań są 3,0,1,4,5 a więc mamy teraz zadanie z N = 4 i c = 2. Postępując tak dalej widzimy, że C SPTF = 9. wg. LPTF zaczynamy z zadaniami wielkości 4 i 5 i po 4-ch jednostkach czasu resztowe wielkości tych zadań są 3,1,2,0,1 a więc mamy teraz zadanie z N = 4 i c = 2. Postępując tak dalej widzimy, że C LPTF = 8. Inne FIFO, ALT Slide 27/??
Czasy zadań są logu 1, logu 2,..., log(u N ), natomiast w symulacji antytetycznej log(1 U 1 ), log(1 U 1 ), logu 2, log(1 U 2 ),... W tablicy 1 podajemy wyniki dla C, dla N = 10 zadań, z m = 1000 replikacjami; s jest odchyleniem standardowym Var(C), oraz b jest połową długości przedziału ufności na poziomie α = 0.05 (czyli można rzec błąd). dyscyplina I s b FCFS 5.4820 1.8722 0.1160 SPTF 5.8993 2.0259 0.1256 LPTF 5.0480 1.6908 0.1048 FCFSanthy 5.5536 0.8999 0.0558 SPTFanthy 5.9673 1.0127 0.0628 LPTFanthy 5.0913 0.6998 0.0434. Tablica 1: SzacowanieC przy użyciu CMC i anthy; N = 10, liczba replikacji m = 1000. Slide 28/??
Dla porównania w tablicy poniżej są wyniki z m = 100000 replikacjami. Wszystkie symulacje są robione na tych samych liczbach pseudolosowych, ponieważ algorytmy zaczynają się od rand( state,0). dyscyplina I s b FCFS 5.4909 1.7909 0.0111 SPTF 5.8839 1.9116 0.0118 LPTF 5.0472 1.5945 0.0099 FCFSanthy 5.5015 0.8773 0.0054 SPTFanthy 5.8948 0.9748 0.0060 LPTFanthy 5.0556 0.6858 0.0043. Tablica 2: SzacowanieC przy użyciu CMC i anthy; N = 10, liczba replikacji m = 100000 Slide 29/??
Metoda warstw Cel I = EY. Niech A 1,...,A m będzie rozbiciem IR warstwami. Oznaczmy prawdopodobieństwo wylosowania warstwy p j = P(Y A j ) (to przyjmujemy za znane i dodatnie) oraz y j = E[Y Y A j ] (j = 1,...,m) (oczywiście to jest nieznane bo inaczej nie trzeba by nic obliczać). Ze wzoru na prawdopodobieństwo całkowite EY = p 1 y 1 +...+p m y m. Slide 30/??
Metoda warstw: Potrafimy losowac Y j = d (Y Y A j ). n będzie ogólną liczbą replikacji, n j replikacji Y j w warstwie j; n = j n j Slide 31/??
Niech Y j 1,...,Y j n j będą więc replikacjami Y j w warstwie j. Definiujemy jako estymator y j. Ŷ j = 1 n j n j i=1 Y j i Niech σ 2 j = VarY j będzie wariancją w warstwie j. Zauważmy, ż Estymator Ŷ j jest nieobciążonym y j oraz VarŶ j = σ2 j n. Następnie definiujemy estymator warstwowy (nieobciążony) Ŷ str = p 1 Ŷ 1 +...+p m Ŷ m. Slide 32/??
Mamy oraz EŶ str = p 1 EŶ 1 +...+p m EŶ m m EY1 Y Ai = p i = EY = I. p i i=1 σstr(n 2 1,...,n m ) = nvarŷ str m = n p 2 jvarŷ j = p 2 1 j=1 n σ1 2 +...+p 2 n m σm 2. n 1 n m Wielkość σ 2 str(n 1,...,n m ) będziemy nazywać wariancją estymatora warstwowego. A więc VarŶ str = σ2 str(n 1,...,n m ) n. Slide 33/??
Symulacja procesów matematyki finansowej Realizacje badanych tutaj procesów są ciągłe, i dlatego czegoś takiego nie można wylosować na komputerze. Możemy zjedynie wylosować realizację (X(0),X(t 1 ),...,X(t n )) w momentach 0 = t 0 < t 1 <... < t n T. Będziemy przyjmowali, ze t 1 <... < t n. Example Niech {S(t),0 t T} będzie ewolucją ceny akcji - geometrycznych ruch Browna. Najbardziej popularną jest opcja możliwości zakupu akcji za cenę K jeśli cena w chwili T spełnia warunek S(T) K, w przeciwnym razie rezygnację z zakupu. Jest to tzw opcja europejska call. Inną opcją jest tzw. azjatycka gdzie zamiast wartości S(T) bierzemy po uwagę uśrednioną ceną T 0 S(s)ds/T. Slide 34/??
W takimi razie korzyść kupującego jest (S(T) K) + lub T ( 0 S(s)ds/T K) +. r bezryzykownym natężeniem stopy procentowej, to cena takich opcji byłaby e rt E(S(T) K) + lub e rt E ( T 0 S(s)ds ) T K +. Slide 35/??
Ponieważ nie mamy możliwości symulacji realizacji {S(t),0 t T} więc symulujemy S(0),S(T/N),...,S(T). Dla opcji azjatyckiej będziemy obliczali jej cenę za pomocą N Y = e rt S(jT/N))/T K. j=1 A więc estymator zdefiniowany przez Y nie będzie nieobciążony, mimo, że rozkład (S(0),S(1/N),...,S(T)) jest dokładny. + Slide 36/??
Jednakże nie zawsze jesteśmy w stanie symulować rozkład dokładny, ze względu na to, że nie znamy tego rozkładu ani procedury jego generowania. W przypadku gdy proces S(t) jest zadany przez stochastyczne równanie różniczkowe, to istnieje procedura numeryczna, generowania aproksymacji S(0), S(T/N),..., S(T), który to wektor ma jedynie rozkład przybliżony do S(0),S(T/N),...,S(T). Będzie to metoda Eulera lub jej rozwinięcie zwane metodą Milsteina. Możemy interpolować S(0), S(T/N),..., S(T) do procesu { S(t),0 t T} w sposób ciągły i następnie badać jak szybko dąży do zera błąd postaci lub E T 0 E sup 0 t T S(t) S(t) p dt S(t) S(t) dt. Innym błędem zbadanym teoretycznie jest e s (N) = E S(1) S(1). Slide 37/??
Ruch Browna Ruch Browna ma przyrosty niezależne. Realizację B(t) (0 t T) symulujemy w punktach 0 < t 1 <... < t n 1 < t n = T. Korzystając z tego, że B(t i ) B(t i 1 ) = d ti t i 1 Z i, gdzie Z 1,...,Z n są iid standardowe normalne. Bardziej ogólny model to ruch Browna z dryfem BM(µ, σ), gdzie dryf µ IR i współczynnikem dyfuzji σ > 0. Taki proces definiujemy przez X(t) = σb(t) + µt gdzie B(t) jest standardowym ruchem Browna. W języku stochastycznych równań różniczkowych dx(t) = µdt+σdb(t). Slide 38/??
Most Browna i inna konstrukcja ruchu Browna Przedstawimy teraz inną konstrukcję ruchu Browna, korzystając z mostu Browna. Rozpatrzmy (B(s), B(t), B(u)), gdzie 0 u < s < t. Rozkład B(s) pod warunkiem B(u) = x i B(t) = y jest normalny z średnią oraz wariancją (t s)x+(s u)y (t u) (s u)(t s). (t u) W szczególności B(t+h) pod warunkiem B(t) = x i B(t+2h) = y ma średnią (x+y)/2 i wariancję h/2. Slide 39/??
Będziemy zakładać, że T = 1. Naszym celem jest wygenerowanie b k 0,...,b k 2 k 1,bk 2 k mający łączny rozkład taki jak Algorytm: (B(0),...,B((2 k 1)/2 k ),B(1)). 1. Generuj b 0 0,b 0 1, gdzie b 0 0 = 0 oraz b 1 0 N(0,1). 2. Mając wygenerowane b k 1 j,(j = 1,...,2 k 1 ), zauważamy, że b k 2j = bk 1 j,(j = 1,...,2 k 1 ), natomiast dla j = 2j + 1, generujemy b k i N(y,2 k 1 ), gdzie y = 1 2 (bk 1 j +b k 1 j+1 ). Slide 40/??
Reprezentację standardowego ruchu Browna. Niech Z 0, Z i,j ;l = 1,2,...,j = 1,...,2 l 1 iid N(0,1). Definiujemy b k (t) jako 0 (t)z 0 + k l=1 Zauważmy, że l 1 2 2 (l+1)/2 i=1 (b k (0),b k (1/2 k ),...,b k (1)) ma taki sam rozkład, jak l,i (t)z l,i, t [0,1]. (B(0),...,B((2 k 1)/2 k ),B(1)). Można pokazać, że dla k mamy zbieżność prawie wszędzie do procesu 0 (t)z 0 + l=1 l 1 2 2 (l+1)/2 i=1 l,i (t)z l,i, t [0,1]. Ten proces ma ciągłe trajektorie i spełnia warunki ruchu Browna. Slide 41/??
Geometryczny ruch Browna Przypuśmy, że gdzie B(t) jest SBM. X(t) = X(0)exp(σB(t)+ηt) Stosując wzór Ito do X(t) = f(b(t),t), gdzie f(x,t) = ξexp(σx+ηt) mamy dx(t) = = t f(b(t),t)dt+ x f(b(t),t)db(t)+ 1 2 = (η +σ 2 /2)X(t)dt+σX(t)dB(t). Podstawiając µ = η +σ 2 /2 widzimy, że stochastyczne równanie różniczkowe dx(t) = µx(t)dt+σx(t)db(t) z warunkiem początkowym X(0) = ξ ma rozwiązanie X(t) = ξexp((µ σ 2 /2)t+σB(t)). Ten proces nazywamy geometrycznym ruchem Browna X(t) ( GBM(µ,σ)). 2 x 2f(B(t) Slide 42/??
Algorytm. Wartości X w punktach 0 = t 0 < t 1 <... < t n spełniają rekurencję X(t i+1 ) = = X(t i )exp((µ 1 2 σ2 )(t i+1 t i )+σ t i+1 t i Z i+1 ) z Z 1,...,Z n iid N(0,1). Slide 43/??
Materiał z tego wykładu i dużo więcej jest w: [1] Asmussen, S. & Glynn, P. Stochastic Simulation. Springer, 2007. [2] Glasserman, P. Monte Carlo Methods in Financial Engineering, Springer, 2004. [3] Rolski, T. Symulacje Stochastyczne i Teoria Monte Carlo, Skrypt IM UWr dostępny na http://www.math.uni.wroc.pl/ rolski/skrypty.html Slide 44/??