Monte Carlo metodeBojan Basrak, PMF–MO Zagreb
Financijski praktikum
29. veljace 2016.
1
Monte Carlo metode
2
Primjene
• modeliranje slozenih sustava
• upravljanje portfeljima u financijama i osiguranju
• procjena rizika
• odredivanje cijena izvedenicama
• testiranje hipoteza
3
Monte Carlo integracija
von Neumann i Ulam 1940–te
Neka je V ⊆ Rd (otvoren) povezan skup za koji Leb(V ) = C > 0 , (npr.interval, pravokutnik ili sl.), a f : V → R t.d.
∫V |f (x)|dx <∞ ako zelimo
odrediti
I =
∫V
f (x)dx =?
mozemo racunati
I = E(C · f (X)) , X ∼ Unif(V )
4
Algoritam
> sample X1, . . . , Xn ∼ Unif(V ) n.j.d.> return
In =1
n
n∑i=1
C · f (Xi)
5
Jaki zakon velikih brojeva povlaci
Ings−→ I
a ako vrijedi σ2 = C2 var f (X) <∞ , c.g.t. povlaci i√n(In − I)
d−→ N(0, σ2) ,
to omogucuje da odredimo i interval pouzdanosti za I , uocimo manji σ2
daje uzi interval i precizniju procjenu.
6
n <- 10000f <- function(x) sqrt(1-x^2)plot(runif(n), runif(n), col='blue', pch=20)curve(f, 0,1, n=100, col='white', add=TRUE,lwd=3)
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
runif(n)
runi
f(n)
7
ps <- matrix(runif(2*n), ncol=2)g <- function(x,y) y <= f(x)z <- g(ps[,1], ps[,2])plot(ps[!z,1], ps[!z,2], col='blue', pch=20)points(ps[z,1], ps[z,2], col='green', pch=20)curve(f, 0,1, n=100, col='white', add=TRUE)
0.2 0.4 0.6 0.8 1.0
0.2
0.4
0.6
0.8
1.0
ps[!z, 1]
ps[!z
, 2]
8
Procjena je sad
length(z[z]) / n
## [1] 0.786
9
g <- function(k) {n <- 10^kf <- function(x,y) sqrt(x^2 + y^2) <= 1z <- f(runif(n),runif(n))length(z[z]) / n
}niz<-1:7a <- sapply(niz, g)4*a
## [1] 3.600000 3.120000 3.112000 3.124400 3.143080 3.141680 3.141364
10
plot(niz, 2/sqrt(10^niz), type='l')lines(niz, abs(pi/4 - a), col='blue')
1 2 3 4 5 6 7
0.0
0.1
0.2
0.3
0.4
0.5
0.6
niz
2/sq
rt(1
0^ni
z)
11
trials <- 4 * sapply(rep(6,100), g)hist(trials)
Histogram of trials
trials
Fre
quen
cy
3.138 3.140 3.142 3.144 3.146
05
1015
20
12
Primjer
I za sume mozemo napraviti slicno, ako je S konacan i velik skup∑k∈S
f (k) = |S| ·∑k∈S
1
|S|f (k) = |S|Ef (K)
gdje je K ∼ Unif(S). Slicno mozemo napraviti i na beskonacnom S uzneku drugu razdiobu za K jasno.
13
I sva druga konacna ocekivanja oblika Ef (X), gdje je f realna funkcija,a X sl. varijabla, vektor, proces,... mozemo aproksimirati koristeci njdX1, . . . Xn i procjenu
In =1
n
n∑i=1
f (Xi)
95%tni interval pouzdanosti za I je uz var f (X) <∞ tada npr.In − 1.96
√var f (X)
n, In + 1.96
√var f (X)
n
Primjer Za α > 0
I =
∫ ∞0
xα−1e−xdx = Γ(α).
14
i) Za X ∼ Exp(1), f (x) = xα−1, I = Ef (X)ii) Za Y ∼ Gama(2, 1), fY (x) = xe−x, g(x) = xα−2, I = Eg(Y )
Za Xi ∼ Exp(1), Yi ∼ Gama(2, 1) njd I mozemo procijeniti sa
In =1
n
n∑i=1
f (Xi) ili Jn =1
n
n∑i=1
g(Yi)
Novar f (X) = Γ(2α− 1)− Γ(α)2
var g(Y ) = Γ(2α− 2)− Γ(α)2
Prva je 10 puta veca za α = 3!?!
15
Napomene
• MC metoda je inferiorna numer. integraciji (Newton–Cotes,...) za d =1, no u vecim dimenzijama situacija se brzo mijenja
• zahtjeva da znamo simulirati X
• oslanja se na algoritme za pseudosl. brojeve (kongruencijski alg....)
• nisu sve MC metode jednako dobre
16
Generalizirani inverz funkcije distribucije
Funkcija kvantila
Ako je funkcija distribucije
F : (a, b)→ (0, 1)
bijekcija za neke −∞ ≤ a < b ≤ ∞, za α ∈ (0, 1) dobro je definiranα–kvantil razdiobe F kao
qα = F−1(α) .
Za ovakvu F i U ∼ Unif(0, 1) vrijedi
X = F−1(U) ∼ F
17
Primjer (eksponencijalna razdioba)
F (x) = 1− e−λx, x ≥ 0, jasno F : (0,∞)→ (0, 1) je bijekcija i
F−1(u) = −log(1− u)
λPrema tome i
X = −log(1− U)
λd= −logU
λ∼ Exp(λ)
18
I ako F−1 ne postoji mozemo uvijek definirati tzv. generalizirani inverzu u ∈ (0, 1)
F←(u) = inf{x : F (x) ≥ u} ,kako je F neprekidna zdesna inf mozemo pisati kao min, i ovu vrijednostzovemo u–kvantilom razdiobe F . Jasno ako je F bijekcija kao goreF← = F−1.
F← je s lijeva neprekidna!19
Uocimo
u ≤ F (x)⇐⇒ F←(u) ≤ x
⇒ po definiciji, a ⇐ slijedi pretpostavljajuci suprotno i koristeci neprekid-nost zdesna funkcije F .
Lema
U ∼ Unif(0, 1) =⇒ F←(U) ∼ F .
20
Primjer (diskretne razdiobe) b.s.o.m.p. a1 ≤ a2 ≤ a3 ≤ · · ·
X ∼(a1 a2 a3 . . .p1 p2 p3 . . .
). (1)
F (x) =∑ai≤x
pi
F←(U) = inf{x : F (x) ≥ U} = inf{ai : F (ai) ≥ U}Algoritam
> sample U ∼ Unif(0, 1)> J = min{ai : F (ai) ≥ U }> return aJ
21
Zadatak
Za X ∼ Geom(p), P(X = k) = qkp, q = 1− p, k ∈ N0
(i) razmislite kako X simulirati preko Bernoullijevih slucajnih varijabli.
(ii) pokazite Xd= blog(U)/ log(q)c
(iii) nadite Y ∼ Exp(λ) t.d. Xd= bY c
22
Napomena
Za mnoge razdiobe fju. dist. je tesko invertirati, npr. za N(0, 1).
Za Φ−1 postoje aproksimacije npr. racionalnim funkcijama.
Simulirati N(0, 1) varijable mozemo i preko c.g.t. istina vrlo neefikasno.
23
Mijesane razdiobe
p1, p2, . . . ≥ 0,∑
i pi = 1, (Fi) niz funkcija distribucije tad je i
F (x) =∑i≥piFi(x)
funkcija distribucije.
Algoritam
> sample J ∼ (pi)i≥1> sample X ∼ FJ> return X
24
Ako je p(·) gustoca na S ⊆ Rd a g(·|y)y∈S familija gustoca na R .Promotrimo gustocu
f (x) =
∫S
g(x|y)p(y)dy
Ako znamo simulirati iz p i iz svake od g(·|y) lako mozemo u dva korakasimulirati i iz f kao i u disk. slucaju.
Primjer Y ∼ χ2(ν), X|Y = y ∼ N(0, ν/y) tada vrijedi
X ∼ Studentova t(ν)
25
Metoda ovojnice
acceptance/rejection algorithm
Koristimo je u slucaju kada F ima gustocu f , a F← ne znamo (efikasno)izracunati. Pretpostavimo za a < b, M > 0∫ b
a
f (s)ds = 1, f (s) ≤M, za sve s ∈ [a, b]
26
Neka su (X, Y ) ∼ Unif([a, b] × [0,M ]). Dakle za C = {(x, y) : x ∈[a, b], y ≤ f (x)} i a < t < b
P((X, Y ) ∈ C ,X ≤ t) = P(Y ≤ f (X) , X ≤ t) =1
M(b− a)
∫ t
a
f (s)ds
posebno
L{X|(X, Y ) ∈ C} ∼ f .
27
Algoritam
repeat> sample X ∼ Unif(a, b)> sample Y ∼ Unif(0,M)until Y ≤ f (X)> return X
28
x <- seq(0,1,0.002)plot(x, dbeta(x,6,3),type="l")
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
2.0
2.5
x
dbet
a(x,
6, 3
)
29
n<-100000ps <- cbind(runif(n), 3* runif(n))f <- function(x) dbeta(x, 6, 3)g <- function(x,y) y <= f(x)z <- g(ps[,1], ps[,2])
30
hist(ps[z,1],prob = TRUE, main = 'Histogram prihvacenih x',xlab = 'x')
lines(x, dbeta(x,6,3))
Histogram prihvacenih x
x
Den
sity
0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
2.0
2.5
31
Opcenito, ako su f, g gustoce na nekom skupu V ⊆ Rd t.d. f (x) ≤Mg(x)za neki M > 0 i lako znamo simulirati iz gTada za nezavisne X ∼ g i U ∼ Unif(0, 1)
L{X
∣∣∣∣M · U ≤ f (X)
g(X)
}∼ f .
32
Uzorkovanje po vaznosti
importance sampling
Neka su f, g gustoce na nekom skupu V ⊆ Rd t.d. ako znamo simulirati izg za koji vrijedi
g(x) = 0⇒ f (x) = 0.
Tada za X ∼ f , X ′ ∼ g
E(ψ(X)) =
∫V
ψ(x)f (x)dx =
∫V
ψ(x)f (x)
g(x)g(x)dx = E
(ψf
g(X ′)
)Ovu metodu prije svega koristimo za smanjivanje varijance naime po-sebno je zanimljiv slucaj kada
var(ψ(X)) > var
(ψf
g(X ′)
).
33
Primjer
Neka je X ∼ f ∼ N(0, 1), ψ(x) = I(u,∞)(x).
E(ψ(X)) = P(X > u)
Za u = 3 npr. X > u se iznimno rijetko dogada, no za X ′ ∼ g ∼ N(µ, 1)vrijedi jednakost
E(ψf
g(X ′)
)= P(X > c) ≈ 0.001349898
Napomena
Postoje i mnoge druge metode smanjivanja varijance MC procjenitelja.
34
n<-10000000 #we fix n and X in advanceX<-rnorm(n) #and use the same random numbers for all estimatesu<-3proc <-function(mu=0,c=0,n=1000000)
{IS<-mean((mu+X>c)*exp(mu*(mu-2*(mu+X))/2))standev<-sd((mu+X>c)*exp(mu*(mu-2*(mu+X))/2))/sqrt(n)c(mu,standev,IS,IS-qnorm(0.975)*standev,IS+qnorm(0.975)*standev)
}
c(1-pnorm(u), proc(0,u,n)[3], proc(1,u,n)[3],proc(2,u,n)[3], proc(3,u,n)[3], proc(4,u,n)[3])
## [1] 0.001349898 0.001353400 0.001352368 0.001349357 0.001351104 0.001352069
35
0 1 2 3 4 5 6
0.00
1346
0.00
1350
0.00
1354
0.00
1358
mu
36