from numpy.random import randint
from numpy import argmax, arange
from matplotlib.pyplot import plot, hist, scatter
Simulación de las caminatas
In [1]:
Si tenemos una variable aleatoria \(X \in \{-1,1\}\) con una distribución uniforme. Podemos simularla con:
In [2]:
= 100
n_pasos = 1
n_caminatas
= 2*randint(0,2, (n_pasos, n_caminatas)) - 1 pasos
Una caminata aleatoria de largo \(N\) se considera como la trayectoria que realiza una variable aleatoria
\[ S = \sum_{i=1}^{N} X_{i} \tag{1}\]
In [3]:
= pasos.cumsum(axis=0)
caminatas plot(caminatas)
Queremos estudiar cual es la probabilidad \(P\) de que un caminante regrese al origen en \(n\) pasos.
In [4]:
= argmax(caminatas == 0, axis=0) vuelta_al_origen
In [5]:
= hist(vuelta_al_origen, bins=30) h
Estudio del conjunto de caminatas aleatorias
Por la definición de Equation 1 podemos estudiar la esperanza y la varianza de un conjunto de caminatas
In [6]:
= arange(100)
t = caminatas.mean(axis=1)
vm = caminatas.var(axis=1)
ds
scatter(t,vm)
In [7]:
scatter(t,ds)
Se puede observar en Figure 1 la mayoria de las caminatas rondan el origen, y en Figure 2 como la varianza crece de manera lineal.
Cualquer duda consultar (Knuth 1984).
Knuth, Donald E. 1984. “Literate Programming.” Comput. J. 27 (2): 97–111. https://doi.org/10.1093/comjnl/27.2.97.