Skip to content

Instantly share code, notes, and snippets.

@wyseow
Created May 26, 2021 06:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wyseow/9d8fb802337f4243017ca7efaa093d89 to your computer and use it in GitHub Desktop.
Save wyseow/9d8fb802337f4243017ca7efaa093d89 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import random"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Illustrated guide to Hypothesis testing using Python\n",
"This is a hands-on guide to hypothesis testing, where we use both \"hand coded\" and the common statistical libraries, to calculate different statistical test. \n",
"\n",
"I believe that implementing the statistical test manually without package could enforce my understanding and its also something that I notice many blog and medium posts were missing out on. Hopefully this post helps someone who are looking into this area or currently stuck with something.\n",
"\n",
"Now, before we get into hypothesis testing, we have to talk about normal distribution, which is the biggest cog in the whole scheme of things, and some handy functions that we will use to calculate the important components of hypothesis testing."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normal Distribution"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"#generate samples of normal distribution\n",
"from scipy.stats import norm\n",
"import scipy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generating random numbers \n",
"We could use numpy's rvs function to generate random samples for different types of distribution.\n",
"To generate them for normal distribution using the parameters to control mean and std dev:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"r = norm.rvs(size=1000,loc=0, scale=1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.66212478, -1.65339907, 1.45667044, -0.04042188, -1.31145899,\n",
" -2.18003051, 0.65521803, -0.50513195, -0.61816519, 0.91537042])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualizing distribution using histogram\n",
"Histogram shows the frequency of the values."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#visualize the normal distribution samples\n",
"plt.hist(r)\n",
"plt.title('Histogram of normal distributed samples')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Probability Density Function (PDF)\n",
"If we normalize the proportion, we would get a PDF where we could estimate the probability of the random variable being a certain value. PDF = normalized version of a histogram."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# linspace = Return evenly spaced numbers over a specified interval. params = start, stop, number of samples.\n",
"# used to generate uniform distribution samples\n",
"# in this case, we generate the ppf(std dev of the norm) for the plotting of X axis\n",
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.plot(x, norm.pdf(x))\n",
"plt.hist(r, density=True, histtype='stepfilled', alpha=0.5)\n",
"plt.axvline(x=0.55,color='r',linestyle='dashed')\n",
"plt.axhline(y=0.342,color='r',linestyle='dashed')\n",
"plt.title('PDF of normal distribution')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It answers the question: under a normal distribution, what's the probablity of X being 1.4? We could use <b>numpy's pdf function</b> to find out:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.14972746563574488"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# prob of 14.97% that random variable X has a value of 1.4\n",
"norm.pdf(1.4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"However, saying that value at that specific point actually feels weird because it's techically a continuous variable. And the correct answer would be 0."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Cumulative distribution function (CDF)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.plot(x, norm.cdf(x))\n",
"plt.fill_between(x[x<=1], 0, norm.cdf(x)[x<=1].flatten(),alpha=0.5)\n",
"plt.title('CDF of normal distribution')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using CDF, we could probe probabilties like PDF but over a interval of values: like what's the probability that X is less or equal 1.0? Or P(x<=X). In the real world, it could mean what's the probability of human's height between an interval."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"0.8413447460685429"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 1.0 refers to the end of the interval, 84% that X <= 1.0\n",
"norm.cdf(1.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Percent Point Function(PPF) - inverse CDF\n",
"It answers the question: given the probability P(x<=X), what's the value of X"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"norm.ppf(0.8413447460685429)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Which statistical test for hypothesis testing?\n",
"<img src='http://datageeko.com/imgs/stats_test_map_v1.jpg' width=700/>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1-sample Hypothesis testing for difference in means\n",
"Use case: When we want to compare a sample mean against a population mean, or a known value."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail hypothesis testing"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"1.959963984540054"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Significant level(α)\n",
"alpha = 0.05/2 \n",
"# Critical value for α\n",
"crit_val = norm.ppf(1-alpha)\n",
"crit_val"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgQAAAE/CAYAAAA5V9tlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3hUVfrA8e+bQu8QEJJAQgmQQBohNCnSRUBBEHRxwYYFd9ffrq6666prWXV1V3cVC66K6yodFREsqEhRJIUAUkMJkIQSOgRIPb8/ZoghpEzITG5m5v08z3mSuXPPvW8g5+adc889R4wxKKWUUsq7+VgdgFJKKaWspwmBUkoppTQhUEoppZQmBEoppZRCEwKllFJKoQmBUkoppdCEQCm3JyJvishf7N8PEpF0q2OqChGZLSLPWB2HUt5GEwKlXEhEaovIOyKyT0TOiEiKiFxbQZ00ERnq6DmMMfcYY56uerRKKW+mCYFSruUHHAAGAo2Bx4D5IhJiYUxKKXUZTQiUciFjTLYx5kljTJoxptAYsxTYC/QobX8R+QBoC3wmImdF5I/27QtE5JCInBKRVSISUayOw13sItJFRL4WkeMiskNEbrJvr2XvvfiN/bWviKwVkcftr+NF5EcROSkiB0XkNRGpVey4RkTuE5FUe0/I0yLSQUR+EJHTIjL/4v4Xb2uIyJ9E5Ki9R+RX5cQ82h7bSfvxIh35WZVSlaMJgVLVSERaAWHAltLeN8bcCuwHxhhjGhhj/m5/aznQCWgJJAMfXsG56wNfAx/ZjzMZeF1Ewo0xucAU4CkR6Qo8AvgCz9qrFwD/B7QA+gBDgPtKnGIEtkSnN/BHYJb9mMFAN+DmYvteZT9WIDAVmCUinUuJOQZ4F7gbaA68BSwRkdqV/fmVUuXThECpaiIi/tj+kL9vjNlembrGmHeNMWeMMTnAk0CUiDSuZAijgTRjzHvGmHxjzAZgETDRfo6fgWeAT4AHgVuNMQX295KMMevs9dKw/WEeWOL4fzfGnDbGbAF+Br4yxuwxxpzCltDElNj/L8aYHGPM98DnwE2lxDwdeMsY85MxpsAY8z6Qgy3pUEo5kSYESlUDEfEBPgBygfuLbV9uvzVwtqxuc3v3/fMisltETgNp9rdaVDKMdkAve9f7SRE5CfwK26f1i96377fMGJNaLIYwEVlqv21xGvhbKec/XOz786W8blDs9QljTHax1/uANmXE/IcSMQeXsa9Sqgr8rA5AKU8nIgK8A7QCRhlj8i6+Z4wp7YmDkkuQ3gJcDwzFlgw0Bk4AUslQDgDfG2OGlbPP68BSYISIXG2MWWPf/gawAbjZGHNGRB4AJlTy/MU1FZH6xZKCtth6FUqL+VljzLOlvKeUciLtIVDK9d4AumIbF3Degf0PA+2LvW6IrZv8GFAP26fzK7EUCBORW0XE31562scMICK3YhsDMA34LfC+iFz8VN8QOA2cFZEuwL1XGENxf7UPZuyP7XbGglL2eRu4R0R6iU19EblORBo64fxKqWI0IVDKhUSkHbYBcdHAoYpuD9g9Bzxm7yJ/EPgvti71DGArsO5KYjHGnAGGYxtMmAkcAl4AaotIW+AV4NfGmLPGmI+AROBle/UHsfVUnMH2R3relcRQzCFsvRyZ2MZV3FPauApjTCJwF/Caff9d2BIWpZSTiTEleyeVUsp1RGQQ8D9jTJDVsSilfqE9BEoppZTShEAppZRSestAKaWUUmgPgVJKKaXQhEAppZRS1MCJiVq0aGFCQkKsDkM5y44dtq+dL5umXil1pbRdeZykpKSjxpgAK2OocQlBSEgIiYmJVoehnOXRR21fn3vO2jiU8iTarjyOiOyzPIaaNqgwLi7OaEKglFLKm4hIkjEmzsoYdAyBUkoppTQhUC524422opRyHm1XygVq3BgC5WGOHbM6AqU8j7Yr5QLaQ6CUUkopTQiUUkop5WBCICIjRWSHiOwSkUfK2e9GETEiElds26P2ejtEZIQzglZKKaWUc1U4hkBEfIGZwDAgHUgQkSXGmK0l9msI/A74qdi2cGxrr0cAbYAVIhJmjClw3o+garQhQ6yOQCnPo+1KuYAjgwrjgV3GmD0AIjIXuB7YWmK/p4EXgIeKbbsemGuMyQH2isgu+/F+rGrgyk385S9WR6CU59F2pVzAkYQgEDhQ7HU60Kv4DiISCwQbYz4XkYdK1F1Xom7gFcaqlHKyY2dzWJ16lPN5v3TaCRDbrilhrRpaF5hSqtpV+bFDEfEB/glMq8IxpgPTAdq2bVvVkFRNcu21tq/Ll1sbhypy8lwuX/x8iKWbDvLjnmMUFJY+W2lYqwZc170No6Na0yGgQTVHqcql7Uq5gCMJQQYQXOx1kH3bRQ2BbsBKEQG4ClgiImMdqAuAMWYWMAtsUxdXIn5V050/b3UEyi6voJA3V+7m1W93kVtQSLvm9bhnYHuu7daaFg1qF+2Xk1/A9zuzWLrxIK98s5OXV+xkeHgrnhnXjZYN61j4E6gi2q6UCziSECQAnUQkFNsf88nALRffNMacAlpcfC0iK4EHjTGJInIe+EhE/oltUGEnYL3zwldKOWLHoTM8uGAjmzNOMSaqDXcPaE9Em0bYk/jL/LpPfX7dJ4RDpy6wIPEAr363ixEvr+Kp67sxOrJ1mfWUUu6rwoTAGJMvIvcDXwK+wLvGmC0i8hSQaIxZUk7dLSIyH9sAxHxghj5hoFT1KSg0vLVqN698nUrDOn68OSWWkd1aO1z/qsZ1+M2QTlzbvTV/WLCR38zZwPKfD/L09d1oXqxXQSnl/nS1Q+VagwbZvq5caWUUXim/oJD/m7+RzzZmMqr7VVX+I55fUMis1Xt45etUApvWZc5dvbmqsd5CsIS2K49TE1Y71LUMlGuNHm11BF6peDLw8Mgu3DuoQ5WP6efrw32DOtIrtBlT301g8qwfmTO9N60b13VCxKpStF0pF9AeAqU8TH5BIQ/MS2HppoM8em0X7h5Y9WSgpKR9J5j67nqaN6jFnLt606aJJgVKVUVN6CHQtQyU8iD5BYX8zp4M/GmUa5IBgB7tmvLfO+I5fjaXybPWkXlSR70r5e40IVCuNWjQL/c7lcv99bOtfL7pIH8e1ZXpA1yTDFwU29aWFJzIzuXX764nOyffpedTxWi7Ui6gCYFSHuKTDRl8sG4f0we0564B7avlnDFtm/LWrT3Yk3WWRxdvpqbdglRKOU4TAqU8wM7DZ3h08WbiQ5rxxxGdq/XcfTu24A/DO7NkYyYfrNtXredWSjmPWyYEhw4dYvLkyXTo0IEePXowatQodu7cWeq+ffv2BSAtLY2PPvqoaHtiYiK//e1vr+j8gwYNwhkDH511nPLcfPPNREZG8vLLL5e735///GeCg4Np0KDsKWpzc3O57bbb6N69O1FRUaws9shTbm4u06dPJywsjC5durBo0SJn/QhF0tLS6Natm9OP6+7O5uRzz/+SqF/bj9duicHPt/qb9b0DOzC4S0ueXrqVDftPVPv5vZ1eEx1X1jVx1apVxMbG4ufnx8KFC8usP2/ePCIjI4mIiODhhx++5L358+cTHh5OREQEt9xySxlHqBoRWSkiLhl86HaPHRpjGDduHFOnTmXu3LkAbNy4kcOHDxMWFla0X35+Pn5+fvzwww/AL7/8F/+T4uLiiIuzdECnyx06dIiEhAR27dpV4b5jxozh/vvvp1OnTmXu8/bbbwOwefNmjhw5wrXXXktCQgI+Pj48++yztGzZkp07d1JYWMjx48ed9nNcqYu/A57MGMPDizaRdjSbD+/sTctG1swL4OMj/POmKEa/uoYZHyaz9Lf9aVa/liWxeBu9JjquvGti27ZtmT17Ni+99FKZ9Y8dO8ZDDz1EUlISAQEBTJ06lW+++YYhQ4aQmprKc889x9q1a2natClHjhxx5Y/iMBHxdXRCQLfrIfjuu+/w9/fnnnvuKdoWFRVF//79WblyJf3792fs2LGEh4cDFH3ifeSRR1i9ejXR0dG8/PLLrFy5ktH2Z3nPnj1b9Mk3MjKy6NPtvffeS1xcHBERETzxxBPlxvXFF18wceLEotfFj+/IcYp/Ml+4cCHTpk0DICsrixtvvJGePXvSs2dP1q5de1ndCxcuFMUfExPDd999B8Dw4cPJyMggOjqa1atXlxt/7969ad26/Bnstm7dyuDBgwFo2bIlTZo0Kcrm3333XR599FEAfHx8aNHCPpv1TTfZCvDkk09e0ti6detGWloaaWlpdO3albvuuouIiAiGDx/Oeftc7UlJSURFRREVFcXMmTOL6hYUFPDQQw/Rs2dPIiMjeeuttwBK/R3wZB/+tJ/PNx3kwRGd6dOhuaWxNKlXi9d/FcvRs7n8YX6KjidwpWLtSq+JzrkmhoSEEBkZiY9P2X8W9+zZQ6dOnQgICABg6NChRf82b7/9NjNmzKBp06aA7RpZUslezpdeeoknn3zy4svOIvKCiKwXkZ0i0h9AROqKyFwR2SYiHwNFz/iKyHAR+VFEkkVkgYg0sG9Psx8rGfjlP6ECbvfx6eeff6ZHjx5lvp+cnMzPP/9MaGjoJduff/55XnrpJZYuXQpwSXf3008/TePGjdm8eTMAJ07YujyfffZZmjVrRkFBAUOGDGHTpk1ERkaWet6hQ4cyffp0srOzqV+/PvPmzWPy5MmVPk5Jv/vd7/i///s/rr76avbv38+IESPYtm3bJfvMnDkTEWHz5s1s376d4cOHs3PnTpYsWcLo0aNJSUlx6FwViYqKYsmSJdx8880cOHCApKQkDhw4UPQp5C9/+QsrV66kQ4cOvPbaa7Rq1Qruu8+hY6empjJnzhzefvttbrrpJhYtWsSUKVO47bbbeO211xgwYAAPPfTLytrvvPMOjRs3JiEhgZycHPr168fw4cOBsn8HPM3BU+d5btk2+ndqwT0ufqLAUZFBTXjk2i48tXQrSzZmcn20rnbuEsXalV4Tq++a2LFjR3bs2EFaWhpBQUF88skn5ObmAhTdounXrx8FBQU8+eSTjBw5srKn8DPGxIvIKOAJYChwL3DOGNNVRCKBZAARaQE8Bgw1xmSLyMPA74Gn7Mc6ZoyJrczJ3a6HoCLx8fGV/kOwYsUKZsyYUfT6YoY3f/58YmNjiYmJYcuWLWzdurXMY/j5+TFy5Eg+++wz8vPz+fzzz7n++usrfZzSYrv//vuJjo5m7NixnD59mrNnz16yz5o1a5gyZQoAXbp0oV27dmXeP6yK22+/naCgIOLi4njggQfo27cvvr6+5Ofnk56eTt++fUlOTqZPnz48+OCDtkrnztlKBUJDQ4mOjgagR48epKWlcfLkSU6ePMmAAQMAuPXWW4v2/+qrr/jvf/9LdHQ0vXr14tixY6SmpgJX9jvgjp74dAsFxvDsDd3x8ak5iw1N7RtCVHATnvpsKyfP5VodjmdysF2BXhOdeU1s2rQpb7zxBpMmTaJ///6EhITg6+sL2G7JpKamsnLlSubMmcNdd93FyZMnK3uKxfavSUCI/fsBwP8AjDGbgE327b2BcGCtiKQAU4F2xY41r7Ind7segoiIiHIHfNSvX98p59m7dy8vvfQSCQkJNG3alGnTpnHhwoVy60yePJnXXnuNZs2aERcXR8OGDR0+TvHV44q/X1hYyLp166hTx3n3hgsKCoo+UYwdO5annnqqgho2fn5+lwzE6du3L2FhYTRv3px69eoxfvx4ACZOnMg777xj22nUKNvXlSvx8/OjsLCwqH7xn7N27V/m2Pf19S26ZVAWYwyvvvoqI0aMuGT7ypUrnfY7UJN98fMhvtp6mEeu7ULb5vWsDucSvj7C8+O7M/rVNfxt2Tb+PiHK6pA8T7F2pdfE6jVmzBjGjBkDwKxZs4oSgqCgIHr16oW/vz+hoaGEhYWRmppKz549i+qWdw20y7F/LaDiv88CfG2MubmM97Md/JGKuF0PweDBg8nJyWHWrFlF2zZt2lThPfKGDRty5syZUt8bNmzYJfenT5w4wenTp6lfvz6NGzfm8OHDLF++vMLYBg4cSHJyMm+//XZR15ijx2nVqhXbtm2jsLCQjz/+uGj78OHDefXVV4tel9bV1b9/fz788EPA1m21f/9+Oncu+9EzX19fUlJSSElJcTgZADh37hzZ2bbfsa+//ho/Pz/Cw8MREcaMGVPU5fjNN9+Uev8+JCSE5ORkwNaNuXfv3nLP16RJE5o0acKaNWsAin5GgBEjRvDGG2+Ql5dX9HNfjM3TnbmQxxNLfqZr60bccXXN7Anp2roRd/Vvz/zEdH7cfczqcDyaXhOrfk2sjIuDBU+cOMHrr7/OnXfeCcANN9xQdA08evQoO3fupH37S+cDadWqFUeOHOHYsWPk5OQU3a6pwCrgFgAR6QZcvLeyDugnIh3t79UXkbDSD+EYt0sIRISPP/6YFStW0KFDByIiInj00Ue56qqryq0XGRmJr68vUVFRlz1u8thjj3HixAm6detGVFQU3333HVFRUcTExNClSxduueUW+vXrV2Fsvr6+jB49muXLlxcNnnH0OM8//zyjR4+mb9++lwzu+/e//01iYiKRkZGEh4fz5ptvXlb3vvvuo7CwkO7duzNp0iRmz559ySduR/zxj38kKCiIc+fOERQUVDTQZcmSJTz++OOArSHExsbStWtXXnjhBT744IOi+i+88AJPPvkkkZGRfPDBB/zjH/+47Bw33ngjx48fJyIigtdee+2SEdBlee+995gxYwbR0dGXDFK78847CQ8PJzY2lm7dunH33XeTn+8dM+W9+OUOjpzJ4bnx3fG34BFDR/1uSCeCm9Xlzx9v5kKernruKnpNdM41MSEhgaCgIBYsWMDdd99NRERE0XsXb2eCbQxDeHg4/fr145FHHim6jo0YMYLmzZsTHh7ONddcw4svvkjz5pcO9PX39+fxxx8nPj6eYcOG0aVLlwr+BQF4A2ggItuwjQ9IAjDGZAHTgDkisgn4EXDogGXRxY2Ua+kyrU6VvP8EN77xA1P7hPDk2IiKK1hs1c4sfv3uen47pBO/H1alDy+qOG1XHkcXN1JKOayw0PDkki20aliHB6t5NsIrNSAsgBui2/Dmyt0cOO7YIDillDU0IVCuNW2aragq+3zzQTaln+LBEZ1pUNt9xgM/fG0XROCfXzv/yRevpe1KuYD7XFWUe9KLllPk5hfy4pc76HJVQ8bFuNez/a0b1+W2fqG8tWo3d/YPJaJNY6tDcn/arpQLeEwPwZ133lmpZ1mLy8zMZMKECUWvi891/fjjj7NixQpnhQnAK6+8wrkyniF2xVzexY9pjGHw4MGcPn263DqvvfYa7777bqXOk5WVRa9evYiJifllhPPRo3D0KHv37qVXr1507NiRSZMmFU3mUdJzzz1Hx44d6dy5M19++WXR9pCQELp37050dLTHT69amo9+2sf+4+d4+Nou+NagOQccde+gDjSu68/zy7dbHYpnsLer8ug1sWyWXhPtSl4TsT1GeBkReVREdonIDhEZUWx7mohsFpEUEXHOP5AxpkaVHj16GCsdPHjQdOjQwaXnaNeuncnKyir1vYEDB5qEhASnnq/4MZcuXWoeeOCBCutkZ2eb6OjoSp1nzpw55o477ih5cmMGDjQTJ040c+bMMcYYc/fdd5vXX3/9svpbtmwxkZGR5sKFC2bPnj2mffv2Jj8/3xhT/r+Zpzt9PtfEPPWVmfzWj6awsNDqcK7Y26t2m3YPLzWrd3rn/6NT2dtVddBroo3Trol2Ja+JwD5T4u8htomHNgK1gVBgN+Brfy8NaFGyTlWK2/UQZGdnc9111xEVFUW3bt2YN882GVPxjO+dd94hLCyM+Ph47rrrLu6//34Apk2bxm9/+1v69u1L+/btiybzKD6/dMm5rqdNm1a0X0JCAn379iUqKor4+HjOnDlDWloa/fv3JzY2ltjY2KKFQ1auXMmgQYOYMGECXbp04Ve/+hXGGP7973+TmZnJNddcwzXXXFPuz/rVV1/Rp08fYmNjmThxImfPni13fvDS9i/pww8/LJotDOCZZ54pmu97zZo1RRNu1KtXj5CQENavX3/ZMdLS0hg8eDCRkZEMGTKE/fv3k5KSwh//+Ec+/fRToqOjL5lYyBjDt99+W/SJY+rUqXzyySeXHffTTz9l8uTJ1K5dm9DQUDp27Fjq+b3NrFV7OJ6dy6OjulwyWYu7mdK7HYFN6vL8F9soLKxZTze5M70mesY1EWhSyo98PTDXGJNjjNkL7ALiy/1HqgpnZhfOKBX1ECxcuNDceeedRa9PnjxpjPkl48vIyDDt2rUzx44dM7m5uebqq682M2bMMMYYM3XqVDNhwgRTUFBgtmzZUpT17t2710RERFz2/cU6CxYsMDk5OSY0NNSsX7/eGGPMqVOnTF5ensnOzjbnz583xhizc+dOczH+7777zjRq1MgcOHDAFBQUmN69e5vVq1cbYxzLhrOyskz//v3N2bNnjTHGPP/88+avf/2rycvLM8HBwUXb77nnHvPBBx+UuX/xYxpjTNu2bc3p06eNMcb8+OOPJjo62uTl5Zk5c+aYVq1amTfffLMolmeeeca89NJLl8U4evRoM3v2bGOMMe+88465/vrrjTHGvPfee0X/1sV+IJPVt+8lnzD2799/yb/xRTNmzDAffPBB0evbb7/dLFiwwBhjTEhIiImJiTGxsbHmrbfeKvXfzhMdPnXedHlsuZnxYZLVoTjFoqQDpt3DS80nG9KtDsW9Fesh0Guim10TjTFZWVmXXROB8+byHoLXgCnFXr8DTLB/vxfbugZJwPSSda+kONRDICIj7fcvdonII6W8f0+xexlrRCTcvj1ERM7bt6eIyOUzSFRS9+7d+frrr3n44YdZvXo1jRtfOkBp/fr1DBw4kGbNmuHv739J5gi22aR8fHwIDw/n8OHDDp93x44dtG7dumgaykaNGuHn50deXh533XUX3bt3Z+LEiZfcs4uPjycoKAgfHx+io6NJS0tz+Hzr1q1j69at9OvXj+joaN5//3327dtX5vzgZe1f0vHjx2nYsCEAP/74I9ddd13RMY8cOVKUWYNtta7MzMzLjvHjjz8WLZl66623Fs0k6Epr1qwhOTmZ5cuXM3PmTFatWuXyc9YE//omlfzCQh5yk8cMK3JDdCBdWzfipa92kJtfWHEFVSG9JnrnNRG42tgWL7oWmCEiA6p6wAqfMhARX2AmMAxIBxJEZIkxpvholY+MMW/a9x8L/BO4uMzTbmNMNE4SFhZGcnIyy5Yt47HHHmPIkCFFM+k5ovhsVcYJkzK9/PLLtGrVio0bN1JYWHjJ/Nol5+evzEx6xhiGDRvGnDlzLnuvtPnBy9u/uItzaV9c4vNijLVr1yYwMJDAwF9GsF+4cIG6deuWepzKaO7nx8mTJ4vWY09PT7/kPBcFBgZy4MCBotfF97v4tWXLlowbN47169cXLXrkqTJPnmd+4gEm9QymXXPPWJ/Bx0d4aEQYt89O5JOUDG6KC7Y6JLen10Q3vCY2b37ZNREobaR1BlC8kQTZt2GMufj1iH1Z5Hhs0xxfMUd6COKBXcaYPcaYXGAutvsaRYwxxYdn1gdcdoMwMzOTevXqMWXKFB566KGiufEv6tmzJ99//z0nTpwgPz+/aK3qqurcuTMHDx4kISEBgDNnzpCfn8+pU6do3bo1Pj4+fPDBBxQUVDxFa3lziF/Uu3dv1q5dy65duwDbfcKLq3WVNj94efuX/Dn27NkDQFxcXNFa4kuWLCEzM5OsrKyifXfu3HnJ2t0X9e3bl7lz5wK2+2/9+/cv+we5917kvvu45ppriu47vv/++5fcs7to7NixzJ07l5ycHPbu3Utqairx8fFkZ2cX/XtlZ2fz1VdflRqXp5m1ag/GwD0Da8bSxs5yTeeWRLRpxBsrd1OgYwmuzL332gp6TQQ3uyZim2665DURKG1pxCXAZBGpLSKhQCdgvX3dgob2Y9UHhgM/l3tSBziSEAQCB4q9Trdvu4SIzBCR3cDfgd8WeytURDaIyPciUv6/kgM2b95MfHw80dHR/PWvf+Wxxx67NNjAQP70pz8RHx9Pv379CAkJuawL7UrUqlWLefPm8Zvf/IaoqCiGDRvGhQsXuO+++3j//feJiopi+/btDq0sNn36dEaOHFnuAJqAgABmz55d9LhPnz592L7d9shWafODl7d/cdddd13RAhz9+/cnIiKCUaNG8frrr/POO+8wfvz4osd/1q5dy7Bhwy47xquvvsp7771XtG7Bv/71r7J/2EmTYNIkXnjhBf75z3/SsWNHjh07xh133AFculZCREQEN910E+Hh4YwcOZKZM2fi6+vL4cOHufrqq4sGLl133XVXss64W8k6k8PchP2MiwkkqGnNWs2wqkSE+6/pyN6j2Xy++aDV4bgne7sCvSaCm10T7UpeE4GjYOtlF5GnAIwxW4D5wFbgC2CGMaYAaAWsEZGNwHrgc2PMFxWetCIVDTIAJgD/Kfb6VuC1cva/BXjf/n1toLn9+x7YEotGpdSZDiQCiW3btr1sAEZlnTlzxhhjTF5enhk9erRZvHhxlY/pKTIzM83QoUMr3C85OdlMmTKl6ifcv99WVKU8t2ybCX1kqdl95IzVobhEQUGhGfKPlWb4P783BQXu+yilZSrZrvSaWLZqvyaWAUg0Fg/qd6SHoMx7GGWYC9xgTzZyjDHH7N8nYXuG8rIVTowxs4wxccaYuICAAAdCKt+TTz5JdHQ03bp1IzQ0lBtuuKHKx/QUrVu35q677qpwEo6jR4/y9NNPV/2Et95qK8php87l8b91+xjVvTXtAxpYHY5L+PgI9w3qwI7DZ1ixzfGBbMquku1Kr4llq/ZrYg1W4WqHIuIH7ASGYEsEEoBbjK0r4+I+nYwxqfbvxwBPGGPiRCQAOG6MKRCR9sBqoLsx5nhZ59PVDj2MrspWaf9akcrLK3ay/Hf96dq6kdXhuEx+QSHX/GMlzerV4pMZ/dx6joVqp+3K47jFaofGmHzgfuBLYBsw3xizRUSesj9RAHC/iGwRkRTg98BU+/YBwCb79oXAPeUlA0p5u7M5+by7di9Du7by6GQAwBRUa8cAACAASURBVM/Xh3sHdmRj+inW7Cp/Gl6llOs5tLiRMWYZsKzEtseLff+7MuotApwzpFUpL/Dhun2cOp/H/YM7Wh1KtbixRyD//iaVV7/dRf9OVb9dqJS6cm43dbFSnionv4D/rNlL/04tiA4ubRZTz1Pbz5fpA9qzfu9xkvadsDocpbyaLn+sXOsPf7A6Arfx+aaDZJ3J4R8To6wOpVpN6hnMyyt28u7avfRo19TqcNyDtivlApoQKNeyLwyiymeM4Z01e+nUsgH9O7WwOpxqVb+2HzfHt+WdNXvJOHmewCZVnwnO42m7Ui6gtwyUa+3YYSuqXD/tPc6WzNPcfnWoV462n9o3BID3f0izNA63oe1KuYAmBMq17r7bVlS53l2zl6b1/BkXc/kaD94gsEldRna7ijnr95Od4/j89l5L25VyAU0IlLLYvmPZfL3tML/q1Y46/r5Wh2OZ2/uFcuZCPguT0q0ORSmvpAmBUhZ7b20afj7Cr/u0szoUS/Vo15To4Ca8t3YvhbrokVLVThMCpSx0+kIeCxIPMCayDS0b1am4goe74+pQ0o6d49vtR6wORSmvowmBUhaan3CA7NwCbr861OpQaoSR3a6ideM6vLNmr9WhKOV19LFD5VollmJVvygoNMz+IY340GZ0C6z6crSewN/Xh6l9Q3h++Xa2Zp4mvI1nT998xbRdKRfQHgLlWkOH2oq6zModR0g/cZ5p9kfulM3knsHU9vPhfz/tszqUmkvblXIBTQiUa6Wk2Iq6zP/W7aNlw9oMC29ldSg1SpN6tRgT1YZPNmRw5kKe1eHUTNqulAtoQqBc64EHbEVd4sDxc6zcmcXk+Lb4+2ozLGlK73acyy3gkw0ZVodSM2m7Ui6gVyKlLPDR+v34iHBzfLDVodRIUUGN6RbYiP+t248x+giiUtVBEwKlqllOfgHzEw4wpEtLWjfWeftLIyJM6dWOHYfPkKirICpVLTQhUKqaffHzIY5l5zKlt3dPRFSRsdFtaFjHj/+t08GFSlUHTQiUqmYfrttPu+b1uLqjd61qWFn1avlxY2wQyzcf4tjZHKvDUcrj6TwEyrX+9jerI6hRdhw6w/q04/xpVBd8fLxvVcPK+lWvtsz+IY35iencO6iD1eHUHNqulAtoQqBcq29fqyOoUf63bh+1/HyY2EMHEzqiU6uG9Aptxoc/7WP6gPb4ahJlo+1KuYDeMlCu9cMPtqLIzsnn4w0ZjO7emqb1a1kdjtuY0rsd6SfOsyo1y+pQag5tV8oFtIdAudaf/mT7unKlpWHUBJ9vPsjZnHxu6dXW6lDcyoiIq2hevxbz1h/gms4trQ6nZtB2pVxAewiUqibzEg7QIaA+Pdo1tToUt1LLz4fxsYGs2HaYrDM6uFApV3EoIRCRkSKyQ0R2icgjpbx/j4hsFpEUEVkjIuHF3nvUXm+HiIxwZvBKuYtdR86QtO8Ek3u2RUTvg1fWpJ7B5BcaPt6QbnUoSnmsChMCEfEFZgLXAuHAzcX/4Nt9ZIzpboyJBv4O/NNeNxyYDEQAI4HX7cdTyqvMSziAn48wLjbQ6lDcUseWDYlr15S5CQd05kKlXMSRHoJ4YJcxZo8xJheYC1xffAdjzOliL+sDF1vs9cBcY0yOMWYvsMt+PKW8Rm5+IYuSMxgW3ooWDWpbHY7bmtQzmD1Z2TpzoVIu4sigwkDgQLHX6UCvkjuJyAzg90AtYHCxuutK1NWPSN7klVesjsByK7Yd5nh2LpN66qOGVXFdZGv++tlW5q4/QM+QZlaHYy1tV8oFnDao0Bgz0xjTAXgYeKwydUVkuogkikhiVpY+WuRRoqNtxYvNSzhAm8Z16N8pwOpQ3Fq9Wn6MiWrDss0HOe3tyyJru1Iu4EhCkAEU/2gTZN9WlrnADZWpa4yZZYyJM8bEBQToRdOjrFhhK14q46Tt+fkJccE6qY4TTO4ZzPm8Aj7bmGl1KNby8nalXMORhCAB6CQioSJSC9sgwSXFdxCRTsVeXgek2r9fAkwWkdoiEgp0AtZXPWzlNp55xla81IJE2922iT2CLI7EM0QGNabLVQ2Zl3Cg4p09mZe3K+UaFSYExph84H7gS2AbMN8Ys0VEnhKRsfbd7heRLSKSgm0cwVR73S3AfGAr8AUwwxhT4IKfQ6kap6DQsCAxnas7tiC4WT2rw/EIIsLknsFsSj/F1szTFVdQSjnMoTEExphlxpgwY0wHY8yz9m2PG2OW2L//nTEmwhgTbYy5xp4IXKz7rL1eZ2PMctf8GErVPD/sPkrGyfM6mNDJbogJpJavD/MTvbyXQCkn05kKlXKRhUnpNK7rz9CurawOxaM0qVeLYRGt+DQlg9z8QqvDUcpjaEKglAucvpDHFz8fYmxUG+r461xczjahRxAnzuXx7fYjVoeilMfQxY2Ua731ltURWGLpxoPk5BcyQQcTukT/ji1o2bA2C5PSGdntKqvDqX5e2q6Ua2lCoFyrc2erI7DEwqQDhLVqQGRQY6tD8Uh+vj6Miw3kP6v3knUmh4CGXjYDpJe2K+VaestAudZnn9mKF9mddZbk/SeZ0CNIFzJyoYk9gigoNHyaUt60KB7KC9uVcj1NCJRr/eMftuJFFial4+sj3BCts3S7UseWDYkObsKCxHTvW/DIC9uVcj1NCJRyooJCw+LkdAaGBdCyUR2rw/F4E3oEsePwGbbonARKVZkmBEo50ZpdRzl8OkdnJqwmYyLbUMvPh4VJ6VaHopTb04RAKSdamJROk3r+DO7a0upQvELjev4MD2/FJykZ5OTrJKhKVYUmBEo5yanzeXy55RDXR7Whtp/OPVBdJvQI4uS5PL7ZpnMSKFUV+tihcq0PPrA6gmqzdFMmufmFTOihUxVXp/6dAmjVqDaLk9MZ1b211eFUDy9qV6r6aEKgXCvYe/44Lk7OIKxVA7oFNrI6FK/i6yPcEBPIO6v3cvRsDi0aeMGcBF7UrlT10VsGyrXmzbMVD5d2NJukfScYH6tzD1hhfEwQ+YWGzzZmWh1K9fCSdqWqlyYEyrXeeMNWPNziDRmIoHMPWKTzVQ3pFtiIxcleMkmRl7QrVb00IVCqigrtcw9c3bEFVzXWuQesMj4miM0Zp9h5+IzVoSjlljQhUKqKEvedIP3EecbHau+AlcZGt8HXR1iUrHMSKHUlNCFQqooWJ6dTr5YvIyK8cNW9GqRFg9oMCgvgkw0ZFBR62VTGSjmBJgRKVcGFvAI+33SQa7u1pl4tfWjHauNjgzh8Oocfdh+1OhSl3I5ewZRrLVxodQQu9fXWw5zJyedGvV1QIwzp2pJGdfxYnJxB/04BVofjOh7erpQ1tIdAuVaLFrbioRYnp9OmcR16t29udSgKqOPvy+ioNnzx8yHO5uRbHY7reHi7UtbQhEC51uzZtuKBjpy5wKrUo4yLDcTHR+ceqClujA3kfF4BX/x8yOpQXMeD25WyjiYEyrU8+MK1JCWTgkLDuBhd2bAmiW3blHbN67HIk1dA9OB2pazjUEIgIiNFZIeI7BKRR0p5//cislVENonINyLSrth7BSKSYi9LnBm8UlZanJxBVFBjOrZsYHUoqhgRYVxMIOv2HiPz5Hmrw1HKbVSYEIiILzATuBYIB24WkfASu20A4owxkcBC4O/F3jtvjIm2l7FOilspS+04dIatB08zLkYHE9ZE42ICMQY+SfGSmQuVcgJHegjigV3GmD3GmFxgLnB98R2MMd8ZY87ZX64DtA9VebTFG9Lx8xHGRLWxOhRVinbN69OjXVM+Ts7AGJ2TQClHOJIQBAIHir1Ot28ryx3A8mKv64hIooisE5EbSqsgItPt+yRmZWU5EJJS1ikoNHy6IZOBYQE094aV9dzU+NhAUo+cZUvmaatDUcotOHVQoYhMAeKAF4ttbmeMiQNuAV4RkQ4l6xljZhlj4owxcQEBHvzssDdatsxWPMiPu49x6PQFxuncAzXa6O5tqOXr45lTGXtgu1LWcyQhyACKL74dZN92CREZCvwZGGuMybm43RiTYf+6B1gJxFQhXuVu6tWzFQ+yeEM6Dev4MbRrK6tDUeVoXM+fwV1a8tnGTPILCq0Ox7k8sF0p6zmSECQAnUQkVERqAZOBS54WEJEY4C1sycCRYtubikht+/ctgH7AVmcFr9zA66/bioc4l5vPFz8f4rruranj72t1OKoC42IDOXo2l9WpHjaVsYe1K1UzVJgQGGPygfuBL4FtwHxjzBYReUpELj418CLQAFhQ4vHCrkCiiGwEvgOeN8ZoQuBN5s+3FQ/x5ZZDnMst0KcL3MQ1nVvSpJ6/59028LB2pWoGh9YyMMYsA5aV2PZ4se+HllHvB6B7VQJUqiZZnJxBYJO69AxpZnUoygG1/HwYE9mG+YkHOH0hj0Z1/K0OSakaS2cqVMpBR05fYO2uo4yL0amK3cm42EBy8gv5YrMHT2WslBNoQqCUgz5NyaTQoE8XuJmY4CaEtqjvebcNlHIyTQiUctCi5HSigpvQIUCnKnYnF6cy/mnvcdJPnKu4glJeShMC5VorV9qKm9uaeZrth84wXgcTuqWLg0A/Tcm0OBIn8ZB2pWoWTQiUcsDHOlWxWwtuVo/4kGYsSk7XqYyVKoMmBMq1XnrJVtxYQaHh05RMBnVuSbP6tawOR12hcbGB7MnKZlP6KatDqToPaFeq5tGEQLnW0qW24sbW7jrKkTM53KiDCd3aqO6tqeXnw8cbPGAFRA9oV6rm0YRAqQosTk6nUR0/BndtaXUoqgoa1/VnWNdWLNmYSZ6nTWWslBNoQqBUOc7m5PPllsOMjmpDbT+dqtjdjYsJ5Hh2Lt/v0FVVlSpJEwKlyvHFz4c4n1egTxd4iIGdA2hWvxaLN+icBEqVpAmBcq26dW3FTX28IZ22zerRo11Tq0NRTuDv68PYqDas2HaEU+fzrA7nyrl5u1I1kyYEyrWWL7cVN3Tw1Hl+2H2McTGBiOhUxZ5iXEwgufmFLNt80OpQrpwbtytVc2lCoFQZPtmQiTEwXp8u8CiRQY3pEFCfxTqVsVKX0IRAudbTT9uKmzHGsDg5nR7tmtKueX2rw1FOJCKMjw0iIe0E+45lWx3OlXHTdqVqNk0IlGt9842tuJnNGadIPXKWG2ODrA5FuYDtNpBtOWu35KbtStVsmhAoVYpFSenU8vPhusjWVoeiXKBNk7r07dCcxRvSKSzUqYyVAk0IlLpMbn4hSzZmMiy8FY3r+lsdjnKR8TFBHDh+nsR9J6wORakaQRMCpUr4bscRTpzLY4LeLvBoI7tdRb1avixK0sGFSoEmBMrVmje3FTeyODmdFg1q079TC6tDUS5Uv7Yf13ZrzeebD3Ihr8DqcCrHDduVqvn8rA5AebhFi6yOoFJOZOfy7fYjTO0Tgp+v5sue7sbYQBYlp/PllkNcH+1Gj5e6WbtS7kGveEoVY1v4xjBebxd4hd7tmxPYpC6L3PVpA6WcSBMC5VqPPmorbmJxcjpdWzcivE0jq0NR1cDHRxgXE8ia1CwOn75gdTiOc7N2pdyDQwmBiIwUkR0isktEHinl/d+LyFYR2SQi34hIu2LvTRWRVHuZ6szglRv48UdbcQO7jpxhY/opbtSZCb3KuNhACg18ssGNegncqF0p91FhQiAivsBM4FogHLhZRMJL7LYBiDPGRAILgb/b6zYDngB6AfHAEyKiq8SoGmlhUga+PuJe95JVlXUIaEBM2yYsSk7HGJ2TQHkvR3oI4oFdxpg9xphcYC5wffEdjDHfGWPO2V+uAy7egB0BfG2MOW6MOQF8DYx0TuhKOU9BoeHjDekMDAsgoGFtq8NR1ezG2CB2Hj7L5oxTVoeilGUcSQgCgQPFXqfbt5XlDuDiMlwO1RWR6SKSKCKJWVlZDoSklHOtSs3i8OkcJvbQwYTeaExUG2r7+bAgUeckUN7LqYMKRWQKEAe8WJl6xphZxpg4Y0xcQECAM0NSVgsKspUabmFiOk3r+TOkayurQ1EWaFzXnxERV/FpSoZ7zEngJu1KuRdH5iHIAIKLvQ6yb7uEiAwF/gwMNMbkFKs7qETdlVcSqHJT//uf1RFU6OS5XL7eephberWllp8+eOOtJsYFsWRjJl9vPcyYqDZWh1M+N2hXyv04cvVLADqJSKiI1AImA0uK7yAiMcBbwFhjzJFib30JDBeRpvbBhMPt25SqMZZszCS3oJCJcfqJy5v17dCCNo3rsFCnMlZeqsKEwBiTD9yP7Q/5NmC+MWaLiDwlImPtu70INAAWiEiKiCyx1z0OPI0tqUgAnrJvU97igQdspQZbkGibeyCiTWOrQ1EW8vURxscGsTo1i0OnavicBG7QrpT7cWjqYmPMMmBZiW2PF/t+aDl13wXevdIAlZtLSbE6gnJtP3SazRmneHx0ySdplTea0COI177bxaLkdGZc09HqcMpWw9uVck96w1R5tQWJ6fj7CjfE6NwDCkJa1Cc+pBkLk3ROAuV9NCFQXiuvoJBPNmQwpEsrmtWvZXU4qoaYEBfE3qPZJO07YXUoSlUrTQiU1/p2+xGOZefqYEJ1ieu6t6ZeLV+dk0B5HU0IlGuFhdlKDbQgMZ0WDWozMEznvlC/qF/bj1HdW7N0UybncvOtDqd0NbhdKffl0KBCpa7YrFlWR1CqI6cv8N2OI9x5dSh+vpoXq0vdFBfMwqR0Pt90kIlxwRVXqG41tF0p96ZXQuWVFianU1BomNSzBl7sleV6hjSlfYv6zEs4UPHOSnkITQiUa02fbis1iDGGeQkHiA9tRvuABlaHo2ogEWFSz2AS951g15EzVodzuRrYrpT704RAudbOnbZSg6zbc5x9x84xWXsHVDnGxwbh5yM1s5egBrYr5f40IVBeZ17CfhrWsQ0cU6osAQ1rM7RrKxYlZ5CbX2h1OEq5nCYEyqucOpfHsp8PMS4mkDr+vlaHo2q4SfHBHM/OZcW2w1aHopTLaUKgvMonKbZPezqYUDliQKcAWjeuw9yaeNtAKSfTxw6Va0VHWx1BEWMMc9bvp3tgY13ISDnE10eYGBfMq9+mkn7iHEFN61kdkk0NalfKc2gPgXKtV16xlRpgc8Ypth86o70DqlIm9rDNZFmjZi6sQe1KeQ5NCJTXmJtwgDr+PoyNbmN1KMqNBDerx9UdW7Ag8QAFhbrgkfJcmhAo15oyxVYsdjYnn083ZHBd9zY0quNvdTjKzUzu2ZbMUxdYtTPL6lBsaki7Up5FEwLlWunptmKxJSmZZOcW8Kveba0ORbmhYeGtaNGgNh/+tM/qUGxqSLtSnkUTAuXxjDF8+NM+urZuRExwE6vDUW6olp8Pk3oG8e32I2ScPG91OEq5hCYEyuOlHDjJlszT/KpXW0TE6nCUm7o5vi0GmLt+v9WhKOUSmhAoj/fhT/upX8uXG2ICrQ5FubGgpvW4pnNL5iYcIK9AZy5UnkcTAuVaffrYikVOncvjs42Z3BATSIPaOu2Gqppf9WpL1pkcVmy1eOZCi9uV8kx6hVSu9dxzlp5+UXI6OfmF/KpXO0vjUJ5hUOeWBDapy4c/7edaK9fCsLhdKc+kPQTKY10cTBjTtgnhbRpZHY7yAL4+ws3xwazZdZS9R7OtDkcpp3IoIRCRkSKyQ0R2icgjpbw/QESSRSRfRCaUeK9ARFLsZYmzAldu4sYbbcUC6/YcZ3dWtvYOKKe6KS4YPx/hIysfQbSwXSnPVWFCICK+wEzgWiAcuFlEwkvsth+YBnxUyiHOG2Oi7WVsFeNV7ubYMVuxwIc/7aNxXX9GR+oyx8p5Wjaqw/CIVixISudCXoE1QVjYrpTncqSHIB7YZYzZY4zJBeYC1xffwRiTZozZBOjQW1UjHDl9gS+3HGJCjyBd5lg53ZRe7Th5Lo+lmw5aHYpSTuNIQhAIFF/7M92+zVF1RCRRRNaJyA2l7SAi0+37JGZl1ZCpQZVb+/Cn/eQXGm7trbcLlPP16dCcTi0b8P4PaRij6xsoz1AdgwrbGWPigFuAV0SkQ8kdjDGzjDFxxpi4gICAaghJebKc/AI+/Gk/13RuSUiL+laHozyQiDC1bwibM06RvP+E1eEo5RSOJAQZQPH1YoPs2xxijMmwf90DrARiKhGfcndDhthKNVq2+SBHz+YwrW9ItZ5XeZfxsYE0rOPHe2vTqv/kFrQr5fkcmYcgAegkIqHYEoHJ2D7tV0hEmgLnjDE5ItIC6Af8/UqDVW7oL3+p9lPO/mEfHQLq079Ti2o/t/Ie9Wr5MblnMO+tTePQqQtc1bhO9Z3cgnalPF+FPQTGmHzgfuBLYBsw3xizRUSeEpGxACLSU0TSgYnAWyKyxV69K5AoIhuB74DnjTFbXfGDKAWwYf8JNh44ydS+IbpugXK5W3uHUGCf70Ipd+fQTIXGmGXAshLbHi/2fQK2Wwkl6/0AdK9ijMqdXXut7evy5dVyutk/pNGwth/jYy/7dVTK6do2r8eQLq346Kf9zLimY/U90VLN7Up5B52pULnW+fO2Ug2OnL7Ass0HmRgXrOsWqGpzW78QjmXn8nl1PoJYje1KeQ9NCJTHuPio4a/76KOGqvr0tT+COFsfQVRuThMC5RH0UUNlleKPICbt00cQlfvShEB5hE9TMjl6Nofb+oVYHYryQuNjA2lc15//rN5rdShKXTG90apca/Rol5+isNDw9qo9dG3diKs76qOGqvrVq+XHrb3bMXPlLvYezSbU1b1U1dCulPfRHgLlWg8+aCsu9P3OLFKPnGX6gFB91FBZ5td92+Hv48M7a/a4/mTV0K6U99GEQLm9Wav20LpxHUZHtrE6FOXFWjasw7iYQBYkpnPsbI7V4ShVaZoQKNcaNMhWXGRz+il+3HOM2/uF4u+rv87KWncNCCUnv5AP1rl4oiIXtyvlnfQKqtzarNV7aFjbj8nxwRXvrJSLdWzZkCFdWvLfH/dxIa/A6nCUqhRNCJTbOnD8HMs2H+TmXm1pWMff6nCUAuCuAe05np3LouR0q0NRqlI0IVBu6921exHQVQ1VjdIrtBmRQY35z+q9FBTqREXKfWhCoNzSqXN5zEs4wNioNrRpUtfqcJQqIiJMH9CevUez+XrrYavDUcphOg+Bcq2bbnLJYd/7YS/ncgu4a0B7lxxfqaoYGXEVbZvV4/WVuxgR0cr5j8O6qF0p76YJgXKt++5z+iHPXMjj3TV7GRbeiq6tGzn9+EpVlZ+vD/cN6sAjizfz/c4sBnVu6dwTuKBdKaW3DJRrnTtnK070wbp9nL6Qz28Gd3TqcZVypvGxQbRpXIdXv93l/EWPXNCulNKEQLnWqFG24iTncvP5z+q9DAwLIDKoidOOq5Sz1fLz4Z5BHUjad4J1e4479+BObldKgSYEys189NN+jmfnau+Acgs3xQUT0LA2r36banUoSlVIEwLlNi7kFTBr1R76tG9OXEgzq8NRqkJ1/H25e0B7fth9jKR9Tu4lUMrJNCFQbmNBUjpHzuRo74ByK7f0akvTev689u0uq0NRqlyaECi3kJtfyJsrdxPbtgl9OjS3OhylHFavlh939m/Pdzuy2Jx+yupwlCqTJgTKtaZNs5UqWpiUTsbJ8/xmSCdd4li5nV/3aUejOn68smKncw7opHalVHE6D4FyLSdctC7kFfDvb1Lp0a4pg8ICqh6TUtWsYR1/7h7YgRe/3EHSvhP0aNe0agfUZEC5gEM9BCIyUkR2iMguEXmklPcHiEiyiOSLyIQS700VkVR7meqswJWbOHrUVqrgf+v2cej0BR4a0Vl7B5Tbuq1fCC0a1OLFL7dXfV4CJ7QrpUqqMCEQEV9gJnAtEA7cLCLhJXbbD0wDPipRtxnwBNALiAeeEJEqpsbKrUyYYCtX6MyFPGZ+t4v+nVrQu72OHVDuq14tP2Zc05F1e46zdtexqh2siu1KqdI40kMQD+wyxuwxxuQCc4Hri+9gjEkzxmwCCkvUHQF8bYw5bow5AXwNjHRC3MpLvLsmjRPn8nhweGerQ1Gqym7p1ZY2jes4p5dAKSdzJCEIBA4Ue51u3+YIh+qKyHQRSRSRxKysLAcPrTzdiexc3l69hxERrYgK1lkJlfur7efLA0PD2Jh+iq90JURVw9SIpwyMMbOMMXHGmLiAAB00pmze/H432bn5/EF7B5QHGR8bSPsW9fnHVzsoKNReAlVzOJIQZADBxV4H2bc5oip1lRc7fPoCs39IY1x0IGGtGlodjlJO4+frw++Hh7Hz8Fk+TdHLoao5HHnsMAHoJCKh2P6YTwZucfD4XwJ/KzaQcDjwaKWjVO7r3nuvqNo/vtpBoTE8MDTMyQEpZb1R3VoT0WY3//hqJ6O6t6aOv2/lDnCF7Uqp8lTYQ2CMyQfux/bHfRsw3xizRUSeEpGxACLSU0TSgYnAWyKyxV73OPA0tqQiAXjKvk15i0mTbKUSfs44xYKkdG7rF0rb5vVcFJhS1vHxER67LpyMk+f5z+o9lT/AFbQrpSoiNW2ka1xcnElMTLQ6DOUsB+xjSoODy9/PzhjD5FnrSD1ylpUPDaJRHX8XBqeUte7+IJHVqUdZ+eAgWjaq43jFSrYrVfOJSJIxJs7KGGrEoELlwW691VYc9OWWQ/y09zi/HxamyYDyeH8a1ZW8gkJe/HJH5SpWsl0p5QhNCFSNkZNfwN+WbSesVQMm99RPPsrztWten9v6hbIwOZ2fM3ThI2UtTQhUjTF7bRr7j5/jL6PD8fPVX03lHe4f3JFm9Wrx1NKtOlmRspRedVWNcPRsDq99u4vBXVrSv5PORaG8R6M6/vzfsDDW7z3Ol1sOWR2O8mKaEKga4fnl2zmfV8CfRnW1OhSlqt3knsF0btWQp5du41xuvtXhKC+lyx8r1/rDHyrcZd2eYyxMSufeQR3o2LJBNQSlVM3i5+vD0zd046a3fuRfK1J5tKLE2IF2pVRleU0Pga+vL9HR0XTr1o0xY8ZwWRNu9AAAHRVJREFU8uTJCuv07dv3is71ySefsHXr1qLXjz/+OCtWrLiiYzlbtccyZoytlCEnv4A/f7yZ4GZ1+e3gTtUXl1I1THxoMybFBfOfNXvZdvB0+TtX0K5cQa+hNjUpFmfzmnkIGjRowNmzZwGYOnUqYWFh/PnPf3b6eQCmTZvG6NGjmeDC5Unz8/Px83ODDp4d9sepOpe+HsGr36Tyj6938t5tPbmmc8tqDEypmudEdi5D/vk97ZrXY9E9ffHxkdJ3rKBduYJeQ11L5yGwSJ8+fcjI+GUO8RdffJGePXsSGRnJE088UbS9QYMGFe7z3//+l8jISKKiorj11lv54YcfWLJkCQ899BDR0dHs3r2badOmsXDhQgC++eYbYmJi6N69O7fffjs5OTkAhISE8MQTTxAbG0v37t3Zvn37ZXHPnj2bsWPHMnjwYIYMGVJuXE8//TSdO3fm6quv5uabb+all14CcFosDrv7blspRdrRbF79bhfXdW+tyYBSQNP6tfjzqK5s2H+SOQn7y96xnHZVHfQaWo3X0GrkdQlBQUEB33zzDWPHjgXgq6++IjU1lfXr15OSkkJSUhKrVq26pE5Z+2zZsoVnnnmGb7/9lo0bN/Kvf/2Lvn37MnbsWF588UVSUlLo0KFD0XEuXLjAtGnTmDdvHps3byY/P5833nij6P0WLVqQnJzMvffeW/TLV1JycjILFy7k+++/LzOuhIQEFi1axMaNG1m+fDml9bg4I5aqMMbwl09/pravD4+PCXf68ZVyV+NjA+nTvjkvLN9O1pkcq8O5jF5DnRdLTeM1CcH58+eJjo7mqquu4vDhwwwbNgyw/aJ+9dVXxMTEEBsby/bt20lNTb2kbln7fPvtt0ycOJEWLVoA0KxZs3Jj2LFjB6GhoYSF2RbsmTp16iUNZ/z48QD06NGDtLS0Uo8xbNiwovOUFdfatWu5/vrrqVOnDg0bNmRMKfcanRFLVSzZmMnq1KM8NLIzrSozZatSHk5EeGZcNy7kFfLU0q0VV6gmeg11fiw1jdckBHXr1iUlJYV9+/ZhjGHmzJmA7ZPqo48+SkpKCikpKezatYs77rjjkrqO7OMMtWvX5v/bu/P4qMp78eOfbyaTfQUSxCQsasSKRAiLC5bFNoAbqFeUe/1Z6nr9tbxuF6lXwdJe9VatC0ptVRRlVYtaBSzKIloBRUAWMYAQwpawJGQh6+zP/WOGiBAk4MycZPJ9v17nNTkz58z5Pso8853nPAv4O+94PM0PPUpMTAxLXC2J5UwdqnEweX4hfbumcesl3YL63kpFgnMzkhh/5Xks3LSfDzYfsDocQOvQUMTS2rSbhOCohIQEpk6dytNPP43H42HEiBG8+uqrTZ1lSktLKSsr+845Jzvmyiuv5K233qKiogKAykr/Qo7JycnU1taecO2ePXuye/duioqKAJg9ezZDhgw547KcLK5BgwaxcOFCHA4HdXV1vP/++yGPpaWMMdz/9lc4PV6eubkPtpN1mlKqnfv/Q88lLzuVie9upqzWYXU4TbQODU0srUHr6WIZRn379iUvL4833niD2267ja1bt3LZZZcB/k4wc+bMITMzExH/l9Xw4cObPaZXr15MmjSJIUOGYLPZ6Nu3LzNmzGDs2LHcfffdTJ06tanzCUBcXByvvfYaY8aMwePxMGDAAO69994zLsfJ4howYACjRo0iLy+Pzp0707t3b1JTU79zbrBjOamHHvrO7htr9vGv7eX8z6he9OiUeJKTlFJ2WxTP3HwxV09dycR/bObln/VvqpOO/1yFm9ahYaxDw6jdDDs8XRUVFeTn57Nnzx6rQzkjdXV1JCUl0dDQwODBg5k2bRr5+fmWxrSnop6rnltBftd0Zt0x8ORDqpRSTaav3MUj72/hzzflcXP/trPol9ahp6c1DDtsly0Ep7J//36GDh3KhAkTrA7ljN1zzz1s2bIFh8PBuHHjrEsGNm4EwJt3MRPe2oQtSvjzTXmaDCjVQrdf3p2lWw7y8MItXHZOR3I6JDR9rujTx9rgTkLr0LZJWwhUaA0dCsALf5zOEx9u4+kxF/Nv/bKtjUmpNmZfZQNXPbeCXmen8Prdl2K7cpj/hU8+sTQuFTytoYWg3XUqVOFX4/Dw1JJvuLr3WdyYn2V1OEq1OTkdEvjjqF58sauS55ZttzocFaHaVULQ2NjIkCFD8Hq9zJw5k9zcXHJzc5k5c2azx1dWVlJQUEBubi4FBQVUVVUBMHfuXPLy8ujduzeXX345mzZtajqne/fu9O7dmz59+tC//7fJ3oQJE1i+fHloC9gKub0+dpTVkpMez+P/lvdtpyil1Gm5qV82Y/pl85ePi6hudFsSg9ahEc4Y06q2fv36mVB5/vnnzbPPPmsqKipMjx49TEVFhamsrDQ9evQwlZWVJxz/u9/9zjz22GPGGGMee+wxc//99xtjjFm1alXT8YsWLTIDBw5sOqdbt26mvLz8hPfavXu3KSgoCEWxWi2P12e2nN/XrO7a23xdWm11OEq1eQ1Ojxkx5V9mbfc84xj047BfX+vQ0AHWGYu/f9tVC8HcuXMZPXo0ixcvbpqtKj09nYKCAj788MMTjp8/fz7jxo0D/LNQvffee4B/Ba/09HQALr30UkpKSk557W7dulFRUcHBgweDWKLWbepHOzjS6KZHp0R6nZ166hOUUt8rPsbG327NxxjDjrJa3F5fWK+vdWhkazcJgcvlori4mO7du1NaWkpOzrfDd7Kzs7+zUMdRhw4dokuXLgBN03Ueb/r06Vx11VVN+yLC8OHD6devH9OmTfvOsfn5+axatSpYRWrVVuwoZ+ryHay5+z4ypraNebyVagvOyUjC/fCjTB54K48tCt+iOVqHRr4WDTsUkZHAc4ANeMUY8/hxr8cCs4B+QAVwizFmt4h0B7YCgbU6WW2MsWTmhsOHD5OWlnbG54vICfe/P/74Y6ZPn87KlSubnlu5ciVZWVmUlZVRUFDABRdcwODBgwHIzMxk//79ZxxDW1FcXsf419eTmxTFXRNuRWLtVoekVES5/GejyEsr5NVVu/hREowZFvoFwrQOjXynbCEQERvwV+Aq4ELg30Xk+H99dwJVxpjzgCnAE8e8ttMY0yewWTaNU3x8PA6Hf/rPrKws9u3b1/RaSUkJWVkn9n7v3LkzBw745xE/cOAAmZnfLtH71VdfcddddzF//nw6duzY9PzR98nMzOSGG25gzZo1Ta85HA7i4+ODW7BWpqrexR0z1mJzuXhl74ckrFkNn31mdVhKRZbPPuOh9CquiGlg4uKdrC48dZP7D6V1aORryS2DgUCRMabYGOMC3gRGH3fMaOBoN9O3gZ9IK+tOnp6ejtfrxeFwMGLECJYsWUJVVRVVVVUsWbKEESNGnHDOqFGjmnrPzpw5k9Gj/cXeu3cvN954I7Nnz25a6Qqgvr6+af7t+vp6lixZwkUXXdT0+vbt27+zH2lcHh//OedL9lc28PLBj+jqPOKfYnXiRKtDUyqyTJxI9O8f4q9pB+jqrOE/56yn+EB1SC+pdWjka0lCkAXsO2a/JPBcs8cYYzzAEeBoytdDRDaIyL9E5MfNXUBE7hGRdSKyrry8/LQKcDqGDx/OypUr6dChA7///e8ZMGAAAwYMYPLkyU3LYd51111Na18/8MADLF26lNzcXJYtW8YDDzwAwMMPP0xFRQW/+MUvvjM05tChQ1xxxRVcfPHFDBw4kGuuuYaRI0cC4Ha7KSoq+s4wmkhijOHBf2xmza5Knqz8nH6dE6B15YRKRZzUKB+v+b7C5nFz5wufUlXnDOn1tA6NbKecqVBEbgJGGmPuCuzfBlxijBl/zDFfB44pCezvBC4BaoEkY0yFiPQD3gN6GWNqTna9UM5UuH79eqZMmcLs2bND8v7f591332X9+vU88sgjYb92ODy/fAdPLdnOr+u38Ou4MkhMhD17oLjYnxjojGpKBU9gBlCuvx6Ki1mXks1/uC+gT5qNWRNGEme3heSyWoeGTluZqbAUOHZFjezAc80eIyLRQCpQYYxxGmMqAIwxXwI7gfOxSH5+PsOGDcPr9Yb92h6Ph/vuuy/s1w2HWZ/v5qkl27nes59fRZX4kwGlVNj0j27gyagi1hyB8X9bHrLhiFqHRraWJARrgVwR6SEiMcBYYMFxxywAxgX+vglYbowxIpIR6JSIiJwD5ALFwQn9zNxxxx3YbKHJnr/PmDFjflAP3dZq3tp9TJ5fSIGvnCcbNiKBscVKqfAaHVvDI2YHyw64+M1Ln+D1hWadGq1DI9cphx0aYzwiMh5YjH/Y4avGmEIReRj/zEoLgOnAbBEpAirxJw0Ag4GHRcQN+IB7jTGVoSiICr8Fm/bz3+98xY9NJc/XrsXeOePEg555BiyoPJSKaM8+63887lbcbfHVNDbs5E97zyVu+qf8+c7BurKoarEWzUNgjFkELDruucnH/O0AxjRz3jvAOz8wRtUKLSk8yG/e3MAAjjCt+nNiu2Q2f2CfPpoQKBVsR5c9bqZvzj0JlTTWC1N2nkPcrFU8Mm6QriGiWqRFCYFSx5q/sZT75m2iN3W8WrGC+KzOJz942TJ/QvDTn4YvQKUi3bJl3/vyfyVU0NgQxYvbuuOZsYr/HTcIm7YUqFPQhECdllmf7+YP8wsZwBFeqVxB0vclAwB/+pN/lIEmBEoFz6OP+h+vv77Zl0XgvxPKian3MfWbc6h+8ROevXtwyEYfqMjQbtYyUD+MMYYpS7czeX4hP/GVM6tqBSlnnyIZUEpZRgR+m1TBH7zb+XBvA7dP/YhahzXLJqu2QRMCdUoer48/LCjkuY92cJO7hBfr1xHXRZMBpdqC2xOP8KxvK2vLnPzHM8soq3FYHZJqpTQhUN+rqt7Fz19by6zP93BP4w6edBcSndHJ6rCUUqfh+oQ6Xpat7Kh2MeqpZWzao4O91Ik0IVAnte1gDaOeX8manYd5onoNE6P3IYHpSZVSbcuwuAbesRdia2hgzAurePvznVaHpFoZ7VSomrVo8wEmzNtEks/Fm4eWk39WAsQkn/4bvfCCDjtUKtheesn/+MEHp3VaL7uLhbZv+GVdNhPmb6NwTyUTx/TDbtPfhkpbCNRxGlweJr27mV/MXU9PzxEWHvyA/OwUiIk5szfs2dO/KaWC5wd8rjpEeZmVvJfbXbt4bWMZY575iF2H64McoGqLtIVANdm0r5rf/H0jxYfrubuxiAmu7cTm/MDOgwsX+lsIrrsuOEEqpfyfqx/ALoY/pBwmv76BSeW5XP30x0y+9keMvfwcncSoHdOEQOH2+njxk50899EOMsTN64dXcHlHG6Q3MxXx6ZoyxT/+SRMCpYLn6af9jyeZh6ClrktsoL/na+6rz+bBhcJHm0t57NZLyEiODUKQqq3RWwbt3BfFFVw7dQVPL93OVa79fFj2IZdnJUJ8vNWhKaXCoEu0lzkpe3jIuZVPd1Vz5eNLmbViZ8gWR1KtlyYE7VR5rZPf/n0jt0xbTd3hKl6qXMlffFtIzers/0WvlGo3ogTuSq1jUdQm8hrKmPzPbYx+ahkb9lRZHZoKI71l0M40uDzM+Gw3L3yyE4fTwy8bvmG8YwfxXTJBtJlQqfbsvFgvc2L2srD2EI+W53LjC6u48aJMfn31ReR0SLA6PBVimhC0E06Plze+2MvzHxdxuM7FMN9hHqpYy7mdU6CDzjqolPITgVEpToZ5C/nLkVRmbPaxoLCMsflnM37EhXROibM6RBUimhBEuHqnh7fW7ePlFcWUVju41FTzUuV6+qUAOWGYcXDmTJ2HQKlgmz3b//hO6FaXT7YZJnao5nbnev7S0JE31hnmbTjArQOyuX1IrrYYRCBNCCLU/upGZn6+mze+2EuNw0M/aniiYj2DkjxIVmr4AsnJ0YRAqWDLyQnbpbrEwp9iK7jXUcFz9RnMWu1jxhf7GNmzE3de2ZN+3dLDFosKLU0IIojb6+OTb8p5+8t9LNtyCGMMV7kPcGfNVvKTDIQzEThq3jyIioJbbgn/tZWKVH//e9gv2TUOno4rZ4LjEDPr03h9q5tF31TQOyOemy87h+v6nE1awhlOYKZaBTGmdQ0t6d+/v1m3bp3VYbQZxhi+Lq1h/sZS3ttQyuF6F52iPNxYW8xtDUXkZCRDnEX3/PbsgeJi/03JTz6xJgalItHQof7H66/3f8YsWGOk3mN4pzqW12O7sc2eRkwUFPTM4MaB3Rh0Xifi7NoyeDpE5EtjTH8rY9AWgjbI4/WxdncViwsPsnTLQUqrHdjF8BPXIW6q28kQ2xHsHTtAxyBMLKSUUs1IjBZ+1snFz8x2Cmt9vOXpyPxCJ//cWk5itDD0/AxGXJzFsJ4ZJMfZrQ5XtYAmBG2AMYad5fWsKjrMyqLDrN5ZQa3TQ4wYBrvK+FXDXgo8ZaR3SvXf8EMTAaVUmIjQK8VGL6qZ6Klk1RFYIhks/bqRf24pI1qgz9nJDLqgM1fkZtAnJ00XU2qlNCFohRpcHjaXHGHDvmrW76liw94qyutcAGSLk2sa9jPYdYgh3sMkdkyD5Fgg09qglVLtXkx0FMM6wjAqeNRTxoYaw0cmnc92ZzK1pIbnPioi3ibkZaWQf04n+uak0bdruk6V3EpoQmAhl8fH3soGisvr+OZgLdsO1rL1wBF2HW7gaM+O7uLgisZD9HdV8GNXGV2TbJCaAlE2QOcPUEq1TrZoG/07QH9qwdRQ3eBidb2d1dEd2VDUgZf3VOERf0tBRkI0P+qSwo+y0rigSzLnZiTRo1Oi3moIsxYlBCIyEngOsAGvGGMeP+71WGAW0A+oAG4xxuwOvPYgcCfgBf7LGLM4aNG3ck6Pl7IaJ2W1DkqqGimtbqQ08LirvI59VY0cO114Nxxc4KzgOk8NF7sr6eOtpkNyHKQk+Xvq09GyspyxefN02KFSwfb22/7HOXOsjaOlREhLjGVkIoykCkwljkYnX9cJG0lmqyONbUdSeK0oFZd8ezshIyGaHp0SyemUTFZ6PNlp8WSlx3NWahyZybEkxUbr6oxBdMqEQERswF+BAqAEWCsiC4wxW4457E6gyhhznoiMBZ4AbhGRC4GxQC/gbGCZiJxvjPEGuyChYoyh0e2lzumh3uml3umh1uGhxuGmptHNkUb/Y2WDi8r6wFbnpKzGSbXDc8L7pYmHbG8DvV1HGO2to4enlu6eOnKjGklKioekhMAXaAwRcRugUydNCJQKtk5hmFQslESIS4ijfwL0xwWUgTmEu9HBrgYodtvZFZ3ErsZkdlUn8tnuJA5GxWH47pd/fLSQmRRDp+Q40pNi6ZgYS3piDGkJdlLj7aTE2UmJjyY5zk5SrI3E2Gj/FhONLUoTieO1pIVgIFBkjCkGEJE3gdHAsQnBaOCPgb/fBp4Xf9o2GnjTGOMEdolIUeD9Pg9O+N/P6zM8tmgrHp/B4/Ph8RrcXoPb62vaXF6Dy+PF6fbhdHtxerw4XF4a3V4a3T4aPb5TXkcwpOMh3bjo4HHQ3etgoM9BZ+Mk09dIpqeRLF8DWdFeEuPsEBsLqbGBRYQESA5sEWjmTH/rxs9/bnUkSkWOGTOsjiD4RLAnxHN+ApwPgMO/mTLweHA5nBx0QonHxiGJo8wWT1lUHIfq4qg8FEuJLZbNtlgqJQZ3C9bti7EJ8dFRxNujiLfbiD12i7Zhj47CbhPstihibFFE24RoWxT2KP/jzf1z6HlWZNXbLUkIsoB9x+yXAJec7BhjjEdEjuBv384CVh93btbxFxCRe4B7ALp27drS2E9JgLlf7CHa5cSOIdr4sGOw4yPGeLEbH3Z8xBovyT4vnYyXWOMl1uchwech3usm3uci3usm0eMkyeMk0e0gyeMgxd1IqnGTgpekKIPNHg12O8TEnPwXsQf/v/H2ZOZMf+KjCYFSwXM0IbjhBigvh9paS8MJhxiga2Brls8HbjfG7abR7eOIsVGDjRqiqY2Ooy46lnp7HPXRsdRHx9Jos+OIstMYZafRFo1TbDij/I/1YsMtUbix4ZIoXBKFhyg8IriJwoMwiCp6XjsofP8BwqBVdCo0xkwDpoF/YqJgvW9UlLB10jD/pDgOB9hi/L9WbbbmNxVcsbHw299aHYVSkWv0aBg40OooWhUBEgJblzN9E58PvN7mN58PjIEB5wUt5taiJQlBKXDsxNnZgeeaO6ZERKKBVPydC1tybmjFxcHIkWG9pFJKhUX37v5NqSBoyewQa4FcEekhIjH4OwkuOO6YBcC4wN83AcuNf07kBcBYEYkVkR5ALrAmOKErpZRSKlhO2UIQ6BMwHliMf9jhq8aYQhF5GFhnjFkATAdmBzoNVuJPGggcNw9/B0QP8Mu2NMJAKaWUai90cSMVWg0N/scEXTtdqaDRz1XE0cWNVOTTCkup4NPPlQoBXWFChdbf/ubflFLBo58rFQKaEKjQmjfPvymlgkc/VyoENCFQSimllCYESimllNKEQCmllFJoQqCUUkopWuE8BCJSDuw57ulOwGELwgkHLVvbE6nlgsgtW6SWCyK3bJFaLmi+bN2MMRlWBHNUq0sImiMi66yesCFUtGxtT6SWCyK3bJFaLojcskVquaD1lk1vGSillFJKEwKllFJKtZ2EYJrVAYSQlq3tidRyQeSWLVLLBZFbtkgtF7TSsrWJPgRKKaWUCq220kKglFJKqRBqcwmBiNwnIkZEOlkdS7CIyCMi8pWIbBSRJSJyttUxBYOIPCki2wJle1dE0qyOKVhEZIyIFIqIT0RaXW/h0yUiI0XkGxEpEpEHrI4nWETkVREpE5GvrY4lmEQkR0Q+FpEtgX+Hv7I6pmARkTgRWSMimwJl+x+rYwomEbGJyAYRed/qWI7XphICEckBhgN7rY4lyJ40xuQZY/oA7wOTrQ4oSJYCFxlj8oDtwIMWxxNMXwM3Ap9aHcgPJSI24K/AVcCFwL+LyIXWRhU0M4CRVgcRAh7gPmPMhcClwC8j6P+ZE7jSGHMx0AcYKSKXWhxTMP0K2Gp1EM1pUwkBMAW4H4iojg/GmJpjdhOJkPIZY5YYYzyB3dVAtpXxBJMxZqsx5hur4wiSgUCRMabYGOMC3gRGWxxTUBhjPgUqrY4j2IwxB4wx6wN/1+L/gsmyNqrgMH51gV17YIuIOlFEsoFrgFesjqU5bSYhEJHRQKkxZpPVsYSCiPyviOwDbiVyWgiOdQfwgdVBqGZlAfuO2S8hQr5c2gMR6Q70Bb6wNpLgCTSrbwTKgKXGmEgp27P4f9T6rA6kOdFWB3AsEVkGnNXMS5OAifhvF7RJ31c2Y8x8Y8wkYJKIPAiMB/4Q1gDP0KnKFThmEv4mzrnhjO2HaknZlLKSiCQB7wC/Pq6lsU0zxniBPoF+R++KyEXGmDbdD0RErgXKjDFfishQq+NpTqtKCIwxP23ueRHpDfQANokI+Jue14vIQGPMwTCGeMZOVrZmzAUW0UYSglOVS0R+DlwL/MS0sTGup/H/rK0rBXKO2c8OPKdaMRGx408G5hpj/mF1PKFgjKkWkY/x9wNp0wkBMAgYJSJXA3FAiojMMcb8P4vjatImbhkYYzYbYzKNMd2NMd3xN2nmt5Vk4FREJPeY3dHANqtiCSYRGYm/eWyUMabB6njUSa0FckWkh4jEAGOBBRbHpL6H+H8ZTQe2GmOesTqeYBKRjKMjkkQkHiggAupEY8yDxpjswHfYWGB5a0oGoI0kBO3A4yLytYh8hf+2SKQMIXoeSAaWBoZUvmh1QMEiIjeISAlwGfBPEVlsdUxnKtDxczywGH/ntHnGmEJrowoOEXkD+BzoKSIlInKn1TEFySDgNuDKwGdrY+CXZyToAnwcqA/X4u9D0OqG6EUinalQKaWUUtpCoJRSSilNCJRSSimFJgRKKaWUQhMCpZRSSqEJgVJKKaXQhEAppZRSaEKglFJKKTQhUEoppRTwf89GIksXWlpvAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.figure(figsize=(8,5))\n",
"plt.plot(x, norm.pdf(x))\n",
"plt.fill_between(x[x>crit_val], 0, norm.pdf(x)[x>crit_val].flatten(),alpha=0.5, color='red')\n",
"plt.fill_between(x[x<-crit_val], 0, norm.pdf(x)[x<-crit_val].flatten(),alpha=0.5, color='red') # for left tail\n",
"plt.axvline(x=crit_val,color='r',linestyle='dashed')\n",
"plt.axvline(x=-crit_val,color='r',linestyle='dashed') # for left tail\n",
"plt.text(crit_val+0.05, 0.35, 'Critical value of {} under \\nsignificant level(α) of {}'.format(round(crit_val,2), str(alpha*2)), fontsize=10)\n",
"plt.text(-crit_val-2, 0.35, 'Critical value of {} under \\nsignificant level(α) of {}'.format(round(-crit_val,2), str(alpha*2)), fontsize=10)# for left tail\n",
"plt.text(crit_val+0.5, 0.05, 'Rejection region\\n('+str(alpha)+')', fontsize=10)\n",
"plt.text(-crit_val-1.75, 0.05, 'Rejection region\\n('+str(alpha)+')', fontsize=10) #for left tail\n",
"plt.title('2-tail example')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The rejection region is split between 2 tail, which sums up to 0.05. <b>Note that the critical value under alpha of 0.05 is 1.96.</b>\n",
"\n",
"The dashed red line depicts the signifcant level of 0.05. Using the CDF, we could calculate P(x>X) which is highlighted in the shaded area illustrated above and since CDF integrals x<=X, we do a 1-P(x<=X). What this shaded area also means is that if the test statistics lies in this shaded area, we would reject the null hypothesis as the p-value of the test-statistics is less than 0.05."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2-tail Example 1 - Difference in means, low p-value\n",
"Let's say we have a hypothesis that the basketball players for team ABC are different(higher or lower) than the national level(population). So we draw a sample of 100 team ABC players' heights and determine if this distribution is different from the population's distribution, or in other words, compare the mean of the sample against a known value which is the population mean in this case.\n",
"\n",
"Null Hypothesis($H_{0}$): There is <b>NO</b> difference between the height of team ABC basketball players and the country's.\n",
"\n",
"Alternative hypothesis($H_{1}$): There is difference between the height of team ABC basketball players and the country's.\n",
"\n",
"We generate some random samples to illustrate this example."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 200, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=100,loc=s1_mean, scale=s1_stddev)\n",
"pop_mu, pop_sigma = 200.52, 2 # population has mean of 210, std dev of 2\n",
"x = np.linspace(s1_mean-10, pop_mu+10, 100)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample')\n",
"plt.plot(x, norm.pdf(x, pop_mu, pop_sigma), label='Distribution of population')\n",
"#plt.fill_between(x[x>hl_z], 0, norm.pdf(x)[x>hl_z].flatten(),alpha=0.5)\n",
"#plt.axvline(x=sign_level_score,color='r',linestyle='dashed')\n",
"#plt.fill_between(x[x<=1], 0, norm.cdf(x)[x<=1].flatten(),alpha=0.5)\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate the Z-Score for difference in means\n",
"The formal and simplest Z-Score formula which was first introduced to many students is:\n",
"$$z = \\frac{\\bar{x}-\\mu}{\\sigma}$$\n",
"This is the case where we know the population standard dev(sigma)."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.20428400539231006"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(pop_mu-s1_samples.mean())/pop_sigma"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"However, in practical, we don't have the population std dev. Therefore, we would either approximate it using sample std dev:\n",
"$$z = \\frac{\\bar{x}-\\mu}{ \\frac{s}{ \\sqrt{n} } }$$\n",
"Important note: since we are <b>approximating</b> the sample std dev, we have to use the <a href='https://en.wikipedia.org/wiki/Standard_deviation#Corrected_sample_standard_deviation'><b>corrected std dev</b></a>:\n",
"<img src='https://wikimedia.org/api/rest_v1/media/math/render/svg/df695c81f11c7d0d27209a42c72c20d2ad4e1fd2' width=200/>\n",
"The \"N-1\" corresponds to the number of degrees of freedom in the vector of deviations from the mean, and to yield the unbiased sample variance."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-2.0146215084517616"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, NOTE: np.std() accepts the ddof to handle the correction\n",
"z_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"z_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We use the CDF function to find out the area under curve for X<= z_score <b>under a normal distribution of mean 0 and std dev 1</b>, and multiple by 2 since it's a 2 tail test; the CDF returns 1 side of the tail, and we are checking for rejection region either at the left or right tail."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.04394432208981236"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: manual method\n",
"#NOTE: we take the absolute of z-score because we want to retrieve the area(to the left) under a right-tail distribution setting\n",
"(1-norm.cdf(abs(z_score)))*2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, we could use the <a href=\"https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ztest.html\"><b>statsmodel</b></a> library to do that. Important note: While it's easy to just plug in the numbers, it's worth knowing what goes under the hood to avoid testing the wrong things."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-2.0146215084517616, 0.043944322089812436)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from statsmodels.stats.weightstats import ztest\n",
"#find out p-value: statsmodel method, 2 tail test\n",
"test_stat, p_value = ztest(x1=s1_samples, value=pop_mu, alternative='two-sided')\n",
"test_stat, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It returns the same results as the manual calculation method. Phew! So what does this p-value means? Being close to 0(<0.05) means that there's a difference between the distribution, or there is a real difference in the mean."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"first_z_score, first_p_val = z_score, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate t-score for difference in means\n",
"If the number of samples is small(<30), or the population std dev is unknown, it's recommended to use a t-test instead.\n",
"$$z = \\frac{\\bar{x}-\\mu}{ \\frac{s}{ \\sqrt{n} } }$$\n",
" where $df = n-1$"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-2.0146215084517616, 99)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, NOTE: np.std() accepts the ddof to handle the correction\n",
"t_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"df = len(s1_samples)-1\n",
"t_score, df"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.04665636936473416"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: manual method, NOTE: we use the absolute of t-score\n",
"from scipy.stats import t\n",
"(1-t.cdf(abs(t_score),df))*2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the <a href='https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html'>scipy</a> package to perform the 1-sample t-test. Note that it returns results for 2-sided test only."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-2.014621508451761, 0.04665636936473418)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: scipy method, 2 tail test,\n",
"test_stat, p_value = scipy.stats.ttest_1samp(s1_samples, popmean=pop_mu)\n",
"test_stat, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"p-value calculated from both hand coded and scipy's version are almost the same. The p-value is very close to the z-test version, possibly due to the large number of samples."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2-tail example 2 - Difference in means, high p-value\n",
"Let's repeat the earlier with a closer distribution to simulate a case where there's no real difference, as seen in the tiny overlap below:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 200, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=100,loc=s1_mean, scale=s1_stddev)\n",
"pop_mu, pop_sigma = 200.1, 2 # population has mean of 210, std dev of 2\n",
"x = np.linspace(s1_mean-10, pop_mu+10, 100)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample')\n",
"plt.plot(x, norm.pdf(x, pop_mu, pop_sigma), label='Distribution of population')\n",
"#plt.fill_between(x[x>hl_z], 0, norm.pdf(x)[x>hl_z].flatten(),alpha=0.5)\n",
"#plt.axvline(x=sign_level_score,color='r',linestyle='dashed')\n",
"#plt.fill_between(x[x<=1], 0, norm.cdf(x)[x<=1].flatten(),alpha=0.5)\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.0563703734746526, 0.9550467579570607)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, np.std() accepts the ddof to handle the corretion\n",
"z_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"#find out p-value: manual method\n",
"z_score, (1-norm.cdf(abs(z_score)))*2"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.0563703734746526, 0.9550467579570608)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: statsmodel method, 2 tail test\n",
"test_stat, p_value = ztest(x1=s1_samples, value=pop_mu, alternative='two-sided')\n",
"test_stat, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, we the p-value is much higher(>0.05) and we fail to reject the null hypothesis. Just like what the plots are trying to tell us, there's no difference between the 2 distributions."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.0563703734746526, 99, 0.9551603706476555)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, NOTE: np.std() accepts the ddof to handle the correction\n",
"t_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"df = len(s1_samples)-1\n",
"#find out p-value: manual method\n",
"t_score, df, (1-t.cdf(abs(t_score), df))*2"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.056370373474652596, 0.9551603706476554)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: scipy method, 2 tail test,\n",
"test_stat, p_value = scipy.stats.ttest_1samp(s1_samples, popmean=pop_mu)\n",
"test_stat, p_value"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"second_z_score, second_p_val = z_score, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail Rejection region illustration\n",
"An effective, intutitive to think about it is to recall the earlier plot(shown again here) of a normal distribution where the center is the difference of 0 between the 2 groups, and we want to find out if the z-score is within the rejection region."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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cZ7nGjhQ94kK5g5JCPEYkJFkIfKpec3mNK/Z3NxhCBPsOhvN8pBLDAysQ51q5c0dzqNVrblhM8G6detwdXXFxcWFCRMmZDt/4cIF2rRpg4+PD4GBgURGRhrPWVpa4uvri6+vr3ElDDBU5XN2djaeCwkxLEn3xx9/MG7cuHx/nPc7u1HW2ooxy49R1N6lEUKUTJIkC5FPuyN2szsie/ldUbQkpaQxdsUxnqpalsGBdcwdzqN3bbdhy0NqaipDhgxh7dq1hIaGsnDhwmxFQd555x1eeukl/v77b8aNG8eoUaOM58qUKWNcLm7lypWZ+lOSY/cAACAASURBVE2aNMl47t66y126dGHVqlXZSl/npWp5G97r5MZfYdf5/XBUvvoKIcSDkCRZiHx6f9P7vL/pfXOHIfIwZ3cY56/d5sNnPCldytLc4Tx6R943bHnYt28fLi4u1K5dG2tra3r37s2KFSsytQkNDeXpp58GoHXr1tnO54dSisDAQP7444989+3lX5P6NSvx+dqTxCemPHAMQghhCkmShRAlztVbd5m26Sxt3KrT2q26ucMp0qKioqhZs6Zx39HRkaiozCO19evX57fffgPg999/59atW8TExACGCnr+/v40bdqU5cuXZ+o3evRofHx8GD58OImJicbj/v7+7NixI9+xWlgoPurmybVbifISnxCi0JmUJCulOiqlTimlziql3svh/ECl1FGlVIhSaqdSyiPDuVHp/U4ppToUZPBCCJGTL9adIjEllTFdPfJuLPL05Zdfsm3bNho0aMC2bdtwcHDA0tIwOn/hwgUOHDjAggULePPNNzl37hwAn3/+OSdPnmT//v1cv36diRMnGq9XvXp1Ll269ECx+NasRM+GjszaGUZY9O2H/3BCCJGLPJNkpZQlMB3oBHgAfTImwekWaK29tda+wBfAlPS+HkBvwBPoCMxIv54QQhSKwxdjWXowklf+VRtnu+wV4ERmDg4OREREGPcjIyNxcHDI1KZGjRr89ttvHD58mE8//RSASpUqGfsD1K5dm8DAQA4fPgyAvb09SilsbGzo37+/sRw1GEafy5Qp88Axj+joio2VJR//IZX4hBCFx5SR5MbAWa31ea11ErAIeDZjA631zQy75YB7rx4/CyzSWidqrcOAs+nXE0KIApeWpvlw5XGqV7Bh6NMu5g6nWGjUqBFnzpwh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\n",
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Significant level(α) # Critical value for α\n",
"alpha, crit_val = 0.05, norm.ppf(1-alpha)\n",
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.figure(figsize=(12,5))\n",
"plt.plot(x, norm.pdf(x))\n",
"plt.fill_between(x[x>crit_val], 0, norm.pdf(x)[x>crit_val].flatten(),alpha=0.5, color='red')\n",
"plt.fill_between(x[x<-crit_val], 0, norm.pdf(x)[x<-crit_val].flatten(),alpha=0.5, color='red') # for left tail\n",
"plt.axvline(x=first_z_score,color='green',linestyle='dashed') # for left tail\n",
"plt.axvline(x=second_z_score,color='orange',linestyle='dashed') # for left tail\n",
"plt.text(crit_val+0.5, 0.05, 'Rejection region\\n('+str(alpha/2)+')', fontsize=10)\n",
"plt.text(-crit_val-1.75, 0.05, 'Rejection region\\n('+str(alpha/2)+')', fontsize=10) #for left tail\n",
"plt.text(first_z_score+0.1, 0.25, '1st example\\n(Z-score:{},\\np-value:{}*2={})'.format(round(first_z_score,2), round(first_p_val/2,3), round(first_p_val,3)), fontsize=10) #for left tail\n",
"plt.text(second_z_score+0.1, 0.30, '2nd example\\n(Z-score:{},\\np-value:\\n{})'.format(round(second_z_score,2), round(second_p_val,3)), fontsize=10) #for left tail\n",
"plt.title('2-tail example')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could see that the z-score(green) is in the rejection region and that leads to rejection of null hypothesis. \n",
"On the other hand, the z-score(orange) is not in the rejection region and that leads to failing to rejection of null hypothesis."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1-tail(right tail) hypothesis testing"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"1.6448536269514722"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Significant level(α)\n",
"alpha = 0.05\n",
"# Critical value for α\n",
"crit_val = norm.ppf(1-alpha)\n",
"crit_val"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.figure(figsize=(8,5))\n",
"plt.plot(x, norm.pdf(x))\n",
"plt.fill_between(x[x>crit_val], 0, norm.pdf(x)[x>crit_val].flatten(),alpha=0.5, color='red')\n",
"plt.axvline(x=crit_val,color='r',linestyle='dashed')\n",
"plt.text(crit_val+0.05, 0.35, 'Critical value of {} under \\nsignificant level(α) of {}'.format(round(crit_val,2), str(alpha)), fontsize=10)\n",
"plt.text(crit_val+0.5, 0.05, 'Rejection region\\n('+str(alpha)+')', fontsize=10)\n",
"plt.title('1-tail(right tail) example')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As compared to the earlier 2-tail example, in this 1-tail version, the rejection region is just on a </b>single tail</b> which is at 0.05. <b>Note that the critical value under alpha of 0.05 is 1.645 instead of 1.96</b>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 1-tail example 1 - Difference in means, low p-value\n",
"Let's say we have a hypothesis that the baseball players for team ABC are <b>higher</b> than the national level(population). So we draw a sample of 100 team ABC players' heights and determine if this distribution is different from the population's distribution, or in other words, compare the mean of the sample against a known value which is the population mean in this case.\n",
"\n",
"Null Hypothesis($H_{0}$): There is <b>NO</b> difference between the height of team ABC basketball players and the country's.\n",
"\n",
"Alternative hypothesis($H_{1}$): The height of team ABC basketball players is higher than the country's.\n",
"\n",
"We generate some random samples to illustrate this example."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 203.5, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=100,loc=s1_mean, scale=s1_stddev)\n",
"pop_mu, pop_sigma = 203, 2 # population has mean of 210, std dev of 2\n",
"x = np.linspace(s1_mean-10, pop_mu+10, 100)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample')\n",
"plt.plot(x, norm.pdf(x, pop_mu, pop_sigma), label='Distribution of population')\n",
"#plt.fill_between(x[x>hl_z], 0, norm.pdf(x)[x>hl_z].flatten(),alpha=0.5)\n",
"#plt.axvline(x=sign_level_score,color='r',linestyle='dashed')\n",
"#plt.fill_between(x[x<=1], 0, norm.cdf(x)[x<=1].flatten(),alpha=0.5)\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate the Z-Score for difference in means\n",
"We use the same calculation method as explain earlier."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(3.014930204797961, 0.001285191987069445)"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, NOTE: np.std() accepts the ddof to handle the correction\n",
"z_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"#find out p-value: manual method\n",
"z_score, 1-norm.cdf(z_score)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We do a 1-CDF because the CDF returns the area on the left area of the curve from the critical value, and we want the area on the right instead(red area hightlighted above)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3.014930204797961, 0.0012851919870694563)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: statsmodel method, 1-tail: NOTE: use \"larger\" for alternative param!\n",
"test_stat, p_value = ztest(x1=s1_samples, value=pop_mu, alternative='larger')\n",
"test_stat, p_value"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"first_z_score, first_p_val = z_score, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It returns the same results as the manual calculation method. Phew! So what does this p-value means? Being close to 0(<0.05) means that there's a difference between the distribution, or there is a real difference in the mean."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 1-tail example 2 - Difference in means, high p-value\n",
"Let's repeat the earlier with a closer distribution to simulate a case where there's no real difference, as seen in the tiny overlap below:"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 200, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=100,loc=s1_mean, scale=s1_stddev)\n",
"pop_mu, pop_sigma = 200.1, 2 # population has mean of 210, std dev of 2\n",
"x = np.linspace(s1_mean-10, pop_mu+10, 100)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample')\n",
"plt.plot(x, norm.pdf(x, pop_mu, pop_sigma), label='Distribution of population')\n",
"#plt.fill_between(x[x>hl_z], 0, norm.pdf(x)[x>hl_z].flatten(),alpha=0.5)\n",
"#plt.axvline(x=sign_level_score,color='r',linestyle='dashed')\n",
"#plt.fill_between(x[x<=1], 0, norm.cdf(x)[x<=1].flatten(),alpha=0.5)\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0563703734746526, 0.47752337897853037)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#hand coded, NOTE: np.std() accepts the ddof to handle the correction\n",
"z_score = (s1_samples.mean()-pop_mu) / (np.std(s1_samples, ddof=1)/np.sqrt(len(s1_samples)))\n",
"#find out p-value: manual method\n",
"z_score, 1-norm.cdf(abs(z_score))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We do a 1-CDF because the CDF returns the area on the left area of the curve from the critical value, and we want the area on the right instead(red area hightlighted above)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.0563703734746526, 0.4775233789785304)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#find out p-value: statsmodel method, 1-tail: NOTE: use \"larger\" for alternative param!\n",
"test_stat, p_value = ztest(x1=s1_samples, value=pop_mu, alternative='larger')\n",
"test_stat, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, we the p-value is much higher(>0.05) and we fail to reject the null hypothesis. Just like what the plots are trying to tell us, there's no difference between the 2 distributions."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"second_z_score, second_p_val = z_score, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1-tail Rejection region illustration\n",
"An effective, intutitive to think about it is to recall the earlier plot(shown again here) of a normal distribution where the center is the difference of 0 between the 2 groups, and we want to find out if the z-score is within the rejection region."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.6448536269514722"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crit_val"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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csso3VVaK1nk6OlIskgdytpTxBX//I4yj5fXrz+RXm3jnI4kTUWvvzidQBqBEAOPxWwntMjH0wuhwrOIP108AGPqdkz3vn370qdPH15//XXGjh3LmjVrGDRoEOA/We+VV16hZcuWB3KceeaZh1ynZ8+e3HPPPQwePBi3203fvn2ZNm0al112Gddffz1PP/30gZPkACIiIvjXv/7FxRdfjMfjYcCAAdx44401fh+HyzVgwABGjRpFnz59SE5Opnfv3sTF/fTzISIigkmTJzH1kan0fqX3MWeRo2ecOnP1cDIyMuyhOrCLBJsNuwq54oXv8Pksr15/grpYiIjzFi+GZ5+F9u2PajOfhQlFybwS2p5r+iRy7+Un1HmhfCR5eXn069ePLVu2OJqjpoqKioiJiaGkpITTTjuNqVOn0q9fP6djNTnGmCXW2oxDPaYjySJ1YM2O/Vz1wne4XIY3bjiR1ORYpyNJU7M3cLJVfLqzOaRRcBl4IGYXocWWl5ZDpWcB9181yLGrhG7fvp0hQ4bw+9//3pHXrw033HADq1evpqysjHHjxh2yQM7c6W/H6a3Ujp2gIlmkln2/dS+/mraIyFA3r11/Ip2SNIqFOGDJ7f75GV86GkMaD2NgQvRuwop9PL8ayqZ9zcPjTibUXf+nN7Vp04b169fX++vWptdee+2I69z+qb8dfzn+yzpOI4eiE/dEatHsVTu5/J/f0iwilDdvGKQCWUQaFWPgruhcbvds4u31+7nu719QVK6RFaRxUpEsUkumz9/Mr19ZQrdWzXjv5pNonxjldCQRkVpnDNwek88j3rV8vb2ESx77jF37SmvluUtLSxk8eDBer5fp06eTmppKamoq06dPP+T6+fn5DB8+nNTUVIYPH87evXsB+PLLL4mLiyM9PZ309HQmTZoEQEVFBaeddpqGTJNqUZEscox8PstDH69m4oxVnHF8Mm9cfyJJMeFOxxIRqVOXRRfyolnNln3lXPD456zfse+Yn/Oll17iwgsvZN++fdx///189913LFy4kPvvv/9AAXywRx55hGHDhrFhwwaGDRvGI488cuCxU089lczMTDIzM5kwYQIAYWFhDBs2jDfffPOYs0rjpyJZ5BiUVXr5zevf88///sC4QR34x1X9iQxzOx1LRKReDIko5c3Q1XhKy7joma+Yv3bnMT3fq6++yujRo5k1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\n",
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Significant level(α)\n",
"alpha = 0.05\n",
"# Critical value for α\n",
"crit_val = norm.ppf(1-alpha)\n",
"x = np.linspace(norm.ppf(0.0001),norm.ppf(0.9999), 100)\n",
"plt.figure(figsize=(12,5))\n",
"plt.plot(x, norm.pdf(x))\n",
"plt.fill_between(x[x>crit_val], 0, norm.pdf(x)[x>crit_val].flatten(),alpha=0.5, color='red')\n",
"plt.axvline(x=first_z_score,color='green',linestyle='dashed') # for left tail\n",
"plt.axvline(x=second_z_score,color='orange',linestyle='dashed') # for left tail\n",
"plt.text(crit_val+0.5, 0.05, 'Rejection region\\n('+str(alpha)+')', fontsize=10)\n",
"plt.text(first_z_score+0.1, 0.25, '1st example\\n(Z-score:{},\\np-value:{})'.format(round(first_z_score,2), round(first_p_val,3)), fontsize=10) #for left tail\n",
"plt.text(second_z_score+0.1, 0.35, '2nd example\\n(Z-score:{},\\np-value:{})'.format(round(second_z_score,2), round(second_p_val,3)), fontsize=10) #for left tail\n",
"#plt.text(second_z_score+0.1, 0.35, 'Z-score for\\n2nd example', fontsize=10) #for left tail\n",
"plt.title('1-tail example')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could see that the z-score(green) is in the rejection region and that leads to rejection of null hypothesis. \n",
"On the other hand, the z-score(orange) is not in the rejection region and that leads to failing to rejection of null hypothesis."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1-sample Hypothesis testing for difference in proportions"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"from scipy.stats import binom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a <b>Binomial distribution</b> to represent sample and population proportions using 100 coin flips(a series of Bernoulli trials), with 0.55 and 0.5 probability of head of each trial for sample and population respectively.\n",
"\n",
"Note: each Bernoulli trial only has two possible outcomes(success or failure) and the p parameter describes the probabilty of success."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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VFdX8+GHH/KHP/yhtn5Dxx8+fDhz587lrbfe4uOPP+bOO+/ki1/8YslxHHLIIdxxxx1Acg9811135ROf+ETR/WpG0M+bN4/u3bvTvXv3Ro/1u9/9jvXr11NdXc3DDz/MsGHD2GuvvVi6dCkffvgh77zzDg899NAWr7N27Vp23nlnunfvzuuvv84DDzxQ9D055JBDuP/++/nggw94//33ue+++zjkkENKfk/MzFpTZlfuEbFR0gTgQaATcEtELJF0BbAwImYANwO3S1oGrCb5AADJKPtfSloCCPhlRCzOKtYsrVu3jrKyMjZs2EDnzp0544wzuOiii7aod+211zJnzhy22247Bg4cyNFHH812221Hp06dGDJkCGeffTaf/OQnG32t4cOHc/zxx1NVVcXpp59eOxL/sssuY/jw4eyxxx7st99+tfXPPvtszjvvPLp27cr8+fNryz/zmc9w1VVXUVFRQURwzDHHMGZM3bGQDZs0aRLf+MY3GDx4MDvttBO33npr8Z1IHtE6dOhQNmzYwC233FL0WIMHD6aiooK33nqL73//+7Wj/k888UQGDRpEv379GDp06BavM2TIEIYOHcp+++3HnnvuyahRo2q3jR8/nqOOOqr23nuNAw88kLPPPpvhw4cDydcGhw4d6i54M2uXlFwod3zl5eVRdwDZM888w/77799GEVlTHHbYYUyePLnRrwYWmjRpEt26deM73/lOxpG1nPby95jbbnnfc7dtkKQnI2KL/zjb64A6M7Ps+IOA5ZyTu7ULDz/8cJPqT5o0KZM4OqqsrsaLHTfzK/xiSRiciM3qkftny5uZmW1rnNzNzMxyxsndzMwsZ5zczczMcsbJPWOe8vXv2nrK1xrNea/MzDqSbWu0fCkjb5uihFG6nvL17zrClK9mZnngK/dW5ClfG57y9brrrmPAgAEMHjyYk09OHlT4xBNPMHLkSIYOHcoXvvAFnnvuOSD5UDJ27FhGjx5N3759uf7667nmmmsYOnQoI0aMYPXqZALBhqaRLfTmm29y/PHHM2zYMIYNG8ajjz7a9BNrZtbOOLm3Mk/5Wv+Ur1dddRWLFi1i8eLF/OIXvwBgv/3245FHHmHRokVcccUVfO9736ut//TTT/Pb3/6WBQsWcOmll7LTTjuxaNEiRo4cyW233VZbr75pZAt9+9vf5sILL2TBggXce++9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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,5))\n",
"pop_n, pop_p = 100, 0.5\n",
"s1_samples_n, s1_samples_p = 100, 0.55\n",
"x = np.arange(binom.ppf(0.01, pop_n, pop_p)-5,binom.ppf(0.99, s1_samples_n, s1_samples_p)+5)\n",
"plt.bar(x, binom.pmf(x, n=pop_n, p=pop_p), alpha=0.5, label='Distribution of population')\n",
"plt.bar(x, binom.pmf(x, n=s1_samples_n, p=s1_samples_p), alpha=0.5, label='Distribution of sample')\n",
"plt.title('PMF of binomal distribution')\n",
"plt.legend(loc=\"upper left\"), plt.xlabel('number of heads'), plt.ylabel('probability')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the PMF, we could see that the distribution of population peaks at 55, which means out of 100 coin flips, we should get 55 heads most of the time. We could also see some probability of obtaining other numbers depending on the variance."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail hypothesis testing\n",
"Null Hypothesis($H_{0}$): The coin is fair; There is <b>NO</b> difference between the sample coins and every other coins.\n",
"\n",
"Alternative hypothesis($H_{1}$): The coin is unfair; There is difference between the sample coins and every other coins."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate z-test for difference in proportions\n",
"$$z = \\frac{\\hat{p}-p_0}{ \\sqrt{\\frac{p_0(1-p_0)}{n}} }$$\n",
" where the denonminator is actually the std dev of a Binomial distribution"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0000000000000009, 0.3173105078629137)"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# manual method\n",
"z_score = (s1_samples_p - pop_p)/(np.sqrt( (pop_p*(1-pop_p))/s1_samples_n))\n",
"z_score, (1-norm.cdf(abs(z_score)))*2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, we could use the <a href='https://www.statsmodels.org/stable/generated/statsmodels.stats.proportion.proportions_ztest.html'>z-test</a> for proportions function in statsmodel library to run the test in 1-liner:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1.0000000000000009, 0.3173105078629137)"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#NOTE these parameters: \n",
"#count: number of successes, nobs: number of trials, value: hypothesized population proportion\n",
"#alternative: The alt hypo, prop_var: use sample proportion to estimate(must set it to population proportion instead!)\n",
"from statsmodels.stats.proportion import proportions_ztest\n",
"count = int(s1_samples_n* s1_samples_p)\n",
"proportions_ztest(count, nobs=s1_samples_n, value=pop_p, alternative='two-sided', prop_var=0.50)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"At first I was having different results until I stumble upon <a href='https://stats.stackexchange.com/questions/447462/why-does-the-proportions-ztest-function-in-statsmodels-produce-different-values'>this helpful post</a> where someone had similar issues. It turns out that statsmodel has used the sample proportion for standard error calculation, by default.\n",
"\n",
"Anyway, both methods gives us the same p-value."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## <font color='red'>Independent</font> 2-sample Hypothesis testing for difference in sample means\n",
"When we want to compare a sample mean against another sample means. Using which test depends on a few criteria: whether you know the population standard deviation behind the sample, and whether they are equal. Refer to the taxonomy for a visual breakdown.\n",
"\n",
"<b>Use Case:</b>\n",
"Let's say we have draw 2 small samples:\n",
"\n",
"1) Heights of 50 northern basketball players(out of 5000)\n",
"\n",
"2) Heights of 50 southern basketball players(out of 5000)\n",
"\n",
"and we want to find out if there's a difference between the height of the true population behind these samples(eg. all 5000 northern players are either taller or shorter than all 5000 southern players). Remember that sample is a representation or estimation of the population, and we are ultimately interested in inferring the conclusion in the context of whole population."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail Example 1 - Difference in sample means\n",
"\n",
"Null Hypothesis($H_{0}$): There is <b>NO</b> difference between the height of northen and southern basketball players.\n",
"\n",
"Alternative hypothesis($H_{1}$): There is difference between the height of northen and southern basketball players."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 200, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=50,loc=s1_mean, scale=s1_stddev)\n",
"s2_mean, s2_stddev = 200.52, 2 # population has mean of 210, std dev of 2\n",
"s2_samples = norm.rvs(size=50,loc=s2_mean, scale=s2_stddev)\n",
"x = np.linspace(s1_mean-10, s2_mean+10, 10)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample 1')\n",
"plt.plot(x, norm.pdf(x, s2_mean, s2_stddev), label='Distribution of sample 2')\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### When you don't know the population standard deviation (<font color='red'>$\\sigma_1,\\sigma_2$ unknown</font>) and <font color='red'>$\\sigma_1\\neq\\sigma_2$</font>\n",
"Using the same samples as before"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate 2-samples unpooled t-test for difference in mean\n",
"We use the <font color='red'><b>non-pooled</b></font> variance t-test or commonly known as Welch's t-test.\n",
"\n",
"$$t = \\frac{\\bar{x_1}-\\bar{x_2}}{\\sqrt{ \\frac{s_1^2}{n_1} + \\frac{s_2^2}{n_2} } }$$\n",
"where degree of freedoms(df) is:\n",
"$$\n",
"df \\approx \\frac{\\left(\\frac{s_{1}^{2}}{N_{1}}+\\frac{s_{2}^{2}}{N_{2}}\\right)^{2}}{\\frac{s_{1}^{4}}{N_{1}^{2} df_{1}}+\\frac{s_{2}^{4}}{N_{2}^{2} df_{2}}}\n",
"$$\n",
"and $df_1$ and $df_2$ are the df for 1st and 2nd samples respectively."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We skip the manual version for this one because there's too many parts to this. We could use the statsmodels, <a href='https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ttest_ind.html'>ttest_ind</a> function to caluclate the t-test."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2.5207890108015234, 0.013439625952883746, 91.55812475043417)"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from statsmodels.stats.weightstats import ttest_ind\n",
"# do a non-pool t-test by passing 'unequal' into the usevar to indicate the unequal var\n",
"t_stat, p_value, df = ttest_ind(s2_samples,s1_samples,alternative='two-sided',usevar='unequal')\n",
"t_stat, p_value, df "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It returns the t-statistics, p-value and the degree of freedoms used in the calculation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### When you don't know the population standard deviation (<font color='red'>$\\sigma_1,\\sigma_2$ unknown</font>) and <font color='red'>$\\sigma_1=\\sigma_2$</font>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate 2-samples pooled t-test for difference in mean\n",
"We use the <font color='red'><b>pooled</b></font> variance t-test:\n",
"\n",
"$$t = \\frac{\\bar{x_1}-\\bar{x_2}}{\\sqrt{ (S_p^2) \\frac{1}{n_1} + \\frac{1}{n_2} } }$$\n",
"where the pooled variance is:\n",
"$$\n",
"s_{p}^{2}=\\frac{\\left(n_{1}-1\\right) s_{1}^{2}+\\left(n_{2}-1\\right) s_{2}^{2}}{n_{1}+n_{2}-2}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We skip the manual version for this one because there's too many parts to this. We could use the same statsmodels, <a href='https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ttest_ind.html'>ttest_ind</a> function to caluclate the t-test."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2.5207890108015234, 0.013323109728081253, 98.0)"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from statsmodels.stats.weightstats import ttest_ind\n",
"# do a non-pool t-test by passing 'pooled' into the usevar to indicate the unequal var\n",
"t_stat, p_value, df = ttest_ind(s2_samples,s1_samples,alternative='two-sided',usevar='pooled')\n",
"t_stat, p_value, df "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It returns the t-statistics, p-value and the degree of freedoms used in the calculation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### When you do know the population standard deviation (<font color='red'>$\\sigma_1,\\sigma_2$ known</font>)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate 2-samples z-test for difference in mean\n",
"In this case, we could just use the 2-samples z test for difference in means:\n",
"\n",
"$$\n",
"z=\\frac{\\bar{x}_{1}-\\bar{x}_{2}}{\\sqrt{\\frac{\\sigma_{1}^{2}}{n_{1}}+\\frac{\\sigma_{2}^{2}}{n_{2}}}}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We skip the manual version for this one because there's too many parts to this. We could use the same statsmodels, <a href='https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ttest_ind.html'>ttest_ind</a> function to caluclate the t-test.\n",
"\n",
"<b>NOTE</b>: just like the earlier example, we need to put in ddof=1 for the <a href=\"https://en.wikipedia.org/wiki/Bessel%27s_correction\">Bessel's correction</a>."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-2.5207890108015234, 0.011709203788805356)"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# manual version\n",
"z_score = (s1_samples.mean() - s2_samples.mean()) / (np.sqrt( (np.var(s1_samples,ddof=1)/len(s1_samples)) + (np.var(s2_samples,ddof=1)/len(s2_samples)) ))\n",
"z_score, (1-norm.cdf(abs(z_score)))*2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could again use the same <a href=\"https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ztest.html\"><b>statsmodel's z-test function</b></a> to do that."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-2.5207890108015234, 0.011709203788805373)"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from statsmodels.stats.weightstats import ztest\n",
"test_stat, p_value = ztest(x1=s1_samples,x2=s2_samples, alternative='two-sided')\n",
"test_stat, p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## <font color='red'>Dependent</font> 2-sample Hypothesis testing for difference in sample means\n",
"When we want to compare a before and after effect by using an intervention on the <b>same experimental units</b>. \n",
"\n",
"<b>Use Case:</b>\n",
"Let's say we have a drug that claims to enhance jumping ability and we want to test this drug on a group of basketball players. We measure their jump(cm) before and after consuming of this drug."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail Example 1 - Difference in sample means\n",
"\n",
"Null Hypothesis($H_{0}$): There is <b>NO</b> difference in the jump height.\n",
"\n",
"Alternative hypothesis($H_{1}$): There is difference in the jump height."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"random.seed(888), np.random.seed(888) #very important: set random seed.\n",
"s1_mean,s1_stddev = 50, 2 # sample has mean of 200, std dev of 2\n",
"s1_samples = norm.rvs(size=60,loc=s1_mean, scale=s1_stddev)\n",
"s2_mean, s2_stddev = 52.52, 2 # population has mean of 210, std dev of 2\n",
"s2_samples = norm.rvs(size=60,loc=s2_mean, scale=s2_stddev)\n",
"x = np.linspace(s1_mean-10, s2_mean+10, 10)\n",
"plt.plot(x, norm.pdf(x,s1_mean,s1_stddev), label='Distribution of sample 1')\n",
"plt.plot(x, norm.pdf(x, s2_mean, s2_stddev), label='Distribution of sample 2')\n",
"plt.title('PDF of normal distribution')\n",
"plt.legend(loc=\"upper left\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate paired t-test for difference in mean\n",
"\n",
"Notice that: This formula looks very similar to the 1-sample t-test difference in means ($\\sigma$ unknown) that we have previously used but in this case, we are using the <b>differences</b> between the 2 samples for calculation and both sample sizes have to be the same. I know it sounds like cheating: We are indirectly reframing it into a 1-sample t-test.\n",
"\n",
"$$t = \\frac{\\bar{x}_D-\\mu}{ \\frac{s_D}{ \\sqrt{n_D} } }$$\n",
"\n",
"where df = n-1, $\\bar{x}_D$ is the mean of the differences and $\\mu$ is 0 because we hypothesized that there's 0 difference. "
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-7.167830542580345, 1.4061010134014396e-09, 59)"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from scipy.stats import t\n",
"diff = s1_samples - s2_samples\n",
"t_score = (np.mean(diff) - 0) / (np.std(diff, ddof=1)/np.sqrt(len(diff)))\n",
"df = len(s1_samples)-1\n",
"t_score, (1-t.cdf(abs(t_score),df))*2, df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could use the <a href='https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_rel.html'>scipy's ttest_rel</a> function to perform the 2-sample paired t-test."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-7.167830542580344, 1.406101031262486e-09)"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from scipy.stats import ttest_rel\n",
"# note that it returns the p-value for 2-sided test!\n",
"test_stat, p_value = ttest_rel(s1_samples,s2_samples)\n",
"test_stat, p_value"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2-sample Hypothesis testing for difference in proportions"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"from scipy.stats import binom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use case example: We are interested in finding out whether 2 coins are created equal and whether there's a difference between them.\n",
"\n",
"We create 2 <b>Binomial distributions</b> to represent coin flips from 2 different coins. For simulation, we perform 100 coin flips(a series of Bernoulli trials), with 0.55 and 0.5 probability of getting heads of each trial , for each samples respectively.\n",
"\n",
"Note: each Bernoulli trial only has two possible outcomes(success or failure) and the p parameter describes the probabilty of success."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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KWH06NGbnP+4445j+fLllJaWMnfuXCorKxkyZAglJSWcfPLJrFq1CsiNMnz3u9+lrKyMX/ziFxsdY+3atXz9619n4MCBlJSUcP/992+2PXv37s0777zD0qVLOeCAA/jmN79J//79Oe6441i3bt0mMfbu3ZuSkhK22y7zV9TMbAuk+RdiT2BZ3npVUlawTkRsANYA3cgl+veBvwNvAJMiYmWKsW4z++yzD5988glvvfXWRuWTJk3ixhtvpLKykrlz59KlSxeuueYajjzySCorK7nwwgsBePrpp5kxYwaPP/74Jsd+6qmnuP/++1m4cCH33XffZoe5R44cSVlZGXfffTeVlZV06dKldtuKFSu4+OKLefTRR6msrKSiooIHH3wQgPfff58hQ4bw7LPPctRRR3HzzTdvcuzLLruMgw46iIULF/LTn/6Us846ix49enDLLbfUvp599913k/02bNjAU089xXXXXVf74eTWW2+la9euVFRUUFFRwc0338xrr71G586deeCBB3j66aeZPXs23/ve94gIFixYwPTp06msrGTmzJlUVFTUHv+aa67hmWeeYeHChfzqV7/a5Pzl5eXsu+++VFZWcuSRR3LWWWdx7bXXsnDhQgYOHFgbE8BHH33E/Pnz+d73vrfRMa688kq6du3Kc889x8KFCznmmGM22575XnnlFc4//3wWLVrELrvsUvvBwMyssVrqV+EGA58AewC7AnMlPRIRS/IrSRoLjIXccGVrdvjhh3PRRRcxZswYTjnlFHr27Fmw3rBhw/jMZz5T77Zu3boBcMopp/DEE08wYsSIRsdSUVHB0UcfTffuubkIxowZw5w5cxgxYgQdO3asHW04+OCDmTVr1ib7P/HEE7WJ6ZhjjqG6upp332144OWUU06pPe7SpUsB+NOf/sTChQtrLz+sWbOGV155hZ49e/LDH/6QOXPmsN1227F8+XLefPNN5s6dy8knn8z2228PwEknnVR7/JKSEsaMGcOIESMabJc1a9awevVqPv/5zwNw9tlnc+qpp9ZuHzVqVMH9HnnkEaZPn167vuuuuzJnzpx62zNfnz59KC0t3aQNrPEacwmumMtrZq1Nmsl9ObBX3nrPpKxQnapkCL4rUA2cDvxPRHwMvCXpL0AZsFFyj4gpwBSAsrKySONFbG1LliyhXbt29OjRgxdeeKG2fMKECZx44onMnDmTww8/nIcffrjg/jvssEO9x657l7Qk2rdvX3sDH7DFX5Hq0KFD7XnatWvHhg0btuh4+Tp16rTJcSOCX/7yl3zxi1/cqO7UqVN5++23WbBgAR06dKB3794NvrY//OEPzJkzh4ceeoirrrqK5557rsnXyzf379BUNa8fcm1QaFh+E+/+vXD5+jUw++qNy4a22vtSzayR0hyWrwD6SuojqSMwGiivU6ccODtZHgk8GhFBbij+GABJOwBDgBdTjHWbePvttxk3bhzjx4/fJBG/+uqrDBw4kIsvvphDDjmEF198kZ122on33nuv6OPPmjWLlStXsm7dOh588EEOP/xwdt99d9566y2qq6v58MMP+f3vf19bv77jDx48mMcff5x33nmHTz75hHvuuae2B1uMI488krvvvhuAxx57jN12242dd9656P3zffGLX+Smm27i448/BuDll1/m/fffZ82aNfTo0YMOHTowe/ZsXn89NzHSUUcdxYMPPsi6det47733eOihhwD49NNPWbZsGUOHDuXaa69lzZo1rF27tt7zdu3alV133bX22v+0adOKaoNhw4Zx44031q6vWrVqi9vTzKyxUuu5R8QGSeOBh4F2wG0RsUjSFcD8iCgHbgWmSVoMrCT3AQByd9nfLmkRIOD2iFiYVqxpWrduHaWlpXz88ce0b9+eM888k4suumiTetdddx2zZ89mu+22o3///pxwwglst912tGvXjgMPPJBzzjmHXXfddbPnGjx4MF/96lepqqrijDPOqL0T/9JLL2Xw4MHsueeefO5zn6utf8455zBu3Di6dOnCvHnzass/+9nPcs011zB06FAighNPPJHhw+veC1m/iRMn8o1vfIOSkhK233577rjjjoZ3qsd5553H0qVLGTRoEBFB9+7defDBBxkzZgxf+cpXGDhwIGVlZbWva9CgQYwaNYoDDzyQHj16cMghhwC5G/POOOMM1qxZQ0RwwQUXsMsuu2z23HfccQfjxo3jgw8+YJ999uH2229vMN4f//jHnH/++QwYMIB27dpx2WWXccopp2xRe+arqKiovbnvoYce4rIeu7HoyceadCwzyy7lOsqtX1lZWdS9geyFF17ggAMOaKaIzLaBeoblX3j1dQ5YPXvjwjY0LO9r7tZWSFoQEZt8p7ql3lBnZrbNNfZZGP5gYC2Vk7tZS1Df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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,5))\n",
"s2_samples_n, s2_samples_p = 100, 0.5\n",
"s1_samples_n, s1_samples_p = 100, 0.55\n",
"x = np.arange(binom.ppf(0.01, s1_samples_n, s1_samples_p)-5,binom.ppf(0.99, s2_samples_n, s2_samples_p)+5)\n",
"plt.bar(x, binom.pmf(x, n=s1_samples_n, p=s1_samples_p), alpha=0.5, label='Distribution of heads for coin 1')\n",
"plt.bar(x, binom.pmf(x, n=s2_samples_n, p=s2_samples_p), alpha=0.5, label='Distribution of heads for coin 2')\n",
"plt.title('PMF of binomal distribution')\n",
"plt.legend(loc=\"upper left\"), plt.xlabel('number of heads'), plt.ylabel('probability')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the PMF, we could see that the distribution of the 2nd coin peaks at 55, which means out of 100 coin flips, the 2nd coin gets 55 heads most of the time. On the other hand, the 1st coin gets 50 heads most of the time. We could also see some probability of obtaining other numbers depending on the variance."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2-tail hypothesis testing\n",
"\n",
"Null Hypothesis($H_{0}$): There is <b>NO</b> difference between the 2 coins.\n",
"\n",
"Alternative hypothesis($H_{1}$): There is a difference between the 2 coins."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calculate 2-samples z-test for difference in proportions\n",
"\n",
"\\begin{align}\n",
"Z\n",
"&= \\frac{ p_1 - p_2}{\\sqrt{\\hat{p} (1 - \\hat{p}) \\left( \\frac{1}{n_1} + \\frac{1}{n_2} \\right)}}\n",
"\\end{align}\n",
"where pooled variance is:\n",
"$$\\hat{p} = \\frac{x_1+x_2}{n_1+n_2} $$"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.525, 0.7079923254047893, 0.47895002342035786)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# manual method\n",
"pool_prop = (int(s1_samples_n* s1_samples_p) + int(s2_samples_n* s2_samples_p))/(s1_samples_n+s2_samples_n)\n",
"z_score = (s1_samples_p-s2_samples_p)/np.sqrt( pool_prop*(1-pool_prop)*((1/s1_samples_n)+(1/s2_samples_n) ) )\n",
"pool_prop, z_score, (1-norm.cdf(abs(z_score)))*2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, we could use the <a href='https://www.statsmodels.org/stable/generated/statsmodels.stats.proportion.proportions_ztest.html'> statsmodel's z-test function</a> to run the test in 1-liner:"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.7079923254047893, 0.478950023420358)"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#NOTE these parameters: \n",
"#count: number of successes, nobs: number of trials, alternative: The alt hypo\n",
"from statsmodels.stats.proportion import proportions_ztest\n",
"count = np.array([ int(s1_samples_n* s1_samples_p), int(s2_samples_n* s2_samples_p)])\n",
"nobs = np.array([s1_samples_n, s2_samples_n])\n",
"z_score, p_val = proportions_ztest(count, nobs=nobs, alternative='two-sided')\n",
"z_score, p_val"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Choosing 2 tail vs 1 tail test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In practice, you should use a one‐tailed test only when you have good reason to expect that the difference will be in a particular direction. A two‐tailed test is more conservative than a one‐tailed test because a two‐tailed test takes a more extreme test statistic to reject the null hypothesis."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## >2 samples Hypothesis testing for different means (to be continued)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ANOVA test\n",
"When we want to compare the means between more than 2 samples, we need to use the ANOVA test. It compares two types of variation, the variation between the sample means, as well as the variation within each of the samples. It tells us if there is a difference between the groups but not exactly which one.\n",
"\n",
"The 1-way ANOVA formula, which gives us the F-statistic:\n",
"\n",
"$$ F=\\frac{\\text{Explained variance(between groups)}}{\\text{Unexplained variance(within groups)}} = \\frac{\\text{Sum of squares between groups}}{\\text{Sum of squares for error}} = \\frac{MST}{MSE} $$\n",
"\n",
"Like the z-test, we would use find the critical value on the F distribution to determine significant."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.7.3"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "288px"
},
"toc_section_display": true,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment