euler-approximation · 2012-06-08 · technischeuniversitätdortmund fakultätstatistik seminar...
TRANSCRIPT
Technische Universität DortmundFakultät Statistik
Seminar Grundlagen der Simulation und Statistikvon dynamischen Systemen
Euler-Approximation
Leonie van de Sandt
22. Mai 2012
Prof. Dr. Christine MüllerSS 2012
Inhaltsverzeichnis
2
1 Einleitung
Das Thema dieses Berichts ist die Euler-Approximation. Sie bietet ein häufig verwen-detes numerisches Verfahren um Lösungen von stochastischen Differentialgleichungenzu simulieren. Generell basieren Simulationsmethoden von Lösungen stochastischerDifferentialgleichungen auf diskreten Approximationen von stetigen Lösungen und sindnach ihren verschiedenen Merkmalen klassifiziert. Dabei bestehen hauptsächlich zweiOptimalitätskriterien: die schwache Konvergenz und die starke Konvergenz. In diesemBericht wird die Euler-Approximation definiert und erläutert. Nach einer Vorstellungder verwendeten statistischen Methoden wird zunächst die Motivation und Definitionder Euler-Approximation vorgestellt. Anschießend werden Beispiele der Simulation vor-gestellt und grafisch dargestellt. Die zu approximierenden Prozesse in den vorgeführtenSimulationen sind der Ornstein-Uhlenbeck-Prozess und der Cox-Ingersoll-Ross-Prozess.Beim Ornstein-Uhlenbeck-Prozess soll außerdem die Güte der Approximation veran-schaulicht werden. Es wird sich insbesondere bei den Ausführungen der Simulationen anKapitel 2.1 des Buches „Simulation and Inference for Stochastic Differential Equations“von S.M. Iacus aus dem Jahre 2008 orientiert.
2 Statistische Methoden
2.1 Starke Konvergenz
Gegeben sei ein stetiger stochastischer Prozess Y , welcher diskretisiert wird zu Yδ mitgrößter Schrittweite δ. Yδ konvergiert stark gegen Y mit Ordnung γ, falls gilt:
E(|Y (t)− Yδ(t)|) ≤ cδγ,
wobei c konstant und unabhängig von δ ist (vgl. Iacus, 2008, S. 61 und Singer, 1999, S.65).
2.2 Schwache Konvergenz
Ist man nur am Erwartungswert der Funktion g(Y (t)) interessiert, so ist die schwacheKonvergenz von Bedeutung. Gegeben sei ein stetiger stochastischer Prozess Y , welcherdiskretisiert wird zu Yδ mit größter Schrittweite δ. Ebenfalls sei gegeben eine 2(β + 1)
3
mal stetig differenzierbare Funktion g von polynomiellem Wachstum. Yδ konvergiertstark gegen Y mit Ordnung β, falls gilt:
|E(g(Y (t)))− E(g(Yδ(t)))| ≤ cδβ,
wobei c konstant und unabhängig von δ ist (vgl. Iacus, 2008, S. 62 und Singer, 1999, S.65).
2.3 Der Orstein-Uhlenbeck-Prozess
Der Ornstein-Uhlenbeck-Prozess ist die eindeutige Lösung der stochastischen Differenti-algleichung
dXt = (θ1 − θ2Xt)dt+ θ3dWt
mit X0 = x0, θ3 ∈ R+ und θ1, θ2 ∈ R. Für θ2 > 0 pendelt der Prozess um einengleichmäßigen Wert. Im Gegensatz zur Brownschen Bewegung besitzt dieser Prozess einebegrenzte Varianz für t ≥ 0. Die explizite Lösung der genannten Differentialgleichungist dann gegeben durch
Xt = θ1
θ2+(x0 −
θ1
θ2
)e−θ2t + θ3e
−θ2t∫ t
0e−θ2(u)dWu
(vgl. Iacus, 2008, S. 44).
2.4 Der Cox-Ingersoll-Ross-Prozess
Der Cox-Ingersoll-Ross-Prozess ist die Lösung der stochastischen Differentialgleichung
dXt = (θ1 − θ2Xt)dt+ θ3
√XtdWt
mit θ1, θ2, θ3 ∈ R+. Für 2θ1 > θ23 ist der Prozess immer positiv, andernfalls kann er
zusätzlich den Wert 0 annehmen. Die explizite Lösung der obigen Differentialgleichungist dann
Xt = θ1
θ2+(x0 −
θ1
θ2
)e−θ2t + θ3e
−θ2t∫ t
0eθ2u
√XudWu
(vgl. Iacus, 2008, S. 47).
4
3 Motivation und Definition derEuler-Approximation
Die Euler-Approximation kann Lösungen stochastischer Differentialgleichungen generie-ren. Dabei ist der Itò-Prozess {Xt, 0 ≤ t ≤ T} gegeben als Lösung der stochastischenDifferentialgleichung
dXt = b(t,Xt)dt+ σ(t,Xt)dWt
mit deterministischem Anfangswert Xt0 = X0 und Diskretisierung ΠN = ΠN ([0, T ]) desIntervalls [0, T ], 0 = t0 < t1 < ... < tN = T . Die Euler-Approximation von X ist ein steti-ger stochastischer Prozess Y , welcher dem iterativen Schema
Yi+1 = Yi + b(ti, Yi)(ti+1 − ti) + σ(ti, Yi)(Wi+1 −Wi)
genügt. Hierbei ist i = 0, 1, ..., N − 1 und Y0 = X0. Zur Notation ist zu sagen, dassWi = W (ti) und Yi = Y (ti) gilt. Dabei steht W für den Wiener Prozess. Die Schritt-weite ∆t = ti+1 − ti = 1
Nist dabei konstant. Zwischen den Zeitpunkten ti und ti+1
kann der Prozess verschieden definiert sein. Es liegt nahe hier lineare Interpolationzu verwenden, sodass die Euler-Approximation Y für ein t ∈ [ti, ti+1) definiert wirddurch
Y (t) = Yi + t− titi+1 − ti
(Yi+1 − Yi).
Die Euler-Approximation ist schwach konvergent mit Ordnung β = 1 gegen denzu approximierenden Prozess X und stark konvergent mit Ordnung γ = 1
2 gegenX.
4 Simulation der Euler-Approximation
Um die Euler-Approximation zu simulieren wird das Programm R (R Development CoreTeam, 2011, Version 2.13.1) verwendet.
5
4.1 Simulation des Ornstein-Uhlenbeck-Prozesses mit derEuler-Approximation
Aus der Definition der Euler-Approximation in Kapitel 3 lässt sich leicht erkennen,dass man zur Simulation mit der Euler-Approximation nur den Wiener Prozess W (t)simulieren muss. Es muss zunächst ein geeigneter Prozess Xt gewählt werden, der eineLösung der Gleichung
dXt = b(t,Xt)dt+ σ(t,Xt)dWt
ist. Zu simulieren ist dann die Euler-Approximation Yt. Man wähle hier als Beispiel aus Ia-cus(2008) den Ornstein-Uhlenbeck-Prozess, der eine Lösung der Gleichung
dXt = (θ1 − θ2Xt)dt+ θ3dWt
ist. Dabei ist dann b(t, x) = (θ1−θ2x) und σ(t, x) = θ3. Außerdem ist noch der StartwertX0 = x zu wählen, sowie die Parameter θ1, θ2 und θ3, welche in diesem Beispiel die WerteX0 = 10, θ1 = 0, θ2 = 5 und θ3 = 3.5 haben. Der Euler-Algorithmus ist dann beschriebendurch den folgenden R-Code (vgl. Iacus, 2008, S. 63).
>set.seed(123)>T <- 1>x <- 10>theta <- c(0, 5, 3.5)>Z <- BM(x=x,T=T,N=100)>>N <- 100>Dt <- T/N>t <- seq(0,T,by=Dt)>Y <- numeric(N+1)>Y[1] <- x>>for(i in 1:N){+ Y[i+1] <- Y[i] + (theta[1] - theta[2]*Y[i])*Dt + theta[3]*(Z[i+1]-Z[i])}>Y <- ts(Y,start=0, deltat=T/N)>plot(Y)
Dabei ergibt sich der schwarz gefärbte Pfad in Abbildung ??.
6
Time
Y
0.0 0.2 0.4 0.6 0.8 1.0
02
46
810
N=10N=100N=1000
Abbildung 1: Simulation des Ornstein-Uhlenbeck-Prozesses mithilfe der Euler-Approximation
Wenn man nun die Schrittweite ∆t verändert, erhält man die anderen beiden Pfade in Ab-bildung ??. Der blaue Pfad hat die Schrittweite ∆t = 1
10 und der rote Pfad hat die Schritt-weite ∆t = 1
1000 . Um die Approximation zu veranschaulichen, kann man den Ornstein-Uhlenbeck-Prozess zunächst durch die Integralschreibweise
Xt = θ1
θ2+(x0 −
θ1
θ2
)e−θ2t + θ3e
−θ2t∫ t
0e−θ2(u)dWu
grafisch darstellen. In Abbildung ?? ist der Ornstein-Uhlenbeck-Prozess mit der Inte-graldarstellung und mithilfe der Euler-Approximation mit der Schrittweite ∆t = 1
10
erzeugt worden. In den Abbildungen ?? und ?? ist dies für die Schrittweiten ∆t = 1100
und ∆t = 11000 geschehen.
Man erkennt, dass die Euler-Approximation gegen den Ornstein-Uhlenbeck-Prozessapproximiert. Bei kleinerer Schrittweite liegen die beiden Graphen fast übereinander.Bei einer recht großen Schrittweite mit ∆t = 1
10 sieht die Approximation eher schlechtaus. Auffällig ist, dass sich die Graphen mehr am Anfang des Zeitintervalls unterscheiden.Sie laufen bei größer werdendem t ∈ [0, T ] zusammen. Dies ist besonders gut bei derSchrittweite ∆t = 1
100 zu erkennen.
7
Time
Y
0.0 0.2 0.4 0.6 0.8 1.0
−2
02
46
810
Euler−Approximationvia Integral
Abbildung 2: Simulation des Ornstein-Uhlenbeck-Prozesses mithilfe der Euler-Approximation und durch die Integraldarstellung an 10 Zeitpunkten
Time
Y
0.0 0.2 0.4 0.6 0.8 1.0
02
46
810
Euler−Approximationvia Integral
Abbildung 3: Simulation des Ornstein-Uhlenbeck-Prozesses mithilfe der Euler-Approximation und durch die Integraldarstellung an 100 Zeitpunkten
8
Time
Y
0.0 0.2 0.4 0.6 0.8 1.0
02
46
810
Euler−Approximationvia Integral
Abbildung 4: Simulation des Ornstein-Uhlenbeck-Prozesses mithilfe der Euler-Approximation und durch die Integraldarstellung an 1000 Zeitpunkten
4.2 Simulation des Cox-Ingersoll-Ross-Prozesses mit derEuler-Approximation
Ein weiteres Beispiel für die Simulation einer Lösung der gegebenen stochastischenDifferentialgleichung durch die Euler-Approximation ist der Cox-Ingersoll-Ross-Prozess.Er löst die Differentialgleichung
dXt = (θ1 − θ2Xt)dt+ θ3
√XtdWt
mit X0 = 5. Hier ist also b(t, x) = θ1− θ2Xt und σ(t, x) = θ3√Xt. In diesem Beispiel ist
(θ1, θ2, θ3) = (1, 1, 1). Im Folgenden ist der R-Code dargestellt.
>set.seed(123)>T <- 10>x <- 10>theta <- c(1, 1, 1)>Z <- BM(x=x,T=T,N=100)>
9
>N <- 100>Dt <- T/N>t <- seq(0,T,by=Dt1)>Y <- numeric(N1+1)>Y[1] <- x>>for(i in 1:N){+ Y[i+1] <- Y1[i] + (theta[1] - theta[2]*Y[i])*Dt ++ theta[3]*sqrt(Y[i])*(Z[i+1]-Z[i])}>Y <- ts(Y,start=0, deltat=T/N)>plot(Y)
Es ergibt sich die Grafik in Abbildung ??.
Time
Y
0 2 4 6 8 10
02
46
810 N=50
N=100N=1000
Abbildung 5: Simulation des Cox-Ingersoll-Ross-Prozesses mithilfe der Euler-Approximation
Es wurden die Schrittweiten ∆t = 1050 , ∆t = 10
100 und ∆t = 101000 gewählt. Zu beachten ist
hier, dass die Schrittweite nicht zu groß sein darf, da beim Cox-Ingersoll-Ross-Prozesssonst negative Werte entstehen können, welche ein Problem bei σ(t, x) verursachen, daman hier aus einer negativen Zahl eine Wurzel ziehen müsste.
10
5 Zusammenfassung
Die Euler-Approximation ist ein Verfahren, um stochastische Prozesse zu approximierenund zu simulieren. Sie eignet sich hierzu gut, da sie nach der Ordnung γ = 1
2 stark undnach der Ordnung β = 1 schwach gegen den zu approximierenden Prozess konvergiert.Sie folgt einem iterativen Schema, welches den Wiener Prozess beinhaltet. Man muss zurSimulation nur den Wiener Prozess simulieren. Bei den durchgeführten Beispielen ist er-kennbar, dass die Graphen der Euler-Approximation des Ornstein-Uhlenbeck-Prozessesbei unterschiedlichen Schrittweiten ∆t verschieden sind. Je kleiner die Schrittweitegewählt wird, desto genauer wird die Approximation. Dies ist erkennbar, wenn mandie Euler-Approximation mit der Integraldarstellung des Ornstein-Uhlenbeck-Prozessesvergleicht. Bei kleinerer Schrittweite stimmt die Approximation fast mit der Integraldar-stellung überein, während bei einer recht großen Schrittweite von ∆t = 1 keine guteApproximation erkennbar ist. Die Simulation des Cox-Ingersoll-Ross-Prozesses weistebenfalls verschiedene Approximationen bei verschieden gewählter Schrittweite auf.Insgesamt ist die Euler-Approximation ein weit verbreitetes und einfaches Verfahrenzur Simulation von stochastischen Prozessen. Bei der Simulation ist jedoch auf eineausreichend kleine Schrittweite zu achten.
11
A Anhang
A.1 RCode
#Ornstein-Uhlenbeck mit Euler-Approximationset.seed(123)T <- 1x <- 10theta <- c(0, 5, 3.5)Z <- BM(x=x,T=T,N=1000)
N1 <- 100Dt1 <- T/N1t1 <- seq(0,T,by=Dt1)Y1 <- numeric(N1+1)Y1[1] <- xZ1 <- Z[c(0,seq(1,1001,10))]
for(i in 1:N1){Y1[i+1] <- Y1[i] + (theta[1] - theta[2]*Y1[i])*Dt1 + theta[3]*(Z1[i+1]-Z1[i])}
Y1 <- ts(Y1,start=0, deltat=T/N1)plot(Y1,ylab="Y")
N2 <- 10Dt2 <- T/N2t2 <- seq(0,T,by=Dt2)Y2 <- numeric(N2+1)Y2[1] <- xZ2 <- Z[c(0,seq(1,1001,100))]
for(i in 1:N2){Y2[i+1] <- Y2[i] + (theta[1] - theta[2]*Y2[i])
*Dt2 + theta[3]*(Z2[i+1]-Z2[i])}Y2 <- ts(Y2,start=0, deltat=T/N2)
12
lines(Y2,col="RED")
N3 <- 1000Dt3 <- T/N3t3 <- seq(0,T,by=Dt3)Y3 <- numeric(N3+1)Y3[1] <- x
for(i in 1:N3){Y3[i+1] <- Y3[i] + (theta[1] - theta[2]*Y3[i])
*Dt3 + theta[3]*(Z[i+1]-Z[i])}Y3 <- ts(Y3,start=0, deltat=T/N3)lines(Y3,col="BLUE")
legend("topright",c("N=10","N=100","N=1000"),ol=c("RED","BLACK","BLUE"),lwd=2,cex=1.5)
#Lösung mit Integral Ornstein-Uhlenbeck
itosumOU.N1 <- 0XOUalls.N1 <- rep(x,N1+1)for(i in 1:N1){
itosumOU.N1<-itosumOU.N1+exp(theta[2]*t1[i])*(Z1[i+1]-Z1[i])XOUalls.N1[i+1]<-theta[1]/theta[2] + (x-theta[1]/theta[2])*exp(-theta[2]*t1[i])+theta[3]*exp(-theta[2]*t1[i])*itosumOU.N1
}
itosumOU.N2<-0XOUalls.N2<-rep(x,N2+1)for(i in 1:N2){
itosumOU.N2<-itosumOU.N2+exp(theta[2]*t2[i])*(Z2[i+1]-Z2[i])XOUalls.N2[i+1]<-theta[1]/theta[2] + (x-theta[1]/theta[2])*
exp(-theta[2]*t2[i])+theta[3]*exp(-theta[2]*t2[i])*itosumOU.N2}
13
itosumOU.N3<-0XOUalls.N3<-rep(x,N3+1)for(i in 1:N3){
itosumOU.N3<-itosumOU.N3+exp(theta[2]*t3[i])*(Z[i+1]-Z[i])XOUalls.N3[i+1]<-theta[1]/theta[2] + (x-theta[1]/theta[2])*
exp(-theta[2]*t3[i])+theta[3]*exp(-theta[2]*t3[i])*itosumOU.N3}XOUalls.N1 <- ts(XOUalls.N1,start=0, deltat=T/N1)XOUalls.N2 <- ts(XOUalls.N2,start=0, deltat=T/N2)XOUalls.N3 <- ts(XOUalls.N3,start=0, deltat=T/N3)
#Cox-Ingersoll-Ross mit Euler-Approximationset.seed(123)T <- 10x <- 10theta <- c(1, 1, 1)Z <- BM(x=x,T=T,N=1000)
N1 <- 100Dt1 <- T/N1t1 <- seq(0,T,by=Dt1)Y1 <- numeric(N1+1)Y1[1] <- xZ1 <- Z[c(0,seq(1,1001,10))]
for(i in 1:N1){Y1[i+1] <- Y1[i] + (theta[1] - theta[2]*Y1[i])*Dt1 + theta[3]*
sqrt(Y1[i])*(Z1[i+1]-Z1[i])}Y1 <- ts(Y1,start=0, deltat=T/N1)
N2 <- 50 #Anzahl SchritteDt2 <- T/N2 #Schrittweite
14
t2 <- seq(0,T,by=Dt2)Y2 <- numeric(N2+1) #Vektor für SimulationspunkteY2[1] <- xZ2 <- Z[c(0,seq(1,1001,20))]
for(i in 1:N2){Y2[i+1] <- Y2[i] + (theta[1] - theta[2]*Y2[i])*Dt2 + theta[3]*
sqrt(Y2[i])*(Z2[i+1]-Z2[i])}Y2 <- ts(Y2,start=0, deltat=T/N2)
N3 <- 1000Dt3 <- T/N3t3 <- seq(0,T,by=Dt3)Y3 <- numeric(N3+1)Y3[1] <- x
for(i in 1:N3){Y3[i+1] <- Y3[i] + (theta[1] - theta[2]*Y3[i])*Dt3 + theta[3]*
sqrt(Y3[i])*(Z[i+1]-Z[i])}Y3 <- ts(Y3,start=0, deltat=T/N3)
plot(Y1,ylab="Y",ylim=c(min(min(Y1),min(Y2),min(Y3)),max(max(Y1),max(Y2),max(Y3))))
lines(Y2,col="RED")lines(Y3,col="BLUE")
legend("topright",c("N=50","N=100","N=1000"),col=c("RED","BLACK","BLUE"),lwd=2,cex=1.5)
15
Literatur
Iacus, Stefano M. (2008). Simulation and Inference for Stochastic Differential Equations:With R Examples. 1. Auflage. New York: Springer.
Iacus, Stefano Maria (2009). sde: Simulation and Inference for Stochastic DifferentialEquations. R package version 2.0.10. url: http://CRAN.R-project.org/package=sde.
R Development Core Team (2011). R 2.13.1: A Language and Environment for StatisticalComputing. ISBN 3-900051-07-0. R Foundation for Statistical Computing. Vienna,Austria. url: http://www.R-project.org/.
Singer, Hermann (1999). Finanzmarktökonometrie: Zeitstetige Systeme und ihre An-wendung in Ökonometrie und empirischer Kapitalmarktforschung. Berlin, Heidelberg:Physica.
16