Jupyter Snippet CB2nd 02_poisson
Jupyter Snippet CB2nd 02_poisson
13.2. Simulating a Poisson process
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
rate = 20. # average number of events per second
dt = .001 # time step
n = int(1. / dt) # number of time steps
x = np.zeros(n)
x[np.random.rand(n) <= rate * dt] = 1
x[:10]
array([ 1., 0., ..., 0., 0.])
fig, ax = plt.subplots(1, 1, figsize=(6, 2))
ax.vlines(np.nonzero(x)[0], 0, 1)
ax.set_axis_off()
fig, ax = plt.subplots(1, 1, figsize=(6, 4))
ax.plot(np.linspace(0., 1., n),
np.cumsum(x), lw=2)
ax.set_xlabel("Time")
ax.set_ylabel("Counting process")
y = np.cumsum(np.random.exponential(1. / rate,
size=int(rate)))
y[:10]
array([ 0.021, 0.072, 0.087, 0.189, 0.224,
0.365, 0.382, 0.392, 0.458, 0.489])
fig, ax = plt.subplots(1, 1, figsize=(8, 3))
ax.vlines(y, 0, 1)
ax.set_axis_off()