El Lema de Itô es uno de los resultados fundamentales del cálculo estocástico. Permite calcular el diferencial de una función de un proceso estocástico que sigue una ecuación diferencial estocástica.
Sea el proceso estocástico:
\[ dX_t = \mu(X_t,t)dt + \sigma(X_t,t)dW_t \]
donde:
Sea una función \(f(x,t)\) que es dos veces diferenciable respecto a \(x\) y una vez respecto a \(t\). Entonces el proceso \(Y_t = f(X_t,t)\) satisface:
\[ df(X_t,t) = \frac{\partial f}{\partial t}dt + \frac{\partial f}{\partial x} dX_t + \frac{1}{2}\frac{\partial^2 f}{\partial x^2}\sigma^2(X_t,t)dt \]
Sustituyendo \(dX_t\):
\[ df(X_t,t) = \left( \frac{\partial f}{\partial t} + \mu \frac{\partial f}{\partial x} + \frac{1}{2}\sigma^2 \frac{\partial^2 f}{\partial x^2} \right)dt + \sigma \frac{\partial f}{\partial x} dW_t \]
El Lema de Itô es el equivalente estocástico de la regla de la cadena del cálculo clásico. La diferencia principal es la aparición del término adicional:
\[ \frac{1}{2}\sigma^2 \frac{\partial^2 f}{\partial x^2} dt \]
que surge porque el movimiento browniano satisface:
\[ (dW_t)^2 = dt \]
El Lema de Itô se usa ampliamente en:
Sea (X_t) un proceso de Itô que satisface la ecuación diferencial estocástica
\[ dX_t = a(t,X_t),dt + b(t,X_t),dW_t \]
donde:
Sea (f(t,x)) una función tal que:
Definimos un nuevo proceso:
\[ Y_t = f(t,X_t) \]
Entonces el diferencial de (Y_t) está dado por el Lema de Itô:
\[ df(t,X_t) = \frac{\partial f}{\partial t}dt + \frac{\partial f}{\partial x} dX_t + \frac{1}{2}\frac{\partial^2 f}{\partial x^2}(dX_t)^2 \]
Como
\[ dX_t = a(t,X_t)dt + b(t,X_t)dW_t \]
y usando la propiedad del movimiento browniano
\[ (dW_t)^2 = dt \]
obtenemos:
\[ (df_t) = \left( \frac{\partial f}{\partial t} + a(t,X_t)\frac{\partial f}{\partial x} + \frac{1}{2}b^2(t,X_t)\frac{\partial^2 f}{\partial x^2} \right) dt + b(t,X_t)\frac{\partial f}{\partial x} dW_t \]
Si (X_t) sigue
\[ dX_t = a(t,X_t)dt + b(t,X_t)dW_t \]
y (Y_t = f(t,X_t)), entonces:
\[ dY_t = \left( \frac{\partial f}{\partial t} + a(t,X_t)\frac{\partial f}{\partial x} + \frac{1}{2}b^2(t,X_t)\frac{\partial^2 f}{\partial x^2} \right)dt + b(t,X_t)\frac{\partial f}{\partial x} dW_t \]
Sea (X_1(t), X_2(t), , X_n(t)) un conjunto de procesos de Itô que satisfacen:
\[ dX_i(t) = a_i(t,X_1,\dots,X_n)dt + \sum_{j=1}^{m} b_{ij}(t,X_1,\dots,X_n)dW_j(t), \]
para (i = 1,2,,n), donde:
Sea una función
\[ f(t,X_1(t),X_2(t),\dots,X_n(t)) \]
tal que:
Definimos el proceso
\[ Y_t = f(t,X_1(t),\dots,X_n(t)). \]
El diferencial de (Y_t) está dado por:
\[ df = \frac{\partial f}{\partial t}dt + \sum_{i=1}^{n} \frac{\partial f}{\partial x_i} dX_i + \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \frac{\partial^2 f}{\partial x_i \partial x_j} , dX_i dX_j \]
Si
\[ dX_i = a_i dt + \sum_{k=1}^{m} b_{ik} dW_k \]
entonces:
\[ df = \left( \frac{\partial f}{\partial t} + \sum_{i=1}^{n} a_i \frac{\partial f}{\partial x_i} + \frac{1}{2} \sum_{i=1}^{n}\sum_{j=1}^{n} \sum_{k=1}^{m} b_{ik} b_{jk} \frac{\partial^2 f}{\partial x_i \partial x_j} \right) dt + \sum_{i=1}^{n}\sum_{k=1}^{m} b_{ik}\frac{\partial f}{\partial x_i} dW_k \]
Si (X_t = (X_1,,X_n)) y (f(t,X_t)), entonces:
\[ df = \left( f_t + \nabla f \cdot a + \frac{1}{2}\text{Tr}(B B^T H_f) \right) dt + (\nabla f)^T B, dW_t \]
donde:
El Movimiento Browniano Geométrico (GBM) es uno de los procesos estocásticos más usados en finanzas y modela variables que crecen proporcionalmente a su tamaño.
Sea el proceso estocástico (X_t) definido por la ecuación diferencial estocástica:
\[ dX_t = \mu X_t dt + \sigma X_t dW_t \]
donde:
Definimos:
\[ Y_t = \ln(X_t) \]
Aplicamos el Lema de Itô para (f(x)=(x)).
Derivadas:
\[ f'(x)=\frac{1}{x} \]
\[ f''(x)=-\frac{1}{x^2} \]
El lema de Itô dice:
\[ dY_t = f'(X_t)dX_t + \frac{1}{2}f''(X_t)(dX_t)^2 \]
Sustituyendo (dX_t):
\[ dY_t = \frac{1}{X_t}(\mu X_t dt + \sigma X_t dW_t) + \frac{1}{2}\left(-\frac{1}{X_t^2}\right)(\sigma^2 X_t^2 dt) \]
Simplificando:
\[ dY_t = \mu dt + \sigma dW_t - \frac{1}{2}\sigma^2 dt \]
\[ dY_t = (\mu - \tfrac{1}{2}\sigma^2)dt + \sigma dW_t \]
Integrando de (0) a (t):
\[ Y_t = Y_0 + (\mu - \tfrac{1}{2}\sigma^2)t + \sigma W_t \]
Como (Y_t = (X_t)):
\[ \ln(X_t) = \ln(X_0) + (\mu - \tfrac{1}{2}\sigma^2)t + \sigma W_t \]
Finalmente:
\[ X_t = X_0 \exp \left[ (\mu - \tfrac{1}{2}\sigma^2)t + \sigma W_t \right] \]
Sea un vector de procesos:
\[ X(t) = (X_1(t),\dots,X_n(t)) \]
con dinámica:
\[ dX_i(t) = \mu_i X_i(t) dt + X_i(t)\sum_{j=1}^{m}\sigma_{ij} dW_j(t) \]
donde:
Definimos:
\[ Y_i(t)=\ln(X_i(t)) \]
Aplicando el Lema de Itô multivariado:
\[ dY_i(t)= \left( \mu_i - \frac{1}{2}\sum_{j=1}^{m}\sigma_{ij}^2 \right)dt + \sum_{j=1}^{m}\sigma_{ij} dW_j(t) \]
\[ Y_i(t)= Y_i(0)+ \left( \mu_i - \frac{1}{2}\sum_{j=1}^{m}\sigma_{ij}^2 \right)t + \sum_{j=1}^{m}\sigma_{ij} W_j(t) \]
\[ X_i(t) = X_i(0) \exp \left[ \left( \mu_i - \frac{1}{2}\sum_{j=1}^{m}\sigma_{ij}^2 \right)t + \sum_{j=1}^{m}\sigma_{ij} W_j(t) \right] \]
El proceso de Ornstein–Uhlenbeck es un proceso estocástico con reversión a la media. Se usa mucho en economía, finanzas y física.
Sea el proceso (X_t) definido por la ecuación diferencial estocástica:
\[ dX_t = \theta(\mu - X_t)dt + \sigma dW_t \]
donde:
Expandimos:
\[ dX_t = \theta\mu dt - \theta X_t dt + \sigma dW_t \]
o equivalentemente:
\[ dX_t + \theta X_t dt = \theta\mu dt + \sigma dW_t \]
El factor integrante es
\[ M_t = e^{\theta t} \]
Multiplicamos toda la ecuación:
$$ e^{t} dX_t + e^{t} X_t dt ==============================================
e^{t} dt + e^{t} dW_t $$
Observamos que el lado izquierdo es:
\[ d(e^{\theta t}X_t) \]
por lo tanto
$$ d(e^{t}X_t) ==================
e^{t}dt + e^{t} dW_t $$
Integramos de (0) a (t):
$$ e^{t}X_t - X_0 =====================
_0^t e^{s}ds + _0^t e^{s} dW_s $$
$$ _0^t e^{s}ds =================================
(e^{t}-1) $$
\[ X_t = \mu + (X_0-\mu)e^{-\theta t} + \sigma \int_0^t e^{-\theta (t-s)} dW_s \]
Sea el proceso vectorial
\[ X_t \in \mathbb{R}^n \]
con dinámica:
\[ dX_t = A(\mu - X_t)dt + \Sigma dW_t \]
donde:
\[ dX_t + A X_t dt = A\mu dt + \Sigma dW_t \]
El factor integrante es la exponencial matricial
\[ e^{At} \]
Multiplicamos:
$$ e^{At} dX_t + e^{At} A X_t dt =============================
e^{At}Adt + e^{At}dW_t $$
El lado izquierdo se convierte en:
\[ d(e^{At}X_t) \]
$$ e^{At}X_t - X_0 ===============
_0^t e^{As}Ads + _0^t e^{As}dW_s $$
Finalmente:
\[ X_t = \mu + e^{-At}(X_0-\mu) + \int_0^t e^{-A(t-s)}\Sigma dW_s \]
El Puente Browniano es un proceso estocástico obtenido al condicionar un movimiento browniano para que empiece y termine en valores fijos.
Normalmente se fija:
\[ X_0 = 0, \qquad X_T = 0 \]
El puente browniano puede escribirse mediante la siguiente ecuación diferencial estocástica:
\[ dX_t = -\frac{X_t}{T-t}dt + dW_t \]
donde:
\[ dX_t + \frac{X_t}{T-t}dt = dW_t \]
El factor integrante es
\[ M_t = \exp\left(\int \frac{1}{T-t}dt\right) \]
\[ M_t = \frac{1}{T-t} \]
Multiplicamos la ecuación:
$$ dX_t + dt =========================================
dW_t $$
El lado izquierdo corresponde a:
\[ d\left(\frac{X_t}{T-t}\right) \]
por lo tanto
$$ d() =============================
dW_t $$
Integrando desde (0) hasta (t):
$$ ===============
_0^t dW_s $$
Multiplicando por (T-t):
\[ X_t = (T-t) \int_0^t \frac{1}{T-s} dW_s \]
Otra representación equivalente es:
\[ X_t = W_t - \frac{t}{T}W_T \]
Sea (X_t ^n).
El puente browniano multivariado satisface:
\[ dX_t = -\frac{X_t}{T-t}dt + \Sigma dW_t \]
donde:
\[ dX_t + \frac{1}{T-t}X_t dt = \Sigma dW_t \]
El factor integrante sigue siendo
\[ M_t = \frac{1}{T-t} \]
Multiplicando:
$$ d() =============================
dW_t $$
$$ ===============
_0^t dW_s $$
\[ X_t = (T-t) \int_0^t \frac{1}{T-s}\Sigma dW_s \]
Otra forma equivalente es:
\[ X_t = W_t - \frac{t}{T}W_T \]
(en el caso vectorial cada componente sigue esa estructura).
Consideremos el sistema lineal:
\[ dX_t = AX_t dt + \Sigma dW_t \]
donde
\[ A = \begin{pmatrix} 0 & a \ b & 0 \end{pmatrix} \]
y
La solución de un sistema lineal estocástico es
\[ X_t = e^{At}X_0 + \int_0^t e^{A(t-s)}\Sigma dW_s \]
Por lo tanto necesitamos calcular:
\[ e^{At} \]
Calculamos primero:
\[ A^2 \]
$$ A^2 = \[\begin{pmatrix} 0 & a \ b & 0 \end{pmatrix}\] \end{pmatrix} \[\begin{pmatrix} 0 & a \ b & 0 \end{pmatrix}\]\end{pmatrix} = ab I $$
donde (I) es la matriz identidad.
La exponencial se define como
\[ e^{At} = I + At + \frac{A^2 t^2}{2!} + \frac{A^3 t^3}{3!} + \dots \]
Usando que (A^2 = abI) se obtiene
$$ e^{At} ======
(t)I + A $$
Sustituyendo (A):
\[ e^{At} = \begin{pmatrix} \cosh(\sqrt{ab}t) & \frac{a}{\sqrt{ab}}\sinh(\sqrt{ab}t) \ \frac{b}{\sqrt{ab}}\sinh(\sqrt{ab}t) & \cosh(\sqrt{ab}t) \end{pmatrix} \]
Finalmente:
\[ X_t = e^{At}X_0 + \int_0^t e^{A(t-s)}\Sigma dW_s \]
donde
\[ e^{At} = \begin{pmatrix} \cosh(\sqrt{ab}t) & \frac{a}{\sqrt{ab}}\sinh(\sqrt{ab}t) \ \frac{b}{\sqrt{ab}}\sinh(\sqrt{ab}t) & \cosh(\sqrt{ab}t) \end{pmatrix} \]
Para la matriz
\[ A = \begin{pmatrix} 0 & a \ b & 0 \end{pmatrix} \]
la exponencial matricial produce funciones hiperbólicas:
lo cual es típico en sistemas lineales con este tipo de estructura.
Consideremos la ecuación diferencial estocástica
\[ dX_t = \mu dt + \sigma X_t dW_t \]
donde:
Aquí el término (X_t) aparece multiplicando el ruido, no el drift.
Podemos escribir la ecuación como
\[ dX_t - \sigma X_t dW_t = \mu dt \]
Esto es una ecuación lineal estocástica.
Buscamos un proceso (M_t) tal que
\[ d(M_t X_t) \]
elimine el término con (X_t dW_t).
El factor integrante es la exponencial estocástica
\[ M_t = \exp\left(-\sigma W_t + \frac{1}{2}\sigma^2 t\right) \]
Aplicamos:
\[ d(M_t X_t) = M_t dX_t + X_t dM_t + dM_t dX_t \]
Sabemos que
\[ dM_t = -\sigma M_t dW_t \]
Sustituyendo:
$$ d(M_t X_t) ==========
M_t(dt + X_t dW_t) + X_t(-M_t dW_t) + (-M_t dW_t)(X_t dW_t) $$
Observamos que
Además
\[ (dW_t)^2 = dt \]
por lo que
\[ dM_t dX_t = -\sigma^2 M_t X_t dt \]
Sin embargo, el factor integrante fue elegido precisamente para cancelar estos términos, quedando
\[ d(M_t X_t) = \mu M_t dt \]
Integramos de (0) a (t):
\[ M_t X_t - X_0 = \mu \int_0^t M_s ds \]
Despejando (X_t):
\[ X_t = e^{\sigma W_t - \frac{1}{2}\sigma^2 t} \left[ X_0 + \mu \int_0^t e^{-\sigma W_s + \frac{1}{2}\sigma^2 s} ds \right] \]
El método de Euler–Maruyama es un método numérico utilizado para aproximar soluciones de ecuaciones diferenciales estocásticas (SDE). Es una extensión del método de Euler para ecuaciones diferenciales ordinarias.
Consideremos la ecuación
\[ dX_t = a(X_t,t)dt + b(X_t,t)dW_t \]
donde:
Dividimos el intervalo ([0,T]) en (n) partes:
\[ 0=t_0<t_1<\dots<t_n=T \]
con tamaño de paso
\[ \Delta t = t_{k+1}-t_k \]
El incremento del movimiento browniano cumple
\[ \Delta W_k = W_{t_{k+1}}-W_{t_k} \]
y
\[ \Delta W_k \sim N(0,\Delta t) \]
El método aproxima el proceso mediante
\[ X_{k+1} = X_k + a(X_k,t_k)\Delta t + b(X_k,t_k)\Delta W_k \]
donde
\[ \Delta W_k = \sqrt{\Delta t}Z_k \]
y
\[ Z_k \sim N(0,1) \]
Cada paso tiene tres componentes:
\[ X_k \]
\[ a(X_k,t_k)\Delta t \]
\[ b(X_k,t_k)\Delta W_k \]
Para simular el proceso:
\[ \Delta W_k = \sqrt{\Delta t}Z_k \]
\[ X_{k+1} = X_k + a(X_k,t_k)\Delta t + b(X_k,t_k)\Delta W_k \]
Para la ecuación
\[ dX_t = \mu X_t dt + \sigma X_t dW_t \]
el método de Euler–Maruyama queda
\[ X_{k+1} = X_k + \mu X_k \Delta t + \sigma X_k \Delta W_k \]
El método tiene:
\[ \frac{1}{2} \]
\[ 1 \]
lo que significa que el error disminuye cuando el paso (t) se hace pequeño.
# Cargar librerías
library(ggplot2)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
# -----------------------------
# Parámetros de la simulación
# -----------------------------
n_steps <- 500 # número de pasos
T <- 1 # tiempo total
dt <- T/n_steps # tamaño del paso
n_paths <- 5 # número de trayectorias por proceso
mu <- c(0.5, 0.2, -0.1) # drift de cada proceso
sigma <- c(0.3, 0.5, 0.2) # volatilidad de cada proceso
X0 <- c(1, 1, 1) # valores iniciales
set.seed(123) # reproducibilidad
# -----------------------------
# Función para simular un proceso
# -----------------------------
simulate_process <- function(mu, sigma, X0, dt, n_steps, n_paths){
time <- seq(0, dt*n_steps, by=dt)
paths <- matrix(0, nrow=n_steps+1, ncol=n_paths)
paths[1,] <- X0
for(k in 1:n_steps){
dW <- rnorm(n_paths, mean=0, sd=sqrt(dt))
paths[k+1,] <- paths[k,] + mu*paths[k,]*dt + sigma*paths[k,]*dW
}
df <- as.data.frame(paths)
df$time <- time
df_long <- df %>%
pivot_longer(cols = -time, names_to="trajectory", values_to="X")
return(df_long)
}
# -----------------------------
# Simular los tres procesos
# -----------------------------
process_list <- list()
for(i in 1:3){
df <- simulate_process(mu[i], sigma[i], X0[i], dt, n_steps, n_paths)
df$process <- paste0("Proceso ", i)
process_list[[i]] <- df
}
df_all <- bind_rows(process_list)
# -----------------------------
# Graficar con ggplot2
# -----------------------------
ggplot(df_all, aes(x=time, y=X, color=trajectory)) +
geom_line() +
facet_wrap(~process, scales="free_y") +
labs(title="Simulación de tres procesos por Euler–Maruyama",
x="Tiempo", y="Valor de X_t") +
theme_minimal() +
theme(legend.position="none")