MB no es difble.

\[\frac{d}{dt}B_t=\lim_{h \rightarrow \infty}\frac{B_{t+h}-B_t}{h}\] Por incrementos estacionarios, \(B_{t+h} - B_t\) tiene la misma distribución que \(B_h\), que es normal con media \(0\) y varianza \(h\). Así, el cociente de diferencias \((B_{t+h} - B_t)/h\) se distribuye normalmente con media \(0\) y varianza \(1/h\). Como \(h\) tiende a \(0\), la varianza tiende a infinito. Dado que el cociente de diferencias toma valores arbitrariamente grandes, el límite y, por lo tanto, la derivada, no existe.

#MB no es difble.
set.seed (123)
phi <- function (i ,t , T ){
   (2 * sqrt (2 * T )) / ((2 * i +1) * pi ) * sin(((2 * i +1) * pi * t ) / (2 * T ))
}
n <- 100
Z <- rnorm(n)
Delta <- seq(1e-7 , 1e-2 , length =30)
W <- sum(Z * sapply (1: n , function ( x ) phi (x ,0.5 , T )))
for(i in Delta)
  Wh <- sum(Z * sapply (1: n , function ( x ) phi (x ,0.5+ i , T )))
inc.ratio <- abs(Wh - W)/Delta
max(inc.ratio, na.rm = T)
## [1] 701496.4

GrƔfica

El comportamiento conforme \(\Delta \rightarrow 0\):

Proceso OU

La SDE de OU es un proceso \(dX_t=-r(X_t-\mu)dt+\sigma B_t, \,\ r,\mu,\sigma > 0\). Es vista como difusión con \(a(t,x)=-r(x-\mu)\) y \(b(t,x)=\sigma\). Si \(\sigma=0\) la ODE \(\frac{dX_t}{X_t-\mu}=-rdt\) con \(\ln (X_t-\mu)=-rt+C\) integrando y con \(C=\ln (x_0-\mu)\) y se tiene la sol. det. \(X_t=\mu+(X_0-\mu)e^{-rt}\). Conforme \(t \rightarrow \infty\), \(X_t \rightarrow \mu\).

Aplicando a la SDE el esquema Euler-Maruyama

#especififcar parƔmetros
theta<- 0.8
mu<- 1.6
sigma<- 0.5
#especificar semilla
set.seed(2043442)
#definir trayectorias Ornstein-Uhlenbeck como vector
OU <- c()
#especificar valor inicial
OU[1]<- 2
#simular trayectoria
for (i in 2:100)
  OU[i]<- OU[i-1]+theta*(mu-OU[i-1])+sigma*rnorm(1)
#graficar trayectoria
#par(mar = c(1, 1, 1, 1))
plot(1:100, OU, type="l", lty=1, lwd=2, col=4, xlab="Tiempo",
     ylab="Proceso Ornstein-Uhlenbeck", first.panel=grid())

Aplicaciones

Los tipos de cambio de monedas extranjeras se pueden modelar bien con procesos de Ornstein-Uhlenbeck (OU) porque si los tipos son muy altos, la demanda disminuye o, de manera similar, si los tipos son muy bajos, la demanda aumenta. En ambos casos, las tasas volverƔn a alguna media a largo plazo. AdemƔs, es razonable suponer que la varianza de los tipos de cambio se mantiene dentro de ciertos lƭmites porque la varianza no puede crecer para siempre en este entorno.

Para el tipo de cambio diario euro/US, se lee la siguiente base de datos

exchrate.data<- read.csv(file="./Foreign_Exchange_Rates.csv", header=TRUE,
sep=",")

Se estiman parƔmetros

inc<- exchrate.data$EURO[-1]-head(exchrate.data$EURO,-1)
fit<- glm(inc ~ head(exchrate.data$EURO,-1))
theta.hat<- -fit$coefficients[2]
mu.hat<- fit$coefficients[1]/theta.hat
sigma.hat<- sigma(fit)

Se observan las realizaciones

#especificar semilla
set.seed(5536667)
#definir trayectorias OU como vector
OU<- c()
#especificar valor inicial 
OU[1]<- exchrate.data$EURO[1]
for (i in 2:length(exchrate.data$DATE))
OU[i]<- OU[i-1]+theta.hat*(mu.hat-OU[i-1])+sigma.hat*rnorm(1)
#graficar trayectorias
plot(as.Date(exchrate.data$DATE), exchrate.data$EURO, type="l", lty=1, lwd=2,
col=3, xlab="Time", ylab="EURO/US$", first.panel=grid())
lines(as.Date(exchrate.data$DATE), OU, lwd=2, col=4)
legend("topright", c("Actual ratio", "Simulated ratio"), lty=1, lwd=2, col=3:4)

La deriva genética es el proceso estocÔstico resultante de una reducción en el tamaño de una población. Si las poblaciones tienen un tamaño infinito, las frecuencias de alelos y genotipos deben permanecer constantes a lo largo del tiempo. Sin embargo, si las poblaciones no son infinitas, entonces la deriva puede actuar como una fuerza diversificadora.

Las selecciones aleatorias de gametos producidos durante los eventos de apareamiento dan como resultado cambios estocƔsticos en las frecuencias alƩlicas a lo largo del tiempo y los mecanismos subyacentes que operan en las poblaciones.

La simulación de la deriva genética usa una SDE

par(mfrow=c(3,3),mar=c(2,1.75,1.5,1),tck=-.03,mgp=c(3,.5,0),cex.axis=0.7)
n = 200
t = 1.5
N <- 50
set.seed(4)
for(k in 1:9) {
xlist <- numeric(n*t + 1 )
xlist[1] <- 1/2
for (i in 2:(t*n + 1)) {
    xlist[i] <- xlist[i-1] +  sqrt(xlist[i-1]*(1-xlist[i-1]))*rnorm(1)/sqrt(n)
    if (xlist[i] < 0) xlist[i] <- 0
    if (xlist[i] > 1) xlist[i] <- 1
}
plot(seq(0,t,1/n),ylim=c(0,1),xlist,type="l",xlab="",ylab="",yaxt="n")
axis(2,c(0,0.5,1))
}

Con esto se simula la función de densidad de probabilidad de \(X_t\)

par(mfrow=c(2,2),mar=c(2,1.75,1.5,1),tck=-.03,mgp=c(3,.5,0),cex.axis=0.7)
tt <- c( 0.1, 0.2,0.35,1)
for (k in 1:4) {
n = 100
t = tt[k]
trials <- 10000
simlist <- numeric(trials)
for (j in 1:trials) {
xlist <- 1/2
for (i in 2:(n+1)) {
    new <- xlist + sqrt(xlist*(1-xlist))*rnorm(1)/sqrt(n/t)
if (new <0) new <- 0
if (new > 1) new <- 1
    xlist <- new
}
simlist[j] <- xlist
}
hist(simlist,xlab="",ylab="", freq=F,xlim=c(-.1,1.1),main="", col="lightgray")
}