{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 13: Poisson Processes\n", " \n", "This Jupyter notebook is the Python equivalent of the R code in section 13.5 R, pp. 534 - 536, [Introduction to Probability, 2nd Edition](https://www.crcpress.com/Introduction-to-Probability-Second-Edition/Blitzstein-Hwang/p/book/9781138369917), Blitzstein & Hwang.\n", "\n", "----" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1D Poisson process\n", "\n", "In Chapter 5, we discussed how to simulate a specified number of arrivals from a one-dimensional Poisson process by using the fact that the interarrival times are i.i.d. Exponentials. In this chapter, Story 13.2.3 tells us how to simulate a Poisson process within a specified interval $(0, \\left.L\\right]$. We first generate the number of arrivals $N(L)$, which is distributed $Pois(\\lambda L)$. Conditional on $N(L) = n$, the arrival times are distributed as the order statistics of $n$ i.i.d. $Unif(0, L)$ r.v.s. The following code simulates arrivals from a Poisson process with rate 10 in the interval $(0, \\left. 5\\right]$:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "np.random.seed(2971215073)\n", "\n", "from scipy.stats import poisson, uniform\n", "\n", "L = 5 \n", "lambd = 10 \n", "n = poisson.rvs(lambd*L, size=1)[0]\n", "t = np.sort(uniform.rvs(loc=0, scale=(L-0), size=n))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To visualize the Poisson process we have generated, we can plot the cumulative number of arrivals $N(t)$ as a function of $t$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "