3 votos

Matlab Regeneración de cifras: Simulación del movimiento browniano mediante paseos aleatorios

Estoy tratando de entender la relación entre el proceso de paseo aleatorio en tiempo discreto y el proceso de wiener en tiempo continuo.

Estoy leyendo estas conferencias y para entender los conceptos y las pruebas necesito regenerar las figuras de las páginas 7-10 de este documento. Estas figuras simulan paseos aleatorios con diferentes pasos. A medida que aumenta el número de pasos, la trayectoria se vuelve negrita . El movimiento browniano se produce cuando el número de pasos es infinitamente grande. El siguiente código de Matlab intenta mostrar este resultado:

clc, clear
steps = 10000
y=NaN*ones(steps,1);
y(1)=10;
sig = 1
for t = 1:steps
y(t+1) = y(t) + randn(1);
end
subplot(3,1,1)
plot(y)
steps = 100
y=NaN*ones(steps,1);
y(1)=10;
sig = 1
for t = 1:steps
y(t+1) = y(t) + randn(1);
end
subplot(3,1,2)
plot(y)
steps = 10
y=NaN*ones(steps,1);
y(1)=10;
sig = 1
for t = 1:steps
y(t+1) = y(t) + randn(1);
end
subplot(3,1,3)
plot(y)

Sin embargo lo que intento descubrir es cómo incorporar parámetros $\Delta t, \alpha,$ y $\sigma$ en el documento dado en mis parcelas.

Regenerar estas parcelas me ayuda a entender los conceptos que hay detrás de este tema.

enter image description here

4voto

jldugger Puntos 7490

Se puede construir el movimiento browniano como límite de los paseos aleatorios en cuatro sencillos pasos.

  1. Crear ruido blanco. Estándar ruido blanco en tiempo discreto es sólo una secuencia $dW_1, dW_2, \ldots, dW_n, \ldots$ de variables aleatorias independientes idénticamente distribuidas de media cero y varianza unitaria. Modela una sucesión de perturbaciones aleatorias en la posición de una "partícula" en una línea. Aquí se muestra un gráfico de una realización de este proceso, con el índice $n$ mostrados en el eje horizontal y los valores realizados de $dW_n$ en el eje vertical. Para hacer este gráfico he utilizado una distribución normal común para el $dW_n.$

    ! Figure 1, Standard Discrete White Noise

  2. Escala y desplazamiento. Elección de un incremento de tiempo constante $dt$ para cada paso de esta serie temporal, escalar las perturbaciones por $\sigma\,\sqrt{dt}$ y desplazarlos por $\mu\, dt$ para que la varianza común sea ahora $(\sigma\sqrt{dt})^2 \times 1 = \sigma\, dt$ y la media común es $\mu\, dt.$

    Figure 2, Scaled Discrete White Noise

    El gráfico es el mismo: el único cambio es el reetiquetado del eje vertical. En este ejemplo, el desplazamiento medio por unidad de tiempo es $\mu=-1/2,$ la varianza media por unidad de tiempo es $\sigma^2 = 9/16,$ y el paso de tiempo es $dt=1/8.$ Dibujé una línea horizontal a una altura de $0$ para mostrar el eje x y otra línea horizontal a una altura de $\mu\,dt = -1/16$ para mostrar el valor medio común del proceso.

  3. Suma. A partir de $W_0 = 0,$ calcular la suma acumulada de las perturbaciones escaladas y desplazadas. Si quieres una fórmula, será $$W(n\, dt) = \sum_{i=1}^n (\sigma\sqrt{dt}\,dW_i + \mu) = \mu t + \sigma \sqrt{dt}\, \sum_{i=1}^n dW_i.$$ Esta fórmula asigna un valor aleatorio a cada tiempo $dt, 2\,dt, 3\,dt, \ldots, n\,dt, \ldots.$ Es un paseo aleatorio discreto.

    Figure 3, Discrete Random Walk

  4. Interpolar. Interpolación lineal (entre cada "tiempo" sucesivo $n\,dt$ y $(n+1)dt$ ) crea un tiempo continuo proceso aleatorio.

    Figure 4, Interpolated Discrete Brownian Motion

    Esta figura muestra los valores interpolados en gris. Sobre ellos se superponen los puntos del paseo aleatorio discreto subyacente (de la figura anterior). Como referencia, la línea que pasa por el valor inicial $(0,0)$ de la pendiente $\mu$ se muestra en rojo.

La última figura muestra un ruta de muestreo de un proceso. En virtud de la interpolación, grafica una función definida sobre los números reales no negativos. Como la función fue determinada por la secuencia original de ruido blanco de las variables aleatorias, es una función aleatoria: es decir, es una realización de un proceso estocástico. Si quieres, también puedes pensar en esta construcción como la creación de una familia de variables aleatorias indexadas por todos los números reales no negativos $t.$


Este camino surgió, en realidad, al "adelgazar" una secuencia más detallada de procesos generados de esta manera (es decir, saltando puntos sistemáticamente después del paso 1). He aquí algunos procesos de esa secuencia, empezando por el anterior.

Figure 5, sequence of realizations

Es visualmente evidente que estos gráficos convergen hacia algo: este algo es Movimiento Browniano: su proceso Wiener de tiempo continuo. Las explicaciones rigurosas de la convergencia se basan en filtraciones de álgebras sigma, un tema que requeriría demasiado espacio para tratarlo aquí.

Referencia

Steven E. Shreve, Cálculo estocástico para finanzas II: Modelos de tiempo continuo. Springer (2004).

Código

Este R muestra cómo se han generado y representado los datos de las figuras.

n.times <- 200
t.range <- c(0, 5)
mu <- -0.5
sigma <- 3/4
thin <- 5
set.seed(17)
#
# Create a realization.
#
dt <- diff(t.range) / n.times
X <- data.frame(
  n = 0:n.times,
  t = 0:n.times * dt,
  dW = c(0, rnorm(n.times))
)
X$W <- with(X, cumsum(dW))
X$dW.scaled <- with(X, dW * sqrt(sigma^2 * dt) + mu * dt)
X$W.scaled <- with(X, cumsum(dW.scaled))

plot.all <- function(X, show.points=TRUE, main="Interpolated Discrete Brownian Motion") {
  x <- with(X, approxfun(t, W.scaled, method="linear"))
  with(X, {
    curve(x(t), xlim=range(t), xname="t", lwd=2, col="Gray", main=main)
    if(show.points) points(t, W.scaled, pch=21, cex=1, bg="#0040ddc0")
    abline(c(0, mu), col="#d0101080", lwd=2)
  })
}
#
# Display it.
#
plot.all(X)

0 votos

Muchas gracias por la brillante respuesta. ¿Hay alguna referencia para la fórmula $W(n\, dt) = \sum_{i=1}^n (\sigma\sqrt{dt}\,dW_i + \mu) = \mu t + \sigma \sqrt{dt}\, \sum_{i=1}^n dW_i.$ ?

1voto

Aksakal Puntos 11351

En términos de implementación técnica, es necesario entender que la media y la volatilidad se escalan en un espacio diferente con el paso del tiempo. La media es lineal y la volatilidad es la raíz cuadrada del tiempo: $$\mu_{h\Delta t}=h\mu_{\Delta t}$$ $$\sigma_{h\Delta t}=\sqrt h\sigma_{\Delta t}$$

Esto crea un rasgo característico del movimiento browniano: a medida que se reduce el paso de tiempo, la volatilidad disminuye a un ritmo más lento. Así, cuando se pasa de 1 segundo a 1/100 segundos, la volatilidad disminuye sólo en 10, no en 100. Es muy difícil matar la volatilidad, de hecho, imposible. No importa lo pequeño que sea el paso de tiempo, el proceso sigue sacudiéndose. Si la volatilidad fuera lineal en el tiempo, sería fácil matarla.

Así es como se acaba con un proceso que es continuo, pero no fluido. No tiene la primera derivada en ninguna parte. Si recuerdas la ecuación de la primera derivada: $$\frac{dx}{dt}=\lim_{\Delta t\to 0}\frac{x(t+\Delta t)-x(t)}{\Delta t}$$ Paso de tiempo decreciente $\Delta t$ no funciona porque la reducción de la volatilidad (ruido) es cada vez más lenta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X