Skip to content

Instantly share code, notes, and snippets.

@diego898
Created October 29, 2018 15:56
Show Gist options
  • Save diego898/85cb539ee64985e4b6fe36620ae6197a to your computer and use it in GitHub Desktop.
Save diego898/85cb539ee64985e4b6fe36620ae6197a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Waiting Time Paradox, or, Why Is My Bus Always Late?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*This notebook originally appeared as a [post](http://jakevdp.github.io/blog/2018/09/13/waiting-time-paradox/) on the blog [Pythonic Perambulations](http://jakevdp.github.io).*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<!-- PELICAN_BEGIN_SUMMARY -->\n",
"\n",
"![Rapid Ride Bus](http://jakevdp.github.io/images/rapid-ride.jpg)\n",
"*Image Source: [Wikipedia](https://en.wikipedia.org/wiki/RapidRide#/media/File:King_County_Metro_Rapid_Ride_New_Flyer_DE60LFR_6060.JPG) License CC-BY-SA 3.0*\n",
"\n",
"If you, like me, frequently commute via public transit, you may be familiar with the following situation:\n",
"\n",
"> *You arrive at the bus stop, ready to catch your bus: a line that advertises arrivals every 10 minutes. You glance at your watch and note the time... and when the bus finally comes 11 minutes later, you wonder why you always seem to be so unlucky.*\n",
"\n",
"Naïvely, you might expect that if buses are coming every 10 minutes and you arrive at a random time, your average wait would be something like 5 minutes.\n",
"In reality, though, buses do not arrive exactly on schedule, and so you might wait longer.\n",
"It turns out that under some reasonable assumptions, you can reach a startling conclusion:\n",
"\n",
"**When waiting for a bus that comes on average every 10 minutes, your average waiting time will be 10 minutes.**\n",
"\n",
"This is what is sometimes known as the *waiting time paradox*.\n",
"\n",
"I've encountered this idea before, and always wondered whether it is actually true... how well do those \"reasonable assumptions\" match reality?\n",
"This post will explore the waiting time paradox from the standpoint of both simulation and probabilistic arguments, and then take a look at some real bus arrival time data from the city of Seattle to (hopefully) settle the paradox once and for all.\n",
"\n",
"<!-- PELICAN_END_SUMMARY -->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Inspection Paradox"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If buses arrive exactly every ten minutes, it's true that your average wait time will be half that interval: 5 minutes.\n",
"Qualitatively speaking, it's easy to convince yourself that adding some variation to those arrivals will make the average wait time somewhat longer, as we'll see here.\n",
"\n",
"The waiting time paradox turns out to be a particular instance of a more general phenomenon, the *inspection paradox*, which is discussed at length in this enlightening post by Allen Downey: [The Inspection Paradox Is Everywhere](\n",
"http://allendowney.blogspot.com/2015/08/the-inspection-paradox-is-everywhere.html).\n",
"\n",
"Briefly, the inspection paradox arises whenever the probability of observing a quantity is related to the quantity being observed.\n",
"Allen gives one example of surveying university students about the average size of their classes. Though the school may truthfully advertise an average of 30 students per class, the average class size *as experienced by students* can be (and generally will be) much larger. The reason is that there are (of course) more students in the larger classes, and so you oversample large classes when computing the average experience of students.\n",
"\n",
"In the case of a nominally 10-minute bus line, sometimes the span between arrivals will be longer than 10 minutes, and sometimes shorter, and if you arrive at a random time, you have more opportunities to encounter a longer interval than to encounter a shorter interval. And so it makes sense that the average span of time *experienced by riders* will be longer than the average span of time between buses, because the longer spans are over-sampled.\n",
"\n",
"But the waiting time paradox makes a stronger claim than this: when the average span between arrivals is $N$ minutes, the average span *experienced by riders* is $2N$ minutes.\n",
"Could this possibly be true?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simulating Wait Times"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To convince ourselves that the waiting time paradox is making a reasonable claim, let's start by simulating a stream of buses that arrive at an average of 10 minutes.\n",
"For the sake of numerical accuracy, we will simulate a large number of bus arrivals: one million buses (or approximately 19 years of round-the-clock 10-minute headways):"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"N = 1000000 # number of buses\n",
"tau = 10 # average minutes between arrivals\n",
"\n",
"rand = np.random.RandomState(42) # universal random seed\n",
"bus_arrival_times = N * tau * np.sort(rand.rand(N))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Just to confirm we've done things correctly, let's check that the mean interval is close to $\\tau = 10$:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9.9999879601518398"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"intervals = np.diff(bus_arrival_times)\n",
"intervals.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With these bus arrivals simulated, we can now simulate the arrival of a large number of passengers to the bus stop during this span, and compute the wait time that each of them experiences.\n",
"Let's encapsulate this in a function for later use:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def simulate_wait_times(arrival_times,\n",
" rseed=8675309, # Jenny's random seed\n",
" n_passengers=1000000):\n",
" rand = np.random.RandomState(rseed)\n",
" \n",
" arrival_times = np.asarray(arrival_times)\n",
" passenger_times = arrival_times.max() * rand.rand(n_passengers)\n",
"\n",
" # find the index of the next bus for each simulated passenger\n",
" i = np.searchsorted(arrival_times, passenger_times, side='right')\n",
"\n",
" return arrival_times[i] - passenger_times"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then simulate some wait times and compute the average:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.001584206227317"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wait_times = simulate_wait_times(bus_arrival_times)\n",
"wait_times.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The average wait time is also close to 10 minutes, just as the waiting time paradox predicted."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Digging Deeper: Probabilities & Poisson Processes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How can we understand what's going on here?\n",
"\n",
"Fundamentally, this is an instance of the inspection paradox, in which the probability of observing a value is related to the value itself.\n",
"Let's denote by $p(T)$ the distribution of intervals $T$ between buses as they arrive at a bus stop. In this notation, the expectation value of the arrival times is\n",
"$$\n",
"E[T] = \\int_0^\\infty T~p(T)~dT\n",
"$$\n",
"In the above simulation, we had chosen $E[T] = \\tau = 10$ minutes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When a rider arrives at a bus stop at a random time, the probability of the time interval they experience will be affected by $p(T)$, but also by $T$ itself: the longer the interval, the larger the probability is that a passenger will experience it.\n",
"\n",
"So we can write the distribution of arrival times experienced by passengers:\n",
"$$\n",
"p_{exp}(T) \\propto T~p(T)\n",
"$$\n",
"The constant of proportionality comes from normalizing the distribution:\n",
"$$\n",
"p_{exp}(T) = \\frac{T~p(T)}{\\int_0^\\infty T~p(T)~dT}\n",
"$$\n",
"Comparing to above we see this simplifies to\n",
"$$\n",
"p_{exp}(T) = \\frac{T~p(T)}{E[T]} \n",
"$$\n",
"The expected wait time $E[W]$ will then be half of the expected interval experienced by passengers, so we can write\n",
"$$\n",
"E[W] = \\frac{1}{2}E_{exp}[T] = \\frac{1}{2}\\int_0^\\infty T~p_{exp}(T)~dT\n",
"$$\n",
"which can be rewritten in a more suggestive way:\n",
"$$\n",
"E[W] = \\frac{E[T^2]}{2E[T]}\n",
"$$\n",
"and now all that remains is for us to choose a form for $p(T)$ and compute the integrals."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Choosing *p(T)*\n",
"\n",
"With this formalism worked out, what is a reasonable distribution to use for $p(T)$?\n",
"We can get a picture of the $p(T)$ distribution within our simulated arrivals by plotting a histogram of the intervals between arrivals:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n1ImIiBTi/wGwAUuc9Yh8nAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 576x396 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use('seaborn')\n",
"\n",
"plt.hist(intervals, bins=np.arange(80), density=True)\n",
"plt.axvline(intervals.mean(), color='black', linestyle='dotted')\n",
"plt.xlabel('Interval between arrivals (minutes)')\n",
"plt.ylabel('Probability density');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The vertical dotted line here shows the mean interval of about 10 minutes.\n",
"This looks very much like an exponential distribution, and that is no accident: our simulation of bus arrival times as uniform random numbers very closely approximates a [Poisson process](https://en.wikipedia.org/wiki/Poisson_point_process), and for such a process it can be shown that the distribution of intervals between arrivals is exponential.\n",
"\n",
"(Side note: In our case this is only approximately exponential; in reality the intervals $T$ between $N$ uniformly sampled points within a timespan $N\\tau$ follow the [Beta distribution](https://en.wikipedia.org/wiki/Beta_distribution): $T/(N\\tau) \\sim \\mathrm{Beta}[1, N]$, which in the large $N$ limit approaches $T \\sim \\mathrm{Exp}[1/\\tau]$.\n",
"See, e.g. [this StackExchange post](https://math.stackexchange.com/questions/68749/difference-of-order-statistics-in-a-sample-of-uniform-random-variables), or [this twitter thread](https://twitter.com/jakevdp/status/1038086415190351872) for more details).\n",
"\n",
"An exponential distribution of intervals implies that the arrival times follow a Poisson process.\n",
"To double-check this reasoning, we can confirm that it matches another property of a Poisson process: the number of arrivals within a fixed span of time will be Poisson-distributed.\n",
"Let's check this by binning our simulated arrivals into hourly blocks:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nrkJggg==\n",
"text/plain": [
"<Figure size 576x396 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from scipy.stats import poisson\n",
"\n",
"# count the number of arrivals in 1-hour bins\n",
"binsize = 60\n",
"binned_arrivals = np.bincount((bus_arrival_times // binsize).astype(int))\n",
"x = np.arange(20)\n",
"\n",
"# plot the results\n",
"plt.hist(binned_arrivals, bins=x - 0.5, density=True, alpha=0.5, label='simulation')\n",
"plt.plot(x, poisson(binsize / tau).pmf(x), 'ok', label='Poisson prediction')\n",
"plt.xlabel('Number of arrivals per hour')\n",
"plt.ylabel('frequency')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The close match between the empirical and theoretical values gives confidence that our interpretation is correct: for large $N$, the arrival times we simulated above are well-described by a Poisson process, which implies exponentially-distributed arrival intervals."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That means we can write the probability distribution:\n",
"$$\n",
"p(T) = \\frac{1}{\\tau}e^{-T/\\tau}\n",
"$$\n",
"Plugging this into the above results, we find that the average waiting time experienced by a person is\n",
"$$\n",
"E[W] = \\frac{\\int_0^\\infty T^2~e^{-T/\\tau}}{2\\int_0^\\infty T~e^{-T/\\tau}} = \\frac{2\\tau^3}{2(\\tau^2)} = \\tau\n",
"$$\n",
"For bus arrivals consistent with a Poisson process, the expected wait time for a passenger is identical to the average interval between arrivals."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A complementary way to reason about this is this: a Poisson process is a *memoryless* process, meaning that the history of events has no bearing on the expected time to the next event.\n",
"So when you arrive at the bus stop, the average waiting time until the next bus is always the same: in our case, it is 10 minutes, and this is regardless of how long it has been since the previous bus!\n",
"Along the same lines, it does not matter how long you have been waiting already: the expected time to the next arrival is always exactly 10 minutes: for a Poisson process, you get no \"credit\" for time spent waiting."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Waiting Times In Reality\n",
"\n",
"The above is well and good if real-world bus arrivals are actually described by a Poisson process, but are they?\n",
"\n",
"[![Seattle Transit Map](http://jakevdp.github.io/images/seattle-transit-map.png)](https://seattletransitmap.com/)\n",
"*Image Source: https://seattletransitmap.com/*\n",
"\n",
"To determine whether the waiting time paradox describes reality, we can dig into some data, available for download here: [arrival_times.csv](https://gist.githubusercontent.com/jakevdp/82409002fcc5142a2add0168c274a869/raw/1bbabf78333306dbc45b9f33662500957b2b6dc3/arrival_times.csv) (3MB CSV file).\n",
"The dataset contains scheduled and actual arrival times for Seattle's [Rapid Ride](https://kingcounty.gov/depts/transportation/metro/travel-options/bus/rapidride.aspx) lines C, D, and E at the 3rd & Pike bus stop in downtown Seattle, recorded during the second quarter of 2016 (huge thanks to Mark Hallenbeck of the Washington State Transportation Center for providing this data!)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>OPD_DATE</th>\n",
" <th>VEHICLE_ID</th>\n",
" <th>RTE</th>\n",
" <th>DIR</th>\n",
" <th>TRIP_ID</th>\n",
" <th>STOP_ID</th>\n",
" <th>STOP_NAME</th>\n",
" <th>SCH_STOP_TM</th>\n",
" <th>ACT_STOP_TM</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2016-03-26</td>\n",
" <td>6201</td>\n",
" <td>673</td>\n",
" <td>S</td>\n",
" <td>30908177</td>\n",
" <td>431</td>\n",
" <td>3RD AVE &amp; PIKE ST (431)</td>\n",
" <td>01:11:57</td>\n",
" <td>01:13:19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2016-03-26</td>\n",
" <td>6201</td>\n",
" <td>673</td>\n",
" <td>S</td>\n",
" <td>30908033</td>\n",
" <td>431</td>\n",
" <td>3RD AVE &amp; PIKE ST (431)</td>\n",
" <td>23:19:57</td>\n",
" <td>23:16:13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2016-03-26</td>\n",
" <td>6201</td>\n",
" <td>673</td>\n",
" <td>S</td>\n",
" <td>30908028</td>\n",
" <td>431</td>\n",
" <td>3RD AVE &amp; PIKE ST (431)</td>\n",
" <td>21:19:57</td>\n",
" <td>21:18:46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2016-03-26</td>\n",
" <td>6201</td>\n",
" <td>673</td>\n",
" <td>S</td>\n",
" <td>30908019</td>\n",
" <td>431</td>\n",
" <td>3RD AVE &amp; PIKE ST (431)</td>\n",
" <td>19:04:57</td>\n",
" <td>19:01:49</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2016-03-26</td>\n",
" <td>6201</td>\n",
" <td>673</td>\n",
" <td>S</td>\n",
" <td>30908252</td>\n",
" <td>431</td>\n",
" <td>3RD AVE &amp; PIKE ST (431)</td>\n",
" <td>16:42:57</td>\n",
" <td>16:42:39</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" OPD_DATE VEHICLE_ID RTE DIR TRIP_ID STOP_ID \\\n",
"0 2016-03-26 6201 673 S 30908177 431 \n",
"1 2016-03-26 6201 673 S 30908033 431 \n",
"2 2016-03-26 6201 673 S 30908028 431 \n",
"3 2016-03-26 6201 673 S 30908019 431 \n",
"4 2016-03-26 6201 673 S 30908252 431 \n",
"\n",
" STOP_NAME SCH_STOP_TM ACT_STOP_TM \n",
"0 3RD AVE & PIKE ST (431) 01:11:57 01:13:19 \n",
"1 3RD AVE & PIKE ST (431) 23:19:57 23:16:13 \n",
"2 3RD AVE & PIKE ST (431) 21:19:57 21:18:46 \n",
"3 3RD AVE & PIKE ST (431) 19:04:57 19:01:49 \n",
"4 3RD AVE & PIKE ST (431) 16:42:57 16:42:39 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"df = pd.read_csv('arrival_times.csv')\n",
"df = df.dropna(axis=0, how='any')\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The reason I sought data from Rapid Ride routes in particular is that for much of the day, the buses are scheduled at regular intervals of between 10 and 15 minutes — not to mention the fact that I'm a frequent passenger on the C-line."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data Cleanup\n",
"\n",
"To start with, let's do a little bit of data cleanup to get it into a form that's easier to work with:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>route</th>\n",
" <th>direction</th>\n",
" <th>scheduled</th>\n",
" <th>actual</th>\n",
" <th>minutes_late</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C</td>\n",
" <td>southbound</td>\n",
" <td>2016-03-26 01:11:57</td>\n",
" <td>2016-03-26 01:13:19</td>\n",
" <td>1.366667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C</td>\n",
" <td>southbound</td>\n",
" <td>2016-03-26 23:19:57</td>\n",
" <td>2016-03-26 23:16:13</td>\n",
" <td>-3.733333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>C</td>\n",
" <td>southbound</td>\n",
" <td>2016-03-26 21:19:57</td>\n",
" <td>2016-03-26 21:18:46</td>\n",
" <td>-1.183333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>C</td>\n",
" <td>southbound</td>\n",
" <td>2016-03-26 19:04:57</td>\n",
" <td>2016-03-26 19:01:49</td>\n",
" <td>-3.133333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>C</td>\n",
" <td>southbound</td>\n",
" <td>2016-03-26 16:42:57</td>\n",
" <td>2016-03-26 16:42:39</td>\n",
" <td>-0.300000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" route direction scheduled actual minutes_late\n",
"0 C southbound 2016-03-26 01:11:57 2016-03-26 01:13:19 1.366667\n",
"1 C southbound 2016-03-26 23:19:57 2016-03-26 23:16:13 -3.733333\n",
"2 C southbound 2016-03-26 21:19:57 2016-03-26 21:18:46 -1.183333\n",
"3 C southbound 2016-03-26 19:04:57 2016-03-26 19:01:49 -3.133333\n",
"4 C southbound 2016-03-26 16:42:57 2016-03-26 16:42:39 -0.300000"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# combine date and time into a single timestamp\n",
"df['scheduled'] = pd.to_datetime(df['OPD_DATE'] + ' ' + df['SCH_STOP_TM'])\n",
"df['actual'] = pd.to_datetime(df['OPD_DATE'] + ' ' + df['ACT_STOP_TM'])\n",
"\n",
"# if scheduled & actual span midnight, then the actual day needs to be adjusted\n",
"minute = np.timedelta64(1, 'm')\n",
"hour = 60 * minute\n",
"diff_hrs = (df['actual'] - df['scheduled']) / hour\n",
"df.loc[diff_hrs > 20, 'actual'] -= 24 * hour\n",
"df.loc[diff_hrs < -20, 'actual'] += 24 * hour\n",
"df['minutes_late'] = (df['actual'] - df['scheduled']) / minute\n",
"\n",
"# map internal route codes to external route letters\n",
"df['route'] = df['RTE'].replace({673: 'C', 674: 'D', 675: 'E'}).astype('category')\n",
"df['direction'] = df['DIR'].replace({'N': 'northbound', 'S': 'southbound'}).astype('category')\n",
"\n",
"# extract useful columns\n",
"df = df[['route', 'direction', 'scheduled', 'actual', 'minutes_late']].copy()\n",
"\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How Late Are Buses?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are essentially six different datasets within this table: the northbound and southbound directions for each of the C, D, and E lines.\n",
"To get a feeling for their characteristics, let's plot a histogram of the actual minus scheduled arrival times for each of these six:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n+fnxyCOPcPz48TznM5rNZnx8fAy3bc+5CP7+3nads+IKlKtruj3X4r6paazkpVxdk8ZK6VOurqmo\nY8WhV1UfOHCALl262Jb379/PmDFjgJsF4o8//kiDBg1o1qwZBw8eBGDv3r20bdvWkWGKiIiISAEc\nWjgeP36coKAg2/ITTzxBvXr1eOGFFxg2bBhjx46lZs2aTJgwgYSEBAYMGEBOTg5hYWGODFNERERE\nClCmh6oDAwNZv369bXnHjh352kyePDnfuvr167N69eqyDE1EREREikg3ABcRERERu6hwFBERERG7\nqHAUEREREbuocBQRERERu6hwFBERERG7OPQG4CIi90rU/N0Frt++MNzBkYiIlF+acRQRERERu6hw\nFBERERG7qHAUEREREbuocBQRERERu6hwFBERERG7qHAUEREREbvodjwiUqH1HLe1wPV/iQ11cCQi\nIs5PM44iIiIiYhcVjiIiIiJiFxWOIiIiImKXMi0cDx8+TGRkJAApKSl07tyZyMhIIiMj2blzJwCL\nFy+mf//+REREcOTIEQBOnDjBwIEDGTRoENOmTcNisZRlmCIiIiJihzK7OGbFihVs27aNqlWrAnDs\n2DGGDh1KVFSUrU1KSgpJSUls2LCBs2fPEhMTw6ZNm5g3bx5jxoyhQ4cOxMXFsWvXLrp161ZWoYqI\niIiIHcqscKxbty4JCQm89tprABw9epTjx4+za9cu6tWrx6RJkzh06BAhISGYTCYCAgLIzc3l4sWL\npKSk0L59ewC6dOnCV199ZVg4+vpWw8PD3TAuf3/vkidXTihX11TSXDVW7OOq+btqXgXRWCl9ytU1\nFSXXMiscw8LCSE9Pty23bNmS559/nubNm7N06VKWLFmCt7c3NWrUsLWpXr06mZmZWK1WTCZTnnVG\nLl26atjG39+b8+eNt+UKlKtruj3X4r6paazYxxXzr0ivq8ZK6VOurqmoY8VhF8d069aN5s2b234+\nduwYXl5emM1mWxuz2Yy3tzdubm551vn4+DgqTBEREREphMMKx2HDhtkufjlw4ADBwcG0adOGffv2\nYbFYOHPmDBaLhZo1a9KsWTMOHjwIwN69e2nbtq2jwhQRERGRQjjsyTHTp09n1qxZVKpUiVq1ajFr\n1iy8vLxo27YtAwYMwGKxEBcXB8CECROYOnUq8fHxNGjQgLCwMEeFKSIiIiKFKNPCMTAwkPXr1wMQ\nHBzM2rVr87WJiYkhJiYmz7r69euzevXqsgxNRERERIpINwAXEREREbuocBQRERERu6hwFBERERG7\nqHAUEREREbuocBQRERERu6hwFBERERG7OOw+jiIiIlJ+9Ry3tcD1f4kNdXAkci9pxlFERERE7KLC\nUURERETsosJRREREROyiwlFERERE7KLCUURERETsosJRREREROxiWDhevnyZ/fv3A7Bs2TJGjx7N\nyZMnyzwwEREREXEuhoXjuHHjSE1NZf/+/XzyySeEhoYyefJkR8QmIiIiIk7EsHDMyMhg2LBh7Nq1\niz59+tC7d2/MZrNdGz98+DCRkZEApKamMmjQICIjIxk2bBgXLlwAYPbs2fTt25fIyEgiIyPJzMzk\n4sWLREVFMWjQIMaMGcO1a9dKkKKIiIiIlAbDwtFisXD06FE+//xznnrqKVJTU8nNzTXc8IoVK5gy\nZQrXr18HYM6cOUydOpXExES6devGihUrAEhJSWHlypUkJiaSmJiIt7c3b7/9Nj169GDNmjU0a9aM\ndevWlTBNERERESkpw8Jx/PjxLFiwgKioKIKCgpg2bRoTJ0403HDdunVJSEiwLcfHx/PII48AkJub\nS+XKlbFYLJw4cYK4uDgiIiLYuHEjAIcOHaJz584AdOnSxXaOpYiIiIjcO4bPqu7UqRMtW7bk1KlT\nWK1W3nvvPapVq2a44bCwMNLT023LtWvXBuDbb79l9erVfPDBB1y9epXBgwczdOhQcnNzGTJkCM2b\nNycrKwtvb28AqlevTmZmpmF/vr7V8PBwN2zn7+9t2MZVKFfXVNJcNVbs46r5u2peBdFYcQxXzd9V\n8ypIUXI1LBwPHDhAXFwcubm5rFu3jp49e/LGG28QEhJS5MB27tzJ0qVLWb58OTVr1rQVi1WrVgWg\nY8eO/PDDD3h5eWE2m6lSpQpmsxkfHx/DbV+6dNWwjb+/N+fPGxehrkC5uqbbcy3um5rGin1cMf+K\n9LpqrDiOK+ZfkV7Xoo4Vw0PV8fHxrFmzBh8fH/z9/Vm9ejULFiwocmBbt25l9erVJCYmEhQUBMAv\nv/zCoEGDyM3NJScnh2+//Zbg4GDatGnDl19+CcDevXt59NFHi9yfiIiIiJQuwxlHi8WCv7+/bblR\no0ZF7iQ3N5c5c+bw4IMPEhMTA0C7du0YPXo0PXv25IUXXqBSpUqEh4fTuHFjXn75ZSZMmMD69evx\n9fVl4cKFRe5TREREREqXYeH4wAMPsGfPHkwmE1euXOGDDz4gICDAro0HBgayfv16AJKSkgpsM3z4\ncIYPH55nXa1atXj33Xft6kNEREREHMOwcJw5cyZz5szh7NmzdOvWjQ4dOjBz5kxHxCYiIiIOFjV/\n970OQZyYYeHo5+dHfHw8AJmZmZw7d852hbSIiIiIVByGF8ds2LCB2NhYLl68SPfu3Rk9ejTvvPOO\nI2ITERERESdiWDh++OGHjB07lo8//piuXbuyfft2PvvsM0fEJiIiIiJOxLBwhJs37/7yyy958skn\n8fDwsD1GUEREREQqDsPCsVGjRowYMYL09HQ6derEmDFjaNGihSNiExEREREnYnhxzNy5c/nuu+9o\n3Lgxnp6e9OrViyeeeMIRsYmI3DOFXVn6l9hQB0ciIuI8DAvHWxfCHDx40Lbu2LFjREdHl11UIiIi\nIuJ07DrH8ZacnBx2797Nb7/9VlbxiIiIiIiTMpxxvHNmcdSoUURFRZVZQCIiIiLinIo04whgNps5\nc+ZMWcQiIiIiIk7McMYxNDQUk8kEgNVqJSMjgxdffLHMAxMRERER52JYOCYmJtp+NplM+Pj44OXl\nVaZBiYiIiIjzMSwc69Spw+7du0lKSsLDw4PHH3+cTp06OSI2EREREXEihuc4Lly4kJUrV1KnTh38\n/f158803WbZsmSNiExEREREnYjjj+MUXX7B582YqVaoEQEREBP369WPEiBFlHpyIiIiIOA/DGcf7\n7rsPs9lsW87JybH7HMfDhw8TGRkJwIkTJxg4cCCDBg1i2rRpWCwWABYvXkz//v2JiIjgyJEjd20r\nIiIiIvdOoTOOEydOBMBisRAeHk5oaCju7u7s3buXBg0aGG54xYoVbNu2japVqwIwb948xowZQ4cO\nHYiLi2PXrl0EBASQlJTEhg0bOHv2LDExMWzatKnAtt26dSullEVERKS06PGcFUuhhWP79u3z/P+W\n4OBguzZct25dEhISeO211wBISUmxbatLly589dVX1K9fn5CQEEwmEwEBAeTm5nLx4sUC26pwFBER\nEbm3Ci0c+/TpU6INh4WFkZ6eblu2Wq22+0FWr16dzMxMsrKyqFGjhq3NrfUFtTXi61sNDw93w3b+\n/t5FTaXcUq6uqaS5aqyUTHnfL+U9/qLQWLm3yvt+Ke/xF0VRcjW8OKa0uLn953RKs9lsux/k7edP\nms1mvL29C2xr5NKlq4Zt/P29OX/euAh1BcrVNd2ea3Hf1DRWSqY875eK9LpqrNx75Xm/VKTXtahj\npdCLY06cOFF6UQHNmjXj4MGDAOzdu5e2bdvSpk0b9u3bh8Vi4cyZM1gsFmrWrFlgWxERERG5twot\nHKOjowH405/+VCodTZgwgYSEBAYMGEBOTg5hYWE0b96ctm3bMmDAAGJiYoiLiyu0rYiIiIjcW4Ue\nqq5UqRIDBw4kLS2NIUOG5Pv9qlWrDDceGBjI+vXrAahfvz6rV6/O1yYmJoaYmJg86wprKyIiIiL3\nTqGF46pVq0hNTWXy5Mm22UcRERERqbgKLRy9vLxo164da9euBW7ezDs3N5fWrVtTq1YthwUoIiIi\nIs7B8MkxKSkphIeHs3nzZrZs2UKvXr3Ys2ePI2ITERERESdieDueRYsWsWbNGoKCggA4deoU0dHR\nPPXUU2UenIiIiIg4D8MZxxs3btiKRoCgoCA9O1pERESkAjIsHAMCAnjvvffIysoiKyuL9957jzp1\n6jgiNhERERFxIoaF45w5c0hOTubpp5+ma9eufPfdd8ycOdMRsYmIiIiIEzE8x9HPz48333zTEbGI\niIiIiBMznHEUEREREQEVjiIiIiJiJ8PCcdGiRY6IQ0REREScnGHhuGfPHqxWqyNiEREREREnZnhx\nTI0aNXjmmWcIDg6mcuXKtvXz5s0r08BERERExLkYFo59+vRxRBwiIiIi4uTsKhzT09P56aefCAkJ\n4ezZs3meJCMiIiIiFYNh4bhz506WLl3K77//ztq1a4mIiOC1114jPDzcEfGJiBRJ1Pzd9zoEkXJB\nY0WKw7BwXLFiBR9++CGDBw/Gz8+PLVu2MHTo0GIVjps3b2bLli0AXL9+ndTUVBYuXMiCBQt48MEH\nAYiJiaFt27ZMnz6dtLQ0PD09mT17NvXq1StyfyIiIiJSegwLRzc3N7y8vGzLtWvXxs2teLd/7Nu3\nL3379gVgxowZ9OvXj5SUFMaPH09YWJit3WeffUZ2djbr1q0jOTmZ+fPns3Tp0mL1KSIiIiKlw7Bw\nbNy4MatXr+bGjRukpqayZs0amjZtWqJOv//+e3766SemTZvGiy++SGpqKu+//z4tW7bk1Vdf5dCh\nQ3Tu3BmA1q1bc/ToUcNt+vpWw8PD3bCdv793iWIvT5SraypprhorJVPe90t5j78oNFburfK+X8p7\n/EVRlFwNC8e4uDiWLl1K5cqVmTRpEh07dmTChAklCnDZsmWMGjUKgMcff5ynn36awMBApk2bxtq1\na8nKysozy+nu7s6NGzfw8Cg83EuXrhr26+/vzfnzmSWKvbxQrq7p9lyL+6amsVIy5Xm/VKTXVWPl\n3ivP+6Uiva5FHSuGhWO1atUYPXo03bt3p1KlSjz00EO4uxt/AyvMlStX+Pnnn+nYsSMA/fr1w8fH\nB4CuXbvy6aef4u3tjdlstv2NxWK5a9FYkRV2cvP2hbp4SUREREqX4cmKSUlJPP3000yaNIlx48bx\n7LPP8v333xe7w2+++YbHHnsMAKvVSq9evTh37hwABw4cIDg4mDZt2rB3714AkpOTadKkSbH7ExER\nEZHSYTiNN3/+fJYvX87DDz8M3Dw/ccaMGWzcuLFYHR4/fpzAwEAATCYTs2fPJjo6mipVqtCwYUNe\neOEF3N3d+eqrr4iIiMBqtTJ37txi9VWR9Ry3tcD1f4kNdXAkIiIi4ioMC0er1WorGgFatGhBbm5u\nsTt88cUX8yyHhIQQEhKSr93MmTOL3YeIiIiIlL5CC8dvvvkGgAYNGhAXF0f//v3x8PBg+/bttGjR\nwmEBioiIiIhzKLRwfOutt/Isv/7667afTSZT2UUkIiIiIk6p0MIxMTHRkXGIiIiIiJMzPMfxH//4\nB++//z4ZGRl51q9atarMghIRERER52NYOMbGxhIdHU1AQIAj4hERERERJ2VYON5///307t3bEbGI\niIiIiBMzLBwjIyN59dVX6dixY56nt6iYdKzCnhAjIo5V2FjUPVJFpCIwLBw3bdrE9evXOXToUJ71\nKhxFREREKhbDwvHChQts2bLFEbGIiIiIiyhodl4z8+WfYeHYsmVL9uzZQ5cuXXB3d3dETFKGdJhN\nREREisuwcNy1axfr1q3Ls85kMpGamlpmQYmIiIiI8zEsHPft2+eIOERERETEyRkWjosXLy5wfXR0\ndKkHIyIiIiLOy60ojXNycti9eze//fZbWcUjIiIiIk7KcMbxzpnFUaNGERUVVWYBiYiIiIhzMiwc\n72Q2mzlz5kyxO+zduzfe3t4ABAYGMmDAAObMmYO7uzshISFER0djsViYPn06aWlpeHp6Mnv2bOrV\nq1fsPsWYrrYWERERI4aFY2hoKCaTCQCr1UpGRgbDhg0rVmfXr18HIDEx0bYuPDychIQEgoKCeOml\nl0hJSeH06dNkZ2ezbt06kpOTmT9/PkuXLi1WnyIiIiJSOgwLx9uLPJPJhI+PD15eXsXq7IcffuDa\ntWtERUVx48YNYmJiyM7Opm7dugCEhIRw4MABzp8/T+fOnQFo3bo1R48eLVZ/IiIiIlJ6DAvH+++/\nn3379nH58uU864vzyMEqVaowbNgwnn/+eX755ReGDx+Oj4+P7ffVq1fn1KlTZGVl5SlO3d3duXHj\nRp5nZd/J17caHh7GNyj39/cuctwVWXnZX+UlztJQ0lw1VspGedlf5SXO0qCx4nzK074qT7GWVFFy\nNSwcx40bx5kzZ2jYsKHtkDUUr3CsX78+9erVw2QyUb9+fby9vfMUpGazGR8fH37//XfMZrNtvcVi\nuWvRCHDp0lXD/v39vTl/PrPIcVdk5WF/VaTX9fZci/umprFSNsrD/qpIr6vGinMqL/uqIr2uRR0r\nhoVjWloan3zySckjAzZu3Mg///lPpk+fzr///W+uXbtGtWrVOHnyJEFBQezbt4/o6GjOnTvHnj17\neO6550hOTqZJkyal0r8zKexiFBERERFnZVg4NmzYkF9//ZXatWuXuLP+/fszceJEBg4ciMlkYu7c\nubi5ufHqq6+Sm5tLSEgIrVq1okWLFnz11VdERERgtVqZO3duifsWERERkZIxLBx///13nnnmGZo0\naYKnp6dt/apVq4rcmaenJwsXLsy3fv369XmW3dzcmDlzZpG3LyIiIiJlx7BwHDFihCPiEBEREREn\nZ1g4tm/f3hFxiIiIiIiTK9KzqkVERESk4lLhKCIiIiJ2UeEoIiIiInZR4SgiIiIidlHhKCIiIiJ2\nMbyqWiq2wp5w85fYUAdHIiIiIveaCkcpFhWUIiJSVPrsKP90qFpERERE7KLCUURERETsosJRRERE\nROyiwlFERERE7KLCUURERETsosJRREREROyi2/E4QGG3HxAR16HbjIhIReDQwjEnJ4dJkyZx+vRp\nsrOzefnll3nggQcYOXIkDz30EAADBw7kueeeY/HixXzxxRd4eHgwadIkWrZs6chQRUREXIImL6Q0\nObRw3LZtGzVq1OD111/n0qVL9OnTh1GjRjF06FCioqJs7VJSUkhKSmLDhg2cPXuWmJgYNm3a5MhQ\nRUREROQODi0cn3nmGcLCwmzL7u7uHD16lOPHj7Nr1y7q1avHpEmTOHToECEhIZhMJgICAsjNzeXi\nxYvUrFnTkeGKiIiIyG0cWjhWr14dgKysLEaPHs2YMWPIzs7m+eefp3nz5ixdupQlS5bg7e1NjRo1\n8vxdZmbmXQtHX99qeHi4G8bg7+9d8kSkUIUdEtm+MLxM+61Ir2tJc9VYcSxn24/OFk9Z0lgpP5xx\nHzpjTGWlKLk6/OKYs2fPMmokhYF4AAAgAElEQVTUKAYNGkTPnj25cuUKPj4+AHTr1o1Zs2bRtWtX\nzGaz7W/MZjPe3ndP6tKlq4Z9+/t7c/58ZskSkGIpy/1ekV7X23Mt7puaxopjOdN+rEivq8ZK+eJs\n+7Aiva5FHSsOvR3PhQsXiIqKYvz48fTv3x+AYcOGceTIEQAOHDhAcHAwbdq0Yd++fVgsFs6cOYPF\nYtFhahEREZF7zKEzju+88w5Xrlzh7bff5u233wYgNjaWuXPnUqlSJWrVqsWsWbPw8vKibdu2DBgw\nAIvFQlxcnCPDFBEREZECOLRwnDJlClOmTMm3fu3atfnWxcTEEBMT44iwRERERMQOenKMiIiIiNhF\nT44Rh9BTNUREpDD6jCg/VDiKSLmkp2GIiDieDlWLiIiIiF004yj3VEGzRjo0ISIi4pxUOIqIlCF9\nORIRV6LCsRTpnCsRERFxZTrHUURERETsohlHcTq6LYOIiIA+D5yRZhxFRERExC6acRQRcTDNokhZ\n0Hn24ggqHEVERKRc0Zeve0eFo5Qbhb1RbF8Y7uBIREREKiYVjsWgwwHOpee4rQWu1zdPKW80iyIi\nzk6Fo7gsfQiLiFQset8veyoc70Izi66pqK+r3nBERERuctrC0WKxMH36dNLS0vD09GT27NnUq1fv\nXoclFVBZf4FQYXp3+gKnWRSRktIYKj1OWzh+/vnnZGdns27dOpKTk5k/fz5Lly6912GJlDo9y1hK\nmy4kc236MlV6NDFQdCar1Wq910EUZN68ebRs2ZLu3bsD0LlzZ/7+97/f46hEREREKi6nfXJMVlYW\nXl5etmV3d3du3LhxDyMSERERqdictnD08vLCbDbbli0WCx4eTntkXURERMTlOW3h2KZNG/bu3QtA\ncnIyTZo0uccRiYiIiFRsTnuO462rqv/5z39itVqZO3cuDRs2vNdhiYiIiFRYTls4ioiIiIhzcdpD\n1SIiIiLiXFQ4ioiIiIhdVDiKiIiIiF1UOIqIiIiIXVQ4ioiIiIhdVDiKiIiIiF1UOIqIiIiIXVQ4\nioiIiIhdVDiKiIiIiF1UOIqIiIiIXVQ4ioiIiIhdVDiKiIiIiF1UOJZjWVlZzJgxgx49ehAeHk5k\nZCQpKSll1t+ePXv461//CkBCQgIJCQn52mzevJnY2Ngyi+FO6enphIaGOqw/KX/S09Np3rw54eHh\nhIeHExYWxsSJE7lw4UKZ9amxIuXRnWPl1n8ffPBBmfR36tQpJk2aBMDBgweJjIwsMCZH/7sNDQ0l\nPT3doX2WJx73OgApHovFwvDhw+nQoQMfffQRHh4efP311wwfPpwdO3bg6+tb6n0ePXq01Lcp4gi1\na9dm69atAFitVuLj4xk9ejRr1qwpk/40VqS8un2slLUzZ85w6tQph/QlpUczjuXUwYMHOXv2LKNH\nj8bD42b937FjR+bNm4fFYsnT9ty5cwwePJi+ffvSv39/kpOTAUhOTub555+nV69e/PGPf+TEiRMA\nREZGcvDgQeA/3/Z++ukn1q5dy9q1a9m0aRMAR44cISIigqeeeirPjMqJEyf4wx/+QI8ePXjjjTew\nWq0AbNq0iR49etCzZ09iY2Mxm80APPzww7a/vX0WJjQ0lDfffJP+/fvTvXt324fxsWPH6NOnD336\n9GHJkiWlu2PF5ZlMJmJiYvjxxx/54Ycf8vxOY0XEWE5ODuPHj6d379707t2b9evXA3DhwgVGjBhB\nz5496dOnD3v37gXyz7rfmtGbPXs2R48eZcaMGQBcvHiR4cOHExYWxsiRI8nOzgbg+vXr/PnPf6ZX\nr15ER0eTkZEBFG1cAsTGxjJ79mwGDhxIaGiobXxevnyZ4cOH07NnT8aMGcP169fLeheWayocy6lj\nx47RtGlT3NzyvoRPPPEEfn5+edZt3LiRJ598ks2bNzN69GgOHTpEdnY2Y8eOZerUqWzbto2IiAjG\njh1baH+NGjUiIiKCiIgI+vXrB8Bvv/3GqlWr2LRpE++++y5ZWVnAzYGakJDA5s2bOXToELt27SIt\nLY133nmHxMREtm/fTtWqVVm8eLFhnjVq1GDjxo1ERESwbNkyACZMmMCrr77Kli1bCAwMLNJ+EwHw\n9PSkXr16/Pzzz3nWa6xIRffrr7/mO1SdlpaWp813331HRkYGH330EcuWLeMf//gHALNmzaJjx45s\n376dt956i0mTJt31lJApU6bQvHlzpk2bBtycgYyLi+Nvf/sbFy5cYP/+/cDN8RMZGcm2bdsICgpi\nyZIlRR6Xt5w7d441a9awdOlSFixYAMBbb71Fs2bN2L59O3/4wx/K9DQWV6DCsZxyc3OjcuXKdrXt\n1KkTf/nLXxg3bhyXL19m8ODB/PLLL/j4+NCyZUsAnn32WU6ePElmZqbdMXTu3BlPT09q1qyJr6+v\n7VtgaGgoNWvWxNPTk2effZakpCS++eYbnnrqKdsh9AEDBvD111/b1QdA48aNuXz5MhcvXuTXX3/l\n8ccfB6Bv3752xytyO5PJRJUqVfKs01iRiu7Woerb/7t9phtu/hs7fvw4w4YN45NPPuG1114D4Ouv\nv6Z///4ABAUF0apVKw4fPmx3302bNiUoKAg3NzcaNmzIpUuXAKhfvz5t27YFIDw8nKSkpGKPy8cf\nfxyTyUSTJk24fPkyAElJSTz33HMAtGvXjqCgILtjrohUOJZTzZs359ixY7ZDW7fEx8fn+5B59NFH\n2bFjByEhIezcuZORI0fmO5wNN8/9ys3Ntf0McOPGjUJjuHWIHG5+CN/6m9vXWywWPDw88vVntVrz\nbLuw/m4VxyaTKV8/AO7u7oXGJ1KY7Oxsjh8/TqNGjfKs11gRMebr68uOHTsYPHgwx48fp0+fPly5\nciXf59GtcXLnv8WcnJwCt2vPOLFarQWOk9v7u/UzGI+TO/sCjRUjKhzLqbZt2+Ln58fixYttA+Xv\nf/87mzdvzvdhuGDBArZt20afPn2Ii4vj2LFjNGjQgMuXL3PkyBEAdu7cSUBAADVq1MDX15effvoJ\ngM8//9y2HXd397t+ON7y5ZdfcuXKFa5fv87OnTt57LHHaN++Pbt377Z9w1u/fj0dOnQAbr4J/fjj\nj1itVnbv3n3Xbfv6+hIQEMAXX3wBwMcff2zH3hL5D4vFQkJCAq1ataJu3bp5fqexImJs165djB8/\nnieffJIpU6ZQrVo1zp49S8eOHdm4cSNw84rpb7/9ltatW+cZJ0eOHOH8+fOA/ePkX//6F8eOHQNu\nnv/72GOPFWtcFqZTp062C4KOHDnCyZMni7hHKhZdVV1OmUwm3n77bebNm0ePHj3w8PDA19eX5cuX\nU6tWrTxtIyMjGTduHJs3b8bd3Z3/+Z//wdPTk0WLFjFr1iyuXbvGfffdx6JFiwB48cUXiY2NZdOm\nTXTt2tW2nXbt2jFhwoR8279TgwYNeOmll7hy5Qo9evQgJCQEgBEjRhAZGUlOTg7BwcG2E6LHjRvH\nyJEjqVWrFo8++qjt8ERhXn/9dSZOnMibb75J69ati7zvpOK5dd4W3CwcH3nkEeLj4/O101iRiu72\nsXJLu3btmDJlim25S5cufPbZZ3Tv3p3KlSvTq1cvHn74YSZPnkxcXBybN28GYPbs2dSuXZvnnnuO\nTz/9lOeee47g4GCaNWsGQMOGDcnMzGT8+PG2Q9wFqVu3LkuWLOHkyZM0adKEV155pVjjsjCjR48m\nNjaW7t2706BBAx2qNmCy3jm3LCIiIiJSAB2qFhERERG7qHAUEREREbuocBQRERERu5TpxTGHDx/m\njTfeIDExkVdeecV2U83Tp0/TqlUrFi1axMiRI7l8+TKVKlWicuXKrFy5khMnThAbG4vJZKJx48ZM\nmzYt342uRURERMSxyuzimBUrVrBt2zaqVq1qexwRQEZGBkOGDGHFihW2q6127NiR555KI0eOZOjQ\noXTo0IG4uDg6d+5Mt27d7trf+fPGN+P19a3GpUtXi59UOaJcXdPtufr7exdrGxoreSlX16SxUvqU\nq2sq6lgps2m8unXr5nk25S0JCQkMHjyY2rVrc+HCBa5cucLIkSMZOHAge/bsASAlJYX27dsDNy/7\nv/XYoZLy8Kg4N/VUrq7JUblqn7om5Vp++3EGytU1FTXXMjtUHRYWRnp6ep51v/32GwcOHGDixInA\nzbvHR0VFMWTIEDIyMhg4cCAtW7bEarXaZiCrV69u16O9fH2r2ZV8cb95lkfK1TWVNFeNlfyUq2vS\nWCl9ytU1FSVXh94A/JNPPqFHjx62x/nUqlWLiIgIPDw88PPz45FHHuH48eN5zmc0m834+PgYbtue\nKWV/f2+7Dj24AuXqmm7PtbhvahoreSlX16SxUvqUq2sq6lhx6BUnBw4coEuXLrbl/fv3M2bMGOBm\ngfjjjz/SoEEDmjVrxsGDBwHYu3ev7eHmIiIiInLvOLRwPH78eJ5H+TzxxBPUq1ePF154gWHDhjF2\n7Fhq1qzJhAkTSEhIYMCAAeTk5BAWFubIMEVERESkAGV6qDowMDDPFdU7duzI12by5Mn51tWvX5/V\nq1eXZWgiIiIiUkS6OaKIiIiI2MWhF8dI6Yuav7vA9dsXhjs4EhEREXF1mnEUEREREbuocBQRERER\nu6hwFBERERG7qHAUEREREbuocBQRERERu6hwFBERERG7qHAUEREREbuocBQRERERu6hwFBERERG7\nqHAUEREREbuocBQRERERu6hwFBERERG7qHAUEREREbuocBQRERERu5Rp4Xj48GEiIyMBSElJoXPn\nzkRGRhIZGcnOnTsBWLx4Mf379yciIoIjR44AcOLECQYOHMigQYOYNm0aFoulLMMUERERETt4lNWG\nV6xYwbZt26hatSoAx44dY+jQoURFRdnapKSkkJSUxIYNGzh79iwxMTFs2rSJefPmMWbMGDp06EBc\nXBy7du2iW7duZRWqiIiIiNihzGYc69atS0JCgm356NGjfPHFF/zhD39g0qRJZGVlcejQIUJCQjCZ\nTAQEBJCbm8vFixdJSUmhffv2AHTp0oX9+/eXVZgiIiIiYqcym3EMCwsjPT3dttyyZUuef/55mjdv\nztKlS1myZAne3t7UqFHD1qZ69epkZmZitVoxmUx51hnx9a2Gh4e7YTt/f+9iZFM+KVfXVNJcNVby\nU66uSWOl9ClX11SUXMuscLxTt27d8PHxsf08a9YsunbtitlstrUxm814e3vj5uaWZ92tv7ubS5eu\nGrbx9/fm/HnjItRVVJRcK9LrenuuxX1T01jJS7m6Jo2V0qdcXVNRx4rDrqoeNmyY7eKXAwcOEBwc\nTJs2bdi3bx8Wi4UzZ85gsVioWbMmzZo14+DBgwDs3buXtm3bOipMERERESmEw2Ycp0+fzqxZs6hU\nqRK1atVi1qxZeHl50bZtWwYMGIDFYiEuLg6ACRMmMHXqVOLj42nQoAFhYWGOClNEREREClGmhWNg\nYCDr168HIDg4mLVr1+ZrExMTQ0xMTJ519evXZ/Xq1WUZmoiIiIgUkW4ALiIiIiJ2UeEoIiIiInZR\n4SgiIiIidlHhKCIiIiJ2UeEoIiIiInZR4SgiIiIidlHhKCIiIiJ2UeEoIiIiInZR4SgiIiIidlHh\nKCIiIiJ2UeEoIiIiInZR4SgiIiIidvG41wGIfaLm777XIYiIiEgFpxlHEREREbGLYeF4+fJl9u/f\nD8CyZcsYPXo0J0+eLPPARERERMS5GBaO48aNIzU1lf379/PJJ58QGhrK5MmTHRGbiIiIiDgRw8Ix\nIyODYcOGsWvXLvr06UPv3r0xm812bfzw4cNERkYCkJqayqBBg4iMjGTYsGFcuHABgNmzZ9O3b18i\nIyOJjIwkMzOTixcvEhUVxaBBgxgzZgzXrl0rQYoiIiIiUhoMC0eLxcLRo0f5/PPPeeqpp0hNTSU3\nN9dwwytWrGDKlClcv34dgDlz5jB16lQSExPp1q0bK1asACAlJYWVK1eSmJhIYmIi3t7evP322/To\n0YM1a9bQrFkz1q1bV8I0RURERKSkDK+qHj9+PAsWLCAqKoqgoCBeeOEFJk6caLjhunXrkpCQwGuv\nvQZAfHw8tWvXBiA3N5fKlStjsVg4ceIEcXFxXLhwgf79+9O/f38OHTrEiBEjAOjSpQvx8fH893//\n91378/WthoeHu2Fc/v7ehm1chXJ1TSXNVWMlP+XqmjRWSp9ydU1FydWwcOzUqRMtW7bk1KlTWK1W\n3nvvPapVq2a44bCwMNLT023Lt4rGb7/9ltWrV/PBBx9w9epVBg8ezNChQ8nNzWXIkCE0b96crKws\nvL1vJlG9enUyMzMN+7t06aphG39/b86fN96Wq6gouVak1/X2XIv7pqaxkpdydU0aK6VPubqmoo4V\nw0PVBw4coHfv3vzpT3/iwoULhIaGsm/fvmIFt3PnTqZNm8by5cupWbMmVatWZciQIVStWhUvLy86\nduzIDz/8gJeXl+08SrPZjI+PT7H6ExEREZHSY1g4xsfHs2bNGnx8fPD392f16tUsWLCgyB1t3bqV\n1atXk5iYSFBQEAC//PILgwYNIjc3l5ycHL799luCg4Np06YNX375JQB79+7l0UcfLXJ/IiIiIlK6\nDA9VWywW/P39bcuNGjUqcie5ubnMmTOHBx98kJiYGADatWvH6NGj6dmzJy+88AKVKlUiPDycxo0b\n8/LLLzNhwgTWr1+Pr68vCxcuLHKfIiIiIlK6DAvHBx54gD179mAymbhy5QoffPABAQEBdm08MDCQ\n9evXA5CUlFRgm+HDhzN8+PA862rVqsW7775rVx8iIiIi4hiGh6pnzpzJ9u3bOXv2LN26dSM1NZWZ\nM2c6IjYRERERcSKGM45+fn7Ex8cDkJmZyblz52xXSIuIiIhIxWE447hhwwZiY2O5ePEi3bt3Z/To\n0bzzzjuOiE1EREREnIhh4fjhhx8yduxYPv74Y7p27cr27dv57LPPHBGbiIiIiDgRw8IRbt68+8sv\nv+TJJ5/Ew8PD9hhBEREREak4DAvHRo0aMWLECNLT0+nUqRNjxoyhRYsWjohNRERERJyI4cUxc+fO\n5bvvvqNx48Z4enrSq1cvnnjiCUfEJiIiIiJOxLBwvHUhzMGDB23rjh07RnR0dNlFJSIiIiJOx65z\nHG/Jyclh9+7d/Pbbb2UVj4iIiIg4KcMZxztnFkeNGkVUVFSZBSQiIiIizqlIM44AZrOZM2fOlEUs\nIiIiIuLEDGccQ0NDMZlMAFitVjIyMnjxxRfLPDApmZ7jtha4/i+xoQ6ORERERFyFYeGYmJho+9lk\nMuHj44OXl1eZBiUiIiIizsewcKxTpw67d+8mKSkJDw8PHn/8cTp16uSI2ERERETEiRie47hw4UJW\nrlxJnTp18Pf3580332TZsmWOiE1EREREnIjhjOMXX3zB5s2bqVSpEgARERH069ePESNGGG788OHD\nvPHGGyQmJnLixAliY2MxmUw0btyYadOm4ebmxuLFi/niiy/w8PBg0qRJtGzZstC2IiIiInLvGFZj\n9913H2az2back5Nj1zmOK1asYMqUKbbnWs+bN48xY8awZs0arFYru3btIiUlhaSkJDZs2EB8fDwz\nZswotK2IiIiI3FuFzjhOnDgRAIvFQnh4OKGhobi7u7N3714aNGhguOG6deuSkJDAa6+9BkBKSgrt\n27cHoEuXLnz11VfUr1+fkJAQTCYTAQEB5ObmcvHixQLbduvWrcTJioiIiEjxFVo43ircbv3/luDg\nYLs2HBYWRnp6um3ZarXabutTvXp1MjMzycrKokaNGrY2t9YX1NaIr281PDzcDdv5+3vbFb+rctX8\nXTWvgpQ0V42V/JSra9JYKX3K1TUVJddCC8c+ffqUSjC33H6Ootlstt3W5/bD4GazGW9v7wLbGrl0\n6aphG39/b86fNy5CXZkr5l+RXtfbcy3um5rGSl7K1TVprJQ+5eqaijpWHHbFSbNmzTh48CAAe/fu\npW3btrRp04Z9+/ZhsVg4c+YMFouFmjVrFthWRERERO6tQgvHEydOlGpHEyZMICEhgQEDBpCTk0NY\nWBjNmzenbdu2DBgwgJiYGOLi4gptKyIiIiL3VqGHqqOjo9m+fTt/+tOfePvtt4u18cDAQNavXw9A\n/fr1Wb16db42MTExxMTE5FlXWFsRERERuXcKLRwrVarEwIEDSUtLY8iQIfl+v2rVqjINTERERESc\nS6GF46pVq0hNTWXy5MlER0c7MiYRERERcUKFFo5eXl60a9eOtWvXAjefApObm0vr1q2pVauWwwIU\nEREREedgeFV1SkoK4eHhbN68mS1bttCrVy/27NnjiNhERERExIkYPqt60aJFrFmzhqCgIABOnTpF\ndHQ0Tz31VJkHJyIiIiLOw3DG8caNG7aiESAoKAiLxVKmQYmIiIiI8zEsHAMCAnjvvffIysoiKyuL\n9957jzp16jgiNhERERFxIoaF45w5c0hOTubpp5+ma9eufPfdd8ycOdMRsYmIiIiIEzE8x9HPz483\n33zTEbGIiIiIiBNz2LOqRURERKR8U+EoIiIiInYxLBwXLVrkiDhERERExMkZFo579uzBarU6IhYR\nERERcWKGF8fUqFGDZ555huDgYCpXrmxbP2/evDINTERERESci2Hh2KdPH0fEISIiIiJOzq7CMT09\nnZ9++omQkBDOnj2b50kyIiIiIlIxGBaOO3fuZOnSpfz++++sXbuWiIgIXnvtNcLDw4vc2ebNm9my\nZQsA169fJzU1lYULF7JgwQIefPBBAGJiYmjbti3Tp08nLS0NT09PZs+eTb169Yrcn4iIiIiUHsPC\nccWKFXz44YcMHjwYPz8/tmzZwtChQ4tVOPbt25e+ffsCMGPGDPr160dKSgrjx48nLCzM1u6zzz4j\nOzubdevWkZyczPz581m6dGmR+xMRERGR0mN4VbWbmxteXl625dq1a+PmVrLbP37//ff89NNPDBgw\ngJSUFDZt2sSgQYOYP38+N27c4NChQ3Tu3BmA1q1bc/To0RL1JyIiIiIlZzjj2LhxY1avXs2NGzdI\nTU1lzZo1NG3atESdLlu2jFGjRgHw+OOP8/TTTxMYGMi0adNYu3YtWVlZeYpVd3d3bty4gYdH4eH6\n+lbDw8PdsG9/f+8SxV7euWr+rppXQUqaq8ZKfsrVNWmslD7l6pqKkqth4RgXF8fSpUupXLkykyZN\nomPHjkyYMKHYwV25coWff/6Zjh07AtCvXz98fHwA6Nq1K59++ine3t6YzWbb31gslrsWjQCXLl01\n7Nvf35vz5zOLHbsrcMX8K9LrenuuxX1T01jJS7m6Jo2V0qdcXVNRx4ph4VitWjVGjx5N9+7dqVSp\nEg899BDu7sbfwArzzTff8NhjjwFgtVrp1asXa9eu5YEHHuDAgQMEBwdTq1Yt9uzZw3PPPUdycjJN\nmjQpdn8iIiIiUjoMC8ekpCTGjx+Pn58fFouFq1evsnDhQlq0aFGsDo8fP05gYCAAJpOJ2bNnEx0d\nTZUqVWjYsCEvvPAC7u7ufPXVV0RERGC1Wpk7d26x+hIRERGR0mNYOM6fP5/ly5fz8MMPAzcvbJkx\nYwYbN24sVocvvvhinuWQkBBCQkLytZs5c2axti8iIiIiZcPw8mir1WorGgFatGhBbm5umQYlIiIi\nIs6n0BnHb775BoAGDRoQFxdH//798fDwYPv27cU+TC0iIiIi5VehheNbb72VZ/n111+3/Wwymcou\nIhERERFxSoUWjomJiY6MQ0SkTEXN310q2/lLbGipbEdEpDwyvDjmH//4B++//z4ZGRl51q9atarM\nghIRERER52NYOMbGxhIdHU1AQIAj4hERERERJ2VYON5///307t3bEbGIiIiIiBMzLBwjIyN59dVX\n6dixY57H/qmYLJ8KO89L522JiEhx6HOlYjEsHDdt2sT169c5dOhQnvUqHEWkItKHpIhUZIaF44UL\nF9iyZYsjYhFK78pPkYpKY0ikZAobQ9sXhjs4EnFGhoVjy5Yt2bNnD126dMHd3d0RMYmIiIiT6Tlu\n670OQZyAYeG4a9cu1q1bl2edyWQiNTW1zIISEREREedjWDju27fPEXGIiIiICynokLfOBS7/DAvH\nxYsXF7g+Ojq61IMREREREeflVpTGOTk57N69m99++62s4hERERERJ2U443jnzOKoUaOIiooqs4BE\nRERExDkZFo53MpvNnDlzptgd9u7dG29vbwACAwMZMGAAc+bMwd3dnZCQEKKjo7FYLEyfPp20tDQ8\nPT2ZPXs29erVK3afIiIiIlJyhoVjaGgoJpMJAKvVSkZGBsOGDStWZ9evXwcgMTHRti48PJyEhASC\ngoJ46aWXSElJ4fTp02RnZ7Nu3TqSk5OZP38+S5cuLVafIiIiIlI6DAvH24s8k8mEj48PXl5exers\nhx9+4Nq1a0RFRXHjxg1iYmLIzs6mbt26AISEhHDgwAHOnz9P586dAWjdujVHjx413LavbzU8PIzv\nM+nv712s2F1ded8v5T3+oihprhorZaO87K/yEmdp0FhxPuVpX5WnWEuqKLkaFo73338/+/bt4/Ll\ny3nWF+eRg1WqVGHYsGE8//zz/PLLLwwfPhwfHx/b76tXr86pU6fIysrKU5y6u7tz48aNPM/KvtOl\nS1cN+/f39+b8+cwix10RlOf9UpFe19tzLe6bmquMFWd7Qoyz7y8oH69radFYcU6F3UTc2W7TU5Fe\n16KOFcPCcdy4cZw5c4aGDRvaDllD8QrH+vXrU69ePUwmE/Xr18fb2ztPQWo2m/Hx8eH333/HbDbb\n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\nc0739/drcHBQMTExCggIUHx8vBobGz1XoAv54q0axyomJka7d+92Tl+5ckVxcXGSpMWLF+vbb7/1\nVGkulZSUpLfffts5HRQUNOHLSlashayQlfEiJ9bJieSarFiqcaytrdWyZcvu+u/y5ctKTk5WQECA\n83n9/f0KDw93ToeFhamvr88TJbvcP5ctKChIt2/f9mBFrpeYmHjXXYQMw3CuXyuty7CwMIWHh6u/\nv1/r169Xfn6+y5aVrJAVK61LsjJxyIk11uPfXJEVS93Dz2azyWazjfq8f97OcGBgQBERERNZmtv4\n460aAwP/v/9jpXUpSV1dXcrJyVF6erpSUlK0Y8cO59+NZ1nJClmx0rqUyMpEISfWWI93Gm9WLDXi\naFZ4eLhCQkL022+/yTAMnT17VosWLfJ0WS7hj7dqnDdvnpqamiRJZ86cscy67O7uVmZmpgoKCpSa\nmirJ/ctKVqyFrEwcq2aFnFgnJ5JrsmLt3Yb7KC0t1caNG2W32xUfH6+nnnrK0yW5xNKlS3Xu3Dmt\nWrXKeatGqyssLFRJSYk++ugjzZkzR4mJiZ4uySX27dun3t5eVVVVqaqqSpK0efNmlZeXu3VZyYp1\nkJWJZcWskBPr5ERyTVa45SAAAABM8ctD1QAAABg7GkcAAACYQuMIAAAAU2gcAQAAYAqNIwAAAEyh\ncfRDr7322gO9rq+vTzk5OeOe/6ZNm1RfX3/f57z77rvq7Owc97yA8SArgDlkxX/QOPqhI0eOPNDr\nenp69OOPP7q4mntramoSvxQFTyMrgDlkxX/47Q+AW1FTU5P27dunkJAQXbt2TS+++KImT56skydP\nSpKqq6s1ffp0zZ07V62trdq9e7f++OMPtbe3q7OzUzabTdnZ2aqvr9f58+e1fft2SVJGRoZyc3P1\n2Wef6fr168rJyVFlZaUOHz6sAwcOyOFwaP78+dq6dasCAwNVVFSkq1evSpLS09P1+uuvj1jzrl27\n1NjYqJ6eHs2YMUO7du1SfX29rl+/rqysLB08eFAdHR364IMPdOvWLUVFRam0tFSPPvroxH+gsCyy\nAphDVvBPjDhazKVLl1RaWqq6ujodPHhQU6dOVX19vebOnauGhoZhz29tbdX+/ftVW1ur6upq9fb2\njvjexcXFmjFjhiorK3X16lUdOnRINTU1OnLkiKZNm6b9+/fr4sWL6unp0eHDh/XJJ5/ohx9+GPH9\n2tvb9csvv6impkbHjh3TzJkzdfToUWVlZWnGjBmqrq5WWFiYiouLtXPnTn399ddavXq1SkpKXPJZ\nwb+RFcAcsoI7MeJoMbGxsZo5c6YkKSoqSs8995wkKTo6+p7hffbZZxUaGqpp06YpMjJSfX19pubT\n1NSk9vZ2517f0NCQ5s2bp7S0NLW1tWnNmjVavHix3nnnnRHfY9asWSosLFRtba3a2trU3NysmJiY\nu57z66+/qqOjQ9nZ2c7H+vv7TdUI3A9ZAcwhK7gTjaPFhISE3DUdFBR03+dPmjTJ+f8BAQEyDMP5\n59+GhoaGvc5ut+uVV15RcXGxJGlgYEB2u10RERFqaGjQuXPn9M0332jFihVqaGhQRETEsPdoaWnR\nhg0b9OabbyoxMVGBgYHDzj9xOBx65JFHnOfP2O12dXd3j/IpAKMjK4A5ZAV34lA1homKitLPP/8s\nwzDU0dGh1tZWSVJwcLBu374t6X97lCdOnNCff/4pwzC0bds2HThwQKdOnVJBQYESEhJUXFysyZMn\nq6ur657z+f777xUXF6e0tDTNnj1bp0+flt1ul/S/Lya73a45c+aop6fHeWiirq5OGzdudMOnAIyO\nrADmkBXrYMQRwzz//POqq6tTUlKSHnvsMT3zzDOSpGnTpik6OloZGRn64osvlJubqzfeeEMOh0NP\nPPGEsrKyFBgYqOPHj+vVV1/VpEmTtHz5cs2dO/ee80lOTlZubq5SUlIkSQsWLNC1a9ckSQkJCcrK\nytKnn36qjz/+WO+//77++usvhYeH68MPP3TPBwGMgqwA5pAV6wgwuDYdAAAAJnCoGgAAAKbQOAIA\nAMAUGkcAAACYQuMIAAAAU2gcAQAAYAqNIwAAAEyhcQQAAIAp/wX2+/JWraWCGAAAAABJRU5ErkJg\ngg==\n",
"text/plain": [
"<Figure size 648x432 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"g = sns.FacetGrid(df, row=\"direction\", col=\"route\")\n",
"g.map(plt.hist, \"minutes_late\", bins=np.arange(-10, 20))\n",
"g.set_titles('{col_name} {row_name}')\n",
"g.set_axis_labels('minutes late', 'number of buses');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You might expect that the buses stick closer to their schedule near the beginning of each one-way trip and show more spread near the end, and this is borne out in the data: the southbound C-line and northbound D and E lines are near the beginning of their respective routes, and in the opposite direction they are near the end."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Scheduled and Observed Arrival Intervals"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's next take a look at the observed and scheduled intervals between arrivals for these six routes.\n",
"We'll start by using Pandas `groupby` functionality to compute these intervals:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def compute_headway(scheduled):\n",
" minute = np.timedelta64(1, 'm')\n",
" return scheduled.sort_values().diff() / minute\n",
"\n",
"grouped = df.groupby(['route', 'direction'])\n",
"df['actual_interval'] = grouped['actual'].transform(compute_headway)\n",
"df['scheduled_interval'] = grouped['scheduled'].transform(compute_headway)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAo4AAAGoCAYAAADIE2RWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3X1cVHX+///nMCMaV4GK7Y28WPAi\nNxX9FApuZEntYluGliVWtLfVNSsdl81URB0vUrFYqQ0qtd22VTNTMctq21bUxYuC1tUsJL+126aG\nlq5XgBcgM78//DErIjPDxQwz8Ljfbtxizjlz5nlOvJzXvM+Zcww2m80mAAAAwAm/5g4AAAAA30Dj\nCAAAAJfQOAIAAMAlNI4AAABwCY0jAAAAXELjCAAAAJfQOPqgsrIyzZs3T/fcc4+SkpKUkpKioqKi\nJn+d0tJSTZw4UZJ0+PBhJSQkXHW5G264oclf25GUlBQVFBR49DXhuw4fPqy+ffsqKSlJSUlJSkxM\n1IwZM3T8+PEmfy1qBi3BlTVT/fPGG280+WvNmDFD3333nSQpISFBhw8frrWMp/9+s7OzlZ2d7bHX\n8zWm5g6A+rFarRo/frxiY2O1ceNGmUwmffLJJxo/frzef/99hYWFNdlrnT59WsXFxU22PqC5dOrU\nSe+8844kyWazKSsrS5MnT9bq1aub9HWoGbQUl9eMOxUUFNg/bME30Dj6mIKCAh05ckSTJ0+Wn9+l\nAeO4uDhlZGTIarXWWnbZsmVq166d/vWvf+mGG27Q7373O/n7+ys3N1d/+tOfZDAY1KdPH82ePVuB\ngYGKi4tT3759dezYMYWHh+uHH37QxIkTNWPGDJ0/f16//e1v9dVXXykkJEQvvfSSvVGdPXu29u3b\np7CwMC1atEgRERH65ptvZLFYdOrUKQUEBGjmzJmKjo5WWlqaBg0apPvuu0/SpdGXAwcOKDs7W99/\n/72+/fZbfffdd3rggQf0xBNPqKKiQjNnztQXX3yh66+/XidPnvTsTkeLYjAYZDabdcstt+jLL79U\n79697fOoGaB+4uPjlZiYqN27d8toNOqFF15Qly5dtHfvXi1cuFAXLlxQWFiY5s+fr27duiklJUXX\nXnutvvrqK91///364Ycf9Nhjj9lHM1966SUVFxfr3Llzeu6559S/f39J0tq1a5WRkSHp0ihlbGys\nzp07p1mzZunAgQMyGAwaN26cRowYoQ0bNqiwsFCLFy+WdGnEctKkSZJUZ33/4Q9/0Nq1axUWFqaQ\nkBBFR0c3w970DRyq9jH79+9X79697U1jtdtuu00dOnSotfyePXtksVj0l7/8RSUlJdqxY4cOHDig\npUuXauXKldq0aZOuueYa5eTkSJJOnjyp8ePH65133tHcuXPVqVMnvfTSS5KkEydO6Fe/+pXee+89\ndezYUR988IH9dQYOHKh33nlHP/vZz7Rw4UJJ0tSpU5WSkqJNmzZpxowZ+s1vfqOKigqH23fgwAH9\n8Y9/1Lp167R8+XKdOXNGK1eulCT95S9/0axZs3Tw4MGG70BAkr+/v7p166Z///vfteZRM4D0ww8/\n1DpUfeDAgVrLHTt2TIMHD9bGjRs1cOBAvfHGG6qoqNBTTz2l2bNn691331VycrKeeuop+3NuuOEG\n/fWvf9Vjjz2mTp06afny5fYPVD169NDGjRuVkpKiP/7xj/bnBAQEaOPGjVq8eLGmTp2qiooKZWdn\nKywsTO+9957+/Oc/Kzs7W19++aXD7bpafX/++efKzc3V22+/rT/96U86evRoE+3FlonG0cf4+fmp\nbdu2Li/fs2dP/ehHP5Kfn5+6d++u06dP69NPP9XQoUPthTp69Gh98skn9udUf8K7UqdOneyfwnr0\n6GEfxWjXrp3uvfdeSVJSUpIKCwtVXl6ugwcP6uc//7kkacCAAbr22muv+kZ9udjYWPn7+6tDhw4K\nDQ1VaWmpCgsLddddd0mSfvzjH+v//u//XN5+oC4Gg0Ht2rWrNZ2aAf53qPryn7rOzb311lslXaqd\n06dP6z//+U+NUbu77rpLBw8eVGlpqSQ5HM278847JdWsF0kaNWqUJKl3797q0KGD/v3vf+uTTz6x\nT2/fvr3uuOMOFRYWOtyuq9V3YWGhbrvtNgUGBiogIEDDhg1zZRe1WjSOPqZv377av3+/rrzFeFZW\nVo03smqXN5kGg0E2m63WIW2bzaaLFy/aH1/tzVSSTKb/ndlQvS5JNUY/bTabTCZTrXzV86qqqmo8\nt7Ky0mney5e/MgfQEBUVFfrmm2/Uo0ePWvOoGaB+qv8G66oX6X9/y1Ld9SJJRqPRvq6rTZcunet/\ntZq5Wr1INWuGemk8GkcfExMTow4dOignJ8dehNu3b9eGDRuu+iZ4NYMGDdKWLVt06tQpSZfOHYmN\nja21nMlkqvHmWJezZ88qLy9PkpSbm6uf/vSnCgoKUufOnfXRRx9Jkvbu3avjx4+rZ8+eCg0N1ddf\nfy1J2rx5s9P1Dx48WJs2bZLVatV3332nf/7zny5tJ3A1VqtV2dnZ6t+/v7p27erSc6gZwHVRUVE6\ndeqU9u3bJ0n64IMPFBERodDQ0FrLGo1G+3uZI5s2bZIkff755yovL1e3bt0UFxen9evXS7p0Wkhe\nXp4GDRqksLAw/etf/5LNZtOhQ4eueoj9coMHD9bWrVtVWlqqCxcu6G9/+1t9N7lVoa32MQaDQS+/\n/LIyMjJ0zz33yGQyKSwsTMuXL1fHjh1dWkfv3r01YcIEpaSkqLKyUn369NG8efNqLdehQwdFREQo\nJSXFflLy1YSEhGjz5s36/e9/r+uuu86+bGZmpubOnavs7Gy1adNG2dnZ8vf315gxY5Samqrhw4cr\nLi5O4eHhDvM+9NBD+uqrr3TXXXfp+uuvV69evVzaTqBa9fla0qXG8Sc/+YmysrJcfj41g9bm8pqp\nNnDgQM2aNcvpc/39/fX888/rmWee0blz53Tttdfq+eefv+qyt99+ux577DH94Q9/cLjOs2fPasSI\nEfLz89OSJUvUpk0bTZw4UXPnztXw4cNVVVWlxx9/XH369FFFRYVyc3M1bNgwRUZG6uabb3a47p/8\n5Cf65S9/qVGjRikkJEQRERFOt7E1M9iudnwEAAAAuAKHqgEAAOASGkcAAAC4hMYRAAAALqFxBAAA\ngEt88lvVx46V1jkvLCxAJ0+e9WAax8jjGHkcc5QnPDzYpXVQLw1HHsd8KY+r9SJRM41BHsd8KU9d\nNdPiRhxNJqPzhTyIPI6RxzF352lt21tf5HGsNeZpjdtcH+RxrCXkaXGNIwAAANyDxhEAAAAuoXEE\nAACAS2gcAQAA4BIaRwAAALiExhEAAAAuoXEEAACAS2gcAQAA4BK33jlm2bJl2rJliyorKzVmzBgN\nGjRIaWlpMhgM6tmzp+bMmSM/Pz/l5ORo27ZtMplMSk9PV3R0tDtjAQAAoAHcNuJYUFCgPXv26M03\n39TKlSt19OhRZWRkKDU1VatXr5bNZlNeXp6KiopUWFiodevWKSsrS/PmzXNXJAAAADSCwWaz2dyx\n4iVLlshgMOirr75SWVmZpk2bpieffFL5+fkyGAzavHmzdu7cqcjISJ0/f16PPfaYJGnEiBF67bXX\n1L59+zrXffFildfdtgfwVtQLUD/UDFA3tx2qPnnypEpKSrR06VIdPnxYTzzxhGw2mwwGgyQpMDBQ\npaWlKisrU2hoqP151dMdNY6ObhAeHh7s8Ab1nkYex8jjmKM8dd2A/krUS8ORxzFfyuNqvUjUTGOQ\nxzFfylNXzbitcQwNDVVUVJT8/f0VFRWltm3b6ujRo/b55eXlCgkJUVBQkMrLy2tMDw52vcABtDxj\nF2+p8fi1tIRmSgIAuJzbznG8+eabtX37dtlsNn3//fc6d+6cBg8erIKCAklSfn6+YmJidNNNN2nH\njh2yWq0qKSmR1Wp1ONoIAACA5uG2EcehQ4fq008/1ahRo2Sz2WSxWNS5c2fNnj1bWVlZioqKUmJi\nooxGo2JiYjR69GhZrVZZLBZ3RQIAAEAjuPVyPNOmTas1bdWqVbWmmc1mmc1md0YBAABAI3EBcAAA\nALiExhEAAAAuoXEEAACAS9x6jiMANDUu1QMAzYcRRwAAALiEEUcAXu/KUUYAQPNgxBEAAAAuoXEE\nAACAS2gcAQAA4BLOcQQAwMddfh4wVxqAOzHiCAAAAJcw4ggAQAvCtU7hTow4AgAAwCU0jgAAAHAJ\nh6oBNAsOpwGA76FxBACgBeMb12hKHKoGAACAS2gcAQAA4BK3HqoeMWKEgoODJUmdO3fW6NGjtXDh\nQhmNRsXHx2vSpEmyWq2aO3euDhw4IH9/fy1YsEDdunVzZywAAAA0gNsaxwsXLkiSVq5caZ+WlJSk\n7OxsdenSRY899piKior03XffqaKiQm+99Zb27t2rxYsX65VXXnFXLAAAADSQ2xrHL7/8UufOndPY\nsWN18eJFmc1mVVRUqGvXrpKk+Ph4ffzxxzp27JhuvfVWSdKAAQP0xRdfOF13WFiATCZjnfPDw4Ob\nZiOaCHkcI49jjc3jLfUyfMo7DudX56hvHnfnb2l/D02tJebxlppxVX3yeCK7L+8fT/D1PG5rHNu1\na6dx48bpgQce0H/+8x+NHz9eISEh9vmBgYE6dOiQysrKFBQUZJ9uNBp18eJFmUx1Rzt58myd88LD\ng3XsWGnTbEQTII9j5HHMUR5Xi91X6uXYsdIG5XFnfm/aPxJ5nGmKepF8p2ak+udxd3Zf3z/u5kt5\n6qoZtzWOkZGR6tatmwwGgyIjIxUcHKxTp07Z55eXlyskJETnz59XeXm5fbrVanXYNAIAAKB5uO1b\n1evXr9fixYslSd9//73OnTungIAAHTx4UDabTTt27FBMTIxuuukm5efnS5L27t2rXr16uSsSAAAA\nGsFtQ3ujRo3SjBkzNGbMGBkMBi1atEh+fn56+umnVVVVpfj4ePXv31/9+vXTzp07lZycLJvNpkWL\nFrkrEgAAABrBbY2jv7+/lixZUmv62rVrazz28/PT/Pnz3RXDK3GrNQAA4Iu4ADgAAABc4rRxPHXq\nlHbt2iVJWrZsmSZPnqyDBw+6PRgAAAC8i9PGccqUKSouLtauXbv04YcfKiEhQTNnzvRENgAAAHgR\np43j6dOnNW7cOOXl5WnkyJEaMWJEjcvnAAAAoHVw2jharVZ98cUX2rx5s4YOHari4mJVVVV5IhsA\nAAC8iNNvVU+dOlXPPfecxo4dqy5duujBBx/UjBkzPJENAAAAXsRp4zh48GBFR0fr0KFDstlsev31\n1xUQEOCJbAAAAPAiThvHjz/+WBaLRVVVVXrrrbc0fPhw/e53v1N8fLwn8gFoJa68vikAwPs4Pccx\nKytLq1evVkhIiMLDw7Vq1So999xznsgGAAAAL+J0xNFqtSo8PNz+uEePHm4NBAANxV2ZAMC9nDaO\nP/rRj7R161YZDAadOXNGb7zxhiIiIjyRDQAAiA9F8B5OD1XPnz9fmzZt0pEjR/Szn/1MxcXFre7e\n0gAAAHBhxLFDhw7KysqSJJWWluro0aPq1KmT24MBAADAuzhtHNetW6fdu3dr2rRpGjFihAIDA5WU\nlKTHH3/cE/kAwCG+jQ0AnuP0UPWbb76pp556Su+9957uuOMObdq0SR999JEnsgEAAMCLOB1xlKRO\nnTrp73//ux599FGZTCZduHDB3bl8DicuA7UxGgi4B7WF5uJ0xLFHjx6aMGGCDh8+rMGDBys1NVX9\n+vXzRDYAAAB4EacjjosWLdKePXvUs2dP+fv7695779Vtt93miWwAAADwIk4bx6VLl0qSCgoK7NP2\n79+vSZMmOV35f//7X91333167bXXZDKZlJaWJoPBoJ49e2rOnDny8/NTTk6Otm3bJpPJpPT0dEVH\nRzdicwAAAOAuLp3jWK2yslLbt29X//79XVrWYrGoXbt2kqSMjAylpqYqNjZWFotFeXl5ioiIUGFh\nodatW6cjR47IbDYrNze3YVviwy4/V4VzIwEAgLdy2jheObI4ceJEjR071umKn332WSUnJ2v58uWS\npKKiIg0aNEiSNGTIEO3cuVORkZGKj4+XwWBQRESEqqqqdOLECbVv397husPCAmQyGeucHx4e7DSf\nu12eoT55PJHdG/bP5cjjWGPz+EK9uEtTbJu37R/yONYUeVpyzfAe0/x8PU+9Rhwlqby8XCUlJQ6X\n2bBhg9q3b69bb73V3jjabDYZDAZJUmBgoEpLS1VWVqbQ0FD786qnO2scT548W+e88PBgHTtW6urm\nuE11hvrmuXLZpv62trfsn2rkccxRHleL3RfqxV0au23etn/I41hT1IvUsmvG3dm9bf+Qx7GG1IzT\nxjEhIcHe8NlsNp0+fVq//vWvHT4nNzdXBoNBH3/8sYqLizV9+nSdOHHCPr+8vFwhISEKCgpSeXl5\njenBwd7ViQMAAOASp43jypUr7b8bDAZ7w+fIG2+8Yf89JSVFc+fOVWZmpgoKChQbG6v8/HzFxcWp\na9euyszM1Lhx43T06FFZrVano40AALQGXKsR3shp43j99ddry5YtKiwslMlk0i233KLBgwfX+4Wm\nT5+u2bNnKysrS1FRUUpMTJTRaFRMTIxGjx4tq9Uqi8XSoI0AAACA+zltHJcsWaLdu3frrrvuktVq\n1QsvvKB9+/ZpwoQJLr3A5SOWq1atqjXfbDbLbDbXI7Jv4pMjAADwdU4bx23btmnDhg1q06aNJCk5\nOVn333+/y40jAAAAWgantxy89tpra3yBpbKy0uk5jgAAAGh56hxxnDFjhiTJarUqKSlJCQkJMhqN\nys/PV1RUlMcCAgAAwDvU2ThWX6y7+r/V+vTp495EAAAA8Ep1No4jR470ZA6fxBdeAABAa1LvO8cA\nAICWoanvToaWr84vx3z77beezAEAAAAvV2fjOGnSJEnSk08+6bEwAAAA8F51Hqpu06aNxowZowMH\nDujRRx+tNX/FihVuDQYAAADvUmfjuGLFChUXF2vmzJn20Ue4ji/OAACAlqbOxjEoKEgDBw7UmjVr\nJEmfffaZqqqqNGDAAHXs2NFjAQEAAOAdnH6ruqioSOnp6RowYICsVqssFosWLlyooUOHeiIfAABo\nIhwNQ2M5bRyff/55rV69Wl26dJEkHTp0SJMmTaJxbCaXFz2XTQAAAJ7k9F7VFy9etDeNktSlSxdZ\nrVa3hgIAAID3cTriGBERoddff12jRo2SJK1fv17XX3+924MB8D0cBgOAls3piOPChQu1d+9e3Xnn\nnbrjjju0Z88ezZ8/3xPZAAAA4EWcjjh26NBBL7zwgieyAAAAwItxr2oALRb34QWApuW2xrGqqkqz\nZs3SN998I6PRqIyMDNlsNqWlpclgMKhnz56aM2eO/Pz8lJOTo23btslkMik9PV3R0dHuigUAAIAG\nculyPL/97W/rveKtW7dKktasWaOCggJ745iamqrY2FhZLBbl5eUpIiJChYWFWrdunY4cOSKz2azc\n3Nz6bwkAAADcymnjuHXrVqWmpspgMNRrxXfeeaduv/12SVJJSYk6duyobdu2adCgQZKkIUOGaOfO\nnYqMjFR8fLwMBoMiIiJUVVWlEydOqH379nWuOywsQCaTsc754eHB9crqTeqTvaHb6W37hzyONTZP\nS66X+mrItnrb/iGPY02Rp7lqZviUd9yy3vpoim1riX8TTcnX8zhtHENDQzVs2DD16dNHbdu2tU/P\nyMhwvnKTSdOnT9ff/vY3vfjii9q6dau9AQ0MDFRpaanKysoUGhpqf071dEeN48mTZ+ucFx4erGPH\nSp1m81b1yd6Q7fS2/UMexxzlcbXYW3K91Fd9t9Xb9g95HGuKepFad800dtu8bf+Qx7GG1IzTxnHk\nyJGNCvXss8/q6aef1oMPPqgLFy7Yp5eXlyskJERBQUEqLy+vMT042Lu68Wpcow4AALRmTq/jOHLk\nSA0cOFBhYWEaPny4YmJiXGomN27cqGXLlkmSrrnmGhkMBvXt21cFBQWSpPz8fMXExOimm27Sjh07\nZLVaVVJSIqvV6nC0EQAAAM3D6YjjBx98oFdeeUXnz5/XmjVrlJycrGnTpikpKcnh837+859rxowZ\nevjhh3Xx4kWlp6ere/fumj17trKyshQVFaXExEQZjUbFxMRo9OjRslqtslgsTbZxAAAAaDpOG8dX\nX31Vb775ph555BF16NBBb7/9tn71q185bRwDAgL0+9//vtb0VatW1ZpmNptlNpvrEbtxLj/k7G3X\ndeNwOAAA8FZOD1X7+fkpKCjI/rhTp07y83P6NAAAALQwTkcce/bsqVWrVunixYsqLi7W6tWr1bt3\nb09k8wqMAAIAAFzitHG0WCx65ZVX1LZtW6WnpysuLk7Tp0/3RDY4we3UAACAJzltHAMCAjR58mTd\nfffdatOmjX784x/LaKz7wqgAAABomZw2joWFhZo6dao6dOggq9Wqs2fPasmSJerXr58n8gEAAMBL\n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\nixcv1pmh+hC5dOnNt/o5l0+3Wq0ymUy1Xs9ms9VYd12vV90cGwyGWq8jSUajsc58gDMVFRX65ptv\n1KNHjxrTqRnAdWFhYXr//ff1yCOP6JtvvtHIkSN15syZWu9P1fVy5d9kZWXlVdfrSr3YbLar1svl\nr1f9u+S8Xq58LYmacYTG0YfExMSoQ4cOysnJsRfG9u3btWHDhlpvgs8995zeffddjRw5UhaLRfv3\n71dUVJROnTqlffv2SZI++OADRUREKDQ0VGFhYfr6668lSZs3b7avx2g0OnxTrPb3v/9dZ86c0YUL\nF/TBBx/opz/9qQYNGqQtW7bYP9GtXbtWsbGxki79o/PVV1/JZrNpy5YtDtcdFhamiIgIbdu2TZL0\n3nvvubC3gNqsVquys7PVv39/de3atcY8agZwXV5enqZOnarbb79ds2bNUkBAgI4cOaK4uDitX79e\n0qVvTP/zn//UgAEDatTLvn37dOzYMUmu18u//vUv7d+/X9Kl84B/+tOfNqg+6zJ48GD7F4L27dun\ngwcP1nOPtB58q9qHGAwGvfzyy8rIyNA999wjk8mksLAwLV++XB07dqyxbEpKiqZMmaINGzbIaDTq\n2Weflb+/v55//nk988wzOnfunK699lo9//zzkqRf//rXSktLU25uru644w77egYOHKjp06fXWv+V\noqKi9Nhjj+nMmTO65557FB8fL0maMGGCUlJSVFlZqT59+thPgJ4yZYoef/xxdezYUTfffLP9cERd\nMjMzNWPGDL3wwgsaMGBAvfcdWq/q87WkS43jT37yE2VlZdVajpoBLrm8ZqoNHDhQs2bNsj8eMmSI\nPvroI919991q27at7r33Xt1www2aOXOmLBaLNmzYIElasGCBOnXqpF/84hf661//ql/84hfq06eP\nbrzxRklS9+7dVVpaqqlTp9oPcV9N165d9dJLL+ngwYPq1auXfvvb3zaoPusyefJkpaWl6e6771ZU\nVBSHqh0w2K4cVwYAAACugkPVAAAAcAmNIwAAAFxC4wgAAACX0DgCAADAJT75repjx+q+uGdYWIBO\nnjzrwTSOkccx8jjmKE94eLBL66BeGo48jvlSHlfrRaJmGoM8jvlSnrpqpsWNOJpM3nXRTvI4Rh7H\n3J2ntW1vfZHHsdaYpzVuc32Qx7GWkKfFNY4AAABwDxpHAAAAuITGEQAAAC6hcQQAAIBLaBwBAADg\n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\nYII=\n",
"text/plain": [
"<Figure size 648x432 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.FacetGrid(df.dropna(), row=\"direction\", col=\"route\")\n",
"g.map(plt.hist, \"actual_interval\", bins=np.arange(50) + 0.5)\n",
"g.set_titles('{col_name} {row_name}')\n",
"g.set_axis_labels('actual interval (minutes)', 'number of buses');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's already clear that these don't look much like the exponential distribution of our model, but that is not telling us much yet: the distributions may be affected by non-constant scheduled arrival intervals.\n",
"\n",
"Let's repeat the above chart, examining the scheduled rather than observed arrival intervals:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAo4AAAGoCAYAAADIE2RWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XlYlXX+//HXAQSVJVCxhlS+mFtq\n1hihFm44RouKGg5onmnCny2TOJa7KWqauEzUhGaTY01RTrnvTZOQmZlozhAJ5tjivmEKApoo5/z+\n8PKMKHhuGc8mz8d1eV2cm8859/u+5Q2v87nvc98mq9VqFQAAAGCHl6sLAAAAgGcgOAIAAMAQgiMA\nAAAMITgCAADAEIIjAAAADCE4AgAAwBCC402ipKREU6dOVa9evRQXFyez2ay8vLwbvp7i4mI999xz\nkqSDBw8qJiam0nEtW7a84eu+FrPZrOzsbKeuE57l4MGDatu2reLi4hQXF6fY2FiNHz9eJ06cuOHr\nok/gya7slUv/Pvjggxu+rvHjx+vQoUOSpJiYGB08ePCqMc7+uU1PT1d6errT1udpfFxdAP53FotF\nQ4cOVYcOHbRy5Ur5+Pho69atGjp0qNatW6eQkJAbtq6ioiLt2rXrhr0e4EwNGzbUqlWrJElWq1Vp\naWkaPny4Fi1adEPXQ5/A013eK46UnZ1te5MFz0BwvAlkZ2fryJEjGj58uLy8Lk4id+zYUampqbJY\nLFeN/ctf/qLatWvrhx9+UMuWLfWnP/1Jvr6+WrZsmd555x2ZTCa1adNGkyZNkr+/vzp27Ki2bduq\noKBAoaGhOn78uJ577jmNHz9ev/zyi55//nnt2bNHQUFBmjdvni2oTpo0Sbm5uQoJCdGMGTMUFham\nn376SSkpKSosLFTdunX14osvql27dho3bpyioqLUv39/SRdnYnbv3q309HQdO3ZM+/bt06FDhzRg\nwAA9++yzKisr04svvqidO3fq9ttv16lTp5y70+HxTCaTkpOT9cADD+i7775Tq1atbN+jTwBjoqOj\nFRsbqx07dsjb21uvvfaaGjdurJycHL388ss6d+6cQkJC9NJLLyk8PFxms1m33HKL9uzZo8cee0zH\njx/XU089ZZvNnDdvnnbt2qWzZ89q9uzZuvvuuyVJixcvVmpqqqSLs5QdOnTQ2bNnNXHiRO3evVsm\nk0lDhgxR3759tXz5cm3btk0zZ86UdHHGctiwYZJUZV//9a9/1eLFixUSEqKgoCC1a9fOBXvTM3Co\n+iaQn5+vVq1a2ULjJV27dlX9+vWvGv/vf/9bKSkp+vjjj3X48GFt3rxZu3fv1ptvvqmMjAytWbNG\nderU0dy5cyVJp06d0tChQ7Vq1SpNmTJFDRs21Lx58yRJJ0+e1JNPPqm1a9eqQYMGWr9+vW099913\nn1atWqWePXvq5ZdfliSNHj1aZrNZa9as0fjx4/XHP/5RZWVl19y+3bt3a+HChVqyZIneeustnT59\nWhkZGZKkjz/+WBMnTtT+/furvwNRY/n6+io8PFw//vjjVd+jT1CTHT9+/KpD1bt3775qXEFBgTp1\n6qSVK1fqvvvu0wcffKCysjK98MILmjRpklavXq3ExES98MILtue0bNlSn3zyiZ566ik1bNhQb731\nlu2NVLNmzbRy5UqZzWYtXLjQ9py6detq5cqVmjlzpkaPHq2ysjKlp6crJCREa9eu1bvvvqv09HR9\n991319yuyvr622+/1bJly7RixQq98847Onr06A3aizcnguNNwMvLS35+fobHN2/eXLfddpu8vLx0\nxx13qKioSNu3b1f37t1tzZuQkKCtW7fannPpXd+VGjZsaHtn1qxZM9uMRu3atdWnTx9JUlxcnLZt\n26bS0lLt379fDz74oCTpnnvu0S233FLpH+3LdejQQb6+vqpfv76Cg4NVXFysbdu26eGHH5Yk/d//\n/Z9+/etfG95+4HImk0m1a9e+ajl9gprs0qHqy/9VdU5u586dJV3smaKiIu3du7fCrN3DDz+s/fv3\nq7i4WJKuOZv3m9/8RlLFPpGk+Ph4SVKrVq1Uv359/fjjj9q6datteb169dSjRw9t27btmttVWV9v\n27ZNXbt2lb+/v+rWrauHHnrIyC6qsQiON4G2bdsqPz9fV952PC0trcIftUsuD5kmk0lWq/WqQ9pW\nq1UXLlywPa7sD6sk+fj892yHS68lqcLsp9VqlY+Pz1X1XfpeeXl5heeeP3/ebr2Xj7+yDsCosrIy\n/fTTT2rWrNlV36NPAGMu/exV1SfSf3+Gpar7RJK8vb1tr1XZcunief2V9UplfSJV7BX65H9HcLwJ\nREZGqn79+po7d66tMb/44gstX7680j+IlYmKilJWVpYKCwslXTyfpEOHDleN8/HxqfCHsipnzpxR\n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\n0jR8+HAtWrTIIeujV+CpLu8VRzt8+LAOHDjglHXhf8eMo4fLzs7WkSNHNHz4cPn4XHwf0LFjR6Wm\npspisVQYe/ToUQ0ePFj9+/dXfHy8cnJyJEk5OTkaMGCA+vTpoyeeeEL79u2TJJnNZmVnZ0v677u9\n77//Xh9++KE+/PBDLVu2TJKUm5urxMREde/evcKMyr59+/T444+rV69e+tOf/iSr1SpJWrZsmXr1\n6qXevXtr3LhxKi0tlSS1bNnS9tzLZ2FiYmL02muvKT4+Xo8++qjtj3F+fr769eunfv36ad68eTd2\nx+KmZzKZlJycrD179ui7776r8D16BbDv/PnzGj16tPr27au+fftq8eLFkqQTJ07o6aefVu/evdWv\nXz9t2rRJ0tWz7pdm9KZPn66dO3dq6tSpkqSTJ09q6NChio2N1TPPPKOysjJJ0rlz5/THP/5Rffr0\n0bBhw1RUVCTp+vpSksaNG6fp06dr4MCBiomJsfVnYWGhhg4dqt69e2vEiBE6d+6co3ehRyI4erj8\n/Hy1atVKXl4V/yu7du2q+vXrV1i2dOlSdevWTcuXL9fw4cO1Y8cOlZWV6YUXXtCkSZO0evVqJSYm\n6oUXXqhyfc2aNVNiYqISExP12GOPSZJ+/vlnvffee1q2bJkWLlyokpISSRcbNT09XcuXL9eOHTuU\nmZmp3bt3680331RGRobWrFmjOnXqaO7cuXa3Mzg4WEuXLlViYqL+8pe/SJLGjh2rUaNGacWKFWrU\nqNF17TdAknx9fRUeHq4ff/yxwnJ6BTXd8ePHrzpUvXv37gpj/v3vf6uoqEgrV67UX/7yF3399deS\npGnTpqljx45as2aNXn/9dU2YMOGap4RMnDhRbdu21eTJkyVdnIFMSUnRxx9/rBMnTmjLli2SLvaP\n2WzW6tWr1bhxY82bN++6+/KSo0ePatGiRZo/f75mz54tSXr99dfVunVrrVmzRo8//rhDT2PxZARH\nD+fl5SU/Pz9DYzt16qS3335bI0eOVGFhoQYPHqy9e/cqKChI7dq1kyQ9/PDD2r9/v4qLiw3X0Llz\nZ/n6+qpevXoKCQmxvQuMiYlRvXr15Ovrq4cffljbtm3T9u3b1b17d9sh9ISEBG3dutXQOiSpefPm\nKiws1MmTJ3X8+HE98MADkqT+/fsbrhe4nMlkUu3atSsso1dQ0106VH35v8tnuqWLP2M//fSThgwZ\non/84x8aM2aMJGnr1q2Kj4+XJDVu3Fh33323vvnmG8PrbtWqlRo3biwvLy/dcccdOnXqlCQpIiJC\nkZGRkqS4uDht27at2n35wAMPyGQyqUWLFiosLJQkbdu2TY888ogk6b777lPjxo0N11yTEBw9XNu2\nbZWfn287tHVJWlraVX9k7r0JnQGmAAAgAElEQVT3Xq1bt07R0dFav369nnnmmasOZ0sXz/0qLy+3\nfS1JFy5cqLKGS4fIpYt/hC895/LlFotFPj4+V63ParVWeO2q1ncpHJtMpqvWI0ne3t5V1gdUpays\nTD/99JOaNWtWYTm9AtgXEhKidevWafDgwfrpp5/Ur18/nT59+qq/R5f65MqfxfPnz1f6ukb6xGq1\nVtonl6/v0teS/T65cl0SvVIVgqOHi4yMVP369TV37lxbo3zxxRdavnz5VX8MZ8+erdWrV6tfv35K\nSUlRfn6+mjZtqsLCQuXm5kqS1q9fr7CwMAUHByskJETff/+9JGnDhg221/H29r7mH8dLPv/8c50+\nfVrnzp3T+vXrdf/99ysqKkpZWVm2d3iLFy9Whw4dJF38JbRnzx5ZrVZlZWVd87VDQkIUFhamjRs3\nSpLWrl1rYG8B/2WxWJSenq67775bTZo0qfA9egWwLzMzU6NHj1a3bt00ceJE1a1bV0eOHFHHjh21\ndOlSSRc/Mf2vf/1L99xzT4U+yc3NVUFBgSTjffLDDz8oPz9f0sXzf++///5q9WVVOnXqZPtAUG5u\nrvbv33+de6Rm4FPVHs5kMumNN95QamqqevXqJR8fH4WEhOitt95SgwYNKow1m80aOXKkli9fLm9v\nb82aNUu+vr569dVXNW3aNJ09e1a33HKLXn31VUnS//t//0/jxo3TsmXL1KNHD9vr3HfffRo7duxV\nr3+lpk2b6qmnntLp06fVq1cvRUdHS5Kefvppmc1mnT9/Xm3atLGdED1y5Eg988wzatCgge69917b\n4YmqzJkzR+PHj9drr72me+6557r3HWqeS+dtSReD45133qm0tLSrxtErqOku75VL7rvvPk2cONH2\nuEuXLvrnP/+pRx99VH5+furTp49atmypF198USkpKVq+fLkkafr06WrYsKEeeeQRffLJJ3rkkUfU\npk0btW7dWpJ0xx13qLi4WKNHj7Yd4q5MkyZNNG/ePO3fv18tWrTQ888/X62+rMrw4cM1btw4Pfro\no2ratCmHqqtgsl45pwwAAABUgkPVAAAAMITgCAAAAEMcco7j+fPnNWHCBB06dEhlZWV69tln1axZ\nM40bN04mk0nNmzfX5MmT5eXlpblz52rjxo3y8fHRhAkT1K5dO+3bt6/SsQAAAHAdh6Sx1atXKzg4\nWIsWLdKCBQs0bdo0paamasSIEVq0aJGsVqsyMzOVl5enbdu2acmSJUpLS7Od+F3ZWAAAALiWQ4Lj\nQw89pD/+8Y+2x97e3srLy1NUVJSki5/E2rJli3bs2KHo6GiZTCaFhYWpvLxcJ0+erHSsPRculDti\nU4CbDr0CGEOvAFdzyKFqf39/SVJJSYmGDx+uESNGaNasWbYLbfr7+6u4uFglJSUKDg6u8Lzi4mJZ\nrdarxtpz6tSZatUaGhqoggLjd35wF55YtyfWLHlG3aGhgYbHVqdXPGEfVIa6ncsT6qZXKkfdzuXu\ndV+rTxx24uCRI0f0u9/9TnFxcerdu3eFcxRLS0sVFBSkgIAAlZaWVlgeGBhY6VgAAAC4lkOC44kT\nJ5SUlFThYp6tW7dWdna2JGnTpk2KjIxU+/bttXnzZlksFh0+fFgWi0X16tWrdCwAAABcyyGHqt98\n802dPn1ab7zxht544w1J0osvvqjp06crLS1NTZs2VWxsrLy9vRUZGamEhARZLBalpKRIksaOHatJ\nkyZVGAsAAADXumnuHFPdcwXc/TyDqnhi3Z5Ys+QZdV/PeVvV2RZP2AeVoW7n8oS66ZXKUbdzuXvd\nLjnHEQAAADcXgiMAAAAMITgCAADAEIIjAAAADCE4AgAAwBCCIwAAAAwhOAIAAMAQgiMAAAAMITgC\nAADAEIIjAAAADCE4AgAAwBCCIwAAAAwhOAIAAMAQgiMAAAAMITgCAADAEIIjAAAADCE4AgAAwBCC\nIwAAAAwhOAIAAMAQgiMAAAAMITgCAADAEIIjAAAADCE4AgAAwBCCIwAAAAwhOAIAAMAQgiMAAAAM\nITgCAADAEIIjAAAADCE4AgAAwBCCIwAAAAwhOAIAAMAQgiMAAAAMITgCAADAEIIjAAAADHFocPzm\nm29kNpslSXl5eercubPMZrPMZrPWr18vSZo7d67i4+OVmJio3NxcSdK+ffs0cOBADRo0SJMnT5bF\nYnFkmQAAADDAx1EvvGDBAq1evVp16tSRJOXn5+vJJ59UUlKSbUxeXp62bdumJUuW6MiRI0pOTtay\nZcuUmpqqESNGqEOHDkpJSVFmZqZ69uzpqFIBAABggMOCY5MmTZSenq4xY8ZIknbu3KmffvpJmZmZ\nCg8P14QJE7Rjxw5FR0fLZDIpLCxM5eXlOnnypPLy8hQVFSVJ6tKli7788ku7wTEkpK58fLyrVWto\naGC1nudqnli3J9YseW7dlalur3jqPqBu5/LUuitDr3gG6nYuhwXH2NhYHTx40Pa4Xbt2GjBggNq2\nbav58+dr3rx5CgwMVHBwsG2Mv7+/iouLZbVaZTKZKiyz59SpM9WqMzQ0UAUF9l/f3Xhi3Z5Ys+QZ\ndV/PL6Dq9Ion7IPKULdzeULd9ErlqNu53L3ua/WJ0z4c07NnT7Vt29b2dX5+vgICAlRaWmobU1pa\nqsDAQHl5eVVYFhQU5KwyAQAAUAWnBcchQ4bYPvzy1VdfqU2bNmrfvr02b94si8Wiw4cPy2KxqF69\nemrdurWys7MlSZs2bVJkZKSzygQAAEAVHHao+kpTpkzRtGnTVKtWLTVo0EDTpk1TQECAIiMjlZCQ\nIIvFopSUFEnS2LFjNWnSJKWlpalp06aKjY11VpmAkmZm2R3z9rgYJ1QCAIB7cWhwbNSokRYvXixJ\natOmjT788MOrxiQnJys5ObnCsoiICL3//vuOLA0AAADXiQuAAwAAwBCCIwAAAAxx2jmOAICbh5Fz\ngSXOBwZuNsw4AgAAwBCCIwAAAAwhOAIAAMAQznGE2+O6igAAuAeCIwDcJHiTBcDRCI4AAMDt8cbI\nPXCOIwAAAAwhOAIAAMAQgiMAAAAMITgCAADAEIIjAAAADLEbHHNzc51RBwAAANyc3cvxzJkzR4WF\nhYqLi1NcXJxCQ0OdURcAAADcjN3gmJGRoUOHDmnVqlVKSkpSWFiY+vXrpx49eqhWrVrOqBEAAABu\nwNA5jrfffrv69u2r3r17a8+ePcrIyFCvXr306aefOro+AAAAuAm7M45LlizRqlWrVFBQoL59+2rR\nokW67bbbdOzYMfXr1089e/Z0Rp0AAABwMbvBcfv27Ro+fLiioqIqLL/11ls1efJkhxUGAAAA92L3\nUPXIkSP1+eefS5IOHDigMWPG6MSJE5Kk2NhYx1YHAAAAt2E3OI4aNUqNGzeWdHGWMTIyUmPGjHF4\nYQAAAHAvdoNjYWGhEhMTJUm+vr767W9/q1OnTjm8MAAAALgXu+c41qlTR59//rm6du0qSdqyZYvq\n1Knj8MIAwJ0lzcyyO+btcTFOqAQAnMducJw6dapGjx5tOzz9q1/9SrNnz3Z4YQAAAHAvdoPjnXfe\nqbVr1+rUqVOqVauWAgICnFEXAAAA3Izd4Jifn68333xTRUVFslqttuXvvfeeQwsDAACAe7EbHMeO\nHauEhAQ1b95cJpPJGTUBAADADdkNjrVr19bgwYOdUQsAAADcmN3gGB0drYyMDEVHR8vPz8+2PCws\nzKGFAQAA3GhGroggcVWEqtgNjqtWrZIkvfPOO7ZlJpNJmZmZjqsKAAAAbsducMzKMpbMAQAAcHOz\nGxyLioo0Z84c7d+/X6+//rpmzZql8ePHKygoyBn1AQAAeKyb7WYBdm85OGnSJN11110qLCxU3bp1\n1bBhQ40aNcrQi3/zzTcym82SpH379mngwIEaNGiQJk+eLIvFIkmaO3eu4uPjlZiYqNzc3GuOBQAA\ngOvYDY4HDx5UQkKCvLy85Ovrq+eff15Hjx61+8ILFizQxIkTde7cOUlSamqqRowYoUWLFslqtSoz\nM1N5eXnatm2blixZorS0NE2dOrXKsQAAAHAtu8HR29tbxcXFtms47t27V15edp+mJk2aKD093fY4\nLy9PUVFRkqQuXbpoy5Yt2rFjh6Kjo2UymRQWFqby8nKdPHmy0rEAAABwLbvnOCYnJ8tsNuvIkSP6\nwx/+oJycHM2YMcPuC8fGxurgwYO2x1ar1RY+/f39VVxcrJKSEgUHB9vGXFpe2Vh7QkLqysfH2+64\nyoSGBlbrea7miXU7qmZn7wtP3PeXVLdXPHWbXVn3/7JuesX16BXPcyO3wZn7w5P2vd3g2KVLF7Vt\n21a5ubkqLy/XSy+9pAYNGlz3ii6fpSwtLVVQUJACAgJUWlpaYXlgYGClY+05derMddckXfzPKiiw\nH0zdjSfW7cianb0v3G3fX88vner0iif+vEmur7u666ZXHIdeqZyn1n2lG7kNztwf7rbvr9Undo85\nz507V4sWLdLOnTu1a9cuffjhh5o7d+51F9G6dWtlZ2dLkjZt2qTIyEi1b99emzdvlsVi0eHDh2Wx\nWFSvXr1KxwIAAMC17J+seJnz588rKytLP//883WvaOzYsUpPT1dCQoLOnz+v2NhYtW3bVpGRkUpI\nSFBycrJSUlKqHAsAAADXsnuoetiwYRUeP/fcc0pKSjL04o0aNdLixYslSREREXr//fevGpOcnKzk\n5OQKy6oaCwAAANe5rhlH6eI5h4cPH3ZELQAAAHBjdmccY2JibJ9wtlqtKioq0pAhQxxeGAAAANyL\n3eCYkZFh+9pkMtk+DQ0AAICaxW5w3L59+zW/37dv3xtWDAAAANyX3eC4ceNGff3114qJiZGPj48+\n//xzhYaGKiIiQhLBEQAAoKawGxxPnjypVatWqX79+pKk4uJiPfPMM0pNTXV4cQAAAHAfdj9VfezY\nMYWEhNge+/n5qaioyKFFAQAAwP3YnXHs1q2bnnjiCdtFuNetW6c+ffo4vDAAAAC4F7vBcfz48fr4\n44+1fft2+fn5KTk5Wffff78zagMAAIAbMXQB8IYNG6p58+Z6/vnnVatWLUfXBAAAADdkNzi+++67\neu211/S3v/1NZ86cUUpKihYuXOiM2gAAAOBG7AbHFStWaOHChapTp46Cg4O1dOlSLVu2zBm1AQAA\nwI3YDY5eXl7y9fW1Pfbz85O3t7dDiwIAAID7sfvhmKioKM2aNUtnz57Vhg0b9NFHH6ljx47OqA0A\nAABuxO6M45gxYxQeHq6WLVtq5cqV6tq1q8aOHeuM2gAAAOBG7M44Dh06VAsXLlRiYqIz6gEAAICb\nshscz549qyNHjuhXv/qVM+qBiyXNzDI07u1xMQ6uBAAAuJsqg+P69ev1yCOP6Pjx4+revbsaNGgg\nPz8/Wa1WmUwmZWZmOrNOAAAAuFiVwfHVV1/Vgw8+qKKiImVlZdkCIwAAAGqmKoNjZGSk7rrrLlmt\nVvXo0cO2/FKA3LVrl1MKBAAAgHuo8lPVqamp2rVrl7p3765du3bZ/n333XeERgAAgBrI7uV45s+f\n74w6AAAA4ObsBkcAAABAIjgCAADAILvXcQQAADcPI9fr5Vq9qAozjgAAADCE4AgAAABDCI4AAAAw\nhOAIAAAAQwiOAAAAMITgCAAAAEMIjgAAADCE4AgAAABDCI4AAAAwxOl3junbt68CAwMlSY0aNVJC\nQoJefvlleXt7Kzo6WsOGDZPFYtGUKVO0e/du+fr6avr06QoPD3d2qTcdI3cLAAAAqIpTg+O5c+ck\nSRkZGbZlcXFxSk9PV+PGjfXUU08pLy9Phw4dUllZmT766CPl5ORo5syZmj9/vjNLBQAAwBWcGhy/\n++47nT17VklJSbpw4YKSk5NVVlamJk2aSJKio6P11VdfqaCgQJ07d5Yk3XPPPdq5c6czywQAAEAl\nnBoca9eurSFDhmjAgAHau3evhg4dqqCgINv3/f39deDAAZWUlCggIMC23NvbWxcuXJCPT9XlhoTU\nlY+Pd7XqCg0NrNbzXM2VdVd33Y6q2dn7wlN/ZqTq94qnbrMn9sn/+lxXvK67rO9Gqmm9cjlP3YYb\nWbcz94En7W+nBseIiAiFh4fLZDIpIiJCgYGBKiwstH2/tLRUQUFB+uWXX1RaWmpbbrFYrhkaJenU\nqTPVqik0NFAFBcXVeq4rubru3iNX3ZDXeXtczA15HWfvC3f7mbmeXzrV6RVX/7xVl6vrru66HVk3\nvUKvGOGp23Aj63bmPnC3/X2tPnHqp6qXLl2qmTNnSpKOHTums2fPqm7dutq/f7+sVqs2b96syMhI\ntW/fXps2bZIk5eTkqEWLFs4sEwAAAJVw6oxjfHy8xo8fr4EDB8pkMmnGjBny8vLSqFGjVF5erujo\naN19992666679OWXXyoxMVFWq1UzZsxwZpkAAACohFODo6+vr1555ZWrli9evLjCYy8vL7300kvO\nKgsAAAAGOP06jgBQUxi5duqNOs8XAJyBO8cAAADAEIIjAAAADCE4AgAAwBDOcbxJcB9qwBh36xWj\n9XAuJAB3wIwjAAAADGHGEQAA4ApcFaFyzDgCAADAEIIjAAAADCE4AgAAwBCCIwAAAAwhOAIAAMAQ\ngiMAAAAMITgCAADAEIIjAAAADCE4AgAAwBCCIwAAAAzhloMA4AGM3P4MAByN4AgAcBju9+uZbuQb\nFf5/by4cqgYAAIAhBEcAAAAYwqFqoBo4/AYAqIkIjgAA4KbAh8gcj0PVAAAAMIQZR7gU7w4BAPAc\nBEfcFIwGUM47RE3H+bnAjVMTJz8Ijh6gJv5gAgAA98M5jgAAADCE4AgAAABDOFSNGoXD/gDgXJxX\ne3MhOAIAAJfiTb3n4FA1AAAADGHGEQBQAbM/gPtxl8vOERwdiPM6AACAPZ70Zs1tg6PFYtGUKVO0\ne/du+fr6avr06QoPD3d1WQAAADWW257juGHDBpWVlemjjz7SyJEjNXPmTFeXBAAAUKO57Yzjjh07\n1LlzZ0nSPffco507d7q4IuD6cKoCYAy9AngOk9Vqtbq6iMq8+OKLevDBB9W1a1dJUrdu3bRhwwb5\n+Lht1gUAALipue2h6oCAAJWWltoeWywWQiMAAIALuW1wbN++vTZt2iRJysnJUYsWLVxcEQAAQM3m\ntoeqL32q+j//+Y+sVqtmzJihO+64w9VlAQAA1FhuGxwBAADgXtz2UDUAAADcC8ERAAAAhhAcAQAA\nYEiNDI4Wi0UpKSlKSEiQ2WzWvn37XF2SYX379pXZbJbZbNb48eNdXY5d33zzjcxmsyRp3759Gjhw\noAYNGqTJkyfLYrG4uLqqXV53Xl6eOnfubNvv69evd3F1zkOvOA+94tnoFeegT1yvRl4Y8fLbGebk\n5GjmzJmaP3++q8uy69y5c5KkjIwMF1dizIIFC7R69WrVqVNHkpSamqoRI0aoQ4cOSklJUWZmpnr2\n7OniKq92Zd35+fl68sknlZSU5OLKnI9ecQ56xfPRK45Hn7iHGjnj6Km3M/zuu+909uxZJSUl6Xe/\n+51ycnJcXdI1NWnSROnp6bbHeXl5ioqKkiR16dJFW7ZscVVp13Rl3Tt37tTGjRv1+OOPa8KECSop\nKXFhdc5FrzgHveL56BXHo0/cQ40MjiUlJQoICLA99vb21oULF1xYkTG1a9fWkCFDtHDhQk2dOlWj\nRo1y67pjY2Mr3O3HarXKZDJJkvz9/VVcXOyq0q7pyrrbtWunMWPG6IMPPlDjxo01b948F1bnXPSK\nc9Arno9ecTz6xD3UyODoqbczjIiIUJ8+fWQymRQREaHg4GAVFBS4uizDvLz+++NWWlqqoKAgF1Zj\nXM+ePdW2bVvb1/n5+S6uyHnoFdegVzwPveJ89Ilr1Mjg6Km3M1y6dKlmzpwpSTp27JhKSkoUGhrq\n4qqMa926tbKzsyVJmzZtUmRkpIsrMmbIkCHKzc2VJH311Vdq06aNiytyHnrFNegVz0OvOB994hru\n/3bIAXr27Kkvv/xSiYmJttsZeoL4+HiNHz9eAwcOlMlk0owZMzziHe0lY8eO1aRJk5SWlqamTZsq\nNjbW1SUZMmXKFE2bNk21atVSgwYNNG3aNFeX5DT0imvQK56HXnE++sQ1uOUgAAAADKmRh6oBAABw\n/QiOAAAAMITgCAAAAEMIjgAAADCE4AgAAABDCI4Otnz5co0bN67az09PT69wq6LKxMTE6ODBg4Zf\nc9y4cVq+fHmFZceOHdPQoUOv+bzc3FzNmTPH8Hqqo6ptKSkpUXJysoxeBODvf/+7/v73v1erhsWL\nF2vt2rXX/bzS0lINGzZM5eXl1VpvTUevXB96peaiV64PvXJjERwhSbr11lu1YMGCa475/vvv9fPP\nPzupoormzZun3/72t7bbS9kzcOBADRw4sFrr+te//qWysrLrfp6/v786deqkDz/8sFrrhWegV/6L\nXsG10Cv/dTP1CsGxGo4eParBgwerf//+io+Pt90UfsuWLerTp4969+6tp59+2nbj8n379slsNqtH\njx6aOHGi7XXeeust9evXT3369NHs2bNt73r++te/6sEHH1RCQoLt6vKS1LJlS9vXlb3jLC8vV2pq\nqu01//a3v0m6eD/P1NRUxcbGymw2a//+/Vdt08GDBxUTEyPp4jvH6dOna+DAgYqJidGyZct0+vRp\nvf7668rKytL8+fOrXFd2drbi4+PVv39/jRw5UtHR0Tpx4oQkqbCwUNHR0Tp//rzef/99DRgwQL16\n9VK/fv30448/Vrm/S0pKlJWVpQceeECSZDablZqaqvj4ePXu3Vuff/65hgwZom7dutnquPwddXR0\ntKZNm6a+ffvqscce04EDByRVfBeanZ0ts9msLVu2KCsrS6+//rq++OILnThxQn/4wx/Uv39/PfbY\nY9qyZYuki1f779+/v/r3768nn3xSJ0+elCT16tVL7733nuF3sDc7eoVeoVeMoVfoFU/pFYJjNSxd\nulTdunXT8uXLNXz4cO3YsUNlZWUaNWqUZs2apTVr1qhFixZasWKFJOnIkSNKT0/Xxx9/rE2bNmnP\nnj3atGmTdu7cqaVLl2rlypU6duyYVq9erW+//VbLli3TihUr9M477+jo0aOG61q8eLEkacWKFVq6\ndKkyMzP19ddf65NPPlF+fr7Wrl2rP//5z5U2+JWOHj2qRYsWaf78+Zo9e7aCgoI0fPhwxcTE6Nln\nn61yXZK0d+9evfvuu3rllVf00EMP6R//+Ick6Z///Kd69uypc+fOacOGDcrIyNDatWvVrVs3ffDB\nB1XWsnXrVrVq1arCfUmtVquWLl2q2NhYTZ8+XXPnztUHH3xQ6c3iCwoK1KlTJ61cuVL33XffNdd1\n//33KyYmRsOHD1fnzp318ssv67HHHtPy5cs1f/58paSkqKSkRG+88YamTJmi5cuX6/7777fda/SW\nW25R3bp1tXv3brv7uCagV+gVesUYeoVe8ZRe8Yz7CrmZTp06KTk5Wbt27VLXrl01ePBg7d69W7fe\neqvuvPNOSdLIkSMlXXwHFxkZqeDgYElSkyZNdOrUKX311VfKzc1V//79JUm//PKLwsLCdOLECXXt\n2lX+/v6SpIceekgWi8VQXV999ZV27dqlrVu3SpLOnDmj3bt364cfftCDDz6oWrVqqV69eurSpYvd\n13rggQdkMpnUokULFRYWGl5Xs2bNFBERocDAQElSnz59lJqaqsGDB2vt2rV6/vnnFRAQoFdeeUXr\n1q3T3r179cUXX9j2W2X27t2r2267rcKyS9sQFhamu+++W3Xq1NHtt9+u06dPV/oanTt3liQ1b97c\n9ovIiC1btujHH3/U66+/Lkm6cOGCDhw4oB49emjYsGH6zW9+ox49etjetV6qae/evWrVqpXh9dys\n6BV6hV4xhl6hVzylVwiO1XDvvfdq3bp12rhxo9avX68VK1Zo7NixFc6TKC4uVmlpqSRVuO+nyWSS\n1WpVeXm5nnjiCT355JOSpNOnT8vb21sfffRRheloHx+fCudFWK1WmUwmXbhw4aq6ysvLNXr0aD34\n4IOSpJMnT8rf37/C4Yor66mKn5+frd7KVLWunJwc1a5d2zauXbt2KioqUm5uro4dO6Zf//rXOnLk\niMxmswYPHqwuXbqoQYMG2rVrV5W1mEymq2quVatWtbfn8n1x6evK9qckWSwWvfvuu7Zf0MePH1f9\n+vV15513qnv37vrss880Z84c5ebm6tlnn5UkeXt7V3gXW5PRK/QKvWIMvUKveEqvuEcVHmb27Nla\nvXq1+vXrp5SUFOXn5ysiIkI///yzvv/+e0kXzye51qevOnbsqFWrVqm0tFQXLlzQc889p08++USd\nOnXSZ599puLiYp07d06ffvqp7TkhISHas2ePrFarsrKyKn3NxYsX6/z58yotLdWgQYOUk5OjTp06\n6eOPP1ZZWZmKior0xRdfVGu7vb29bY1Q1boq07t3b02ePFmPPvqoJOnbb79VeHi4fv/73+uuu+7S\nhg0brvmJsfDwcB06dKhaNV9LSEiI7f8rMzPTttzb29tWT8eOHbVo0SJJF0/i7t27t86ePasBAwao\ntLRUv//97/X73//edkhBkg4dOqQmTZrc8Ho9Eb1Cr9ArxtAr9Iqn9AozjtVgNps1cuRILV++XN7e\n3po1a5b8/Pw0Z84cjRkzRufPn1eT/9/O/bOcF8ZxHP+oMwmTyXAvdovkTwyMQpFQBqtBFItBFuqU\nROo8AZPFE/AI5Bkok0dgYfPnHtRdv35+dyf9irv7/RpPXX/O8Ln6XtfVOR8fGo1GWq1WD/tIpVLa\nbrcqlUq6XC5KJBLK5/NyOByq1WoqFovyeDzy+XxfbTqdjur1urxer4LBoA6Hwx99VioV7fd75fN5\nnc9nFQoFhcNhSfdQZTIZeb1e+f3+p947EAjIsiyNx2O1Wq2HY202m7/a5XI5zWYzTadTSffrisVi\noXQ6rdvtplAopN1u90d4fBEAAADTSURBVM9xo9GoTNPU9Xr9rzuuZrOpwWAgy7IUj8e/nsdiMU0m\nE7ndbvV6PfX7fWWzWUn3xd3lcqndbqvb7cowDDmdTg2HQ0n3Hf7xeHyL64R3QFbIClmxh6yQlZ+S\nFcftXT7TAb5hmqYikYiSyeSrp/Kt+XwuwzBUrVZfPRX8UmQFsIesPIeravwIjUZDy+XybX5H8Mjp\ndNJ6vVa5XH71VPCLkRXAHrLyHE4cAQAAYAsnjgAAALCFwhEAAAC2UDgCAADAFgpHAAAA2ELhCAAA\nAFs+Aa81eSDWCb29AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 648x432 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.FacetGrid(df.dropna(), row=\"direction\", col=\"route\")\n",
"g.map(plt.hist, \"scheduled_interval\", bins=np.arange(20) - 0.5)\n",
"g.set_titles('{col_name} {row_name}')\n",
"g.set_axis_labels('scheduled interval (minutes)', 'frequency');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This shows that the buses come at variety of arrival intervals thorughout the week, so we cannot evaluate the accuracy of the waiting time paradox from the distributions of raw arrival times."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Constructing Uniform Schedules"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Even though the scheduled arrival intervals are not uniform, there are a few particular intervals that have a large number of arrivals: for example, there are nearly 2000 northbound E-line buses with a scheduled interval of 10 minutes.\n",
"In order to explore whether the waiting time paradox applies, let's group the data by line, direction, and scheduled interval, then re-stack these similar arrivals together as if they had happened in sequence.\n",
"This should maintain all the relevant characteristics of the raw data, while making it easier to directly compare with the predictions of the waiting time paradox."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>route</th>\n",
" <th>direction</th>\n",
" <th>scheduled</th>\n",
" <th>actual</th>\n",
" <th>minutes_late</th>\n",
" <th>actual_interval</th>\n",
" <th>scheduled_interval</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C</td>\n",
" <td>northbound</td>\n",
" <td>10.0</td>\n",
" <td>12.400000</td>\n",
" <td>2.400000</td>\n",
" <td>NaN</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C</td>\n",
" <td>northbound</td>\n",
" <td>20.0</td>\n",
" <td>27.150000</td>\n",
" <td>7.150000</td>\n",
" <td>0.183333</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>C</td>\n",
" <td>northbound</td>\n",
" <td>30.0</td>\n",
" <td>26.966667</td>\n",
" <td>-3.033333</td>\n",
" <td>14.566667</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>C</td>\n",
" <td>northbound</td>\n",
" <td>40.0</td>\n",
" <td>35.516667</td>\n",
" <td>-4.483333</td>\n",
" <td>8.366667</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>C</td>\n",
" <td>northbound</td>\n",
" <td>50.0</td>\n",
" <td>53.583333</td>\n",
" <td>3.583333</td>\n",
" <td>18.066667</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" route direction scheduled actual minutes_late actual_interval \\\n",
"0 C northbound 10.0 12.400000 2.400000 NaN \n",
"1 C northbound 20.0 27.150000 7.150000 0.183333 \n",
"2 C northbound 30.0 26.966667 -3.033333 14.566667 \n",
"3 C northbound 40.0 35.516667 -4.483333 8.366667 \n",
"4 C northbound 50.0 53.583333 3.583333 18.066667 \n",
"\n",
" scheduled_interval \n",
"0 10.0 \n",
"1 10.0 \n",
"2 10.0 \n",
"3 10.0 \n",
"4 10.0 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def stack_sequence(data):\n",
" # first, sort by scheduled time\n",
" data = data.sort_values('scheduled')\n",
" \n",
" # re-stack data & recompute relevant quantities\n",
" data['scheduled'] = data['scheduled_interval'].cumsum()\n",
" data['actual'] = data['scheduled'] + data['minutes_late']\n",
" data['actual_interval'] = data['actual'].sort_values().diff()\n",
" return data\n",
"\n",
"subset = df[df.scheduled_interval.isin([10, 12, 15])]\n",
"grouped = subset.groupby(['route', 'direction', 'scheduled_interval'])\n",
"sequenced = grouped.apply(stack_sequence).reset_index(drop=True)\n",
"sequenced.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using this cleaned data, we can plot the distribution of \"actual\" arrival intervals for each route, direction, and arrival frequency:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiUAAAE/CAYAAACZyLOLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XlYVHX///HXsKWGChSaaJo72e2S\nkraYe6HdLrklmuh1e7eZS9ylSaJmXzA1zbrdyiyzNDUVMy3LAreyRL9+XXHJzDTQXBIV8U6QOb8/\n/Dm3xDbADJyZeT6uy+tizpzzmfcH3zO85pyZcyyGYRgCAAAoY15lXQAAAIBEKAEAACZBKAEAAKZA\nKAEAAKZAKAEAAKZAKAEAAKZAKAHgUJcuXdLUqVPVsWNHNW3aVOHh4XrvvfeUlZWV5/opKSlq2LCh\njh8/Lklq2LChfvjhh9IsGYBJ+JR1AQDcx4ULF9SvXz/ddtttiouLU40aNXTgwAHFxcXpp59+0vTp\n0wsd4/vvv1flypVLoVoAZkMoAeAw06dPl6+vrz788EPdcsstkqQ777xTgYGBioyMVGRkpJo2bVrg\nGMHBwaVRKgAT4vANAIfIzMzUl19+qSeffNIWSG5o2bKlPvroIzVo0KDQcW4+fNOhQwctXrxYERER\natq0qfr06aO9e/fa1v3999/1/PPPq1mzZmrXrp2mT5+uzMxMx04MQKkhlABwiBMnTujKlStq3Lhx\nnvfff//9Kl++fJHHnT17tp566il9+umnuuWWWxQbGytJMgxDw4YNU+XKlRUfH6/p06dr06ZNmjFj\nRonmAaDsEEoAOMSlS5ckSRUrVnTouI8//rg6deqk0NBQDRkyRPv375ckbdu2TSkpKYqLi1PdunUV\nFhamCRMmaPHixbp27ZpDawBQOvhMCQCHCAwMlCRdvHjRoePeeeedtp/9/f1ltVqVnZ2to0eP6tKl\nSwoLC7PdbxiGsrKydPLkSdWsWdOhdQBwPkIJAIeoWbOmAgICtG/fPjVp0iTX/VFRUeratas6depU\npHH9/PxyLTMMQ9euXVOtWrU0b968XPffcccdRXoMAObA4RsADuHt7a2///3vWrx4ca4Pm27btk1f\nffWVbW+KI9SuXVu///67AgICVKtWLdWqVUtnz57Vm2++KcMwHPY4AEoPoQSAwwwfPlxXr17VP/7x\nD23btk0nTpzQZ599pqioKPXq1UstWrRw2GO1bt1ad955p0aNGqVDhw5p165dGjdunLy8vHJ9+weA\na+DwDQCHCQoK0tKlSzVnzhyNGTNGaWlpqlGjhp555hlFRkY69LG8vb01d+5cTZo0SREREbrlllv0\nyCOPKDo62qGPA6D0WAz2cwIAABPg8A0AADAFQgkAADAFQgkAADAFQgkAADAFQgkAADAFQkk+0tPT\nNWzYMElSSkqKOnTokOd6DRs2LM2yFBkZqaSkpFzLs7OzNXz4cP3nP/+xLdu6dasGDx5su20YhqZO\nnarOnTvrscce086dO4tVw+nTp/X0008XuM4333yjxYsXF2t8lA137PmMjAy98MIL6tatm7p166Yv\nv/yyWDXQ8+7JHXs+KytLzZs3V48ePWz/srOzi1zDvn37FBMTU+A6Cxcu1MaNG4s8dkEIJfm4ePGi\nDh48WNZl2G3p0qVq3bq1ypcvL6vVqgULFujFF1+U1Wq1rbN+/XodPXpU69at05w5c/TKK68U68Jl\nVatW1fz58wtc59FHH9U333yjP/74o8jjo2y4Y8+/9957CgkJ0dq1a7Vw4UJNnjxZ586dK/Jj0fPu\nyR17/vDhw7r33nv1+eef2/55e3sX+bEaN26sSZMmFbjOgAED9M477+Q6g3NJuO3J05KSkjRv3jyV\nK1dOR48eVcOGDTV9+nT5+fkpPj5eH374oSwWi+655x6NHz9et956q+6//3797W9/09mzZxUcHKwz\nZ85o2LBheuWVV/Tnn3/qX//6l44cOaJKlSppzpw5tlNmjx8/Xnv37lVgYKBef/11hYSE6NixY5ow\nYYIuXLigChUqKCYmRk2aNFF0dLRatmypXr16SbqewA8fPqxZs2bp9OnTOn78uFJTU9W3b18NHTpU\nmZmZiomJ0f79+1W9enWlpaXlmqthGFq0aJFWrlwpSTp69KiOHj2q2NhYLVq0yLbe5s2b9dhjj8nL\ny0u1a9dWtWrVtGvXLt133322dVatWqVNmzbpwoULOnPmjCIiIpSamqpt27YpICBA77//vs6ePatB\ngwZpw4YNio6Olr+/v5KTk3X69GkNGzZMvXv3lnT9RfqTTz7RyJEjnfb/jP+i53P3fMuWLVW7dm1J\n0m233aaAgACdO3dOt99+u20det510fO5e37fvn06f/68evXqJR8fH40aNUotW7bMMdasWbN08uRJ\n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\nnr59+6p79+4aPHiwjh8/LkmKjIxUUlKSpP+m1J9//lnLli3TsmXLFB8fL0nau3evIiIi1L59+xyJ\n+vjx43ryySfVtWtXTZ8+XTc+qhMfH6+uXbuqW7duio6OtiXKhg0b2ra9OYV36NBBb7/9tvr06aO/\n//3vthPJHThwQD179lTPnj3zbYAff/xRwcHBCggIkCStXbtWHTt2VJcuXWzrZGVlaceOHQoPD5ck\n9erVS19//XWusSIjIzV58mT16dNH3bp10+bNm/XPf/5T7dq108KFCyXlfFfRunVrxcbG6vHHH1fv\n3r3122+/SZLq1aun1NRUnThxwo7/NRQX/Z53v2dmZuqFF15QaGiorY5Tp07lGot+dz30fN49L0n7\n9u3TZ599pm7dumnUqFG6ePFirrE6dOigN998U7169dITTzyhTZs2adCgQWrbtq3WrVsnSYqOjtaq\nVauUkpKixx9/XKNHj1bXrl01ePBgXbhwQdL158K3337rsGDntqFk5cqVateunVatWqWRI0dq586d\nyszM1Isvvqjx48drzZo1ioiI0IsvvpjvGPXq1VNERIQiIiLUu3dvSdIff/yhjz/+WPHx8frggw9s\n/xEpKSmaNWuWVq1apZ07dyoxMVGHDx/Wu+++q0WLFmnt2rUqX768Zs+eXWjtAQEBWrlypSIiIjRv\n3jxJ0pgxYzRq1Ch99tlnqlGjRp7bbdiwQWFhYbbbTz31lPr27ZtjnbS0NPn7+9vOAxMcHJzv7mbD\nMLRy5UqFh4crLi5Os2fP1ieffJLnE+bs2bN64IEHtHr1at1333365JNPbPe1aNFCGzduLHTeKD76\nPe9+9/PzU48ePSRd39U8e/ZsderUKc/x6HfXQs/n3fPS9df1559/XmvWrFG1atX0P//zP3mOd/vt\nt2vVqlWqW7eu3nvvPS1YsEDTpk3Te++9l2vdQ4cO6R//+Ie++OILVapUSWvXrpUkeXt7q2HDhtq2\nbVuh87aH24aSBx54QAsWLNBLL72kCxcuaODAgfr1119VqVIlNWnSRJLUpUsXnThxQunp6XaP+/DD\nD8vPz09BQUEKDAy0JdAOHTooKChIfn5+6tKli7Zv364dO3aoffv2CgwMlCT169fPrv+4G6fcr1+/\nvi5cuKDz58/rzJkzeuihhyRd37uRl+PHj+uOO+4ocGzDMGSxWHIs++vtG9q0aSNJCgkJUdOmTVW+\nfHlVr15dly5dKrTum5N5SEiI7d0KnIN+L1hmZqZGjRqla9eu6dlnn81zHfrdtdDz+ZszZ45atGgh\ni8Wip556St99912e693c8/fdd598fHwUEhKSZ8/fdtttatSoka1uZ/W824aSFi1a6Msvv1Tr1q21\nbt06Pffcc7JarbnWMwxD2dnZtp8l6dq1a/mOe/OZZi0Wi22bm5ffOCPtXx/PMIwcY+f3eLfccott\n/L8+jnQ9mebFYrEUeibcoKAgpaen2+Z89uxZValSJc91fX19bT/bc4bdm+u+uV4fHx95ebltq5kC\n/Z6/jIwMPfXUU7p27ZreeeedHH19M/rdtdDzeUtPT7cdcrxRQ37jFaXnb9ScX72O6nm3fea88cYb\nWrNmjXr27KkJEybowIEDqlOnji5cuKC9e/dKktatW6eQkBAFBAQoMDBQP//8s6TrVy2+wdvbu8AG\nvmHz5s26dOmSrl69qnXr1unBBx9Uy5YttWHDBtuxt+XLl6tVq1aSpMDAQB05ckSGYWjDhoIvghQY\nGKiQkBBt2rRJkvTFF1/kuV7NmjUL/WaBr6+vwsLCbMcMV69ebUvLzpKSkqKaNWs69TE8Hf2ev9Gj\nR6tWrVp6++235efnV+j6JUW/lw56Pm8VKlTQ+++/rz179kiSFi9erEceeaTQ+ZVEamqqw3rebS8w\nExkZqZdeekmrVq2St7e3pk6dKj8/P7311luKjY3Vf/7zH1WuXNn2VamnnnpK0dHRio+Pz/Fp4/vu\nu09jxozR7bffXuDj1alTR88884wuXbqkrl27qnXr1pKkZ599VpGRkcrKytI999yj1157TZL00ksv\n6bnnntPtt9+uFi1aKC0trcDxp02bpldeeUVvv/22mjVrluc6HTp00LJlyzRgwIACx3r11VcVHR2t\nd955R9WqVdOMGTMKXL+kduzYUeyvpME+9HveDhw4oMTERNWrV089e/aUJFWpUkXz588v8PFLgn4v\nHfR83ry9vfX2229r4sSJ+vPPP3XXXXfpjTfeKPCxSyI7O1sHDhzQ1KlTHTIeZ3R1MxEREZo7d66C\ngoLKuhRJ1z8cNXfuXM2cObOsS4Ebot/haczW8wkJCdq5c6fGjBnjkPHc9vCNpxo7dqxT3wUW1fz5\n80v1pEPwLPQ7PI2Zet5qtWrlypUaNmyYw8ZkTwkAADAF9pQAAABTIJQAAABTIJQAAABTcMmvBJ89\nm/PsfIGBFZSWdqWMqnEud56blHt+wcEVy7Aa86Ln3QP9bh9P6nfJvedX1J53iz0lPj55n63OHbjz\n3CT3n5+zuPPvjbnhr9z99+bO8yvq3NwilAAAANdHKAEAAKZAKAEAAKZAKAEAoISGTNmgIVMKvvAe\nCkcoAQAApkAoAQAApkAoAQCZSdPeAAAS1klEQVQApkAoAQAApkAoAQAApkAoAQAApkAoAQAApkAo\nAQAApkAoAQAApuBT1gUAcC03n7VyQXSHMqwEMB+eHyXDnhIAAGAKhBIAAGAKhBIAAGAKhBIAAGAK\nhBIAAGAKhBIAAGAKTvlKcFZWlsaOHavU1FRlZmZq6NChqlevnqKjo2WxWFS/fn29+uqr8vLy0uzZ\ns7Vp0yb5+Pho7NixatKkiTNKAlBCN3/VEQCcwSmhZM2aNQoICNC0adOUlpamnj17KjQ0VFFRUWrV\nqpUmTJigxMREhYSEaPv27VqxYoVOnTqlESNGKD4+3hklAQAAk3NKKOncubPCw8Ntt729vZWcnKyW\nLVtKktq0aaOtW7eqdu3aat26tSwWi0JCQpSdna3z588rKCjIGWUBAOAw7D10PKeEkltvvVWSdPny\nZY0cOVJRUVGaOnWqLBaL7f709HRdvnxZAQEBObZLT08vNJQEBlaQj493jmXBwRUdPAvzcOe5Se4/\nP0cwa8/f/KK89s0eDhvXDHNzFneem6OYtd+Lqig1u+L87FWUuTntNPOnTp3SsGHDNGDAAHXr1k3T\npk2z3ZeRkaFKlSrJ399fGRkZOZZXrFh48WlpV3LcDg6uqLNn0x1XvIm489yk3PNz5ydmSbhCzzuq\nHjPOzVHod/u4Qr/bw96aXXV+9ihqzzvl2zfnzp3TkCFDNHr0aPXp00eS1KhRIyUlJUmStmzZorCw\nMDVv3lzff/+9rFarTp48KavVyqEbAAA8lFP2lLz77ru6dOmS5s6dq7lz50qSYmJiFBcXpxkzZqhO\nnToKDw+Xt7e3wsLC1K9fP1mtVk2YMMEZ5QAAABfglFAybtw4jRs3LtfyxYsX51o2YsQIjRgxwhll\nAAAAF8LJ0wAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAA\ngCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCkQSgAAgCn4lHUBAAC4iiFTNpR1CW7Nrj0lsbGxuZaN\nGTPG4cUAAOAuhkzZYPsH+xS4pyQmJka//fab9u/fryNHjtiWX7t2Tenp6U4vDgAAeI4CQ8nQoUOV\nmpqqSZMmafjw4bbl3t7eqlu3rtOLAwAAnqPAUFKjRg3VqFFDa9as0eXLl5Weni7DMCRJV65cUUBA\nQKkUCQAA3J9dH3SdN2+e5s2blyOEWCwWJSYmOq0wAADgWewKJStWrFBCQoKCgoKcXQ8AAPBQdoWS\natWqqXLlys6uBYALu/kbBguiO5RhJQBclV2h5K677tKAAQPUqlUr+fn52Zbf/OFXAACAkrArlFSt\nWlVVq1Z1di0AAMCD2RVK2CMCAACcza5QEhoaKovFkmNZlSpVtHnzZqcUBQAAPI9doeTQoUO2n7Oy\nspSQkKDdu3c7rSgAAOB5inxBPl9fX3Xp0kXvvvuuM+oBYCJcswNAabIrlKxevdr2s2EYOnLkiHx8\nuMAwAABwHLuSRVJSUo7bgYGBevvtt51SEAAA8Ex2hZLJkycrKytLx44dU3Z2turXr8+eEgAA4FB2\nJYv9+/dr5MiRCggIkNVq1blz5zRnzhw1bdrU2fUBAAAPYVcoiYuL01tvvWULIbt371ZsbKxWrlzp\n1OIAAIDn8LJnpStXruTYK9KsWTNdvXrVaUUBAADPY1coqVy5shISEmy3ExISFBAQ4LSiAACA57Hr\n8E1sbKyeffZZxcTE2JYtW7bMaUUBAADPY9eeki1btqh8+fLauHGjPvroIwUFBWn79u2Fbrdnzx5F\nRkZKko4fP67+/ftrwIABevXVV2W1WiVJs2fPVp8+fRQREaG9e/eWYCoAAMCV2RVKli9frqVLl6pC\nhQoKDQ3VqlWrtHjx4gK3mT9/vsaNG2f77MnkyZMVFRWlJUuWyDAMJSYmKjk5Wdu3b9eKFSs0Y8YM\nvfbaayWfEQAAcEl2Hb7JysqSr6+v7fbNP+enZs2amjVrll5++WVJUnJyslq2bClJatOmjbZu3ara\ntWurdevWslgsCgkJUXZ2ts6fP6+goKACxw4MrCAfH+8cy4KDK9ozFZfkznOT3H9+juBqPV/S2sw8\nt5Jy57k5iqv1uz0Kq9/V51eQoszNrlDSqVMnDR48WF26dJHFYtH69evVsWPHArcJDw9XSkqK7bZh\nGLYrDd96661KT0/X5cuXc3xg9sbywkJJWtqVHLeDgyvq7Nl0e6bictx5blLu+bnzE7MkXK3nS1Kb\n2edWEvS7fVyt3+1RUP3uML/8FLXn7Qolo0eP1tdff60dO3bIx8dHgwYNUqdOnYpUmJfXf48UZWRk\nqFKlSvL391dGRkaO5RUr8iQFAJgHF6YsPXafK75z587q3LlzsR+oUaNGSkpKUqtWrbRlyxbdf//9\nqlmzpqZNm6Z//vOf+v3332W1WgvdSwIAANxTqV3AZsyYMRo/frxmzJihOnXqKDw8XN7e3goLC1O/\nfv1ktVo1YcKE0ioHgBPd/M5yQXSHMqwEgCtxaiipUaOGli9fLkmqXbt2nt/YGTFihEaMGOHMMgAA\ngAvgUr8AADgZew/tY9d5SgAAAJyNUAIAAEyBwzcAcuDrjwDKCntKAACAKRBKAACAKRBKAACAKfCZ\nkiLI71g7X+8CAKDkCCWF4EN/AACUDg7fAAAAUyCUAAAAUyCUAAAAUyCUAAAAU+CDrgAA5IEvOpQ+\n9pQ4wJApG2heAIBd+JuRP0IJAAAwBUIJAAAwBUIJAAAwBT7oCoDj2wBMgVCSD16kAQAoXRy+AeBU\nfNMAgL0IJQAAwBQIJQAAwBT4TMlN2MUMAEDZIZQ40M2hZkF0hzKsBAAA10MoAQDg/yvNPea8kc2N\nz5QAAABTYE8JgFLBu0IAhfH4UMKHW+HJ6H8AZsLhGwAAYAoeuaeEd4cAgBvM8DeBw5vXeWQoKQ00\nGMzKDC/AAJAXQgngAQgiAFwBoQRwU64SRNiriLJg5ueHJz8nCCWlwJMbDKXPzC+2AFAQU4QSq9Wq\niRMn6vDhw/Lz81NcXJxq1arlkLHN9gJ9o56bwwmhBZ4mv+dlXs8P4Ibivla6cl+5cu3FYYpQkpCQ\noMzMTH366afavXu3pkyZonfeeaesy3Iqs4UluB537qGi/PHJ7/fgKS/insqd+z8vnvLm1RShZOfO\nnXr44YclSc2aNdP+/fuLPIa7NGhRXmB5MYYnyO/FuLDnfGHPD095kcd/ucvfiZsVpc/zuj+/dYqz\nJ6qo2+XFYhiGUaIRHCAmJkaPPvqo2rZtK0lq166dEhIS5ONjiswEAABKgSnO6Orv76+MjAzbbavV\nSiABAMDDmCKUNG/eXFu2bJEk7d69Ww0aNCjjigAAQGkzxeGbG9+++emnn2QYhl5//XXVrVu3rMsC\nAAClyBShBAAAwBSHbwAAAAglAADAFFz2Ky7OPAtsWcnKytLYsWOVmpqqzMxMDR06VPXq1VN0dLQs\nFovq16+vV199VV5erpsl//jjD/Xq1UsLFiyQj4+PW83N2eh510TPFx8975pK0vMuO+ubzwL70ksv\nacqUKWVdUomtWbNGAQEBWrJkiebPn6/Y2FhNnjxZUVFRWrJkiQzDUGJiYlmXWWxZWVmaMGGCypUr\nJ0luNbfSQM+7Hnq+ZOh511PSnnfZUOKIs8CaTefOnfXCCy/Ybnt7eys5OVktW7aUJLVp00Y//PBD\nWZVXYlOnTlVERISqVKkiSW41t9JAz7seer5k6HnXU9Ked9lQcvnyZfn7+9tue3t769q1a2VYUcnd\neuut8vf31+XLlzVy5EhFRUXJMAxZLBbb/enp6WVcZfGsWrVKQUFBthcYSW4zt9JCz7sWer7k6HnX\n4oied9lQ4q5ngT116pQGDRqkHj16qFu3bjmOvWVkZKhSpUplWF3xxcfH64cfflBkZKQOHjyoMWPG\n6Pz587b7XXlupYWedy30fMnR867FET3vsqHEHc8Ce+7cOQ0ZMkSjR49Wnz59JEmNGjVSUlKSJGnL\nli0KCwsryxKL7ZNPPtHixYu1aNEi3X333Zo6daratGnjFnMrLfS8a6HnS46edy2O6HmXPXmaO54F\nNi4uTl999ZXq1KljWxYTE6O4uDhlZWWpTp06iouLk7e3dxlWWXKRkZGaOHGivLy8NH78eLeamzPR\n866Lni8eet51FbfnXTaUAAAA9+Kyh28AAIB7IZQAAABTIJQAAABTIJQAAABTIJQAAABTIJT8xcaN\nG/Xhhx8Wa9ukpCRFRkbmWh4TE6N9+/YVuG1e2znSrFmzNGvWrDzvmzp1qg4ePGjXOKdPn9bTTz9d\n4DrffPONFi9eXOQaUTbo+YLR8+6Hni9YWfY8oeQv9u/fr8uXLzt0zEmTJqlx48YFrrN9+3aHPqa9\nDh06pLNnz+ruu++2a/2qVatq/vz5Ba7z6KOP6ptvvtEff/zhiBLhZPR8weh590PPF6wse971z9db\niGvXrmnixIk6cuSIzp07p4YNG2rGjBkqV66cFi5cqKVLl8rb21vt27dXz549tWzZMklSSEiITp48\nKUkaMWKEJKlDhw76+OOPFRAQoLFjx+r06dM6c+aMHnjgAU2aNCnfGiIjIzV8+HBJ0rx581SuXDkd\nPXpUDRs21PTp0/XGG29Ikvr27asVK1Zoy5Ytmjlzpq5du6YaNWooNjZWgYGB6tChg5o0aaKDBw+q\nefPmql+/voYMGWKrsXv37qpVq5ZiY2N15coVnT9/Xs8884z69++fb20LFixQ9+7dJV2/bsGmTZt0\n4cIFnTlzRhEREUpNTdW2bdsUEBCg999/X2fPntWgQYO0YcMGRUdHy9/fX8nJyTp9+rSGDRum3r17\nS7resJ988olGjhxZkv8+FAM9T897GnrefXre7feU7Nq1S76+vvr000/17bffKj09XZs3b9bevXu1\nZMkSrVy5UmvWrFFycrL+/PNPRUREKCIiwvZLz8umTZt0991369NPP9X69eu1Y8cOJScn213PhAkT\n9NVXX+nkyZP6/vvvNW7cOEnSihUrdP78eb355pv64IMPtHr1arVu3VrTp0+3bd+mTRutX79ekZGR\n+uKLLyRdv2jVrl271LZtW61YsULPP/+84uPj9fHHH9ueCHkxDEObNm3Kcdrfffv2ae7cufrggw80\nefJktWnTRmvXrpUkfffdd7nG+P3337VkyRK98847OR4rLCxMGzZssOt3Asei5+l5T0PPu0/Pu/2e\nkvvuu08BAQH65JNP9Msvv+jXX3/VlStXtGPHDrVv314VK1aUJC1cuFDS9WONhenatav27t2rhQsX\n6pdfftGFCxd05coVu+qpX7++7rjjDklS3bp1dfHixRz379mzx3axJun6aZYrV65su79p06aSrl8r\nITMzU8ePH9euXbvUoUMH+fn5KTo6Wt99953mzZunn376qcC60tLSJEkVKlSwLWvevLn8/f1tV+Z8\n4IEHJEnVq1fXpUuXco3x0EMPyWKxqEGDBrpw4YJtefXq1XX8+HG7fidwLHqenvc09Lz79Lzbh5LE\nxETNnDlTgwYNUq9evZSWlibDMOTj42O7nLJ0/YM95cuXz7GtxWKR1Wq13c7KypIkLVq0SOvXr9cT\nTzyhBx980HZdBnvccsstOcb/63bZ2dlq3ry53n33XUnS1atXc1wl8+btu3fvrnXr1mnXrl165pln\nJElRUVGqVKmS2rdvr8cee8yWsvPz1ytu+vr6Fnh/fvO5+Xd5Y7u/LkPpoOfpeU9Dz7tPz7v94Zsf\nf/xRXbp0Ue/evVWpUiUlJSUpOztbYWFh2rx5szIyMnTt2jW99NJL2r9/v7y9vXXt2jVJUmBgoH7+\n+WdJ0t69e3X27FlJ0tatW9WvXz91795dV69e1aFDh3I0dXHceNymTZtq9+7dOnbsmCRp7ty5+e6a\n69atm9atW6fjx4+rRYsWttpGjhypTp062a6umZ2dnef2QUFBys7OzvFkcJSUlBTVqlXL4eOicPQ8\nPe9p6Hn36Xm331PSt29fjRo1Sl9++aV8fX3VvHlzpaSkqG/fvho4cKAiIiJktVr1yCOP6MEHH5Sv\nr6/GjBmj22+/XV27dtX69ev12GOP6Z577lGjRo0kSYMHD9bEiRP13nvvyd/fX/fee69SUlJUs2bN\nYtfZsWNH9ejRQ6tWrdLrr7+uqKgoWa1WVa1aVdOmTctzm2rVqikwMFD33nuvLa2OGDFCAwYM0C23\n3KLQ0FBVr15dKSkp+T5umzZt9L//+79q27ZtsWvPS1JSkjp27OjQMWEfep6e9zT0vPv0PFcJ9nCH\nDh3S3LlzNXPmTIeO279/f82ePVu33XabQ8cFSoqeh6dxpZ53+8M3KFhoaKjuuOMOuz9Vbo+vv/5a\n4eHhvDjDlOh5eBpX6nn2lAAAAFNgTwkAADAFQgkAADAFQgkAADAFQgkAADAFQgkAADAFQgkAADCF\n/wef/Pn0bLK5GgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 576x288 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nRESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREksBQQkRE\nRJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCRERE\nksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESS\noBJjp9XV1QgPD0dRURGqqqqwaNEiDBw4EGFhYVAoFHB1dcWqVatgZWWF+Ph4ZGZmQqVSITw8HEOG\nDBGjJCIiIpI4UUJJWloa7OzssH79epSXl2PatGlwd3dHSEgIRowYgcjISGRkZMDJyQk5OTlITk7G\n1atXERwcjJSUFDFKIiIiIolTCIIgmHqnlZWVEAQBarUa5eXlCAgIQFVVFbKysqBQKJCeno4TJ07A\n2dkZf/31F1588UUAwDPPPIPt27fDwcGh0f3X1GihUilNXTaRZLHnyZKw3y2XKDMlXbp0AQBUVFRg\nyZIlCAkJQWxsLBQKhf77Go0GFRUVsLOzM9hOo9E0GUrKy28bPHZ07IqSEo2JRyENch4bUHd8jo5d\n27Ea6WLPywP73TiW1O+AvMfX3J4X7Y2uV69exbx58zB16lT4+/vDyurfT1VZWQlbW1uo1WpUVlYa\nLO/alQcpERGRJRIllJSWlmLBggVYvnw5AgICAACDBw9GdnY2ACArKwuenp7w8PDA8ePHodPpUFxc\nDJ1O1+QsCREREcmTKKdv3nvvPdy6dQsJCQlISEgAAERERCA6OhobN27EgAED4OfnB6VSCU9PT8ya\nNQs6nQ6RkZFilENERERmQJQ3uort/nNvlnQ+Tm54jt047Hl5YL8bx5L6HZD3+ER5T0lUVFSdZaGh\noc0sjYiIiKhhjZ6+iYiIwO+//468vDxcunRJv7ympgYajTxTHREREbWPRkPJokWLUFRUhDVr1uCV\nV17RL1cqlXBxcRG9OCIiIrIcjYaSvn37om/fvkhLS0NFRQU0Gg3uvQXl9u3bBtcYISIiImoNoz59\nk5iYiMTERIMQolAokJGRIVphREREZFmMCiXJyclIT0/nNUSIiIhINEZ9+qZ3797o1q2b2LUQERGR\nBTNqpuTBBx/EnDlzMGLECNjY2OiX137zKxEREVFrGBVKevbsiZ49e4pdCxEREVkwo0IJZ0SIiIhI\n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\nYII=\n",
"text/plain": [
"<Figure size 576x288 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiUAAAE/CAYAAACZyLOLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XtUVPXeBvBnmAEVEYHEy9ireUHJ\nSg0J0ggVTbAjerwlkuh67WqKcVIDIdAOKBIdM0GNLPMkpomQlzJNUKQswddXNEjNTCmQFAJ1wJPA\nzH7/cDGvI7cBZsOePc9nLddiNnvv+f7wO8PDb+/ZWyEIggAiIiKidmbV3gUQERERAQwlREREJBEM\nJURERCQJDCVEREQkCQwlREREJAkMJURERCQJDCVEZFI+Pj4YPHhwvf/S09Pr3Wbw4MH4/vvv9dun\npKS0ZclEJBGq9i6AiOQnLCwMkyZNqrO8a9euTW67e/du2NrailEWEUkcQwkRmZydnR2cnZ1btK2T\nk5OJqyEic8HDN0QkKfcevgkKCsKGDRvwwgsvYNiwYfD398exY8f062o0GoSGhmLEiBF46qmnEBkZ\niYqKivYqnYhaiaGEiCTtww8/xN/+9jekpaWhX79+iIiIgFarBQCEh4ejvLwc27dvR1JSEi5fvozl\ny5e3c8VE1FI8fENEJvfPf/4Tq1evNljWpUsXZGVlNXtf3t7emDZtGgDgtddew5QpU3Dt2jXU1NTg\n8OHDOHHiBBwcHAAAcXFx8PHxQXFxMXr16tX6gRBRm2IoISKTW7RoEfz8/AyWWVm1bGL2v/7rv/Rf\n29nZAQBqampw6dIlCIKAsWPH1tnmypUrDCVEZoihhIhMzsnJCX379jXJvqytressEwQBWq0Wtra2\n2LNnT53vt/QkWyJqXzynhIjMUr9+/XD79m1otVr07dtXH4JiY2N5siuRmeJMCRGZXEVFBUpKSuos\n79Spk/4QTGsNGDAATz/9NN58801ERkaiQ4cOWLlyJbRaLbp3726S5yCitsVQQkQmt2bNGqxZs6bO\n8vnz5yM0NNRkz/POO+9g1apVmD9/PhQKBUaNGoXIyEiT7Z+I2pZCEAShvYsgIiIi4jklREREJAkM\nJURERCQJDCVEREQkCQwlREREJAkMJURERCQJDCUN0Gg0WLhwIQCgsLAQPj4+9a43ePDgtiwLQUFB\nyM7OrrNcq9Vi0aJF+M9//qNfdvz4ccybN0//WBAExMXFwc/PD88++yxOnTrVohquXbuGl156qdF1\nvvnmGyQnJ7do/9Q+5NjzlZWVeP311+Hv7w9/f3989dVXLaqBPS9Pcuz56upquLm5YcqUKfp/tTew\nbI4ff/wRERERja6zdetWHD16tNn7bgxDSQNu3ryJc+fOtXcZRtuxYwe8vLzQqVMn6HQ6bNmyBW+8\n8QZ0Op1+nUOHDuHSpUs4cOAANmzYgOXLl6OmpqbZz9WjRw9s3ry50XUmTJiAb775Bn/++Wez90/t\nQ449/+GHH0KtVmP//v3YunUrYmNjUVpa2uznYs/Lkxx7/sKFC3j88cexd+9e/T+lUtns53rsscew\natWqRtcJDAzEpk2bUFVV1ez9N0S2F0/Lzs5GUlISOnbsiEuXLmHw4MF49913YWNjg9TUVHzyySdQ\nKBR45JFHEBkZic6dO+PJJ5/Eo48+ipKSEjg7O+P69etYuHAhli9fjr/++gv/+Mc/cPHiRdjb22PD\nhg1wdHQEAERGRuLs2bNwdHTE6tWroVarcfnyZURFReHGjRuwtbVFREQEhg4dirCwMHh4eOjvejp4\n8GBcuHABCQkJuHbtGgoKClBUVISZM2diwYIFqKqqQkREBPLy8tC7d2+Ul5fXGasgCNi2bRt2794N\nALh06RIuXbqE6OhobNu2Tb/esWPH8Oyzz8LKygr9+vVDr169cPr0aTzxxBP6ddLS0pCZmYkbN27g\n+vXrCAgIQFFRkf5OrB999BFKSkowd+5cHDlyBGFhYbCzs0N+fj6uXbuGhQsXYvr06QDuvklv374d\nixcvFu3/mf4fe75uz3t4eKBfv34AgAceeAAODg4oLS1Ft27d9Ouw580Xe75uz//4448oKyvDtGnT\noFKpsHTpUnh4eBjsKyEhAVevXsWVK1dQVlaGBQsW4IcffsCZM2fg6uqK9957Dzk5OUhMTMS2bdsQ\nFBSExx57DKdOnUJZWRneeustjB49GjY2NhgxYgT279+vfw20miBTJ06cEIYPHy4UFxcLWq1WmD59\nupCRkSGcP39eGD9+vFBWViYIgiCsXLlSWLNmjSAIgjBo0CDhxIkTgiAIwu+//y6MHTtW//XgwYOF\nM2fOCIIgCMHBwUJycrJ+m7179wqCIAjJycnCa6+9JgiCIEyfPl04dOiQIAiCcPr0aWHMmDHCnTt3\nhNDQUCE1NVVf56BBgwRBEIT169cLM2bMEO7cuSOUlpYKw4cPF27evCl89NFHwtKlSwVBEITLly8L\njz32mL7GWj/99JMwffr0en8Gc+bM0T+eP3++cPz4cf3jJUuWCPv27TPYJjU1VRgzZoyg0WiEwsJC\nYdCgQUJWVpYgCIIwZ84c4fDhwwY/m9DQUGHhwoWCTqcTzp8/L3h4eOj3de7cOWHKlCkN/yeRSbHn\n6/b8vb766ivhmWeeEaqrqw2Ws+fNF3u+bs/v2LFDSEhIEKqqqoT8/Hxh1KhRwp9//mmwzfr164Vp\n06YJ1dXVQnZ2tuDq6ipcvHhRqK6uFp555hnh3LlzBvudM2eOEBMTIwiCIGRkZAhTp07V7ys9PV3/\n8zAFWR++cXFxQc+ePWFlZYUBAwbg5s2bOHnyJMaOHatPv7NmzcKJEyf02wwbNqzefXXv3h1Dhw4F\nAAwcOFCfZDt27IjJkycDAKZMmYKcnBxUVlbit99+w4QJEwAAw4cPR9euXfHrr782Wq+npydsbGz0\nf9FpNBrk5ORg4sSJAICHHnoIjz/+eJ3trly5gp49ezb589DpdFAoFPrHgiDUezt5Nzc32NnZoXfv\n3gCAkSNHAgB69+6NW7du1Vn/qaeegkKhwKBBg3Djxg398t69e6OgoKDJush02PP1+/rrr7F69Wqs\nX78eKlXdCWL2vPlizxsKCAjAokWLYG1tjSFDhmDo0KH43//93zrrPfXUU1CpVFCr1XB2dsbAgQOh\nUqnQo0cP3Lx5s876Tz/9NIC7P28xe17WoaRDhw76rxUKBQRBMDj2Btz9xXzveRUdO3asd1/3vpHV\n7guAwS91QRCgUqn037v/ebRarcG21dXVTdZ77/r313HvuvUtv1/Pnj1x/fp1/ePS0tJ6b1x2/63i\nm9p3bd33Bp7a7e5fRuJiz9e1bds2xMXF4eOPP4arq2u967DnzRd73tCePXvw22+/GdR0f38Dhj1v\nzH4b6nmlUmnSnpd1KKmPh4cHjhw5ok96u3btgqenZ531VCqVUSeB3r59GxkZGQCA1NRUjBo1CnZ2\ndnjwwQfxzTffAAByc3NRWloKFxcXODg44JdffgEApKenN7n/kSNHYv/+/dDpdCgqKqo38fbt2xdF\nRUVN7svb2xv79++HVqtFQUEBrly5gscee6zJ7VqqsLBQfzt5aj+W3PPp6enYunUrduzY0SafoGDP\nS4Ml9/yFCxewZcsWAMCvv/6Kc+fOYcSIEU1u11JFRUUm7XnZnujaEFdXV7zyyisICgpCdXU1Hnnk\nEbz99tt11nvggQegVqsRFBSE2NjYBvdnb2+P9PR0vP/+++jRo4d+3fj4eKxcuRIJCQmwtrZGQkIC\nbGxsMHv2bISEhMDf3x9PPvkknJ2dG603MDAQFy9exMSJE9G7d28MGjSo3jGVl5dDo9GgS5cuDe7L\nz88PZ8+e1U9Drlq1qsG/GEwhOzsb48aNE23/ZBxL7vn169fjzp07ePXVV/XLYmJiRAvj7HlpsOSe\nX7hwIcLDwzFp0iQoFArExcXBzs6u0edvDVP3PO8SLBOffvoprKysMGfOnPYuRW/27NlITEzEAw88\n0N6lkAyx58nSSK3nq6qqEBAQgJ07d8LGxsYk+7S4wzdyNXv2bBw/ftzgojrt6eDBg/D19eWbM4mG\nPU+WRmo9v23bNrz22msmCyQAZ0qIiIhIIjhTQkRERJLAUEJERESSwFBCREREkmCWHwkuKdEYPHZ0\ntEV5+e12qkZcch4bUHd8zs4Nf9TNkrHn5YH9bhxL6ndA3uNrbs/LYqZEpWr+HRDNhZzHBsh/fGKR\n88+NY6P7yf3nJufxNXdssgglREREZP4YSoiIiEgSGEqIiIhIEszyRNf2Mn/NEf3XW8J82rESIiIi\n+eFMCREREUmCaDMlWq0Wb731Fi5fvgylUonY2FgIgoCwsDAoFAq4uLhgxYoVsLKyQmJiIjIzM6FS\nqRAeHo6hQ4eKVRYRERFJlGih5OjRowCAnTt3Ijs7Wx9KQkJC4OnpiaioKGRkZECtViMnJwcpKSko\nLi5GcHAwUlNTxSqLiIiIJEq0UDJ+/HiMGTMGAHD16lV069YNmZmZ8PDwAAB4e3vj+PHj6NevH7y8\nvKBQKKBWq6HValFWVgYnJyexSiMiIiIJEvVEV5VKhdDQUBw+fBjr16/H0aNHoVAoAACdO3eGRqNB\nRUUFHBwc9NvULm8slDg62ta5IEtbXxmxLZ9P7ld9lPv4TEEKPd+WODbLZmn9Dsh7fM0Zm+ifvomL\ni8PSpUvx3HPP4c6dO/rllZWVsLe3h52dHSorKw2Wd+nS+ADuvxyvs3OXOpclFltbPV97jK0t3T8+\nOb8wW0MKPd9WLGls7Pf6WVK/A/IeX3N7XrRP3+zZswdJSUkAgE6dOkGhUODRRx9FdnY2ACArKwvu\n7u5wc3PDd999B51Oh6tXr0Kn0/HQDRERkQUSbaZkwoQJWL58OZ5//nnU1NQgPDwcAwYMQGRkJNau\nXYv+/fvD19cXSqUS7u7umDVrFnQ6HaKiosQqiYiIiCRMtFBia2uL999/v87y5OTkOsuCg4MRHBws\nVimi4IXUiIiITIsXTyMiIiJJYCghIiIiSWAoISIiIklgKCEiIiJJYCghIiIiSWAoISIiIklgKCEi\nIiJJYCghIiIiSWAoISIiIklgKCEiIiJJEP0uwebu3svJExERkXg4U0JERESSwFBCREREksBQQkRE\nRJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCRERE\nksBQQkRERJLAUEJERESSwFBCREREksBQQkRERJKgEmOn1dXVCA8PR1FREaqqqrBgwQIMHDgQYWFh\nUCgUcHFxwYoVK2BlZYXExERkZmZCpVIhPDwcQ4cOFaMkIiIikjhRQsm+ffvg4OCA+Ph4lJeXY+rU\nqXB1dUVISAg8PT0RFRWFjIwMqNVq5OTkICUlBcXFxQgODkZqaqoYJREREZHEiRJK/Pz84Ovrq3+s\nVCqRn58PDw8PAIC3tzeOHz+Ofv36wcvLCwqFAmq1GlqtFmVlZXBychKjLCIiIpIwUUJJ586dAQAV\nFRVYvHgxQkJCEBcXB4VCof++RqNBRUUFHBwcDLbTaDRNhhJHR1uoVEqDZc7OXUw6Bv8le41e19TP\n3db7b29yH58ptEXPSwnHZtksrd8BeY+vOWMzKpRER0cjMjLSYFloaCji4uIa3Ka4uBgLFy5EYGAg\n/P39ER8fr/9eZWUl7O3tYWdnh8rKSoPlXbo0XXx5+W2Dx87OXVBSojFmKKIQ87nbe2xiu398cn5h\ntobUel5MljQ29nv9LKnfAXmPr7k932goiYiIwO+//468vDxcvHhRv7ympgYaTcM/wNLSUsyfPx9R\nUVEYOXIkAGDIkCHIzs6Gp6cnsrKy8OSTT6JPnz6Ij4/HCy+8gD/++AM6nY6HboiIiCxUo6FkwYIF\nKCoqwqpVq7Bo0SL9cqVSiQEDBjS43QcffIBbt25h48aN2LhxI4C7AScmJgZr165F//794evrC6VS\nCXd3d8yaNQs6nQ5RUVEmGhYRERGZG4UgCIIxK1ZUVECj0eDe1dVqtWiFNeb+aS4xpr7mrznS7G22\nhPmYtAZA3tN6AKezjdUWPS8VljQ29nv9LKnfAXmPz6SHb2olJSUhKSnJ4KRUhUKBjIyMFpZJRERE\nZMioUJKSkoL09HSe70FERESiMeoy87169ULXrl3FroWIiIgsmFEzJQ899BACAwPh6ekJGxsb/fJ7\nT34lIiIiag2jQkmPHj3Qo0cPsWshIiIiC2ZUKOGMCBEREYnNqFDi6uqqv0R8re7du+PYsWOiFEVE\nRESWx6hQcv78ef3X1dXVSE9PR25urmhFERERkeUx6tM397K2tsbEiRNx4sQJMeohIiIiC2XUTMme\nPXv0XwuCgIsXL0KlEuUGw0RERGShjEoW2dnZBo8dHR2xbt06UQoiIiIiy2RUKImNjUV1dTUuX74M\nrVYLFxcXzpQQERGRSRmVLPLy8rB48WI4ODhAp9OhtLQUGzZswLBhw8Suj4iIiCyEUaEkJiYG7733\nnj6E5ObmIjo6Grt37xa1uLbWkjsDExERkWkY9emb27dvG8yKDB8+HHfu3BGtKCIiIrI8RoWSrl27\nIj09Xf84PT0dDg4OohVFRERElseowzfR0dF45ZVXEBERoV+2c+dO0YoiIiIiy2PUTElWVhY6deqE\no0eP4t///jecnJyQk5Mjdm1ERERkQYwKJbt27cKOHTtga2sLV1dXpKWlITk5WezaiIiIyIIYFUqq\nq6thbW2tf3zv10RERESmYNQ5JePHj8e8efMwceJEKBQKHDp0COPGjRO7NrNz70eKt4T5tGMlRERE\n5seoULJs2TIcPHgQJ0+ehEqlwty5czF+/HixayMiIiILYvS14v38/ODn5ydmLURERGTBjDqnhIiI\niEhsDCVEREQkCQwlREREJAmihpIzZ84gKCgIAFBQUIDZs2cjMDAQK1asgE6nAwAkJiZixowZCAgI\nwNmzZ8Ush4iIiCRMtFCyefNmvPXWW/ob98XGxiIkJASfffYZBEFARkYG8vPzkZOTg5SUFKxduxZv\nv/22WOUQERGRxIkWSvr06YOEhAT94/z8fHh4eAAAvL298f333+PUqVPw8vKCQqGAWq2GVqtFWVmZ\nWCURERGRhBn9keDm8vX1RWFhof6xIAhQKBQAgM6dO0Oj0aCiosLgbsO1y52cnBrdt6OjLVQqpcEy\nZ+cuJqy+9UxZj9TGZmpyH58pmEPPmxLHZtksrd8BeY+vOWMTLZTcz8rq/ydlKisrYW9vDzs7O1RW\nVhos79Kl6eLLy28bPHZ27oKSEo3pijUBU9UjxbGZ0v3jk/MLszXMoedNxZLGxn6vnzn2e+0VvVty\nNW9zGF9LNbfn2+zTN0OGDEF2djaAu3cddnd3h5ubG7777jvodDpcvXoVOp2uyVkSIiIiqZq/5oj+\nHzVfm82UhIaGIjIyEmvXrkX//v3h6+sLpVIJd3d3zJo1CzqdDlFRUW1VDhEREUmMqKHkwQcfxK5d\nuwAA/fr1Q3Jycp11goODERwcLGYZREREZAbabKaEiIhITniIxvQsPpSwqYiIyFj8nSEuiw8lRGSc\n+j5dcO8bdEs+dUBEdC/e+4aIiIgkgaGEiIiIJIGhhIiIiCSB55SIhMfaSa54oh8RiYUzJURERCQJ\nnCkhIiISAWfMm48zJURERCQJnCkhIpPgX4VE1FoMJUTUIJ7USkRtiaGkDfAvSCIioqZZZCjhX39E\nRETSwxNdiYiISBIYSoiIiEgSLPLwDRERkbFMccif5xYah6GEiAzwDZiI2gsP3xAREZEkMJQQERGR\nJDCUEBERtaH5a47w0hQN4Dklbay2EXmcnaSEb5BEJAUWFUr4xktERCRdFhVKiKjt1ffHAGcKiag+\nsgwlnBEhMg5fK0QkJbIMJeagoV8G/AuSxMYgQmSooevq8LXS9iQRSnQ6HVauXIkLFy7AxsYGMTEx\n6Nu3b7P2Iffm4QmyJCdN/RJgn1N7acvfJcY8l6W9FiQRStLT01FVVYXPP/8cubm5WLNmDTZt2tTe\nZbU7uQctEpdc+odXhyWyHJIIJadOncLTTz8NABg+fDjy8vLauaL209QvEmOmGWuX881c3uQSOurT\n0Nia6unmvD7I/Mi55xtS3+yhMYf/zfUEc4UgCEJ7FxEREYEJEyZg9OjRAIAxY8YgPT0dKpUkMhMR\nERG1AUlc0dXOzg6VlZX6xzqdjoGEiIjIwkgilLi5uSErKwsAkJubi0GDBrVzRURERNTWJHH4pvbT\nNz///DMEQcDq1asxYMCA9i6LiIiI2pAkQgkRERGRJA7fEBERETGUNOHo0aP45JNPAAAJCQlISEio\ns05aWhrCwsLarKbCwkL4+NT/0a78/HzEx8cbLHvzzTeRlpamf3z16lU8//zz8PPzw4IFCwxOMm6O\nHTt2YMeOHY2u8+abb+LatWst2j+1PTn2+6lTpzBjxgxMmTIF8+bNQ1FRUYvqYL/Lkxx7/osvvoCX\nlxemTJmCKVOm4L333mtRHe+//z4yMjIa/L5Op8PChQtb/DukPgwlTcjLy0NFRUV7l2G02NhYvPTS\nSwCAa9eu4dVXX8WhQ4cM1nn77bcRGBiIgwcP4tFHH8XGjRtb9FyzZ8/G7NmzG13n5ZdfxurVq1u0\nf2p7cuz3ZcuWISYmBnv37oW/vz9iYmJa9Fzsd3mSY8/n5eUhLCwMe/fuxd69e/GPf/yjRc/1+uuv\nY9y4cQ1+38rKCs899xw2bNjQov3Xu0+T7Uli/vjjD8yZMwfTpk3DjBkzkJubC+Dup3tmzpyJyZMn\nY968eSgoKAAABAUFITs7G8D/p9RffvkFO3fuxM6dO5GamgoAOHv2LAICAjB27FiDRF1QUIDnn38e\nkyZNwrvvvovaU3VSU1MxadIk+Pv7IywsTJ8oBw8erN/23hTu4+ODdevWYcaMGfjb3/6mv5DcTz/9\nhKlTp2Lq1KkNNsAPP/wAZ2dnODg4AAD279+PcePGYeLEifp1qqurcfLkSfj6+gIApk2bhoMHD9bZ\nV1BQEGJjYzFjxgz4+/vj2LFjeOGFFzBmzBhs3boVgOFfFV5eXoiOjsbf//53TJ8+Hb///jsAYODA\ngSgqKsJvv/1mxP8atRT7vf5+r6qqwuuvvw5XV1d9HcXFxXX2xX43P+z5+nseAH788Ud88cUX8Pf3\nx9KlS3Hz5s06+/Lx8cG//vUvTJs2Dc899xwyMzMxd+5cjB49GgcOHAAAhIWFIS0tDYWFhfj73/+O\nZcuWYdKkSZg3bx5u3LgB4O5r4fDhwyYLdrINJbt378aYMWOQlpaGxYsX49SpU6iqqsIbb7yByMhI\n7Nu3DwEBAXjjjTca3MfAgQMREBCAgIAATJ8+HQDw559/4tNPP0Vqaio+/vhj/X9EYWEhEhISkJaW\nhlOnTiEjIwMXLlzABx98gG3btmH//v3o1KkTEhMTm6zdwcEBu3fvRkBAAJKSkgAAoaGhWLp0Kb74\n4gs8+OCD9W535MgRuLu76x+/+OKLmDlzpsE65eXlsLOz018HxtnZucHpZkEQsHv3bvj6+iImJgaJ\niYnYvn17vS+YkpISjBw5Env27METTzyB7du36783YsQIHD16tMlxU8ux3+vvdxsbG0yZMgXA3anm\nxMREjB8/vt79sd/NC3u+/p4H7r6vv/baa9i3bx969eqFf/7zn/Xur1u3bkhLS8OAAQPw4YcfYsuW\nLYiPj8eHH35YZ93z58/jv//7v/Hll1/C3t4e+/fvBwAolUoMHjwYJ06caHLcxpBtKBk5ciS2bNmC\nJUuW4MaNG5gzZw6uXLkCe3t7DB06FAAwceJE/Pbbb9BoNEbv9+mnn4aNjQ2cnJzg6OioT6A+Pj5w\ncnKCjY0NJk6ciJycHJw8eRJjx46Fo6MjAGDWrFlG/cfVXnLfxcUFN27cQFlZGa5fv46nnnoKwN3Z\njfoUFBSgZ8+eje5bEAQoFAqDZfc/ruXt7Q0AUKvVGDZsGDp16oTevXvj1q1bTdZ9bzJXq9X6v1ZI\nHOz3xlVVVWHp0qWoqanBK6+8Uu867Hfzwp5v2IYNGzBixAgoFAq8+OKL+Pbbb+td796ef+KJJ6BS\nqaBWq+vt+QceeABDhgzR1y1Wz8s2lIwYMQJfffUVvLy8cODAAbz66qvQ6XR11hMEAVqtVv81ANTU\n1DS433uvNKtQKPTb3Lu89oq09z+fIAgG+27o+Tp06KDf//3PA9xNpvVRKBRNXgnXyckJGo1GP+aS\nkhJ079693nWtra31Xxtzhd176763XpVKBSsr2baaJLDfG1ZZWYkXX3wRNTU12LRpk0Ff34v9bl7Y\n8/XTaDT6Q461NTS0v+b0fG3NDdVrqp6X7SvnnXfewb59+zB16lRERUXhp59+Qv/+/XHjxg2cPXsW\nAHDgwAGo1Wo4ODjA0dERv/zyC4C7dy2upVQqG23gWseOHcOtW7dw584dHDhwAKNGjYKHhweOHDmi\nP/a2a9cueHp6AgAcHR1x8eJFCIKAI0cav8mUo6Mj1Go1MjMzAQBffvllvev16dOnyU8WWFtbw93d\nXX/McM+ePfq0LJbCwkL06dNH1OewdOz3hi1btgx9+/bFunXrYGNj0+T6rcV+bxvs+frZ2trio48+\nwpkzZwAAycnJeOaZZ5ocX2sUFRWZrOdle4OZoKAgLFmyBGlpaVAqlYiLi4ONjQ3ee+89REdH4z//\n+Q+6du2q/6jUiy++iLCwMKSmphqcbfzEE08gNDQU3bp1a/T5+vfvj5dffhm3bt3CpEmT4OXlBQB4\n5ZVXEBQUhOrqajzyyCN4++23AQBLlizBq6++im7dumHEiBEoLy9vdP/x8fFYvnw51q1bh+HDh9e7\njo+PD3bu3InAwMBG97VixQqEhYVh06ZN6NWrF9auXdvo+q118uTJFn8kjYzDfq/fTz/9hIyMDAwc\nOBBTp04FAHTv3h2bN29u9Plbg/3eNtjz9VMqlVi3bh1WrlyJv/76Cw899BDeeeedRp+7NbRaLX76\n6SfExcWZZH+8oqvMBAQEYOPGjXBycmrvUgDcPTlq48aNWL9+fXuXQjLEfidLI7WeT09Px6lTpxAa\nGmqS/cn28I2lCg8PF/WvwObVpBuwAAAVRElEQVTavHlzm150iCwL+50sjZR6XqfTYffu3Vi4cKHJ\n9smZEiIiIpIEzpQQERGRJDCUEBERkSQwlBAREZEkmOVHgktKDK/O5+hoi/Ly2+1UjbjkPDag7vic\nnbu0YzXSxZ6XB/a7cSyp3wF5j6+5PS+LmRKVqv6r1cmBnMcGyH98YpHzz41jo/vJ/ecm5/E1d2yy\nCCVERERk/hhKiIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBJE+0iwVqvFW2+9hcuXL0OpVCI2NhaC\nICAsLAwKhQIuLi5YsWIFrKyskJiYiMzMTKhUKoSHh2Po0KFilUVEREQSJVooOXr0KABg586dyM7O\n1oeSkJAQeHp6IioqChkZGVCr1cjJyUFKSgqKi4sRHByM1NRUscoiIiIiiRItlIwfPx5jxowBAFy9\nehXdunVDZmYmPDw8AADe3t44fvw4+vXrBy8vLygUCqjVami1WpSVlUnmtsxERETUNkS9oqtKpUJo\naCgOHz6M9evX4+jRo1AoFACAzp07Q6PRoKKiAg4ODvptapc3FkocHW3rXJBFzldGlPPYAPmPzxTY\n8/Ih57GZiqX1OyDv8TVnbKJfZj4uLg5Lly7Fc889hzt37uiXV1ZWwt7eHnZ2dqisrDRY3qVL4wO4\n/3K8zs5d6lyWWC7kPDag7vjk/MJsDfa8PLDfjWNJ/Q7Ie3zN7XnRPn2zZ88eJCUlAQA6deoEhUKB\nRx99FNnZ2QCArKwsuLu7w83NDd999x10Oh2uXr0KnU7HQzdEREQWSLSZkgkTJmD58uV4/vnnUVNT\ng/DwcAwYMACRkZFYu3Yt+vfvD19fXyiVSri7u2PWrFnQ6XSIiooSqyQiIiKSMNFCia2tLd5///06\ny5OTk+ssCw4ORnBwsFilEBERkRngxdOIiIhIEhhKiIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBIY\nSoiIiEgSGEqIiIhIEhhKiIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBIYSoiIiEgSGEqIiIhIEhhK\niIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBIYSoiIiEgSGEqI\niIhIEhhKiIiISBIYSoiIiEgSGEqIiIhIEhhKiIiISBJUYuy0uroa4eHhKCoqQlVVFRYsWICBAwci\nLCwMCoUCLi4uWLFiBaysrJCYmIjMzEyoVCqEh4dj6NChYpREREREEidKKNm3bx8cHBwQHx+P8vJy\nTJ06Fa6urggJCYGnpyeioqKQkZEBtVqNnJwcpKSkoLi4GMHBwUhNTRWjJCIiIpI4UUKJn58ffH19\n9Y+VSiXy8/Ph4eEBAPD29sbx48fRr18/eHl5QaFQQK1WQ6vVoqysDE5OTmKURURERBImSijp3Lkz\nAKCiogKLFy9GSEgI4uLioFAo9N/XaDSoqKiAg4ODwXYajabJUOLoaAuVSmmwzNm5i4lHIR1yHhsg\n//GZAntePuQ8NlOxtH4H5D2+5ozNqFASHR2NyMhIg2WhoaGIi4trcJvi4mIsXLgQgYGB8Pf3R3x8\nvP57lZWVsLe3h52dHSorKw2Wd+nSdPHl5bcNHjs7d0FJicaYoZgdOY8NqDs+Ob8wW4M9Lw/sd+NY\nUr8D8h5fc3u+0VASERGB33//HXl5ebh48aJ+eU1NDTSahn+ApaWlmD9/PqKiojBy5EgAwJAhQ5Cd\nnQ1PT09kZWXhySefRJ8+fRAfH48XXngBf/zxB3Q6HQ/dEBERWahGQ8mCBQtQVFSEVatWYdGiRfrl\nSqUSAwYMaHC7Dz74ALdu3cLGjRuxceNGAHcDTkxMDNauXYv+/fvD19cXSqUS7u7umDVrFnQ6HaKi\nokw0LCIiIjI3CkEQBGNWrKiogEajwb2rq9Vq0QprzP3TXJY09SU3nM42DnteHtjvxrGkfgfkPT6T\nHr6plZSUhKSkJIOTUhUKBTIyMlpYJhEREZEho0JJSkoK0tPTeb4HERERicaoy8z36tULXbt2FbsW\nIiIismBGzZQ89NBDCAwMhKenJ2xsbPTL7z35lYiIiKg1jAolPXr0QI8ePcSuhYiIiCyYUaGEMyJE\nREQkNqNCiaurq/4S8bW6d++OY8eOiVIUERERWR6jQsn58+f1X1dXVyM9PR25ubmiFUVERESWx6hP\n39zL2toaEydOxIkTJ8Soh4iIiCyUUTMle/bs0X8tCAIuXrwIlUqUGwwTERGRhTIqWWRnZxs8dnR0\nxLp160QpiIiIiCyTUaEkNjYW1dXVuHz5MrRaLVxcXDhTQkRERCZlVLLIy8vD4sWL4eDgAJ1Oh9LS\nUmzYsAHDhg0Tuz4iIiKyEEaFkpiYGLz33nv6EJKbm4vo6Gjs3r1b1OKIiIjIchj16Zvbt28bzIoM\nHz4cd+7cEa0oIiIisjxGhZKuXbsiPT1d/zg9PR0ODg6iFUVERESWx6jDN9HR0XjllVcQERGhX7Zz\n507RiiIiIiLLY9RMSVZWFjp16oSjR4/i3//+N5ycnJCTkyN2bURERGRBjAolu3btwo4dO2BrawtX\nV1ekpaUhOTlZ7NqIiIjIghgVSqqrq2Ftba1/fO/XRERERKZg1Dkl48ePx7x58zBx4kQoFAocOnQI\n48aNE7s2IiIisiBGhZJly5bh4MGDOHnyJFQqFebOnYvx48eLXRsRERFZEKOvFe/n5wc/Pz8xayEi\nIiILZtQ5JURERERi4131mmH+miP6r7eE+bRjJURERPLDmRIiIiKSBFFDyZkzZxAUFAQAKCgowOzZ\nsxEYGIgVK1ZAp9MBABITEzFjxgwEBATg7NmzYpZDREREEiba4ZvNmzdj37596NSpEwAgNjYWISEh\n8PT0RFRUFDIyMqBWq5GTk4OUlBQUFxcjODgYqampYpVERCbGQ5pEZEqizZT06dMHCQkJ+sf5+fnw\n8PAAAHh7e+P777/HqVOn4OXlBYVCAbVaDa1Wi7KyMrFKMqn5a47o/xEREVHriTZT4uvri8LCQv1j\nQRCgUCgAAJ07d4ZGo0FFRYXB3YZrlzs5OTW6b0dHW6hUSoNlzs5dTFh984j93O05trYg9/GZgpR6\n3n/J3nqXm7IeOfeEnMdmKlLq97Yi5/E1Z2xt9ukbK6v/n5SprKyEvb097OzsUFlZabC8S5emiy8v\nv23w2Nm5C0pKNKYr9h7GzISI9dyAuGOTgvvHJ+cXZmu0Zc+3lKnqkeLYTIX9bhxz6HdTkvP4mtvz\nbfbpmyFDhiA7OxvA3bsOu7u7w83NDd999x10Oh2uXr0KnU7X5CyJFPEwDhERUeu12UxJaGgoIiMj\nsXbtWvTv3x++vr5QKpVwd3fHrFmzoNPpEBUV1VblEBERkcSIGkoefPBB7Nq1CwDQr18/JCcn11kn\nODgYwcHBYpZBREREZoAXTyMiIiJJ4GXmG8BzRIiIyFj1/c7gtXuazyJDSUMXfGIQIeIF0YjEwNeV\ncSwylIiFTUeWjP1PRK3FUCISvkETEckDZ9fbjsWHEjYVUcMYrokM8XeGuCw+lLQFvrGTHPDNmIjE\nxlBCRCbHIE7EIN8SvE4JERERSQJnSoiozXEmhSxZbf+z9+viTAkRiYo3rCQiY8l+poRvhkRNa4vX\nCV+LRNQUzpS0Mf7VSEREVD/ZzJTwGDUREZkS/4Bse7IJJfdiIxERUUu05e8P/jFdlyxDCREZhwGe\niKSEoYTIAvAvMiJDUntNSK2e9sJQQiRTnAUhInPDUNJOmIqpvTCsEBnia0I6GEokgAGFiIhqWfLv\nBIYSIiKyCJwRkT6GEiJqV5b8VyERGWIokRi+QZOxGuoVc/5rsL7a+Tqg1uJrwnwwlEgYAwoZy5zf\ndImIajGUmBkGFbI07HkylqWEczm/JhhKzISlvNiIiJqD743yIolQotPpsHLlSly4cAE2NjaIiYlB\n375927ssyZNzWiZqSm3/s/ctE8NIXXL4nSCJUJKeno6qqip8/vnnyM3NxZo1a7Bp06b2LsusyKEZ\niZrS1C8ivg7kjUGkroZ+Jk2Fdqm+ViQRSk6dOoWnn34aADB8+HDk5eW1c0XmrakXrikakH+lklQ0\n9aYMNN2nUn2DJmotY4JcSz7hI9ZrRiEIgmCyvbVQREQEJkyYgNGjRwMAxowZg/T0dKhUkshMRERE\n1Aas2rsAALCzs0NlZaX+sU6nYyAhIiKyMJIIJW5ubsjKygIA5ObmYtCgQe1cEREREbU1SRy+qf30\nzc8//wxBELB69WoMGDCgvcsiIiKiNiSJUEJEREQkicM3RERERAwlREREJAlm+xEXOV4Ftrq6GuHh\n4SgqKkJVVRUWLFiAgQMHIiwsDAqFAi4uLlixYgWsrMw3S/7555+YNm0atmzZApVKJauxiY09b57Y\n8y3HnjdPrel5sx31vVeBXbJkCdasWdPeJbXavn374ODggM8++wybN29GdHQ0YmNjERISgs8++wyC\nICAjI6O9y2yx6upqREVFoWPHjgAgq7G1Bfa8+WHPtw573vy0tufNNpTI8Sqwfn5+eP311/WPlUol\n8vPz4eHhAQDw9vbG999/317ltVpcXBwCAgLQvXt3AJDV2NoCe978sOdbhz1vflrb82YbSioqKmBn\nZ6d/rFQqUVNT044VtV7nzp1hZ2eHiooKLF68GCEhIRAEAQqFQv99jUbTzlW2TFpaGpycnPRvMABk\nM7a2wp43L+z51mPPmxdT9LzZhhK5XgW2uLgYc+fOxZQpU+Dv729w7K2yshL29vbtWF3Lpaam4vvv\nv0dQUBDOnTuH0NBQlJWV6b9vzmNrK+x588Kebz32vHkxRc+bbSiR41VgS0tLMX/+fCxbtgwzZswA\nAAwZMgTZ2dkAgKysLLi7u7dniS22fft2JCcnY9u2bXj44YcRFxcHb29vWYytrbDnzQt7vvXY8+bF\nFD1vthdPk+NVYGNiYvD111+jf//++mURERGIiYlBdXU1+vfvj5iYGCiVynassvWCgoKwcuVKWFlZ\nITIyUlZjExN73nyx51uGPW++WtrzZhtKiIiISF7M9vANERERyQtDCREREUkCQwkRERFJAkMJERER\nSQJDCREREUkCQ8l9jh49ik8++aRF22ZnZyMoKKjO8oiICPz444+NblvfdqaUkJCAhISEer8XFxeH\nc+fOGbWfa9eu4aWXXmp0nW+++QbJycnNrpHaB3u+cex5+WHPN649e56h5D55eXmoqKgw6T5XrVqF\nxx57rNF1cnJyTPqcxjp//jxKSkrw8MMPG7V+jx49sHnz5kbXmTBhAr755hv8+eefpiiRRMaebxx7\nXn7Y841rz543/+v1NqGmpgYrV67ExYsXUVpaisGDB2Pt2rXo2LEjtm7dih07dkCpVGLs2LGYOnUq\ndu7cCQBQq9W4evUqACA4OBgA4OPjg08//RQODg4IDw/HtWvXcP36dYwcORKrVq1qsIagoCAsWrQI\nAJCUlISOHTvi0qVLGDx4MN5991288847AICZM2ciJSUFWVlZWL9+PWpqavDggw8iOjoajo6O8PHx\nwdChQ3Hu3Dm4ubnBxcUF8+fP19c4efJk9O3bF9HR0bh9+zbKysrw8ssvY/bs2Q3WtmXLFkyePBnA\n3fsWZGZm4saNG7h+/ToCAgJQVFSEEydOwMHBAR999BFKSkowd+5cHDlyBGFhYbCzs0N+fj6uXbuG\nhQsXYvr06QDuNuz27duxePHi1vz3UQuw59nzloY9L5+el/1MyenTp2FtbY3PP/8chw8fhkajwbFj\nx3D27Fl89tln2L17N/bt24f8/Hz89ddfCAgIQEBAgP6HXp/MzEw8/PDD+Pzzz3Ho0CGcPHkS+fn5\nRtcTFRWFr7/+GlevXsV3332Ht956CwCQkpKCsrIy/Otf/8LHH3+MPXv2wMvLC++++65+e29vbxw6\ndAhBQUH48ssvAdy9adXp06cxevRopKSk4LXXXkNqaio+/fRT/QuhPoIgIDMz0+Cyvz/++CM2btyI\njz/+GLGxsfD29sb+/fsBAN9++22dffzxxx/47LPPsGnTJoPncnd3x5EjR4z6mZBpsefZ85aGPS+f\nnpf9TMkTTzwBBwcHbN++Hb/++iuuXLmC27dv4+TJkxg7diy6dOkCANi6dSuAu8camzJp0iScPXsW\nW7duxa+//oobN27g9u3bRtXj4uKCnj17AgAGDBiAmzdvGnz/zJkz+ps1AXcvs9y1a1f994cNGwbg\n7r0SqqqqUFBQgNOnT8PHxwc2NjYICwvDt99+i6SkJPz888+N1lVeXg4AsLW11S9zc3ODnZ2d/s6c\nI0eOBAD07t0bt27dqrOPp556CgqFAoMGDcKNGzf0y3v37o2CggKjfiZkWux59rylYc/Lp+dlH0oy\nMjKwfv16zJ07F9OmTUN5eTkEQYBKpdLfThm4e2JPp06dDLZVKBTQ6XT6x9XV1QCAbdu24dChQ3ju\nuecwatQo/X0ZjNGhQweD/d+/nVarhZubGz744AMAwJ07dwzuknnv9pMnT8aBAwdw+vRpvPzyywCA\nkJAQ2NvbY+zYsXj22Wf1Kbsh999x09rautHvNzSee3+Wtdvdv4zaBnuePW9p2PPy6XnZH7754Ycf\nMHHiREyfPh329vbIzs6GVquFu7s7jh07hsrKStTU1GDJkiXIy8uDUqlETU0NAMDR0RG//PILAODs\n2bMoKSkBABw/fhyzZs3C5MmTcefOHZw/f96gqVui9nmHDRuG3NxcXL58GQCwcePGBqfm/P39ceDA\nARQUFGDEiBH62hYvXozx48fr766p1Wrr3d7JyQlardbgxWAqhYWF6Nu3r8n3S01jz7PnLQ17Xj49\nL/uZkpkzZ2Lp0qX46quvYG1tDTc3NxQWFmLmzJmYM2cOAgICoNPp8Mwzz2DUqFGwtrZGaGgounXr\nhkmTJuHQoUN49tln8cgjj2DIkCEAgHnz5mHlypX48MMPYWdnh8cffxyFhYXo06dPi+scN24cpkyZ\ngrS0NKxevRohISHQ6XTo0aMH4uPj692mV69ecHR0xOOPP65Pq8HBwQgMDESHDh3g6uqK3r17o7Cw\nsMHn9fb2xv/8z/9g9OjRLa69PtnZ2Rg3bpxJ90nGYc+z5y0Ne14+Pc+7BFu48+fPY+PGjVi/fr1J\n9zt79mwkJibigQceMOl+iVqLPU+Wxpx6XvaHb6hxrq6u6Nmzp9FnlRvj4MGD8PX15ZszSRJ7niyN\nOfU8Z0qIiIhIEjhTQkRERJLAUEJERESSwFBCREREksBQQkRERJLAUEJERESSwFBCREREkvB/02Id\nNrKbAQcAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x288 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for route in ['C', 'D', 'E']:\n",
" g = sns.FacetGrid(sequenced.query(f\"route == '{route}'\"),\n",
" row=\"direction\", col=\"scheduled_interval\")\n",
" g.map(plt.hist, \"actual_interval\", bins=np.arange(40) + 0.5)\n",
" g.set_titles('{row_name} ({col_name:.0f} min)')\n",
" g.set_axis_labels('actual interval (min)', 'count')\n",
" g.fig.set_size_inches(8, 4)\n",
" g.fig.suptitle(f'{route} line', y=1.05, fontsize=14)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that for each line and schedule, the distribution of observed arrival intervals is nearly Gaussian, is peaked near the scheduled arrival interval, and has a standard deviation that is smaller near the beginning of the route (southbound for C, northbound for D/E) and larger near the end.\n",
"Even without a statistical test, it's clear by eye that the actual arrival intervals are definitely **not** exponentially distributed, which is the basic assumption on which the waiting time paradox rests.\n",
"\n",
"We can make use of the wait time simulation function we used above in order to find the average wait time for each bus line, direction, and schedule:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"route direction scheduled_interval\n",
"C northbound 10.0 7.8 +/- 12.5\n",
" 12.0 7.4 +/- 5.7\n",
" 15.0 8.8 +/- 6.4\n",
" southbound 10.0 6.2 +/- 6.3\n",
" 12.0 6.8 +/- 5.2\n",
" 15.0 8.4 +/- 7.3\n",
"D northbound 10.0 6.1 +/- 7.1\n",
" 12.0 6.5 +/- 4.6\n",
" 15.0 7.9 +/- 5.3\n",
" southbound 10.0 6.7 +/- 5.3\n",
" 12.0 7.5 +/- 5.9\n",
" 15.0 8.8 +/- 6.5\n",
"E northbound 10.0 5.5 +/- 3.7\n",
" 12.0 6.5 +/- 4.3\n",
" 15.0 7.9 +/- 4.9\n",
" southbound 10.0 6.8 +/- 5.6\n",
" 12.0 7.3 +/- 5.2\n",
" 15.0 8.7 +/- 6.0\n",
"Name: actual, dtype: object"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped = sequenced.groupby(['route', 'direction', 'scheduled_interval'])\n",
"sims = grouped['actual'].apply(simulate_wait_times)\n",
"sims.apply(lambda times: \"{0:.1f} +/- {1:.1f}\".format(times.mean(), times.std()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The average waiting times are are perhaps a minute or two longer than half the scheduled interval, but not equal to the scheduled interval as the waiting time paradox implied. In other words, the inspection paradox is confirmed, but the waiting time paradox does not appear to match reality."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Final Thoughts\n",
"\n",
"The waiting time paradox has been an interesting launching-point for a discussion that covered simulation, probability, and comparison of statistical assumptions with reality.\n",
"Although we confirmed that real-world bus lines do follow some version of the inspection paradox, the above analysis shows pretty definitively that the core assumption behind the waiting time paradox — that the arrival of buses follows the statistics of a Poisson process — is not well-founded.\n",
"\n",
"In retrospect, this is perhaps not all that surprising: a Poisson process is a memoryless process that assumes the probability of an arrival is entirely independent of the time since the previous arrival.\n",
"In reality, a well-run bus system will have schedules deliberately structured to avoid this kind of behavior: buses don't begin their routes at random times throughout the day, but rather begin their routes on a schedule chosen to best serve the transit-riding public.\n",
"\n",
"The larger lesson here is that you should be careful about the assumptions you bring to any data analysis task.\n",
"A Poisson process is a good description for arrival time data — sometimes.\n",
"But just because one type of data sounds like another type of data, it does not mean that assumptions valid for one are necessarily valid for the other.\n",
"Often assumptions that seem correct on their face can lead to conclusions that don't match reality."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*This post was written entirely in the Jupyter notebook. You can\n",
"[download](http://jakevdp.github.io/downloads/notebooks/WaitingTimeParadox.ipynb)\n",
"this notebook, or see a static view\n",
"[on nbviewer](http://nbviewer.jupyter.org/url/jakevdp.github.io/downloads/notebooks/WaitingTimeParadox.ipynb).*"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "python (conda-root)",
"language": "python",
"name": "conda-root"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment