36
Monte Carlo metode Bojan Basrak, PMF–MO Zagreb Financijski praktikum 29. veljaˇ ce 2016. 1

Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Monte Carlo metodeBojan Basrak, PMF–MO Zagreb

Financijski praktikum

29. veljace 2016.

1

Page 2: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Monte Carlo metode

2

Page 3: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Primjene

• modeliranje slozenih sustava

• upravljanje portfeljima u financijama i osiguranju

• procjena rizika

• odredivanje cijena izvedenicama

• testiranje hipoteza

3

Page 4: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 5: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Algoritam

> sample X1, . . . , Xn ∼ Unif(V ) n.j.d.> return

In =1

n

n∑i=1

C · f (Xi)

5

Page 6: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 7: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 8: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 9: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Procjena je sad

length(z[z]) / n

## [1] 0.786

9

Page 10: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 11: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 12: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 13: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 14: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 15: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 16: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 17: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 18: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 19: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 20: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 21: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 22: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 23: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 24: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 25: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 26: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 27: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 28: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

Algoritam

repeat> sample X ∼ Unif(a, b)> sample Y ∼ Unif(0,M)until Y ≤ f (X)> return X

28

Page 29: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 30: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 31: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 32: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 33: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 34: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 35: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

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

Page 36: Monte Carlo metode - unizg.hrbbasrak/pdf_files/FinPrak/FPchap1.pdf · Ako je p() gusto ca na S Rd a g(jy) y2S familija gusto ca na R: Promotrimo gusto cu f(x) = Z S g(xjy)p(y)dy Ako

0 1 2 3 4 5 6

0.00

1346

0.00

1350

0.00

1354

0.00

1358

mu

36