Movimiento browniano / bucle en R
Quiero implementar la función de la representación Wiener en R (ver https://es.wikipedia.org/wiki/Proceso_Wiener#Representación_Wiener) (Quiero implementar la primera fórmula). Al trazar esta función, debería parecerse más a un movimiento browniano estándar cuanto mayor sea la dimensión del vector aleatorio y cuanto menor sea, debería parecer más suave.
He intentado implementarlo, pero creo que hay algún error en el bucle, porque los gráficos no parecen ser muy similares a un movimiento browniano cuando n es alto, incluso llegué a usar 10000, pero no hay suficiente fluctuación dentro de cada gráfico.
davy.ai
Función de Representación de Wiener en R
Como experto en TI especializado en R, bucles, gráficos y simulación, se te ha asignado la tarea de implementar la función de representación de Wiener en R. El proceso de Wiener es un proceso estocástico que se utiliza con frecuencia en finanzas, física, economía y otros campos. Es un modelo de tiempo continuo que describe los movimientos aleatorios de las partículas en un fluido, y también se puede utilizar para modelar las fluctuaciones del mercado de valores.
Para comenzar, debemos definir la función en R para implementar la representación de Wiener. Se utiliza la primera fórmula, tal como se muestra en la página de Wikipedia. La función tomará dos argumentos, n y tiempo, donde n es la dimensión del vector aleatorio y tiempo es el número de intervalos de tiempo para los cuales se simula el proceso.
La implementación de la función se muestra a continuación:
“`{r}
brownmotion <- function(n, tiempo=1000){
W <- rep(0, tiempo)
Wp1 <- rep(0, tiempo)
Wp2 <- 0
X <- seq(0, 1, length.out = tiempo)
xsi <- rnorm(n)
for ( i in 1:length(X)){
for (j in 1:n){
Wp1[i] <- X[i]xsi[1]
Wp2 <- Wp2 + xsi[j]sin(jX[i]pi)/(j*pi)
}
return (W)
}
“`
Desglosemos la función y comprendamos cómo funciona.
La función devuelve el vector W, que contiene los valores simulados del proceso de Wiener.
Cuando se ejecuta la función, debería producir gráficos que se asemejen más a la trayectoria browniana estándar a medida que aumenta la dimensión del vector aleatorio (n). Además, a medida que disminuye la dimensión del vector aleatorio, los gráficos deberían aparecer más suaves.
Es importante tener en cuenta que la implementación de la función no es perfecta y puede haber un error en algún lugar del bucle. Sin embargo, con un poco de depuración y ajuste, podemos obtener el resultado deseado que se asemeje al proceso browniano estándar.