Metoda Monte Carlo

Transkrypt

Metoda Monte Carlo
Metoda Monte Carlo
Rafał Kucharski
[email protected]
www.math.us.edu.pl/rk
Szkoła Letnia Matematyki Finansowej, Tarnów 2012
John was assisted by Henry, a foreign quant whose English was
incomprehensable, but who was believed to be at least equally competent in risk-management methods. John knew no math, he relied
on Henry. (. . . ) Henry was a graduate student in Operations Research when John hired him. His specialty was a field called Computational Finance, which, as its name indicates, seems to focus solely
on running computer programs overnight. Henry’s income went from
$50,000 to $600,000 in three years.
Nassim Nicholas Taleb, Fooled by Randomness
Zaczynamy od prostej funkcji. . .
0.0
0.2
0.4
0.6
0.8
1.0
f (x) = 4 x (1 − x)
0.0
0.2
0.4
0.6
0.8
1.0
Iterujemy. . .
xn+1 = f (xn),
n = 1, . . . , 1000
0.0
0.2
0.4
0.6
0.8
1.0
x0 = 0.1,
0
200
400
600
800
1000
Ciąg deterministyczny zachowuje się jak losowy!
0
50
100
150
200
Histogram (arcus sinus)
0.0
0.2
0.4
0.6
0.8
1.0
Generowanie liczb losowych
• liczby prawdziwie losowe (true random numbers)
• liczby pseudo-losowe (pseudo-random numbers)
• liczby quasi-losowe (quasi-random numbers)
Liczby prawdziwie losowe:
• rzut monetą, rzut kostką, koło ruletki,
• zachowanie człowieka lub jego efekty: ruchy myszką komputerową,
kliknięcia na klawiaturze, ruch głowic twardego dysku,
• zjawiska fizyczne których nieprzewidywalność sięga praw mechaniki
kwantowej: rozkład radioaktywny, szum termiczny, szum radiowy
• zdjęcia chmur, ”Lava lamps”
Liczby quasi-losowe:
• quasi-random numbers, low discrepancy numbers)
• regularne – nielosowość widoczna ”gołym okiem”,
• bardziej równomierne niż ciągi pseudolosowe,
• dają mniejszy błąd – lepsze tempo zbieżności,
• najbardziej popularne: ciągi Haltona, ciągi Sobola,
• metoda Quasi-Monte Carlo.
Halton
Sobol
Liczby pseduo-losowe
Własności generatorów liczb pseudolosowych
(RNG random number generators)
• okresowość (pełny okres daje rozkład jednostajny),
• odtwarzalność, powtarzalność (reproducibility),
• szybkość,
• przenośność (portability),
• losowość.
Generator liniowy kongruencyjny:
• Ustalamy liczbę całkowitą M (duża, najlepiej pierwsza, np. 232 − 1).
• Wybieramy a, b ∈ {0, 1, . . . , M − 1}.
• Wybieramy ziarno x0 ∈ {0, 1, . . . , M − 1}.
• xi = (axi−1 + b) mod M , i = 1, 2, . . .
• Ui = xi/M ∈ [0, 1].
Inne popularne generatory:
• Fibonacciego: xn := xn−1 + xn−2 (mod m),
• multiple recursive generators: xn := a1xn−1 + · · · + ak xn−k (mod m),
• bitowe (w tym feedback shift registers),
• inwersyjne: xn := ax−1
n−1 + b.
Zobacz w R: ?RNG
Fakt. Niech F będzie dystrybuantą ciągłą i ściśle rosnącą.
Jeśli U ∼ U[0, 1], to F −1(U ) jest zmienną losową o dystrybuancie F .
P (F −1(U ) ¬ x) = P (F (F −1(U )) ¬ F (x)) = P (U ¬ F (x)) = F (x), x ∈ R.
Definicja. Dla dowolnej dystrybuanty F : R → [0, 1] uogólniona funkcja odwrotna
F − : [0, 1] → [−∞, ∞] dana jest wzorem
F −(u) = inf{x : F (x) ­ u}.
Fakt. Niech F będzie dowolną dystrybuantą.
Jeśli U ∼ U[0, 1], to F −(U ) jest zmienną losową o dystrybuancie F .
Wniosek: Wystarcza nam generowanie liczb o rozkładzie jednostajnym.
Zadanie. Wygeneruj liczby o poniższych rozkładach za pomocą transformacji
odwrotnej z rozkładu jednostajnego.
• rozkład Cauchy’ego: F (x) = 21 + π1 arc tg(x),
• rozkład wykładniczy: F (x) = 1 − exp(−x), x ­ 0,
√
• rozkład arcusa sinusa: F (x) = π2 arc sin( x), 0 ¬ x ¬ 1,
(czas w jakim proces Wienera osiąga maksimum na przedziale [0, 1]),
• rozkład Rayleigh’a: F (x) = 1 − e−2x(x−b), x ­ b,
(maksimum procesu Wienera na [0, 1] pod warunkiem W1 = b),
Rozkłady dyskretne:
• Chcemy wygenerować zmienną X o rozkładzie P skupionym na zbiorze N,
• Wyznaczamy liczby p0 = P(X ¬ 0), p1 = P(X ¬ 1), p2 = P(X ¬ 2), . . .
• Gdy rozkład jest skupiony na zbiorze nieskończonym, poprzestajemy na pk
dostatecznie bliskim 1, np. pk = 0.99999.
• X = k, jeśli pk−1 < U < pk , gdzie U ∼ U[0, 1].
Czasem przeszukiwanie od k = 0 może być nieefektywne.
Przykładowo: dla P ois(100) większość obserwacji leży w (70, 130),
zatem warto rozpocząć sprawdzanie od p70.
Rozkład normalny:
• Proste przybliżenie: X =
zmiennymi losowymi (iid),
12
i=1 Ui
P
− 6, gdzie Ui ∼ U[0, 1] są niezależnymi
• Box-Muller: U1, U2 ∼ U[0, 1], iid,
r
X1 = −2 log(U1) cos(2πU2),
• Marsaglia-Bray:
while (X > 1)
losuj U1, U2 ∼ U[0, 1]
U1 ← 2U1 − 1, U2 ← 2U2 − 1
X ← U12 + U22
r
Y ← −2 log(X)/X
Z1 ← U 1 Y , Z2 ← U 2 Y
return Z1, Z2.
r
X2 = −2 log(U1) sin(2πU2).
• Wielowymiarowy rozkład normalny Nd(µ, Σ):
– Niech Σ = AAT (np. rozkład Cholesky’ego), X ∼ Nd(0, Id),
– Wówczas AX ∼ Nd(0, Σ), AX + µ ∼ Nd(µ, Σ).
Dodatek: algorytm rozkładu Cholesky’ego dla macierzy dodatnio określonej:
A ← 0 (macierz d × d)
for j = 1, . . . , d
for i = j, . . . , d
vi ← Σij
for k = 1, . . . , j − 1
vi ← vi − Ajk Aik
√
Aij ← vi/ vj
return A.

W przypadku d = 2 macierz korelacji ma postać

1 ρ
,
ρ 1



a jej macierz Cholesky’ego przybiera formę:

1
0 
√
.
ρ 1 − ρ2


Możemy zatem zapisać powyższy algorytm następująco:
• Wylosuj X1, X2 ∼ N (0, 1), niezależne,
√
• Oblicz Y1 = X1, Y2 = ρX1 + 1 − ρ2X2.
Istotnie, wówczas E(Y1) = E(Y2) = 0, Var(Y1) = Var(X1) = 1,
Var(Y2) = ρ2 Var(X1) + (1 − ρ2) Var(X2) = 1,
r
cov(Y1, Y2)
Corr(Y1, Y2) = r
= cov(X1, ρX1 + 1 − ρ2X2) =
Var(Y1) Var(Y2)
r
= cov(X1, ρX1) + cov(X1, 1 − ρ2X2) = ρ
Zadanie. Wygeneruj wektory liczb X, Y o rozkładzie normalnym standardowym,
dla których współczynnik korelacji ρ(X, Y ) = 0.6.
Metoda akceptuj-odrzuć (Accept-Reject)
• Chcemy generować liczby z rozkładu o gęstości f
(znanej z dokładnością do stałej multyplikatywnej),
• Potrzebujemy prostszej do symulacji gęstości g takiej, że
– f i g mają takie same nośniki (g(x) > 0 ⇐⇒ f (x) > 0),
– istnieje M , że f (x)/g(x) ¬ M dla wszystkich x,
• Algorytm:
1. generuj Y ∼ g, U ∼ U[0, 1],
1 f (Y )
·
, to X = Y ; w przeciwnym wypadku wróć do 1.
2. jeśli U ¬
M g(Y )
• Powyższy algorytm działa również w przypadku wielowymiarowym.
Zadanie. Używając metody akceptuj-odrzuć wygeneruj liczby z rozkładu
o gęstości:
f (x) ∝ exp(−x2/2){sin(6x)2 + 3 cos(x)2 sin(4x)2 + 1}.
• Narysuj f (x) i znajdź takie M , że
f (x) ¬ M g(x),
2
√
gdzie g(x) = exp(−x /2)/ 2π jest gęstością rozkładu normalnego.
Możesz użyć funkcji optimise, aby znaleźć najmniejszą wartość M .
• Oszacuj stałą normalizującą.
• Porównaj histogram ze znormalizowaną gęstością.
Rozkłady warunkowe:
• X ma dystrybuantę F ,
• Chcemy wygenerować X pod warunkiem a ¬ X ¬ b,
• V = F (a) + (F (b) − F (a)) · U , gdzie U ∼ U[0, 1],
• F −(V ) ma pożądany rozkład,
Zadanie (Probabilistyka, A. i E. Plucińscy, str. 228, Zadanie 15).
Twierdzenie (Probabilistyka, A. i E. Plucińscy, str. 223, Twierdzenie Lapunowa
4.9). Niech {Xn} będzie ciągiem niezależnych zmiennych losowych i niech dla
n = 1, 2, . . . będzie
σn2 = E((Xn − mn)2) > 0, bn = E(|Xn − mn|3),
r
√
Cn = σ12 + · · · + σn2 , Bn = 3 b1 + · · · + bn,
mn = E(Xn),
n
1 X
(Xk − mk ),
Un =
Cn k=1
Fn(u) = P (Un < u).
n
Jeśli limn→∞ B
Cn = 0, to dla każdego u
1 Z u −x2/2
√
lim F (u) =
e
dx,
n→∞ n
2π −∞
czyli ciąg losowy {Un} jest zbieżny według dystrybuant do zmiennej losowej o
rozkładzie normalnym N (0, 1).
Proces Wienera
• W0 = 0 p.n., trajektorie t 7→ Wt są ciągłe p.n.
• przyrosty Wt1 , Wt2 − Wt1 , . . . , Wtn − Wtn−1 są niezależne,
• Wt − Ws ∼ N (0, t − s), 0 ¬ s ¬ t,
Symulacja trajektorii procesu Wienera
• Chcemy symulować wartości (W (t1), . . . , W (tn)) w ustalonym zbiorze
punktów 0 < t1 < · · · < tn.
• Niech Z1, . . . , Zn będą niezależnymi zmiennymi losowymi N (0, 1),
• Dla standardowego ruchu Browna W (0) = 0 oraz
√
W (ti+1) − W (ti) = ti+1 − ti · Zi+1,
i = 0, . . . , n − 1.
0.0
0.2
0.4
0.6
time
0.8
1.0
−2.0
−1.5
−1.0
−0.5
BM
0.0
0.5
Wielowymiarowy proces Wienera
• Proces W (t) = (W1(t), . . . , Wd(t)) jest standardowym d-wymiarowym
ruchem Browna , gdy jego współrzędne Wi(t) są standardowymi
jednowymiarowymi ruchami Browna oraz Wi i Wj są niezależne dla i 6= j.
• Niech µ ∈ Rd oraz Σ ∈ Rd×d będzie dodatnio określoną macierzą.
Proces X nazywamy ruchem Browna z dryfem µ i kowariancją Σ,
jeśli X ma ciągłe trajektorie o niezależnych przyrostach
X(t + s) − X(s) ∼ N (tµ, tΣ).
Proces X nazywamy ruchem Browna o stałej kowariancji (Σ jest stała).
• Dla symulacji Monte Carlo ze skorelowanym ruchem Browna potrzebujemy
generować próbki o rozkładzie N (δtµ, δtΣ), a jeśli δt jest ustalone problem
redukuje się do losowania z rozkładu N (µ, Σ) (co już potrafimy).
Zaproponowana przez Stanisława Ulama w czasie projektu Manhattan, jako
sposób obliczania skomplikowanych całek pojawiających w modelowaniu reakcji
łańcuchowych. Rozwinięta przez J. von Neumanna, N. Metropolisa i innych.
Źródło: www.atomicarchive.com
• Jeśli X ∼ U[0, 1] oraz h : [0, 1] → R, to wartość oczekiwana zmiennej h(X)
jest równa całce:
Z 1
E[h(X)] = I(h) = 0 h(x) dx.
• Podobnie w przypadku wielowymiarowym: X ∼ U[0, 1]d oraz h : [0, 1]d → R
E[h(X)] = I(h) =
Z
[0,1]d
h(x) dx.
• Z drugiej strony, przyjmując
1
IN (h) =
N
N
X
n=1
h(xn),
gdzie xn są niezależnymi realizacjami X, mamy
E[IN (h)] = E[h(X)] = I(h)
(nieobciążoność) oraz z MPWL
lim IN (h) = E[h(X)] = I(h).
N →∞
• Ponadto
Var(IN (h)) =
N
1 X
1
Var
h(x
)
=
Var h(X).
k
N 2 k=1
N
• Błąd metody Monte Carlo jest proporcjonalny do N −1/2.
• Co ważniejsze, błąd Monte Carlo jest proporcjonalny do N −1/2, niezależnie
od wymiaru!
• Błąd = O(N −1/2), Czas = O(N ) ⇒ jeśli chcemy zwiększyć dokładność
10-krotnie, musimy zwiekszyć ilość próbek i czas obliczeń 100-krotnie.
Model Blacka-Scholesa (1973)
Ceny akcji modeluje geometryczny proces Wienera:
St = S0 exp (µ −
1 2
2 σ )t
+ σWt ,
lub równoważnie:
ln(St) = ln(S0) + (µ − 12 σ 2)t + σWt,
gdzie
• µ jest stopą aprecjacji (wyznacza trend ceny),
• σ jest współczynnikiem zmienności (volatility),
• parametry µ, σ > 0 są stałe (i deterministyczne),
• akcja nie wypłaca dywidendy,
• stała stopa procentowa wolna od ryzyka r,
W modelu B-S zmienna losowa St ma rozkład lognormalny, tzn. zmienna ln(St) ma
rozkład normalny.
Wzory Blacka-Scholesa
• Cena europejskiej opcji kupna:
C = StΦ(d1(St, τ )) − Ke−rτ )Φ(d2(St, τ )),
• Cena europejskiej opcji sprzedaży:
P = Ke−rτ Φ(−d2(St, τ )) − StΦ(−d1(St, τ )),
• gdzie τ = T − t, funkcja Φ jest dystrybuantą standardowego rozkładu
normalnego oraz
ln(s/K) + (r + σ 2/2)τ
√
d1(s, τ ) =
,
σ τ
√
ln(s/K) + (r − σ 2/2)τ
√
d2(s, τ ) = d1(s, τ ) − σ τ =
.
σ τ
• Uwaga: cena opcji nie zależy od µ.
Wycena opcji niezależnych od trajektorii
• Instrumenty finansowe wyceniamy korzystajac z wzoru
Π0(X) = B0EQ[X/BT ],
gdzie Q jest miarą neutralną wobec ryzyka,
Bt – ceną w chwili t instrumentu wolnego od ryzyka (numeraire) oraz
X jest wypłatą z danego instrumentu w chwili T .
• Cena akcji w modelu Blacka-Scholesa względem miary neutralnej wobec
ryzyka, dane są wzorem:
1
St = S0 exp (r − σ 2)t + σWt .
2


• Zmienna losowa WT ma rozkład normalny o średniej 0 i wariancji T .
√
• Możemy przyjąć WT = T Y , gdzie Y ∼ N (0, 1).
• Wypłata z europejskiej opcji call wynosi
X = f (ST ) = (ST − K)+,
a dla europejskiej opcji put
X = g(ST ) = (K − ST )+.
gdzie K jest ceną wykonania.
• Cena instrumetu wolnego od ryzyka (obligacja) to
Bt = exp(rt),
t ∈ [0, T ].
• Cenę opcji wyznaczamy jako wartość oczekiwaną
V = EQ[f (ST )/BT ] = exp(−rT )
gdzie
Z
1
0
f (ST )dU,
√
1 2
ST = S0 exp((r − σ )T + σ T Y )
2
oraz Y = Φ−1(U ) ∼ N (0, 1), U ∼ U[0, 1].
• W praktyce:
– Losujemy N niezależnych realizacji zmiennych o rozkładzie
normalnym Y (1), . . . , Y (N ),
(1)
(N )
– Obliczamy ceny akcji w chwili wykonania ST , . . . , ST
kolejno wylosowanych próbek,
dla
– Obliczamy zdyskontowane wypłaty z opcji:
(1)
(N )
exp(−rT )f (ST ), . . . , exp(−rT )f (ST ),
– Wyznaczamy cenę opcji jako zdyskontowaną wartość oczekiwaną:
1
Π0(X) =
N
N
X
i=1
(i)
exp(−rT )f (ST ).
Zadanie. Oblicz ceny opcji dla r = 0.05, σ = 0.2, T = 1, S0 = 110, K = 100.
Porównaj z wartościami dokładnymi (wzór Blacka-Scholesa). Wyznacz przedział
ufności, w którym prawdziwa wartość leży z prawdopodobieństwem 99.7%.
Wyznacz ilość próbek N , tak by powyższy przedział miał szerokość 0.01.
Wycena opcji zależnych od trajektorii
• Dla t2 > t1 mamy
1
St2 = St1 exp (r − σ 2)(t2 − t1) + σ(Wt2 − Wt1 )
2


(1)
(N )
• Losujemy N niezależnych trajektorii ceny St,T , . . . , St,T na przedziale [t, T ],
• Dla log-normalnego procesu ceny akcji i równoodległych chwil ti+1 − ti = δt,
i = 0, . . . , n − 1, mamy
Sti+1
√
1 2
= Sti exp((r − σ )δt + σ δtZi),
2
gdzie Zi ∼ N (0, 1).
• Obliczamy wypłatę V (n) na każdej trajektorii n = 1, . . . , N ,
• Ceną opcji jest Π0 = exp(−rT ) N1
PN
n=1 V
(n)
.
Przykład: opcja azjatycka (asian option)
• Europejska opcja call na średnią cenę M akcji o wypłacie
1
X=
T

T
X
t=1
+
St − K  ,
gdzie St jest ceną akcji w dniu t.
• Wielowymiarowy proces Wienera przydaje się przy wycenie opcji opartych o
kilka instrumentów bazowych.
Przykład: opcja koszykowa (basket option)
• Europejska opcja call na średnią cenę M akcji o wypłacie
1
X=
M

M
X
i=1
+
ST,i − K  ,
gdzie ST,i jest ceną i-tej akcji w chwili T .
Redukcja wariancji
• antithetic variables (metoda odbić lustrzanych)
– Losujemy 2 próbki, X1 i X2, z tego samego rozkładu.
– Wariancja wynosi


h(X1) + h(X2)  1

 =
[Var(h(X1) + cov(h(X1), h(X2))],
ε = Var 
2
2
– Jeśli h(X1) i h(X2) są niezależne to ε = 21 Var(h(X1),
– Jeśli h(X1) i h(X2) będą ujemnie skorelowane, to ε < 21 Var(h(X1),
– Jeśli X1, X2 ∼ U[0, 1] ujemną korelację uzyskujemy przyjmując
X2 = φ(X1), gdzie φ : [0, 1] → [0, 1] jest funkcją malejącą oraz
φ(X1) ∼ U[0, 1]; np. φ(x) = 1 − x.
– Każdą wylosowaną próbkę możemy wykorzystać 2 razy!
– Uwaga: jeśli próbki losowane są z rozkładu symetrycznego
(np. normalnego), to X ∼ −X,
– Metoda daje dobre wyniki, gdy wypłata jest bliska liniowej,
• control variate
– Chcemy obliczyć E(X) (np. cena amerykańskiej opcji call),
– Wiemy o zmiennej losowej Y , której E(Y ) znamy, a która jest w pewnym
sensie bliska E(X) (np. cena europejskiej opcji call)
– Przyjmujemy Z = X − Y + E(Y ), skąd E(Z) = E(X)
– Obliczamy E(X) symulując wartości zmiennej Z.
– Korzyść odniesiemy gdy: Var(Z) = Var(X − Y ) < Var(X).
– Intuicję wynikającą z tej metody można stosować nie tylko dla MC:
∗
∗
∗
∗
z modelu wynikają oszacowania x = IN (X), y = IN (Y ),
model popełnia błąd ε = y − E(Y ) dla zmiennej Y ,
zakładamy, że dla zmiennej X popełnia ten sam błąd,
lepsze oszacowanie dla X to: x − ε = x − y + E(Y ).
– Metodę można „dostroić”
∗ dla θ ∈ R definiujemy
Zθ = X + θ(E(Y ) − Y )
∗ w dalszym ciągu E(Zθ ) = E(X) oraz
Var(Zθ ) = Var(X) − 2θ cov(X, Y ) + θ2 Var(Y )
)
∗ wariancja jest najmniejsza dla θmin = cov(X,Y
Var(Y ) ,
∗ wielkość cov(X, Y ) zwykle nie jest znana, ale można ją oszacować –
metodą MC (nie jest potrzebna duża dokładność)
• importance sampling (metodę najlepiej wyjaśnić na przykładzie)
– chcemy wycenić opcję call (X = (ST − K)+),
która jest głęboko out-of-the-money,
– większość wylosowanych próbek da zerową wypłatę, co jest stratą czasu
obliczeniowego,
– trzeba zatem losować tylko te trajektorie, które wniosą wkład do ceny
(zobacz slajd „Rozkłady warunkowe”),
– Niech F (x) = P (ST ¬ x), G(x) = P (ST ¬ x|ST > K) oraz
k = P (ST > K) = 1 − F (K). Wówczas dla x ­ K mamy
G(x) =
P (K<ST ¬x)
P (ST >K)
=
P (ST ¬x)−P (ST ¬K)
P (ST >K)
=
F (x)−1
k
+ 1.
– Stąd G−1(u) = F −1(1 + k(u − 1)), u ∈ (0, 1).
– Jeśli Z jest losowane z rozkładu o dystrybuancie G, to
E[X] = P (ST ¬ K) · E[X|ST ¬ K] + P (ST > K) · E[X|ST > K] =
= (1 − k) · 0 + k · E[Z] = k · E[Z].
– Podejście ogólne: zakładamy, że losowana zmienna pochodzi z rozkładu
o gęstości f ,
– Zastąpimy tą gęstość przez g, która powinna być bliska f · h (gęstości
zmiennej h(X), którą całkujemy), wtedy
Ef (h(X)) =
Z
h(x)f (x) dx =
Z
h(x)
f (x)
f (X)
g(x) dx = Eg (h(X)
),
g(x)
g(X)
a funkcja podcałkowa w ostatniej całce ma małą wariancję.
Metody symulacji procesów stochastycznych
• symulacja dokładnego rozwiązania,
• symulacja z prawdopodobieństwa przejścia,
• przybliżanie dynamiki,
Symulacja dokładnego rozwiązania,
Stosujemy, gdy znana jest jawna postać silnego rozwiązania SDE, to znaczy daje
się ono zapisać jako funkcjonał procesu Wienera: X(t) = G(t, W[0,t]).
• Ustalamy X0 = x0,
• Dla i = 1, . . . , N losujemy trajektorię (W (ti) oraz obliczamy
Xi = G(ti, {W (t1), . . . , W (ti)}).
Przykład: w modelu Blacka-Scholesa
dS(t) = r dt + σ dW (t)
rozwiązanie ma postać:
S(t) = S(0) exp((r − σ 2/2)t + σW (t)).
Symulacja z prawdopodobieństwa przejścia
Możemy stosować, gdy znamy prawdopodobieństwa przejścia procesu między dwoma dowolnymi momentami czasu.
• Ustalamy X0 = x0.
• Dla i = 1, . . . , N losujemy
Xi ∼ p(ti, · ; ti−1, Xi−1)
(rozkład prawdopodobieństwa Xi w chwili ti pod warunkiem, że proces ma
wartość Xi−1 w chwili ti−1).
Przykład: w modelu terminowych stóp procentowych Vasicka
dr(t) = α(β − r(t)) dt + σ dW (t),
proces r(t) ma rozkład normalny z warunkową średnią i wariancją
µ(t; s, x) = β + e
−α(t−s)
(x − β),
σ2
(1 − e−2α(t−s)).
σ(t; s, x) =
2α
Przybliżanie dynamiki
Dyskretyzujemy równanie różniczkowe, zamieniając je w równanie różnicowe.
dX(t) = µ(t, X(t)) dt + σ(t, X(t)) dW (t)
(∗)
Schemat Eulera
• Równanie (∗) dyskretyzujemy do postaci
√
Xi+1 = Xi + µ(ti, Xi)∆t + σ(ti, Xi) ∆tZi
gdzie Zi ∼ N (0, 1).
• Ustalamy X0 = x0,
• Dla i = 0, . . . , N − 1 losujemy Zi i obliczamy Xi+1 jak w (∗∗).
• Otrzymane w schemacie Eulera rozwiązania są zbieżne do prawdziwego:
∀T > 0, ∃C = C(T ) E( sup |X N (t) − X(t)|2) ¬ C × ∆t.
t∈[0,T ]
(∗∗)
• przyrosty czasu nie muszą być równe (∆t = ti+1 − ti).
• dla Zi = 2Bi − 1, gdzie Bi mają rozkład Bernoulliego z p = 1/2, otrzymamy
rozwiązania zbiegające do oryginalnego w sensie słabym, co wystarcza, gdy
chcemy liczyć wartości oczekiwane regularnych funkcjonałów X.
Przykład: Model Fonga-Vasicka zadany jest układem równań:
r
dr(t) = α(µ − r(t)) dt + v(t) dWt1,
r
dv(t) = β(µ̄ − v(t)) dt + σ v(t) dWt2
gdzie r jest modelowaną stopą procentową, a v jej ciągłą zmiennością. Dyskretyzacja
ma postać:
√
ri+1 = ri + α(µ − ri)∆t + vi∆tZi1,
√
vi+1 = vi + β(µ̄ − vi)∆t + σ vi∆tZi2
gdzie (Zi1, Zi2) ∼ N (0, Σi), a Σi = cov(dW 1, dW 2).
Literatura
[1] R. Seydel, Tools for Computational Finance, Springer 2006.
[2] G. Fusai, A. Roncoroni, Implementing Models in Quantative Finance: Methods and Cases, Springer 2008.
[3] P. Jackel, Monte Carlo Methods in Finance, Wiley 2002.
[4] C. P. Robert, G. Casella, Introducing Monte Carlo Methods with R, Springer
2010.

Podobne dokumenty