applied_statistics

Форк
0
/
Lecture 1. Stats Intro.ipynb 
1522 строки · 253.5 Кб
1
{
2
 "cells": [
3
  {
4
   "cell_type": "markdown",
5
   "id": "c63339f0",
6
   "metadata": {},
7
   "source": [
8
    "# Лекция 1. Введение в статистику."
9
   ]
10
  },
11
  {
12
   "cell_type": "code",
13
   "execution_count": 3,
14
   "id": "d5f9414c",
15
   "metadata": {},
16
   "outputs": [],
17
   "source": [
18
    "from scipy.stats import (\n",
19
    "    binom\n",
20
    ")\n",
21
    "import numpy as numpy\n",
22
    "from seaborn import distplot\n",
23
    "from matplotlib import pyplot\n",
24
    "import seaborn\n",
25
    "import random\n",
26
    "\n",
27
    "import sys\n",
28
    "sys.path.append('.')"
29
   ]
30
  },
31
  {
32
   "cell_type": "code",
33
   "execution_count": 4,
34
   "id": "c51ca343",
35
   "metadata": {},
36
   "outputs": [],
37
   "source": [
38
    "def inverse_plot_colorscheme():\n",
39
    "    import cycler\n",
40
    "    def invert(color_to_convert): \n",
41
    "        table = str.maketrans('0123456789abcdef', 'fedcba9876543210')\n",
42
    "        return '#' + color_to_convert[1:].lower().translate(table).upper()\n",
43
    "    update_dict = {}\n",
44
    "    for key, value in pyplot.rcParams.items():\n",
45
    "        if value == 'black':\n",
46
    "            update_dict[key] = 'white'\n",
47
    "        elif value == 'white':\n",
48
    "            update_dict[key] = 'black'\n",
49
    "    \n",
50
    "    old_cycle = pyplot.rcParams['axes.prop_cycle']\n",
51
    "    new_cycle = []\n",
52
    "    for value in old_cycle:\n",
53
    "        new_cycle.append({\n",
54
    "            'color': invert(value['color'])\n",
55
    "        })\n",
56
    "    pyplot.rcParams.update(update_dict)\n",
57
    "    pyplot.rcParams['axes.prop_cycle'] = cycler.Cycler(new_cycle)\n",
58
    "    lec = pyplot.rcParams['legend.edgecolor']\n",
59
    "    lec = str(1 - float(lec))\n",
60
    "    pyplot.rcParams['legend.edgecolor'] = lec"
61
   ]
62
  },
63
  {
64
   "cell_type": "code",
65
   "execution_count": 5,
66
   "id": "ea72839f",
67
   "metadata": {},
68
   "outputs": [],
69
   "source": [
70
    "inverse_plot_colorscheme()"
71
   ]
72
  },
73
  {
74
   "cell_type": "markdown",
75
   "id": "b8ea1909",
76
   "metadata": {},
77
   "source": [
78
    "______\n",
79
    "\n",
80
    "В этой лекции мы начинаем знакомство с математической статистикой. На примере бизнес-задачи мы разберём, зачем нужна статистика, как применить её к конкретной задаче и какие ошибки можно совершить, если не пользоваться математическим аппаратом."
81
   ]
82
  },
83
  {
84
   "cell_type": "markdown",
85
   "id": "9c485fca",
86
   "metadata": {},
87
   "source": [
88
    "## Часть 1. Зачем нужна прикладная статистика\n",
89
    "\n",
90
    "Предположим, вы придумали идею для стартапа. Вы договорились с магазинами одежды об осуществлении доставки и наняли курьеров, которые собирают из магазинов заказы и доставляют клиентам. Предположим, доставка в вашем сервисе стоит 1000 рублей, а курьеру за работу требуется заплатить 500 рублей. Казалось бы, прибыль очевидна, но внезапно вы понимаете, что от одежды часто отказываются, если она не подходит. Это понимают и ваши инвесторы, которых вы просите помочь с рекламой и инфраструктурой. Они согласны помогать вам, если шанс отказа будет меньше 50%.\n",
91
    "\n",
92
    "**Как вам убедить инвесторов?**\n",
93
    "\n",
94
    "Вы решаетесь на эксперимент. Самостоятельно находите $30$ клиентов и доставляете им заказы через курьеров. Оплачивают покупку $19$ из них, остальные отказываются. $19$ — это больше половины покупателей, но достаточно ли этого, чтобы доказать успешность вашего бизнеса?\n",
95
    "\n",
96
    "### Модель и наблюдения\n",
97
    "\n",
98
    "Решая такую задачу, мы предполагаем, что есть аудитория, которая воспользуется нашим сервисом. Она называется *генеральной совокупностью*. Если мы запустим сервис на всех пользователей, то в нём будет доля успешных доставок, обозначим её $\\mu$. Это некоторый параметр, который мы не знаем. Всё, что мы можем делать — это проводить эксперименты и *наблюдать*. Мы не можем протестировать продукт на всех, но можем собрать *выборку* из генеральной совокупности и пронаблюдать долю успехов. По проведённому эксперименту видим, что наблюдаемая вероятность оплаты $\\frac{19}{30} = 63\\%$.\n",
99
    "\n",
100
    "Но до сих пор неясно, является ли это доказательством, что истинное $\\mu > 50\\%$.\n",
101
    "\n",
102
    "Посмотрим, почему это может не быть доказательством. Положим вероятность $\\mu = 0.5$ и математически смоделируем, какие могли быть статусы наших 30 заказов.\n",
103
    "\n",
104
    "**Алгоритм моделирования**\n",
105
    "\n",
106
    "- Так как вероятность успеха 0.5, можно подбросить монетку для моделирования того, был ли успех\n",
107
    "- Чтобы подбросить монетку, воспользуемся функцией `random.randint`, которая возвращает случайное целое число из диапазона, в нашем случае от 0 до 1, где 1 означает успешную доставку\n",
108
    "- Подкинем монетку 30 раз, чтобы получить результаты 30 доставок"
109
   ]
110
  },
111
  {
112
   "cell_type": "code",
113
   "execution_count": 6,
114
   "id": "22de314c",
115
   "metadata": {},
116
   "outputs": [],
117
   "source": [
118
    "# фиксируем последовательность рандома для воспроизводимости\n",
119
    "random.seed(20000)"
120
   ]
121
  },
122
  {
123
   "cell_type": "code",
124
   "execution_count": 7,
125
   "id": "16f34269",
126
   "metadata": {},
127
   "outputs": [],
128
   "source": [
129
    "statuses = []\n",
130
    "for _ in range(30):  # моделируем 30 доставок\n",
131
    "    status = random.randint(0, 1)  # генерируем случайное число, 0 или 1\n",
132
    "    statuses.append(status)\n",
133
    "exp_chance = sum(statuses) / 30  # доля успехов"
134
   ]
135
  },
136
  {
137
   "cell_type": "code",
138
   "execution_count": 8,
139
   "id": "1245534d",
140
   "metadata": {},
141
   "outputs": [
142
    {
143
     "name": "stdout",
144
     "output_type": "stream",
145
     "text": [
146
      "Доля успехов: 67%\n"
147
     ]
148
    }
149
   ],
150
   "source": [
151
    "print('Доля успехов: {:.0%}'.format(exp_chance))"
152
   ]
153
  },
154
  {
155
   "cell_type": "markdown",
156
   "id": "93b90abc",
157
   "metadata": {},
158
   "source": [
159
    "Видим, что в эксперименте доля успешных заказов была даже выше $63\\%$, но модельная вероятность была $50\\%$.\n",
160
    "\n",
161
    "Поэтому, к сожалению, **точно сказать, какой является $\\mu$ в генеральной совокупности, и больше ли она 50%, нельзя**, сколько бы мы ни наблюдали за доставками. Но с помощью прикладной статистики мы введём аппарат, который позволяет принять правильное продуктовое решение, в том числе и для этой задачи. "
162
   ]
163
  },
164
  {
165
   "cell_type": "markdown",
166
   "id": "622e27cc",
167
   "metadata": {},
168
   "source": [
169
    "## Часть 2. Статистические гипотезы"
170
   ]
171
  },
172
  {
173
   "cell_type": "markdown",
174
   "id": "188d64ff",
175
   "metadata": {},
176
   "source": [
177
    "Мы увидели, что можно получить довольно много успехов даже в случае вероятности $\\mu = 0.5$. Но на самом деле для этого пришлось подбирать seed. Если перезапустить только ячейку с экспериментом, доля успехов получится уже меньше половины! Так может быть большая доля успехов случается очень редко, и мы готовы принять большое в качестве доказательства?\n",
178
    "\n",
179
    "Чтобы это понять, надо ответить на вопрос:\n",
180
    "\n",
181
    "❓ **Насколько часто может быть такое, что при $\\mu = 0.5$ получается большая доля успехов**?\n",
182
    "\n",
183
    "Для этого обратимся к теории вероятностей. Успешность каждого заказа — это случайная величина $\\xi$ из распределения Бернулли. Параметр этого распределения, вероятность успеха, мы не знаем."
184
   ]
185
  },
186
  {
187
   "cell_type": "markdown",
188
   "id": "b505d998",
189
   "metadata": {},
190
   "source": [
191
    "$$ \\xi = \\xi_1, \\xi_2, \\dots, \\xi_{30} \\sim Bern(\\mu) - \\text{выборка} $$\n",
192
    "\n",
193
    "$$ \\mu - \\text{неизвестный параметр} $$\n",
194
    "\n",
195
    "### Гипотеза\n",
196
    "\n",
197
    "При этом у нас есть продуктовая гипотеза о том, как устроено распределение в генеральной совокупности. Нас интересует доказательство того, что $\\mu > 0.5$. В механизме проверки гипотез в статистике рассматривают две гипотезы. Нулевая гипотеза говорит о том, что мы хотим опровергнуть. Альтернативная гипотеза говорит о том, что мы хотим доказать.\n",
198
    "\n",
199
    "$$ \\mathsf{H}_0: \\mu = 0.5 $$\n",
200
    "$$ \\mathsf{H}_1: \\mu > 0.5 $$\n"
201
   ]
202
  },
203
  {
204
   "cell_type": "markdown",
205
   "id": "a798c575",
206
   "metadata": {},
207
   "source": [
208
    "Заметим, что если в эксперименте $30$ доставок, то можно смотреть не на долю успехов, а просто на количество. Переформулируем вопрос:\n",
209
    "\n",
210
    "❓ **Насколько часто может быть такое, что при справедливости $\\mathsf{H}_0$ получается большое количество успехов**?\n",
211
    "\n",
212
    "Количество успехов — это сумма независимых бернуллиевских величин, значит имеет биномиальное распределение. Посмотрим, как оно выглядит."
213
   ]
214
  },
215
  {
216
   "attachments": {
217
    "success_distr.png": {
218
     "image/png": "iVBORw0KGgoAAAANSUhEUgAABRQAAAKyCAYAAACkBFKVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWZElEQVR4nO3df3hU5Zk//jsYQKEBq4REUKi2KhVWMIgYrQriD2q1onXR6q6/vrZFqoXSRcW2KmplW5RqKdottUBdtVCqWOsKFUXrjyCCgqKgFiPVIAFEIZgIQc73D5r5EEnCSQgE8fW6rvsyOfOcZ+4zzJmRN8/MyYqIJAAAAAAAUmjW1A0AAAAAAJ8dAkUAAAAAIDWBIgAAAACQmkARAAAAAEhNoAgAAAAApCZQBAAAAABSEygCAAAAAKkJFAEAAACA1ASKAAAAAEBqAkUASClJkkiSJK6//vqmbiWViy66KNNz586dt7p91qxZkSRJzJo1qwm6a7jrr78+c1z8P127do177rkn/vnPf8b69eszj1H37t2bujXYbVW9zhYXFzd1KwCwUwkUAdjtnHDCCZkwZcuqrKyM999/P95666146qmnYsyYMXH22WdH8+bNm7pl2C4FBQUxZ86c+I//+I844IADokWLFk3dElAPVe9Taf+BZ8t/MLrooovqHLvvvvvGyJEjY8GCBbFmzZpYs2ZNLFiwIEaOHBn77LNPY7QPwOeQQBGAz43s7OzYZ5994sADD4zjjz8+fvjDH8af//znePfdd+PHP/5x7LHHHk3S12d1pWBj2tZqSuo2atSoaNWqVaxZsyYuv/zy6NWrV3Tr1i26desWixcvbur2YJfxWVtpvr2OOuqoeOWVV+K6666Lww8/PNq0aRNt2rSJww8/PK677rp45ZVXolevXk3dJgCfQdlN3QAA7Eh33nln3HnnnZnfv/CFL8QXv/jFOPzww6Nfv35x0kknRfv27ePmm2+OM844I04//fRYtWpVjXNlZWXtrLYbxaRJk2LSpElN3UajGzlyZIwcObKp29hlZGdnxwknnBAREb/97W/jN7/5TRN3BOwK9t9//3j44Yejffv2UVlZGWPGjIm//vWvERFx+umnx7Bhw6JDhw7x8MMPR8+ePaOkpKSJOwbgs0SgCMBubcWKFfHqq69utX369Onxi1/8Ir761a/G//7v/0ZBQUH07t07HnzwwTjxxBOjsrKyCbqF+mvXrl20bNkyIiLeeOONJu4G2FX87Gc/i/bt20dExPnnnx9Tp07N3PbMM8/EvHnzYsqUKZGXlxc333xzXHLJJU3VKgCfQT7yDMDn2qJFi+LYY4+NF198MSIivva1r8X3v//9Ju4K0qsKEyNCEA5EREReXl5ccMEFEbH5H9C2DBOr/OlPf4rp06dHRMR//ud/Rl5e3k7tEYDPNoEiAJ97H3/8cfznf/5nbNq0KSIi/uu//iuys7dexL+t795q27ZtXHvttfHcc8/F6tWrY8OGDZkVkg888EAMGjQos1okImLChAmRJEn06dMnIiL69Omz1YVkPn3l0E/30Ldv35gyZUr885//jA0bNlQbX9/vJTzkkEPif/7nf+Ktt96KioqKWLZsWUyePDl69+5d6z5bXgCn6mO3tanp8avaf+LEiZltb7/99laPw5Zzp73Kc+fOnWPMmDGxcOHCWLt2bXz00UfxxhtvxG9+85vo1q1bvXo98sgj47777ot33nknPv7443j33XfjD3/4Q3Tp0qXOedJq3rx5XH755fHEE0/EihUrYv369fHee+/FI488EhdccEGNH7evehzefvvtzLaJEydWe9wa8j1xAwYMiAcffDBzrGvXro0lS5bE3//+97jxxhtr/L61qufytq50m/Y52aJFi/jOd74Tf/3rX+Pdd9+Njz/+ONatWxcLFy6M8ePHxymnnFLn/Xz961+Pe+65J5YsWRLr1q2LioqKeOutt2Lq1Klx0UUXxV577VXrvkcccUTcddddsXjx4igrK4t169bF4sWL484774yDDz64zvut72vAlvr27Rv33XdfvPXWW1FeXh4fffRRvP3221FUVBSjR4+Ovn371nnfaRxzzDExfvz4WLx4caxZsybWr18f77zzTjz88MMxePDgaNu2ba37nn766fGnP/0p87xYtWpVPPfcc3H11VdH69ata90v7fm6rdeST3/XbIcOHeK2226LN998M8rLy2PVqlUxffr06N+/f43zFxcXV+vhhhtu2Op1ZsKECXX2+FnyzW9+M/O9wHUdV9Vr7x577BHf/OY3d0ZrAOxGEqWUUmp3qhNOOCGpcv3116feb/r06Zn9CgsLt7q9rjm7dOmSvPvuu8m2fP/738/sM2HChG2OLy4urrWHm2++uc7xF110UWZ7586dt+p51qxZSZIkyaxZs5L+/fsnZWVlNfawcePGZMiQIdt8rE844YQ6H98te69p/7psOff111+f2V7bff3nf/5nUlFRUet8lZWVyTXXXJOq18svvzzZsGFDjfOsW7cuOe6447br+dq5c+fktddeq/P4//73vydf/OIXq+235eNQm/o8/5s1a5ZMnjx5m3O+8MILW+1b9Vz+9PP107Wt52REJN27d0+WLFmyzT5q2n+fffZJHnvssW3ue9FFF221b1ZWVnLbbbcln3zySa37bdiwIfnOd75TY98NeQ2oqjFjxmxzv5UrVzb4Obbnnnsm99577zbvo6bnS8uWLZM///nPde737rvvJt27d6/xvtOcr2leS7Z8vTrmmGOSFStW1NrPj370o632Ly4u3ubxT5gwod6PbdVzelvP/W1VlVmzZtXrfpOk5ufzpEmTMrfn5eXVOk9+fn5m3MSJE7frGJRSSn2+yncoAsC/zJw5M0499dSIiDjuuOOiqKgo9b733HNPdOzYMTZs2BDjx4+PRx99NJYvXx7NmjWL/fffP44++ug466yzqu3z4x//OG699daYMGFC9OrVK1544YWtvsNqw4YNNd7f2WefHYcffni8/PLL8ctf/jIWLlwYe+21V/To0aN+Bx2bV/rcd999sXHjxhgxYkQ8+eSTEbF5xdTVV18dbdu2jdtvvz3efvvteOihh+o9f11eeOGF6NatW5x55pnxs5/9LCIiTjnllFi2bFm1cdta+bal0047LSZOnBjNmjWLsrKyuO2222LmzJmxcePGOOaYY2LEiBGRm5sbo0aNig8//LDOi5iceuqpmauk3nHHHfHKK6/EXnvtFWeddVYMGTIkWrduHffcc08cfPDBDfq4cevWrePxxx+PL3/5yxER8eCDD8bvf//7WLZsWRx44IFxxRVXRJ8+feK4446Lhx9+OI4//vjMSto777wzpk6dGh06dIi//e1vEbH5ObXln9GKFStS93L55ZfHwIEDIyLi6aefjt/97nexZMmS+Oijj2LfffeNww8/PPr371/nKrbt1aVLl3j66acjJycnIiIeeOCB+OMf/xhvvfVW7LHHHnHIIYfEKaecstW5FBGx1157xaxZs+Lwww+PiIi5c+fGb3/721i4cGGsX78+DjjggDj++OPj3HPPrfG+x44dm/m6g6eeeiomTpyYWS3YvXv3GDp0aHTr1i1++9vfxvLly+Phhx+utn9DXgMiIr7xjW/ED3/4w4iIWLBgQdx1112xaNGiWLNmTey9997RtWvXOOmkk+Koo45q0GOalZUVDz30UGZV5xtvvBF33nlnzJ07N8rLy2O//faLY445JvNn/2mTJk2Ks88+OyIi5s+fH7fddlssWrQo9tlnnzjvvPPi4osvjo4dO8bjjz8ehx9++FbnbmPbb7/9Ytq0abFp06a4+uqr45lnnokNGzbE1772tbjuuuvii1/8YowaNSoeffTReO211zL7nXLKKdGiRYtYuHBhRGx9wa6IiA8++GCH9r4zHXbYYRER8eGHH0ZpaWmt45YvXx5r1qyJtm3bxle/+tWd1R4Au4kmTzWVUkqpxqyGrlA88cQTM/v97ne/2+r22uY88MADM7fVtPpoy9p777232rblyptt9bilxx57LGnRokWtY9OuUEySJPnggw+SLl26bDXmsMMOSz788MMkSZLknXfeSbKzs2t9rBuyQjFtr1tWXSuesrOzM6vE1q5dW+OqqU6dOiUlJSVJkmxeYbjvvvvW+Tj/9a9/TZo3b77VmGuvvTYzZsCAAQ16rv7iF7/IzHHjjTfWOOaee+7JjBk0aNBWt3fu3Dlze00rldLWU089lSRJkhQVFSV77LFHreM+vVIyovFWKM6dOzdJks2rYs8999xa59lnn32SPffcs9q22267LTP32LFja923efPmSfv27attO+mkkzL7XnrppTXu17Jly2TmzJmZ49zyMdqe14CqlWTFxcVJ69at6/W4p6krr7wy09uf//znWl8zsrKykg4dOlTbdtppp2X2feyxx2o8Dy677LLMmD/+8Y9b3d7YKxSrHqtP9xoRybHHHptZYXr77bfXeD9V6vPekOY53VgrFOfMmZN07dp1m7Xl609N5/17772XJEmSvPLKK9u871deeSVJkiRZtmxZozwmSimlPh/lOxQB4F/ef//9zM9f/OIXU++Xn5+f+fnvf/97nWM//PDDevdVk08++SQuu+yyWlcw1tdNN90Uixcv3mr7a6+9llk5uP/++8eZZ57ZKPe3o5x11lnRsWPHiIi4+eabY8GCBVuN+ec//xnDhw+PiM0rBOu6smlFRUVccsklNa4+/NWvfhXr16+PiM0rWuurRYsWcdlll0VExMKFC+OGG26ocdzgwYNj1apVERFxxRVX1Pt+0qp6Hj/33HPxySef1DpuR63iOvnkk6Nnz54RsfmxnTx5cq1jV69eHR9//HHm97Zt28b3vve9iNi8MnHIkCG17ltZWbnVys1rrrkmIiKmTp0av//972vcb/369ZnH/0tf+lK17zTcnteAqn1ffPHF+Oijj2rdryGPe1ZWVua5/s4778SFF15Y62tGkiRbrS6sWrG5YcOGWs+D3/3ud/HYY49FxOaV01s+FjvKlVdeWeNKyGeffTaef/75iGjYObkr6NWrVyxcuHCbVfW6XJuqVb7r1q3b5n1WPe++8IUvbP8BAPC5IVAEgH/Z8i9eVX8ZS+O9997L/HzxxRc3Zku1evbZZ2Pp0qWNMtemTZti0qRJtd4+YcKEzMdsTzrppEa5zx2lqr9NmzbVGgxFbL66aVWwU9cxPfbYY7Fy5coab1u3bl28+eabERFx0EEH1bvXnj17ZoLriRMnZh7jTysrK4spU6ZERETXrl13WGBT9Tw+44wzYt99990h91GX008/PfPz7bffXq99TzzxxMyFQX71q1/V+ljWJCcnJ3NhpJquhLulxYsXZ54PhYWFme3b8xpQte/xxx/foOdRXXr06BEHHHBARESMHz++zsDy0/bYY4/MxVH+9re/xbvvvlvr2PHjx0fE5osLVT2WO8oHH3wQjzzySK23z5s3LyIadk7uTvbcc8+IqP1rM7ZU9Q8jdV2sCAA+TaAIAP+yZYi4du3a1Pu9/fbbmVVJw4YNi4ULF8bIkSOjb9++O+wvaC+//HKjzVVcXFxtdeanrVq1KnMl4X/7t39rtPvdEaqu3lxcXJxZ1VeTysrKeOmll6rtU5OaVm1uafXq1RFRvwC6ypb3W7WqqjZb3r6tK1Q3VFWofPDBB8c//vGPuPvuu+O8887LrPjc0Y444oiIiFi6dGn885//bNC+EZu//7G++1ZdDfePf/zjVlf+/XTl5uZGRPVVidvzGvCHP/whIiLatWsXCxcujPvvvz8uvvjizPdqbo/teVwOOuigTEi7Kzw/q7z55pt1XjF6e87JXcGTTz4ZWVlZ26xtBddVK3hbtGixzfts2bJlRGxekQ0AaQkUAeBf2rVrl/m56i+laX3729+O5557LiI2ryK77rrr4oknnogPP/wwnnrqqfje976X+UtbY2jMj52muXBH1Zf677PPPo12vztCVX9pjmn58uXV9qlJeXl5nXNUrYSrCqTqY8v73Va/Vb1+er/GNGHChPjZz34WlZWVsffee8ell14a999/f7z77rvx5ptvxq233hoHHnjgDrnviP93/m252q+++zZk//bt29f7/iIiWrVqVe33hr4GPPHEE/H9738/ysvLY6+99orzzjsvJkyYEP/4xz/inXfeibvuuitzoZn62p7HZVd7flbZkefk7qSsrCwi0n2MuSo4TvPxaACoIlAEgH/ZcjXP66+/Xq99ly1bFscee2z069cvxo0bFwsXLoxNmzZFixYt4vjjj4/f/OY3sXDhwjj44IMbpde6vuOuvupa7fNZ9Vk7pl2l35/85Cfxla98Ja699tp4/PHHMx+R/cpXvhI/+tGPYvHixZnvKtxdbBk8ffe7341u3bqlqh//+MfV5tme14A777wzvvSlL8XQoUPjkUceyXwcf//9949BgwbFSy+9FDfddNMOfRzqsqs8P0mv6iPq+++//zbHVn0s/p133tmhPQGwexEoAsC/nHzyyZmfn3nmmQbN8cQTT8QVV1wR//Zv/xa5ublx7rnnxuOPPx4Rm0OZui400VTy8vJSj/n0ys0tv6uuWbPa/7fi06u5dpSq/tIcU9VHVuu7GrWxbHm/2+p3y4/X7uh+//nPf8aoUaPipJNOir333juOOeaYuP3226OioiJatGgRd955Z/To0aPaPlXPg7qeAxH/byVUTao+or7ffvvVu+ctP95e3/23/Lh/eXl5vPrqq6mqpouCRDT8NWDlypVxxx13xOmnnx777LNPFBQUxE033RQffPBBNGvWLH7yk5/EN7/5zXod2/Y8Lo31/NzyNSIrK6vWOep6blB/r732WkRE7L333nX++eXn50fbtm0jImLRokU7pTcAdg8CRQCIzR9R7NevX0RsDlTmzp273XOuXr06pkyZEieddFI89NBDEbF5FeRXvvKVauOaevXPgQceWOfHFNu1axdf+tKXImLz1Yi3VPWxuoi6r4x9yCGH1NlDYz0GVf0deOCB1T7u+WnZ2dmZFamfPqadZcv77d27d51jjzrqqBr329E2btwYRUVF8cMf/jDOP//8iNgcGp5zzjnVxlU9D/bee+8656vrefDiiy9GRETnzp2jU6dO9eqzat+IzRc3qY/58+dnQq9jjz22XvtuS9rXgE9LkiReeumluO666zKvSxERAwcOrNf9b8/j8tZbb2VWqG7P87OxXiOony3/Uazq4jo12fK2Z599dof2BMDuRaAIwOfennvuGX/4wx8yq6tuvfXWRv1IcURkVihFxFZBV9WX5zfmdyzWR7NmzeLCCy+s9faLL74489jMnDmz2m1VF2uJiDjyyCNrnePb3/52nT1UPQYR2/c4VPXXrFmzuOSSS2odd84552TCr08f084yb968zHdhXnTRRbWu3vrCF76QCZJeffXVat9XtzPV9RwuLi6OiIg2bdrUGgw1b948vvWtb9U6/8MPP5z5+Yc//GG9eps1a1bm+9+uvPLKba6U3NKqVati9uzZERFx/vnn1xlEb4+6Hr+6vPTSS5lVf/XtbcGCBZkL3Fx22WX1WgX4ySefxFNPPRURm1dv13VxnssuuywiNl/s6Mknn6x2W9VzI6Lu14jzzjsvdW/bo+rCI031eruz/OUvf8m8j9X1Wlh1cZdPPvkk/vKXv+yM1gDYTQgUAfhc++pXvxrPPPNMFBQURMTmK2zedddd9Zqje/fu0b179zrHnHTSSRGx+eN/W4ZwEf/vYgkHHXRQve63Mf30pz+tMQjq0qVL5rvili1bllllVeXDDz+MBQsWRMTmv7TWtALp2GOPjSFDhtR5/1teMGJ7rm47bdq0KCkpiYiIH//4xzVecXb//fePW2+9NSIiPvroo5gwYUKD7297bNiwIX73u99FxOarZ//0pz+tcdyvf/3rzJWFf/3rX++wfi644II6L2RxyimnZH7eMiSKiEzwFBHxox/9qMb9x4wZU+f3uT3++OOZlcFXXnllnHvuubWO3WeffWLPPffM/L5mzZr4n//5n4jYHFrdfvvtte6bnZ2deTyr3HzzzRER0bZt25g6dWrmI6A1adGiRQwePLhaILU9rwEDBw6sdiyf1rNnz8wK4k8/7tuSJEmMHj06IjZ/T94f/vCHaN68eY1js7KytvpY9Lhx4yJic/h29913R3Z29lb7XXLJJXHqqadGRMQDDzywVeD93HPPRWVlZUTUHhT/13/91zZXQTaWqteaxriK9q6stLQ07r333oiI6N+/f41h/jnnnBP9+/ePiIh77rknc/EtAEgrUUoppXanOuGEE5Iq48aNS7p27Zqpo446Kjn11FOT4cOHJ9OnT08++eSTzNjnnnsu2XfffWudt8r1119fbftFF12UJEmSPP/888lPfvKT5LTTTksKCgqS3r17J+edd14yY8aMzL4PPvjgVvP+f//f/5e5fcyYMUlBQUHy5S9/Ofnyl7+cdOrUKVUPNVVVX0mSJJ07d97q9lmzZiVJkiRvvPFG8sEHHySrV69Orr766qR3795J7969k6uvvjr54IMPMnOcffbZNd7Pd77zncyYhQsXJueee27So0eP5MQTT0xuu+22pKKiInnmmWfq7P0LX/hCUl5eniRJksydOzc56aSTkoMPPjjzOOy5556Zsddff31mrpr6Oe200zJ/rmvWrEl+8pOfJIWFhclRRx2VDB06NFm+fHlm/0GDBtXrz7q2x3DWrFkNeq5+4QtfSP7xj39k7u9Pf/pTctpppyVHHHFEcvbZZydPPPFE5rZnn302adas2VZzdO7cOTPmoosuavB5kyRJ8t577yXjxo1LLrjgguToo49OevTokZx66qnJrbfemnz00UdJkiTJ2rVrk/3333+r/Z999tlMHxMmTEj69OmTHHHEEcnAgQOTmTNnJkmSVHse1PSc7NKlS7J27drMmKlTpybnnHNOUlBQkPTq1Sv59re/nUyYMCEpKyvbav+99torWbBgQWbfF154IbnsssuS3r17J0cccURyxhlnJL/4xS+Sd955p8bH6Ze//GVm32XLliXXXXddcuKJJybdu3dPjjnmmOTCCy9Mxo8fn7z//vtJkiRJ69atG+U1oLi4OFm9enUyYcKE5JJLLkmOPfbYpEePHkm/fv2S66+/Plm1alWSJElSWVmZ9OzZs95/rllZWdXuf/HixckPfvCD5Jhjjkl69OiR9O/fP7nhhhuS119/vcbn++TJkzP7zp07Nzn//POTgoKCpF+/fsn48eMz59qqVauSDh061NjDvffem5njL3/5S3LqqacmPXr0SL75zW8mf/rTn7Z6bpxwwgkNPte29fpwzz33JEmSJBUVFcl3v/vdpGvXrpnXmdzc3Ho/vlV/9sXFxQ0+97Z8zUn7WrLl63tt5/3++++flJaWJkmSJBs2bEhGjRqVHHvsscmxxx6bjBo1KtmwYUOSJElSWlqadOzYcbv6V0op9bmsJm9AKaWUatTaMlBMo7S0NBkxYkSyxx571DlvldoCxW155plnkn322WereVu3bl0tVNrSp/+SWlsPNVXaQHHWrFnJaaedlqxbt67GHjZu3JgMGzas1vvJyspKHnjggVqPe8GCBUleXt42e//v//7vWufYMmDYVmAQEcmFF16YVFRU1DpfZWVlcs0119T7z7qux7Chz9fOnTsnr732Wq29JkmSPP3008kXv/jFWvevsr2B4rZ88MEHyamnnlrj/oceemi1sPbTfvGLX2zzORkRSUFBQbJ06dJt9lLT/vvuu2/y5JNPbnPf2h6nn/70p5mQpS5lZWXVQu7teQ0oLi7e5n4VFRXb9We71157JVOmTNnm/dT0fG/ZsmXy5z//uc793n333aR79+613n/79u2T119/vdb977vvvuTEE0/M/L4jA8Xu3bvX+towYcKEej+2u3KgGBHJUUcdlSxbtqzWx37ZsmXJUUcdtV29K6WU+nzW1p9bAIDd1CeffBJlZWWxZs2aWLp0acybNy+efvrp+Otf/5r5SF5D3H///VFaWhonn3xy9OrVKzp27Bh5eXmRnZ0dK1asiBdffDEmT54cf/zjH2u8+MhHH30UxxxzTIwYMSJOOeWU6Ny5806/4un//d//xZFHHhnDhw+PE088Mfbbb7/48MMP4+mnn47bbrst8x1zNUmSJM4555z43ve+FxdffHEcdthhERGxZMmSmDx5cvzyl7+s9h2JtbnmmmvizTffjAsvvDC6du0abdu2rfEjlmn84Q9/iKeeeiqGDh0ap5xySnTq1CmaNWsWy5YtiyeeeCLGjh3bZBdj+bSlS5dG9+7d4zvf+U78+7//e3Tr1i3atGkTq1evjpdeeinuvffeuO+++3b4xXu6du0a3/jGN+JrX/tafPnLX468vLzYe++9o6ysLBYvXhwzZsyIu+66K1asWFHj/q+//noUFBTEj3/84zjttNNiv/32izVr1sS8efNi7Nix8eijj8ZFF120zT5efPHFOPTQQ+Oyyy6LAQMGRLdu3WKfffaJjz/+OIqLi6OoqCgmT54cS5cu3Wrf999/P/r06RMDBgyI888/P44++ujIzc2NJEli2bJlMW/evJg2bVr8+c9/rvG+b7rpprjnnnti0KBBceKJJ8ZBBx0Ubdu2jfLy8njnnXfipZdeir/97W/x4IMPVntOb89rQN++feOMM86I448/Pg455JDIz8+PL37xi1FeXh5LliyJxx9/PO666656f9x5SxUVFTFw4MDo06dPXHLJJfG1r30t8vPzY4899ojS0tKYP39+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hLjwwgtj2LBhjXioAAAAAMD2qnegOGXKlMjNzY0bb7wx8vPzY/78+dG/f/9YsWJFRER06tSp2mrDoqKiOP/88+Pmm2+OW265Jd58880YMGBAvPrqq5kx5513XowaNSruvffe2GeffWLp0qXx4x//OH7zm980wiECAAAAAI2l3oFiRMS4ceNi3LhxNd7Wt2/frbZNnTo1pk6dWut8paWlcemllzakFQAAAABgJ/IlhQAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACA1gSIAAAAAkJpAEQAAAABITaAIAAAAAKQmUAQAAAAAUhMoAgAAAACpCRQBAAAAgNQEigAAAABAagJFAAAAACC1BgWKgwcPjuLi4qioqIjZs2dHr1696hx/zjnnxKJFi6KioiJefvnl+PrXv77VmC5dusRDDz0UH374Yaxbty7mzJkTBxxwQEPaAwAAAAB2kHoHigMHDowxY8bEyJEjo6CgIBYsWBAzZsyI3NzcGscXFhbG/fffH3fffXccccQRMW3atJg2bVp07do1M+aggw6KZ555JhYvXhx9+vSJww8/PG666ab4+OOPG35kAAAAAECjq3egOGzYsBg/fnxMnDgxFi1aFIMGDYry8vK49NJL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vXr1qnP8OeecE4sWLYqKiop4+eWX4+tf/3rmtuzs7Pjv//7vePnll2PdunVRUlISkyZNiv32268hrQEAAAAAO1C9A8WBAwfGmDFjYuTIkVFQUBALFiyIGTNmRG5ubo3jCwsL4/7774+77747jjjiiJg2bVpMmzYtunbtGhERrVq1ioKCgrjpppuioKAgzj777Dj00EPjL3/5y/YdGQAAAADQ6OodKA4bNizGjx8fEydOjEWLFsWgQYOivLw8Lr300hrHDxkyJKZPnx633nprLF68OK677rp48cUX44orroiIiLVr18Ypp5wSf/rTn+KNN96I559/Pq644oo48sgj44ADDti+owMAAAAAGlW9AsXmzZtHz549Y+bMmZltSZLEzJkzo7CwsMZ9CgsLq42PiJgxY0at4yMi2rZtG5s2bYoPP/ywPu0BAAAAADtYdn0Gt2vXLrKzs6O0tLTa9tLS0ujSpUuN++Tn59c4Pj8/v8bxLVu2jJ///Odx//33R1lZWY1jWrRoES1btsz8npOTU5/DAAAAAAAaaJe6ynN2dnZMmTIlsrKy4vLLL6913IgRI2Lt2rWZKikp2YldAgAAAMDnV70CxVWrVsXGjRsjLy+v2va8vLxYvnx5jfssX7481fiqMLFz585x8skn17o6MSJi1KhR0aZNm0x17NixPocBAAAAADRQvQLFysrKmDdvXvTr1y+zLSsrK/r16xdFRUU17lNUVFRtfETEySefXG18VZh48MEHx0knnRSrV6+us48NGzZEWVlZtQIAAAAAdrx6fYdiRMSYMWNi0qRJMXfu3JgzZ04MHTo0WrduHRMmTIiIiEmTJkVJSUlce+21ERFxxx13xFNPPRXDhg2LRx55JM4777w48sgj47vf/e7mBrKzY+rUqVFQUBCnn3567LHHHpkVjatXr47KysrGOlYAAAAAYDvVO1CcMmVK5Obmxo033hj5+fkxf/786N+/f6xYsSIiIjp16hSbNm3KjC8qKorzzz8/br755rjlllvizTffjAEDBsSrr74aEREdO3aMM888MyIiFixYUO2++vTpE0899VSDDw4AAAAAaFz1DhQjIsaNGxfjxo2r8ba+fftutW3q1KkxderUGscvXbo0srKyGtIGAAAAALCT7VJXeQYAAAAAdm0CRQAAAAAgNYEiAAAAAJCaQBEAAAAASE2gCAAA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XZLf/OY3yerVq5P27ds3eW9K7awaPXp0cvzxxyedO3dOCgsLk7/97W/JihUrknbt2jV5b0rtqGrdunXSvXv3pHv37kmSJMnQoUOT7t27JwcccEASEclVV12VrF69OjnjjDOSbt26JQ8++GCyZMmSpGXLlk3eu1KNWXWdC61bt05+8YtfJL179046d+6cnHjiicncuXOT119/PWnRokWT965UY9W4ceOSDz74IDn++OOTvLy8TO25556ZMXfeeWfy9ttvJ3369EkKCgqSZ599Nnn22WebvHelGqu2dR4cdNBByU9+8pOkoKAg6dy5c3LGGWck//jHP5Inn3yyyXtXqrHqlltuSY477rikc+fOSbdu3ZJbbrkl+eSTT5KTTjopifBesEU1eQO7RH3/+99P3n777eTjjz9OZs+enRx11FFN3pNSO7Puv//+pKSkJPn444+Td955J7n//vuTgw46qMn7UmpH1gknnJDUZMKECZkxI0eOTN57772koqIieeyxx5KDDz64yftWqrGrrnNhzz33TKZPn56UlpYm69evT4qLi5P/+Z//8Q+varer2lx00UWZMS1btkx+/etfJ++//36ybt265M9//nOSl5fX5L0r1Vi1rfNg//33T5588slk1apVSUVFRfLGG28kP//5z5OcnJwm712pxqrf/e53SXFxcfLxxx8npaWlyWOPPZYJEyO8F1RV1r9+AAAAAADYps/9dygCAAAAAOkJFAEAAACA1ASKAAAAAEBqAkUAAAAAIDWBIgAAAACQmkARAAAAAEhNoAgAAAAApCZQBAAAAABSEygCAAAAAKkJFAEAAACA1ASKAAAAAEBqAkUAAAAAILX/H+a2AaoF0TGyAAAAAElFTkSuQmCC"
219
    }
220
   },
221
   "cell_type": "markdown",
222
   "id": "b95b64e5",
223
   "metadata": {},
224
   "source": [
225
    "![success_distr.png](attachment:success_distr.png)"
226
   ]
227
  },
228
  {
229
   "cell_type": "markdown",
230
   "id": "1ffb0c22",
231
   "metadata": {},
232
   "source": [
233
    "Видим, например, что $20$ и более успехов случаются достаточно редко. Для принятия решения можно пользоваться правилом `инвестируем, если успехов хотя бы 20`. Если $\\mathsf{H}_0$ и верна, то ошибаться, используя это правило, мы будем редко."
234
   ]
235
  },
236
  {
237
   "cell_type": "markdown",
238
   "id": "1e47d00f",
239
   "metadata": {},
240
   "source": [
241
    "### Критерий\n",
242
    "\n",
243
    "Только что мы придумали алгоритм, который по выборке $\\xi$ либо признаёт, что мы нашли доказательство в пользу $\\mathsf{H}_1$, либо говорит, что его не нашли. Соответственно будет либо **отвергать $\\mathsf{H}_0$**, либо **не отвергать**.\n",
244
    "\n",
245
    "Такой алгоритм называется **критерием**. Представим его как функцию $S$, которая принимает реализацию выборки и возвращает $1$, если нужно отвергнуть $\\mathsf{H}_0$, и $0$ иначе.\n",
246
    "\n",
247
    "$$\n",
248
    "S(\\xi) = \\begin{cases}\n",
249
    "    1, \\text{ если отвергаем } \\mathsf{H}_0 \\\\\n",
250
    "    0, \\text{ иначе}\n",
251
    "\\end{cases}\n",
252
    "$$\n",
253
    "\n",
254
    "Запишем правило, которое сформулировали выше для нашей задачи:\n",
255
    "\n",
256
    "$$\n",
257
    "S(\\xi) = \\begin{cases}\n",
258
    "    1, \\text{ если } \\sum \\xi_i \\geqslant 20 \\\\\n",
259
    "    0, \\text{ иначе}\n",
260
    "\\end{cases}\n",
261
    "$$\n",
262
    "\n",
263
    "Обычно сокращают запись и пишут просто правило, по которому отвергаем $\\mathsf{H}_0$\n",
264
    "\n",
265
    "$$ S = \\{\\sum \\xi_i \\geqslant 20\\} $$\n",
266
    "\n",
267
    "Обозначим $Q = \\sum \\xi_i$, $С = 20$, тогда критерий принимает вид\n",
268
    "\n",
269
    "$$ S = \\{Q(\\xi) \\geqslant C\\} $$\n",
270
    "\n",
271
    "Так устроено большинство классических критериев в прикладной статистике, поэтому величинам в нём даны специальные названия. $Q$ называется **статистикой критерия**, $C$ — **критическим значением**.\n",
272
    "\n",
273
    "$Q$ может быть любой функцией от выборки, которую вы считаете логичной для проверки гипотезы. В нашем случае это количество успехов, или сумма всех $\\xi_i$. Но вы можете выбрать и другие: максимальное значение, сумму первых 5 значений или даже просто первый элемент."
274
   ]
275
  },
276
  {
277
   "cell_type": "markdown",
278
   "id": "565e4d5b",
279
   "metadata": {},
280
   "source": [
281
    "### Поиск критического значения\n",
282
    "\n",
283
    "Снова перепишем наш основной вопрос, только теперь с использованием нашего критерия $S$:\n",
284
    "\n",
285
    "❓ **Насколько часто может быть такое, что при справедливости $\\mathsf{H}_0$ критерий $S$ отвергает гипотезу**?\n",
286
    "\n",
287
    "Ответ на этот вопрос зависит от критического значения. Сейчас мы взяли его равным $20$, увидев на картинке, что большие отклонения происходят при $\\mathsf{H}_0$ редко. Но что значит редко и насколько редко, не сказали. Теперь наша цель понять, как выбрать критическое значение $C$, исходя из частоты ошибок нашего критерия.\n",
288
    "\n",
289
    "Выбирая $C$, мы можем либо часто отвергать нулевую гипотезу, когда $C$ мало, либо можем делать это реже, когда $C$ большое. Чтобы выбрать правильное значение, нужно определиться, когда наш критерий ошибается.\n",
290
    "\n",
291
    "**C = 16**\n",
292
    "\n",
293
    "Если отвергать гипотезу при получении хотя бы 16 успешных доставок из 30, то это вряд ли устроит инвесторов. Да, успехов больше половины. Но если в генеральной совокупности вероятность 0.5, то почти в половине случаев мы будем отвергать гипотезу. Критерий ошибочно возвращает $1$, то есть это ошибка **False Positive**.\n",
294
    "\n",
295
    "**C = 29**\n",
296
    "\n",
297
    "В таком случае будем отвергать гипотезу только при 29 или 30 успехах. Эти значения, конечно, говорят о том, что отклонение от 50% успехов сильное. Но если в генеральной совокупности вероятность, к примеру, 60%, то такие значения будут получаться редко. А ведь такие вероятности тоже устроили бы инвесторов, и мы бы смогли открыть стартап! А с таким критерием мы вряд ли добьёмся этого. Не отвергнуть гипотезу $\\mathsf{H}_0$, когда она неверна - это тоже ошибка. Она называется **False Negative**, так как критерий вернул 0 ошибочно.\n",
298
    "\n",
299
    "$$ \\text{False Positive (FP) } - \\mathsf{H}_0\\ отвергается,\\ когда\\ она\\ верна $$\n",
300
    "$$ \\text{False Negative (FN) } - \\mathsf{H}_0\\ не\\ отвергается,\\ когда\\ она\\ не верна $$\n",
301
    "\n",
302
    "В нашей задаче инвесторам важнее False Positive. Им очень не хочется попасть в ситуацию, когда им показали доказательство успешности бизнеса, а оказалось, что от большинства заказов отказываются, и компания не получает прибыль. Это приведёт к убыткам. False Negative же приведет к тому, что вы упустите успешный бизнес, но инвесторы денег не потеряют.\n",
303
    "\n",
304
    "Поэтому выберем порог, чтобы была удовлетворительной вероятность False Positive, или же False Positive Rate (FPR). Для этого надо понять, как часто мы будем отвергать гипотезу, когда верна $\\mathsf{H}_0$.\n",
305
    "\n",
306
    "Теперь снова переформулируем основной вопрос, полностью с использованием новых терминов, и наконец ответим на него.\n",
307
    "\n",
308
    "❓ **Какой FPR у критерия S для проверки гипотезы $\\mathsf{H}_0$ vs $\\mathsf{H}_1$**?\n",
309
    "\n",
310
    "Вспомним моделирование из части 1. Когда $\\mathsf{H}_0$ верна, чтобы посчитать количество успехов мы проводили $30$ раз подбрасывание монетки с вероятностью орла $0.5$. Количество орлов (то есть успехов) в таком эксперименте имеет распределение, которое называется биномиальным, то есть при $\\mu = 0.5$ наша статистика имеет биномиальное распределение $Q \\sim Binom(0.5, 30)$.\n",
311
    "\n",
312
    "Вычислим FPR для $C = 20$\n",
313
    "\n",
314
    "$$ FPR = P(S(\\xi) = 1\\ |\\  \\mathsf{H}_0) = P(Q \\geqslant 20\\ |\\ \\mathsf{H}_0) = P(Q \\geqslant 20\\ |\\ \\mu = 0.5) = $$\n",
315
    "\n",
316
    "$$ = P(Q \\geqslant 20\\ |\\ Q \\sim Binom(0.5, 30)) $$\n",
317
    "\n",
318
    "Это уже вероятность события при конкретном распределении случайной величины. Его можно посмотреть по таблице или, что удобнее, вычислить в Python. Работе с распределениями в Python будет посвящена часть 3.\n",
319
    "\n",
320
    "$$ FPR \\approx 0.049 $$\n",
321
    "\n",
322
    "Если False Positive Rate не превышает некоторой константы $\\alpha$, то критерий называется критерием **уровня значимости** $\\alpha$. В прикладной статистике мы никогда не ставим задачу в формулировке \"создать статистический критерий\", а ставим только в формулировке \"создать статистический критерий уровня значимости \"$\\alpha$\". Статистический критерий с $\\alpha$ = 100% создать тривиально — достаточно всегда отвергать $H_0$ — поэтому такая постановка не имеет смысла.\n",
323
    "\n",
324
    "Уровень значимости обычно выбирается на основе бизнес-соображений. Он обозначает то, какой риск неправильного принятия положительного решения мы считаем приемлемым. Обычно берут $\\alpha = 0.05$, но если требуется более точное принятие решения, могут выбрать $0.01$, $0.005$, $0.001$. Если же решение не так критично, могут выбрать $0.1$.\n",
325
    "\n",
326
    "Предположим, выбрали значение $\\alpha = 0.05$, тогда наш критерий подходит для принятия решений. Воспользуемся критерием $S$: в нашем случае у нас всего лишь $19$ успехов, а значит гипотезу $\\mathsf{H}_0$ мы не отвергаем."
327
   ]
328
  },
329
  {
330
   "cell_type": "markdown",
331
   "id": "78a2abfb",
332
   "metadata": {},
333
   "source": [
334
    "## Часть 3. Статистические функции в Python\n",
335
    "\n",
336
    "В этой части посмотрим, как вывести то, что мы получили в части 2, с помощью Python. А также поймём, как найти подходящее $C$ с помощью Python."
337
   ]
338
  },
339
  {
340
   "cell_type": "markdown",
341
   "id": "1e6b331a",
342
   "metadata": {},
343
   "source": [
344
    "### Биномиальное распределение\n",
345
    "\n",
346
    "Мы выяснили, что статистика $Q$ имеет биномиальное распределение.\n",
347
    "\n",
348
    "Биномиальное распределение $Binom(n, \\mu)$ — распределение количества успехов в последовательности из $n$ независимых случайных экспериментов, вероятность успеха в каждом из которых равна $\\mu$.\n",
349
    "\n",
350
    "Чтобы работать с распределением, можно создать объект-распределение с помощью библиотеки `scipy.stats`."
351
   ]
352
  },
353
  {
354
   "cell_type": "code",
355
   "execution_count": 10,
356
   "id": "539575d3",
357
   "metadata": {},
358
   "outputs": [],
359
   "source": [
360
    "binom_h0 = binom(\n",
361
    "    n=30, # количество испытаний\n",
362
    "    p=0.5 # вероятность успеха\n",
363
    ")"
364
   ]
365
  },
366
  {
367
   "cell_type": "markdown",
368
   "id": "af0fb4aa",
369
   "metadata": {},
370
   "source": [
371
    "### Функция вероятности\n",
372
    "\n",
373
    "Функция вероятности дискретного распределения $p_\\xi(x)$ — вероятность, с которой $\\xi$ принимает значение $x$.\n",
374
    "\n",
375
    "В Python это функция `pmf` (probability mass function)"
376
   ]
377
  },
378
  {
379
   "cell_type": "code",
380
   "execution_count": 11,
381
   "id": "d80e9bba",
382
   "metadata": {},
383
   "outputs": [
384
    {
385
     "data": {
386
      "text/plain": [
387
       "0.027981600724160505"
388
      ]
389
     },
390
     "execution_count": 11,
391
     "metadata": {},
392
     "output_type": "execute_result"
393
    }
394
   ],
395
   "source": [
396
    "binom_h0.pmf(10)"
397
   ]
398
  },
399
  {
400
   "cell_type": "markdown",
401
   "id": "1f57e1f4",
402
   "metadata": {},
403
   "source": [
404
    "Изобразим распределение статистики $Q$ при справедливости $\\mathsf{H}_0$ на графике. Для этого можно передать сразу массив точек, для которых надо рассчитать вероятность."
405
   ]
406
  },
407
  {
408
   "cell_type": "code",
409
   "execution_count": 12,
410
   "id": "2d335713",
411
   "metadata": {},
412
   "outputs": [],
413
   "source": [
414
    "# координата\n",
415
    "x_grid = numpy.arange(1, 31)\n",
416
    "# высота столбцов на графике\n",
417
    "probs = binom_h0.pmf(x_grid)"
418
   ]
419
  },
420
  {
421
   "cell_type": "code",
422
   "execution_count": 13,
423
   "id": "b50f4e82",
424
   "metadata": {},
425
   "outputs": [
426
    {
427
     "data": {
428
      "image/png": "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JEnKoLVr1/L+++9TpUoVDj300ILymTNnMmvWLK644oqE+u3bt6dVq1YMHz58dzeVtm3bsmPHDqZPn15k3YEHHsiGDRsSemgffPBBgiBgv/32KygbNGgQQRBw0EEH8cADDzB//nw2bNhATk4OJ5xwQpH9Hn744QwfPpzc3Fw2b97MF198we9///si9fKPdcQRR/Dwww+Tm5vLunXr+Ne//kXTpk0BuOyyy8jJyWH9+vXMnTu3SC9p1apVOfvss3nzzTeL9PpefPHFVKlShSFDhiSU//Wvf2X9+vVcdtllu/4A41SvXp3atWuXaJuSWLRoEQD77rtvQVk657B+/XreffddLrjggnJrazwDqiRJkpRh+ZPQ5OXlJZQPHz6cX/ziFzRp0qSg7Morr+S7775jwoQJO93n3nvvTYMGDRKWOnXqlKqdbdq0Yf78+VSvXp0GDRpwwAEH0KFDB0aMGEGbNm24/vrrWbNmTUH91q1bs2jRIlasWFFQduyxx7Jq1SreeOMNDjvsMAYNGsQf//hHjjzySEaPHk21aj/chdilSxdmzZrF//3f//HYY4/Ru3dv5s6dy+DBgxk4cGBC21q3bs2GDRsYM2YMDRo04L777uP555+nS5cuPP744zz66KPccsstjBo1irvvvpsGDRowcuRIGjZsWLCPtm3bUrduXf73v/8VOff27duzffv2Ius2b97MrFmzaN++fcqf4/nnn8+GDRtYt24d3333HY888gj16tVLeftk9tprLxo0aECTJk3o0qULw4YNA0gY5p3uObz//vsceOCBHHnkkaVqY0qK61rN5OIQXxcXFxeXqC6lkem2u7hEcdkTh/jeddddQYMGDYKGDRsGxxxzTPDUU08FQRAE//3vfxPq3XzzzcF+++0XbNq0KfjDH/4QAEHNmjWDlStXBg899FAA7HSIbzIvvPBC2u2vXbt2sG3btqT7XbBgQXD88ccX2WbZsmXB2LFjE8ry8vKCIAiCyy+/PKH83nvvDYIgCA4//PAACA455JBg7dq1wTvvvBPUqlUroe77778fbNy4MaF82bJlQRAUHaY6c+bMIAiC4LXXXksYttu7d+8gCILglFNOKSjr2bNnEARB8Ktf/arIuXz88cfB0qVLk342o0aNCoIgCKpXr77Lz3HatGnBzTffHHTr1i24/PLLgxdeeCEIgiD46KOPgtq1a6f9+7n++usTfifz588PLrnkkjI5h0svvTQIgiA499xzS/VvOn8JdjLE10mSJEmSpN3onnvu4Z577il4v337dl599VV69epVpO6KFSsYP348PXv25IEHHuDcc8+lfv36PPPMM7s8zrBhw3j55ZcTypYuXZp2u4899liqVq3KkCFDCnpv99prL376059y++23M3LkSNq2bcvKlSsBaNKkCY0aNeLDDz8s2MfBBx9MgwYNmDBhAs8991zC/jdv3gyEk0MB9OvXj7333purrrqqoCzf1KlT6dixI82aNWPu3LkFx3r11Vd54YUXEuquXLmSrVu3cuWVVyYM283v6Y0va9SoEUBCj2++vffeu6CNhW3atKmgzurVq5PWydexY8eE98899xwff/wx999/PzfeeCP333//Trcvzrhx45g7dy516tShdevWnHXWWQXnU9pz+P777wHYf//902pbSRhQJUmSpN0oPzgGQcD69ev5/PPPC0JdMsOHD2fixImccMIJXHnllXzwwQd89tlnuzzOF198wb///e8ya3f+I2ReffVVpk6dWlA+ceJENm/ezODBg7nssssKHo3Tpk0bgISA2rp1awBefPHFIvtv1aoVa9as4ZtvviErK4tzzjmHKVOm8Pnnnxepm5WVBVAwW3D+sUaNGpV0v1OmTEmYyRbgqKOOAmDevHkFZUFsBtv8/cfbsGFDsQGtZs2aBXXS8dBDD5Gdnc0vf/nLtAPqN998wzfffAOEv6PRo0czffp0atWqxYMPPljQvnTOIf/zyP98ypP3oEqSJEm7UX5wnDx5Mh988MFOwynApEmTyM3NJTs7m5NPPjml3tPykB8CZ8+eXWRdfmBu1qxZQVl+GJ05c2aRsmnTphXZR9u2bQvCbNOmTdlvv/2KfaxJq1atWLFiBYsXL97pfps2bcr++++f9Hht2rThm2++4bvvvisoyw+x8ZM65fv2229p2LAhNWrUKLKuSZMmLF++PO1HxWzbtq1g/2Xlk08+4cMPP+S6664rKEv3HPI/j8IhvzykGlBPB+YBXwJ3JFnfAngf2AzckmR9VeBDYOd3ckuSJElKsGPHDkaMGEGXLl3YtGlT0t7H3aFt27Z89913RSZyAgpmH87vwYMwNC5fvjyhLH+CpK+++iph+3322YdDDz20IMzm99QVfv4rhKGzS5cujB07NuFYK1eu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cxk7dmzC+j/96U+0a9eO9u3b73Q/derUYd26dQRBUOKAlclAVhK1a9dm/fr15bb/7du3p91LXVYOOOAAqlSpwooVK8p83/nXSDJt2rThoosuYsyYMZx33nlF1u+///6sXr26zNtUEs7iK0mSJJWzq666ihYtWjB48OAi4TRfTk4OQ4cOLXi/YMECpkyZwrHHHss///lPVq1axccffwxAp06dCIKAHj16ANCjRw+mTp0KhENH8+/nmzJlChAO/w2CIOnEa+eeey6TJ09m5cqVrF+/nrlz5/Lwww9TvXp1ALKysujbty9vv/02S5YsYfPmzSxatIgnnniC/fbbL+3PJP4crrvuOubMmcOmTZu45ZZbCupceOGFvPvuu6xZs4b169czbdq0pMGqSpUq9OvXj4ULF7Jx40Y++ugjLrzwQrKzswmCgGbNmhXUTVaW/xmNGDGCpUuXsmnTJr788ksGDhxIrVq1Eurlb//jH/+YgQMHsnjxYjZt2sSsWbPo2rXrLs97+PDhfP311wD079+/4HfVqVMnAKpWrcptt93GnDlz2LhxI3l5eYwZM4ZWrVoVaW/+7/TCCy8kJyeHDRs28OijjxZ77COOOAKAyZMnJ12/bNmyjPey24MqSZIklbPzzz8fgKeeeqpE2x188MFMnjyZl19+mdGjR1OnTp2k9d555x0GDhzInXfeybBhw3j33XcB+O6773a6//vuu48777yTOXPm8Je//IUlS5Zw2GGHcd5553H33XezevVqatSowa233sro0aN59dVXWb9+Pe3bt+c3v/kNP/vZz2jbtm3CUOOS6tOnDw0aNOCvf/0rS5cuZfHixQDce++99OvXjzfeeIO77rqLHTt2cM455/DKK69w/fXX88QTTxTs47HHHuPaa69l8uTJDBo0iEaNGvHEE0+wYMGClNpw8MEH87///Y999tmHoUOH8vnnn9O5c2f69u3LCSecwM9//vMiva7PPvssW7duZdCgQdSoUYM+ffowbtw4fvzjH7No0aJijzVs2DBmzZrFkCFDGDNmDGPGjAHgs88+A2DkyJFcdNFF/Otf/2Lo0KEceOCBXH/99bz//vuceOKJzJo1K2F/Z599Nr1792bo0KE8+eSTrFmzpthj59/nesEFFzBy5EhWrVqV0uezOxlQJUmSpHLWqlUr1qxZk3JgynfooYdy1VVX8be//W2n9RYsWMCbb77JnXfeyfvvv8/IkSN3ue/27dtz5513MnnyZM4444yEIcB33HFHwc+bN2+mcePGbNq0qaBs2LBh/Pe//+Vvf/sbZ599Ni+//HKJzivewQcfTIsWLVi+fHlBWevWrenXrx/3338/d955Z0H5o48+ytixY3nggQcYMWIE69ato2XLllx77bX885//5IwzziCcxBxefvnlImGuOPfffz/7778/Z5xxBm+88QYAQ4cOZdGiRdx666306NGDZ555JmGbvLw8fvWrXxW8nzJlCtOnT+fqq6+mb9++xR5r2rRpLFmyhCFDhvDxxx8n/K5OPfVULrroIkaNGkX37t0LykeNGsXMmTN55JFHOOmkkxL2d/TRR/OTn/yEuXPn7vI8c3JyGD9+PGeddRa5ubn897//5YMPPuCDDz7g3//+Nxs3btzlPsqbQ3wlSZKkclavXr2d9mwV5/vvv2f48OHl0CK49NJLAfjDH/6wy/tT88NplSpV2GeffWjQoEHBMNHjjjuuVO0YMWJEQjjNb9uOHTt49tlnadCgQcIyfvx46tWrx/HHHw/AmWeeCcDDDz9cEE4BZs+ezaRJk3Z5/KysLM466yxmzpxZEE7zPfDAA2zfvp1zzjmnyHYPP/xwwvucnBzWrFlTMIw2HfnHGThwYEL5J598woQJEzjxxBNp2LBhwrrXX389pXCa77zzzuOGG25g9uzZdO7cmX79+vHaa6+xdOlSfv/736fd9rJiQJUkSZLK2Zo1a6hbt26Jt/vqq6/YsWNHObQovB9xx44dKT2S5oILLmDatGls3LiRVatWkZeXV9AbvO+++5aqHZ9//nmRsqOOOooqVaowb9488vLyEpb8nswDDjgAgObNmwMwb968IvtJVlZYo0aNqFu3LnPmzCmybuXKlSxZsoRDDz20yLr58+cXKVuxYgUNGjTY5TGL07x5c7Zv314w3Dfe7NmzC+rES/b57cy2bdt4/PHH6dixI/Xq1eNnP/sZ999/P1lZWQwePDih5zYTHOIrSZIklbPZs2fTqVMnmjdvXqJhvhs2bCi3NmVlZSX0OBbnnHPO4aWXXuKDDz7gxhtvLJgUqGrVqkyaNIkqVUrX55XsHLOystixYwddu3Ytdsbd/ECZlZVVquOnu31x7SpNe9LZtjTXyKZNm/jPf/7Df/7zH6ZMmcKbb77Jb37zG1588cW091laBlRJkiSpnI0ePZpOnTpx1VVXJdxTWZZSCZvx5s2bR9euXfnJT37C9OnTi613+eWXs3HjRk4++eSEexSPPPLItNu6K1988QVdu3bl66+/3uXw1fzAf+SRRxYJ/6m0cdmyZaxZs4ajjz66yLr69evTuHHjlO9lLa2vvvqK008/naOOOopPPvkkYV3Lli0BSnwfc6qmTZsGQJMmTcpl/6lyiK8kSZJUzp5++mnmzp3LLbfcwllnnZW0Tps2bbj22mvTPkb+sy9TffTL888/D4QTBNWoUaPYetu3bycIgiI9pf369Uuzpbv23HPPFbQtWQ9to0aNCn5+7bXXALjxxhsTeiBbtWrFaaedtstjBUHAa6+9Rps2bYrUv+OOO6hatWqxjwYqa+PGjQPC+4LjHX300Zx11lm8++675OXlpb3/ww8/nMMOOyzpurPPPhuATz/9NO39lwV7UCVJkqRytnHjRs4880xef/11Xn31VSZNmsSbb77J999/T6NGjTj55JM57bTT+NOf/pT2MT799FPWrFnDddddx4YNG1i1ahXLli0reBZqYdOnT+fBBx/kjjvuYMaMGYwaNYqlS5fSvHlzzj//fDp06MDq1at55ZVXOP/885k8eTIjRoygevXqnH322ey9995pt3VXcnJyuPvuu7nnnnuYNWsWL7/8Mt9++y2NGzembdu2nHHGGey1114F5z1s2DCuvvpq3nrrLcaOHUujRo24/vrr+fDDD2nXrt0ue5f79u1Lly5dGDduHE888QRffvklJ510Et27d+ftt9/m2WefLbdzjffWW28xatQoLr74Yvbdd18mTJhQ8JiZTZs20bt371Lt/6c//SmjRo3i7bffZurUqeTm5lK7dm2OO+44LrzwQtasWcM999xTRmeTHgOqJEmStBt89dVXtG7dmquvvprzzjuPO++8kzp16rBixQpycnLo0aNHQa9mOjZt2kT37t257777GDJkCDVr1mTq1KnFBlQIe+o++ugjbrjhBm677TaqVKnC4sWLmThxYsG9jaNGjaJu3brcdNNNDBo0iJUrV/Laa69xxx13sGLFirTbuyv33nsvM2bMoHfv3vTp04fatWuzbNkyZs+ezY033phQ97rrruPbb7/lN7/5DYMGDWLevHlce+21dOjQgXbt2u3y8Slff/01xx13HPfccw+XXXYZ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\n",
429
      "text/plain": [
430
       "<Figure size 1152x576 with 1 Axes>"
431
      ]
432
     },
433
     "metadata": {
434
      "needs_background": "dark"
435
     },
436
     "output_type": "display_data"
437
    }
438
   ],
439
   "source": [
440
    "pyplot.figure(figsize=(16, 8))\n",
441
    "\n",
442
    "# строим вертикальные столбцы от 0 до вероятности\n",
443
    "pyplot.vlines(x_grid, 0, probs, linewidth=15.0, color='white', label='PMF, $Binom(0.5, 30)$')\n",
444
    "# отдельно изобразим критическую области критерия\n",
445
    "crit_reg = x_grid >= 20\n",
446
    "pyplot.vlines(x_grid[crit_reg], 0, probs[crit_reg], linewidth=15.0, label='Critical region for S')\n",
447
    "\n",
448
    "pyplot.title('Binomial distribution', fontsize=20)\n",
449
    "pyplot.legend(fontsize=18)\n",
450
    "pyplot.show()"
451
   ]
452
  },
453
  {
454
   "cell_type": "markdown",
455
   "id": "742866be",
456
   "metadata": {},
457
   "source": [
458
    "На самом деле уже сейчас мы можем посчитать вероятность попадания в критическую область. Нужно просто просуммировать высоты оранжевых столбцов."
459
   ]
460
  },
461
  {
462
   "cell_type": "code",
463
   "execution_count": 14,
464
   "id": "6624434e",
465
   "metadata": {},
466
   "outputs": [
467
    {
468
     "data": {
469
      "text/plain": [
470
       "0.04936857335269421"
471
      ]
472
     },
473
     "execution_count": 14,
474
     "metadata": {},
475
     "output_type": "execute_result"
476
    }
477
   ],
478
   "source": [
479
    "numpy.sum(probs[crit_reg])"
480
   ]
481
  },
482
  {
483
   "cell_type": "markdown",
484
   "id": "bfcc9f59",
485
   "metadata": {},
486
   "source": [
487
    "Получаем то число, которое было в части 2. Значит мы действительно построили критерий уровня значимости $\\alpha = 0.05$. Более того, это критерий уровня значимости $0.0494$, но такую точность обычно не используют.\n",
488
    "\n",
489
    "А что если бы мы взяли $C = 19?$"
490
   ]
491
  },
492
  {
493
   "cell_type": "code",
494
   "execution_count": 15,
495
   "id": "b390f8cc",
496
   "metadata": {},
497
   "outputs": [
498
    {
499
     "data": {
500
      "text/plain": [
501
       "0.10024421103298595"
502
      ]
503
     },
504
     "execution_count": 15,
505
     "metadata": {},
506
     "output_type": "execute_result"
507
    }
508
   ],
509
   "source": [
510
    "crit_reg = x_grid >= 19\n",
511
    "numpy.sum(probs[crit_reg])"
512
   ]
513
  },
514
  {
515
   "cell_type": "markdown",
516
   "id": "f5b03413",
517
   "metadata": {},
518
   "source": [
519
    "Тогда вероятность ошибки уже даже больше $10\\%$, что совсем нам не подходит. Видно, что нет такого $C$, чтобы False Positive Rate был ровно $5\\%$."
520
   ]
521
  },
522
  {
523
   "cell_type": "markdown",
524
   "id": "e4e30701",
525
   "metadata": {},
526
   "source": [
527
    "### Кумулятивная функция распределения"
528
   ]
529
  },
530
  {
531
   "cell_type": "markdown",
532
   "id": "9b88f8bf",
533
   "metadata": {},
534
   "source": [
535
    "Кумулятивная функция распределения $F_\\xi(x) = P(\\xi \\leqslant x)$\n",
536
    "\n",
537
    "В Python это функция `cdf` (cumulative distribution function)"
538
   ]
539
  },
540
  {
541
   "cell_type": "code",
542
   "execution_count": 13,
543
   "id": "cf5fb44d",
544
   "metadata": {},
545
   "outputs": [
546
    {
547
     "data": {
548
      "text/plain": [
549
       "0.9506314266473055"
550
      ]
551
     },
552
     "execution_count": 13,
553
     "metadata": {},
554
     "output_type": "execute_result"
555
    }
556
   ],
557
   "source": [
558
    "binom_h0.cdf(19)"
559
   ]
560
  },
561
  {
562
   "cell_type": "markdown",
563
   "id": "73561795",
564
   "metadata": {},
565
   "source": [
566
    "По строчке выше понятно, что вероятность получить $19$ или меньше успехов в нашей задаче $\\geqslant 0.95$. А поскольку $P(\\xi \\leqslant 19) + P(\\xi \\geqslant 20) = 1$, можем вычислить уровень значимости нашего критерия."
567
   ]
568
  },
569
  {
570
   "cell_type": "code",
571
   "execution_count": 14,
572
   "id": "d36dd3cf",
573
   "metadata": {},
574
   "outputs": [
575
    {
576
     "data": {
577
      "text/plain": [
578
       "0.04936857335269451"
579
      ]
580
     },
581
     "execution_count": 14,
582
     "metadata": {},
583
     "output_type": "execute_result"
584
    }
585
   ],
586
   "source": [
587
    "1 - binom_h0.cdf(19)"
588
   ]
589
  },
590
  {
591
   "cell_type": "markdown",
592
   "id": "e0667c0b",
593
   "metadata": {},
594
   "source": [
595
    "### Квантиль\n",
596
    "\n",
597
    "Чтобы выбрать критическую область для критерия, мы хотели бы найти точку, площадь столбцов справа от которой была бы $5\\%$. То есть площадь столбцов слева &mdash; $95\\%$. Такая точка называется *квантилью*.\n",
598
    "\n",
599
    "$$ u_p(\\xi) = \\{x\\ | F_\\xi(x) = p\\} $$\n",
600
    "\n",
601
    "Но при $p = 0.95$ и нашем биномиальном распределении, такой точки нет. Мы выяснили, что есть точка, справа от которой площадь $0.494$, а у следующей уже $0.1$. Чтобы определить квантиль в этом случае, модифицируем определение:\n",
602
    "\n",
603
    "Квантиль $Quantile_p(\\xi) = u_p(\\xi) = min\\ \\{x\\ |\\ F_\\xi(x) \\geqslant p \\}$ &mdash; величина, которую $\\xi$ не превышает с вероятностью хотя бы $p$.\n",
604
    "\n",
605
    "**Пример**\n",
606
    "\n",
607
    "Для величины $\\xi \\sim Bin(30, 0.5)$ посчитаем 0.95-квантиль. Решим задачу просто подбором.\n",
608
    "\n",
609
    "$$ P(\\xi \\leqslant 18) \\approx 0.90$$\n",
610
    "$$ P(\\xi \\leqslant 19) \\approx 0.951 $$\n",
611
    "$$ P(\\xi \\leqslant 20) \\approx 0.97 $$\n",
612
    "\n",
613
    "Видим, что 18 нам ещё не подходит, а 19 и большие значение уже подойдут. В них функция распределения будет больше $p$. Ответ - наименьшее подходящее значение, то есть 19. При этом нет точки, где функция распределения была бы равна $p$ в точности.\n",
614
    "\n",
615
    "\n",
616
    "Если бы распределение было непрерывное, можно было бы сказать, что квантиль &mdash; такое $x$, на котором функция распределения равна $p$. Но в прошлом пункте увидели, что для дискретного распределения такого может не быть.\n",
617
    "\n",
618
    "В Python квантиль можно посчитать через функцию `ppf` (percent point function)"
619
   ]
620
  },
621
  {
622
   "cell_type": "code",
623
   "execution_count": 15,
624
   "id": "8a510e8a",
625
   "metadata": {},
626
   "outputs": [
627
    {
628
     "data": {
629
      "text/plain": [
630
       "19.0"
631
      ]
632
     },
633
     "execution_count": 15,
634
     "metadata": {},
635
     "output_type": "execute_result"
636
    }
637
   ],
638
   "source": [
639
    "binom_h0.ppf(0.95)"
640
   ]
641
  },
642
  {
643
   "cell_type": "markdown",
644
   "id": "b73c4ba8",
645
   "metadata": {},
646
   "source": [
647
    "Как теперь подобрать $C$ для любых $n, \\mu$ и для любого уровня значимости $\\alpha$?\n",
648
    "\n",
649
    "1. Требуется найти $C$, такое что $P(Q \\geqslant C) \\leqslant \\alpha$\n",
650
    "2. То есть требуется $P(Q < C) \\geqslant 1 - \\alpha$\n",
651
    "3. Q принимает только целые значения: $P(Q \\leqslant C - 1) \\geqslant 1 - \\alpha$, или $F(C - 1) \\geqslant 1 - \\alpha$\n",
652
    "4. Значит, из определения квантили, $C - 1 = u_{1 - \\alpha}$\n",
653
    "5. Значит $C = u_{1 - \\alpha} + 1$"
654
   ]
655
  },
656
  {
657
   "cell_type": "code",
658
   "execution_count": 16,
659
   "id": "8172ba96",
660
   "metadata": {},
661
   "outputs": [],
662
   "source": [
663
    "def make_binom_criterion(n, mu=0.5, alpha=0.05):\n",
664
    "    '''Строит критерий для задачи с доставкой\n",
665
    "    \n",
666
    "    Параметры:\n",
667
    "        n: количество доставок в эксперименте\n",
668
    "        mu: вероятность успеха в нулевой гипотезе\n",
669
    "        alpha: уровень значимости критерия\n",
670
    "        \n",
671
    "    Возвращает:\n",
672
    "        C для критерия S = {Q >= C}\n",
673
    "    '''\n",
674
    "    binom_h0 = binom(n=n, p=mu)\n",
675
    "    q = binom_h0.ppf(1 - alpha)\n",
676
    "    return q + 1"
677
   ]
678
  },
679
  {
680
   "cell_type": "markdown",
681
   "id": "e28b2164",
682
   "metadata": {},
683
   "source": [
684
    "Применим к нашей постановке"
685
   ]
686
  },
687
  {
688
   "cell_type": "code",
689
   "execution_count": 17,
690
   "id": "2794ac11",
691
   "metadata": {},
692
   "outputs": [
693
    {
694
     "name": "stdout",
695
     "output_type": "stream",
696
     "text": [
697
      "if Q >= 20.0 then reject H0\n"
698
     ]
699
    }
700
   ],
701
   "source": [
702
    "print(f'if Q >=', make_binom_criterion(\n",
703
    "    n=30,\n",
704
    "    mu=0.5,\n",
705
    "    alpha=0.05\n",
706
    "), 'then reject H0')"
707
   ]
708
  },
709
  {
710
   "cell_type": "markdown",
711
   "id": "29055110",
712
   "metadata": {},
713
   "source": [
714
    "Критическое значение $20$, значит итоговый критерий выглядит так\n",
715
    "\n",
716
    "$$ S = \\{Q \\geqslant 20\\} $$\n",
717
    "\n",
718
    "\n",
719
    "$Q = 19$, значит гипотезу мы не отвергаем.\n",
720
    "\n",
721
    "При этом нам удалось построить процесс, по которому мы принимаем решение для любого уровня значимости и значения статистики критерия."
722
   ]
723
  },
724
  {
725
   "cell_type": "markdown",
726
   "id": "24a5dcb6",
727
   "metadata": {},
728
   "source": [
729
    "## Часть 4. p-value"
730
   ]
731
  },
732
  {
733
   "cell_type": "markdown",
734
   "id": "482918e1",
735
   "metadata": {},
736
   "source": [
737
    "Заметим, что сейчас, если нам зададут другую $\\alpha$, нам придётся перестраивать критерий заново. Это не совсем удобно. В статистике есть механизм *p-value*, который позволяет принять решения для всех $\\alpha$ сразу."
738
   ]
739
  },
740
  {
741
   "cell_type": "markdown",
742
   "id": "3190870e",
743
   "metadata": {},
744
   "source": [
745
    "### Более экстремальные значения\n",
746
    "\n",
747
    "Предположим, мы провели эксперимент и посчитали для критерия его статистику $Q(\\xi)$. Обозначим полученное значение $q$, в текущей задаче это $q = 19$. Если бы количество успешных доставок было ещё больше, это бы сильнее свидетельствовало о том, что гипотеза $\\mathsf{H}_0$ не выполнена. То есть в случае значения $25$ мы были бы ещё сильнее уверены в том, что наш бизнес будет окупаться. Тогда значение $25$ называется *более экстремальным*, чем значение $19$. В нашей задаче более экстремально из двух значений то, которое больше.\n",
748
    "\n",
749
    "Определим понятие экстремальности формально:\n",
750
    "\n",
751
    "$$ S = \\{Q(\\xi) \\geqslant C\\}:\\ t\\ \\text{экстремальнее}\\ q \\Leftrightarrow t > q $$\n",
752
    "\n",
753
    "Зачастую критерии других видов можно привести к этому, тогда для них тоже определено понятие экстремальности."
754
   ]
755
  },
756
  {
757
   "cell_type": "markdown",
758
   "id": "3f73b537",
759
   "metadata": {},
760
   "source": [
761
    "### p-value\n",
762
    "\n",
763
    "**p-value** &mdash; это вероятность при справедливости $\\mathsf{H}_0$ получить столь же экстремальное значение статистики $q$ или ещё более экстремальное."
764
   ]
765
  },
766
  {
767
   "attachments": {
768
    "pvalue.png": {
769
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAHFCAYAAAAwtiIDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcqUlEQVR4nO3dfXyP9f////tmJ2yNN2FDmXNCjSGWhJbSiSiS1BvpTDqZlJzUu6F+VqlFLL0rzSqk5ORdymqFio2QkxA1cza2mWGntrHn7w/fHR+vtrHXjJnjdr1cHpeL1/N4Hs/jebyOvdbuHa/X8+UiyQgAAAAAbMa1oicAAAAAABWBMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAF5gxxqFOnTqlo0eP6ueff9YjjzxS0dMrIiEhQcaYip5GsWrXrq2oqCgdPHhQJ0+elDFGQ4cOrehpVQotWrTQqFGjNG/ePP3999/Wz6O/v3+J+wwdOrTIz++ZNX/+/It4BgBQ/twqegIAYBdz5syRJFWpUkVNmzZV165d1a1bNwUHB2vw4MEVO7lKYvbs2br77ru1efNm/fjjjzp58qT+/vvvip5WpfDkk09q1KhRZdp306ZN2rRpU5H2tWvXnt+kAOASYCiKoqgLV4X+2X7LLbeYvLw8Y4wxd955Z4XPs7ASEhKKnW9Fl7u7u8nPzze7d+82Li4uFT6fylbDhw83YWFh5t577zUNGzY0O3bsMMYY4+/vX+I+Q4cONcYYExoaWuHzpyiKuhDFnSEAqCAxMTH69NNPNXz4cPXr10/Lli2r6Cld0vz8/OTm5qa9e/desm/ju5R9/PHHFT0FALjk8JkhAKhAv//+uyTp6quvPmu/9u3byxijuLi4Evs8/fTTMsbo7bffttqaNm2q0NBQrVmzRocOHVJubq7279+vqKgoNW/evNTz7N69u4wxioyMLHZ7ZGSkjDHq3r17kW01a9bUlClTtG3bNmVnZ+vYsWP68ccfdeedd5b6+AkJCdq3b58kqUePHtZnVhISEhz6denSRUuWLFFKSopOnDihhIQERUREqF69ekXGLPw8TGhoqJo3b6758+crKSlJp06dUt++fUs1rz59+mjNmjXKyspSamqqFi5cqObNmys0NJTPMwFAJcCdIQCoQD4+PpKk3Nzcs/b7/ffftWPHDnXu3FlNmjTR7t27i/R58MEHJUmfffaZ1fboo4/qxRdf1B9//KHffvtNubm5at26tYYMGaK+ffuqW7du2rp1azmekaPmzZsrJiZGDRs2VEJCgqKjo+Xj46MuXbrom2++0QsvvOAQ3kqycOFCNWrUSAMGDFBSUpKWL18uSUpNTbX6PPjgg5ozZ47c3Nz066+/av/+/QoMDNTIkSN17733qkePHtq5c2eRsVu2bKnffvtNR44c0YoVK1SzZk3l5+efc05PPPGE3n//fRUUFOiXX37RoUOH1KVLF61bt05ff/21E8/Spa9Dhw568803Vb16dSUlJemnn37Szz//XNHTAoByUeHv1aMoirqcq6TPDEkyq1evNsYY8+qrr55znJdeeskYY8zLL79cZFuTJk2MMcZs377dob1z586mUaNGRfoPGzbMGGPMjz/+WGRbcZ8Z6t69uzHGmMjIyGLnFhkZaYwxpnv37labq6ur2bx5szHGmBdeeMHhcz5NmzY18fHxJj8/37Rp06ZUz6O/v78xxpgVK1YU2XbVVVeZrKwsk5+fb/r06WO1u7i4mPDwcGOMMevWrXPYp/DzMMYY8+677xpXV9dSX9OGDRua7Oxsk5uba2699Var3c3NzXz66afWuEOHDi31mIXPuzPOfL6dLWc+M1ScFStWmLp161701xNFUVR5FneGAOAic3V1VZMmTTRhwgTdcMMNOnHiRIlvPzvT3Llz9dprr2nw4MF67bXXHLYV3hWaO3euQ3tJq33NmTNHjzzyiHr06KHq1asrPT29jGdTsj59+ui6667TwoUL9dZbbzlsi4+P1/PPP6/FixfrscceK/MqZ4UeffRReXl5ad68eQ53ZYwxGjdunAYOHKhOnTrphhtu0Jo1axz2TUlJ0dixY1VQUFDq4w0fPlzVqlVTVFSUvv/+e6v95MmTCgkJ0T333CNvb2+nzmHhwoWqXbu2U/skJSU51d9Zhw4dUmhoqJYuXardu3erWrVquv766/Xmm2+qR48e+uabb9SlSxennjsAuJQQhgDgIjHFfOg/PT1dQ4cOLfZtb/+0Z88erV69Wl27dlX79u2tzxtJJYchSfL29lafPn3Url071apVS+7u7pKkevXqydXVVU2bNnUYq7zceuutkqRFixYVu/2XX36RJF1/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iTAEAAAAwJYIQwAAAABsidXkAABAER4eHvL09Lxox8vNzVVeXt5FO15Fe//993XFFVfooYcequipqFatWtqxY4euv/567d27t6Knc17mz5+v3377TeHh4RU9FVQiprKXj4+PMcYYHx+fCp8LRVEURVWW8vT0NK1atTKenp5FtoWGhpqLKTQ01On5R0ZGWvvn5uaav/76y/znP/8xVapUcdg+a9asIvvOnDnTGGNMZGRkseOdqWnTpk7Na+XKlQ77HzlyxCxevNjUrl3b6lOzZk3j5eVV4T8Dkszbb79tPvjgA4e2kSNHmoSEBJOTk2Pi4uJMp06dzjpGcT8vO3bsKPUcRowYYTZv3myOHz9ujh8/btasWWN69+5dpN+55tWmTRtz5MgRU7169Qp/XqkLXyX9DnMmG/A2OQAAUGl999138vPzU/PmzfX2229r4sSJGjNmjLV93759GjRokKpWrWq1eXp6avDgwcXeBSkc78xKSEhwak7t27fX888/Lz8/P9WvX18PPPCAgoODNX78eKvP0aNHL4klzatVq6ZHHnlEs2fPttoGDhyo8PBwTZo0SYGBgdq8ebOio6NVp06ds471xx9/ODxvN954Y6nnceDAAY0bN04dOnRQx44d9dNPP2np0qVq3bq1U/Patm2b4uPjL4k7bqgceJscAOCS4OHh4fDH4rmEhYXZ6m1VKF5ubq6Sk5MlnX7r2T333KO7775br7/+uiRp48aNatq0qe69917NmzdPknTvvfdq3759xYacM8cri+bNm6t69epauXKlNc6hQ4f0999/y8vLS5Lk7++vPXv2qFGjRtq7d6+aNGmi+Ph43XXXXXruuecUFBSk/fv3a8iQIVq3bp01dps2bfTmm2/qxhtvVHZ2tubOnavx48crPz/fGrN///4KCQlRp06d9Mcff6h///7y9/fX1KlTdd111yk2Nlb9+/fX8ePHJUl33HGHcnNztXbtWus4o0eP1ocffqg5c+ZIkkaMGKE777xTw4cP1xtvvFHiuZ88ebLMz90333zj8Pjll1/Wk08+qS5dumj79u1Ozevrr7/WoEGD9N5775VpLrAXwhAA4JLg6empiRMnlrp/eHg4YQhF5OTk6Morr3Ro+/jjj/Xwww9bYWj48OGKjIxUjx49yv34HTp0UG5urrZu3SrpdMgfMmSImjVrpuHDh0uSAgICdPToUevOVEBAgAoKCjR69GhNnjxZiYmJeu+99/T666/r5ptvliS1a9dOq1at0rvvvqtnn31WV111lebNm6djx47ptddeU0BAgCTpySef1IQJE5SVlaWlS5fqs88+U0ZGhp5++mlVqVJFy5Yt08MPP6xp06ZJkrp166YNGzZY83d3d1eHDh0UFhZmtRljFBMTo6CgoLOee/PmzZWYmKgTJ04oNjZW48eP1/79+51+Dl1dXXXffffJ29tbsbGxTs9r3bp1eumll+Th4cHvCJwTYQgAAFwWgoODddttt2nGjBkO7Z999pnCwsLUsGFDSVLXrl01aNCgYsPQXXfdpYyMDOvxd999p4EDB5Z6DoGBgXJ3d1daWpokycvLSykpKbr11lu1adMmSaeDzZYtW6x9AgICdOzYMd1///1KTU2VJP3vf//TE088YfX58MMP9emnn+o///mPJCk+Pl6RkZG666679Nprr6ldu3Y6cuSI7r//fuvYq1at0o033qg2bdooJydHkvTbb7/Jz8/PGtff318HDx60HteuXVtubm5F7vAkJyerVatWJZ732rVrNWzYMO3cuVP16tVTaGiofvnlF7Vt21aZmZmleu7atm2r2NhYVa1aVZmZmbrnnnu0Y8cOp+d18OBBeXp6ys/PT/v27SvVsWFfhCEAAFBpFYYXd3d3ubq6at68eUXuMKampmrZsmUaNmyYXFxctGzZMh05cqTY8VasWKEnn3zSepyVleXUfAIDAzV//nyFhoZKkurUqaPXX39d77//vtq3by9jjAICAqxgJJ0OQ0uXLrWCkCQ1btxYf//9tySpZcuW6tixY5HPweTl5Vkr/gUEBGjx4sVWEJKkhg0basGCBVYQKmxbunSp9bhatWo6ceKEU+dYnOXLl1v/3rp1q9auXau9e/dq4MCB+vjjj0s1xs6dO9WuXTvVqFFDAwYMUFRUlLp3724FotIqPN/CtyUCZ8MCCgAAoNJasWKF2rVrp+bNm6tatWoaNmxYsQsTfPzxxxo2bJiGDh161j/Os7KyFB8fb1VSUpJT8wkMDNSvv/5q7R8XF6fw8HAFBAToqquuknT6ztDmzZutfQICAqy3gxVq166dFZjatGmjvLw87dq1y6FP69atrbfjtWvXzuFzP4XjxsXFWY89PT3VsmVLh2OnpqaqZs2aDo9PnjwpX19fh7F8fX2dei6OHz+uXbt2qVmzZqXeJz8/X/Hx8dq4caMmTJigzZs3KyQkxOl51apVS5J0+PDhUh8b9kUYAgAAlVZheNm/f79OnTpVYr/ly5fLw8ND7u7uio6OviBzady4sWrWrKnff//dob1p06bKz8/XsWPH5OPjo0aNGllBp3r16mrcuHGRfc4MQxkZGapSpYrc3d2t7Y0aNdI999yjuXPnWmOeOUajRo30r3/9y6Ht2muvlYuLixWgJOn33393WLEtPz9fGzZsUHBwsNXm4uKi4ODgIoHtbLy9vdW0aVMdOnSo1Pv8k6urq3Xny5l5tW3bVvv37y/x7h9wpjKFoZEjRyohIUE5OTmKi4tTp06dSuzbunVrLVy4UAkJCTLGWAm/JGPHjpUxRu+8805ZpgYAAFBEQUGBrrnmGrVu3VoFBQUX5BgdOnRQQUGBUlJS5OvrqyZNmmjYsGF65ZVXNGvWLGVkZCggIECnTp3Stm3bJEnXXXed8vPzHQJKw4YNVatWLSsMrV27VseOHdPrr7+uxo0bq2fPnlq2bJk+//xzRUdHW2P+8ccf1hiFnyE68zMz7dq1U3x8vMNb/6Kjo9WmTRv961//strCw8P12GOPaciQIWrVqpVmzZolb29vRUZGWn2eeuopxcTEWI+nTp2qm266Sf7+/goKCtLixYt16tQpzZ8/v1TP3ZQpU9StWzf5+/urbdu2mjJlinr06KG5c+c6NS/p9KIQ33//famOCzj9maHCNd5HjBihtWvXatSoUYqOjlbLli2LvR3p5eWl3bt368svvzxnwOnYsaOeeOIJh9u3AAAA5eHMhRHKYujQoZozZ45cXFyK3R4YGChXV1ft3r1bkpSWlqa//vpLo0aN0ieffCLp9FvX/vzzT2uVs4CAAO3cuVO5ubnWOO3bt3dYbS49PV39+vXTtGnTNGLECB08eFAffvihpk6dWuIYAQEBRe42BQQEFPkb648//tDGjRs1cOBAffDBB5KkL774QnXq1NHkyZPl5+enTZs2qXfv3kpJSbH2q127tpo2bWo9vuqqqzR//nxdeeWVOnz4sH799Vd16dLF4XNQZ3v+6tatq08++UT16tXT8ePHtWXLFt12220Ogas08/L09FS/fv3Uu3fvYq8RUBynvuk1Li7OzJgxw3rs4uJiDhw4YMaOHXvOfRMSEkxISEix27y9vc3OnTtNcHCwWbFihXnnnXdKPSdnvmWWoiiKujSr8Hd5afE7//yrpG9vl2RCQ0Oduh7nKzQ0tMKfj3PVxIkTzYoVKyp8HuVdd9xxh9m2bZtxcXGp9M/fiBEjTHR0dIU/p9TFqZJ+hzmTDZy6M3Q+a8+fS0REhJYtW6Yff/xRL7/88nmNBQAAzk9YWJjCw8Mv2vHOvKtxqbr99tv19NNPV/Q0yt23336r5s2bq0GDBjpw4MAFO87FeP7y8/P1zDPPXNBj4PLiVBgq69rz53L//fcrMDDwrJ89OpOHh4f1gTpJ8vHxKfOxAQBAUXl5eXxh5T907ty5oqdwwUyfPv2CH+NiPH+zZ8++4MfA5aXCV5O76qqrNH36dD344IOl/r9C48ePV3p6ulWJiYkXeJYAAAAALjdOhaHyWnv+TB06dJCvr682btyo/Px85efnq0ePHnr22WeVn58vV9eiUwwLC1P16tWtatCgQZmODQAAAMC+nApD5bX2/Jl+/PFHtW3bVu3atbPqt99+09y5c9WuXbtil7/My8tTRkaGQwEAAACAM5xeWjs8PFxRUVFav3691q1bp1GjRjms8R4VFaXExERNmDBB0ulFFwq/zMvDw0MNGjRQQECAMjMzFR8fr8zMTGut/UJZWVk6cuRIkXYAAAAAKC9Oh6FzrfHesGFDh7s59evXt740TJLGjBmjMWPGaOXKlerZs+f5nwEAAAAAlIGLTq+xXan5+PgoPT1d1atX5y1zAFBJFf4uLy1+558/T09PNW7cWAkJCZViaWsAOFNJv8OcyQYVvpocAAAAAFQEwhAAAAAAWyIMAQCAIjyquOoKT7eLVh5VLt6fJN27d5cxRjVq1Dhrv4SEBIWEhJTbcVesWKF33nnnrH0ee+wx7du3T6dOnVJISIhCQ0P1+++/l/oY/v7+MsYoICCgxD6lOX9fX199//33yszM1NGjR0t9fKCycXoBBQAAcPkb2bOpRt3S4qIdb1rMLk2L+cupfXx9ffXSSy/pzjvvVIMGDZSSkqJNmzZp2rRp+umnn0rcb82aNfLz89Px48clSUOHDtW0adNUs2ZNh36dOnVSVlaW8ydTRj4+Ppo5c6ZGjx6tr776SsePH5erq6tmzJhx0eZQ6LnnnlO9evXUrl0763kqT48++qiefvppNW3aVCdPnlRCQoK++OILvf766+V+LOBsCEMAAKDS8ff31+rVq3Xs2DGNGTNGW7dulbu7u2677TZFRETommuuKXY/Nzc35efnKzk5+ZzHSE1NLe9pn1XDhg3l4eGhZcuWOXyZ/cUMZIWaNm2qDRs26O+//y7zGO7u7srPzy/S/vDDD2vatGl69tlntWrVKnl6euq6665T27Ztz2fKQJkQhgAApeLh4aHx48eXun9YWJjy8vIu4Iycc+b8vbKy9OJbbzlsf/OFF5Tt7W09vtTmD0fvvfeejDG6/vrrlZ2dbbVv375dH3/8sfXYGKMnn3xSt99+u4KDgzV16lStXLlSK1eu1L/+9S+1a9dOc+bMsfpK0sSJEzVp0iQlJCRo2rRpmj59uiSpRo0aeuONN9SvXz/VqFFDf//9t8aNG6dly5apVq1amjlzpm666SbVrFlT8fHxmjJlij7//PNSnc/QoUOteSQkJEiSGjVqpGHDhqlfv35q37691feRRx7R888/r8aNG2vPnj169913NWvWrBLHvv322zVt2jRdffXViouLU1RU1FnnkpCQoEaNGjnM6+GHH9bVV1+tGTNmKDg4WAUFBVq+fLmeeeYZ6+tVQkND1a9fP82cOVMvvfSS/P39VaVKlSLj33333friiy8crtP27dtL9TwB5Y0wBAAoFU9PT02cOLHU/cPDwy+pMOEw/8OHpX+EoRdffFGqU8d6fKnNH/+nZs2a6t27t1566SWHIFTon2/rmjhxosaNG6dRo0bp5MmTatKkibVtzZo1CgkJ0eTJk9WyZUtJUmZmZpExXVxc9N1338nHx0cPPfSQ4uPj1bp1a506dUqSVLVqVW3YsEFvvPGG0tPTdeedd+rTTz9VfHy8fvvtt3Oe04IFC7R//379+OOP6tSpk/bv36/Dhw8X6Td48GBNnjxZTz/9tH7//Xe1b99eH374obKysvTJJ58U6X/VVVdp0aJFioiI0AcffKCOHTvq7bffPutcOnXqpE8++UTp6ekKCQlRTk6OXFxctHTpUmVmZqp79+5yc3NTRESEFixY4PC9kc2aNVP//v117733Ws/NPyUlJal79+5q2LCh9u3bd87nBriQCEMAAKBSadasmVxdXfXnn3+Wqv+8efOsuy6SHMJQfn6+jh8/LmPMWd86d8stt+j666/XNddco7/+Ov3ZpsI7OJJ08OBBh5Axc+ZM3XbbbRo4cGCpwtCJEyd05MgRSdLhw4dLnMukSZP0/PPPa/HixZKkPXv2qHXr1nriiSeKDUNPPvmk4uPj9cILL0iSdu3apWuvvVbjxo0rcS6pqanKzc1VTk6ONY9bbrlF1157rRo3bqwDBw5IkoYMGaLt27erY8eOWr9+vaTTd2CHDBly1rcYTpo0SYsWLdLevXu1c+dOxcbG6ttvv9XChQutu3PAxcJqcgAAoFJxcXFxqn/hH+rno127djpw4IAVhP7J1dVVL7/8srZs2aIjR44oIyNDt912mxo2bHjexy7k5eWlZs2aafbs2crIyLDq5ZdfVtOmTYvd55prrtHatWsd2mJjY50+9jXXXKP9+/dbQUiSduzYoaNHjzp8Pmvv3r3n/KxVUlKSbrjhBrVt21bTp0+Xm5uboqKitHz5cqevLXC+uDMEAAAqlb/++ksFBQVq1apVqfqXxwIEOTk5Z90+ZswYhYSEaNSoUdq6dauysrI0bdo0eXh4nPexC11xxRWSTi+//c+AU9Jb0i42Z57rbdu2adu2bZo1a5bef/99/frrr+revbtWrlx54SYI/AN3hgAAQKVy9OhRRUdH66mnnpKXl1eR7ef6/qB/ysvLK/aD/mfasmWLrrrqKjVv3rzY7V27dtXSpUs1d+5cbdmyRbt371aLFuW7NHlKSooSExPVpEkTxcfHO9SePXuK3WfHjh26/vrrHdq6dOni9LF37Nihq6++WldddZXVds0116hmzZrlsvhB4RjeZyxiAlwMhCEAAFDpPPXUU6pSpYrWrVune++9V82aNVOrVq30zDPPOP02sD179sjHx0c333yzrrzySlWrVq1In59//lk///yzvvrqK91yyy1q1KiRevfurdtuu03S6btVvXr1UlBQkFq1aqX//ve/8vX1LZdzPVNoaKjGjx+vZ555Rs2bN1fbtm01bNgwPffcc8X2f//999W8eXO9+eabatGihR544AENGzbM6ePGxMRo69atmjt3rtq3b28tsrBy5Upt2LDBqbHee+89vfzyy7rhhhvUsGFDde7cWZ988olSUlLK9BY+4HwQhgAAQKWTkJCgwMBArVixQm+//bb++OMP/fDDDwoODtaTTz7p1FixsbGaNWuWFixYoNTU1NMrCxajf//++u233zR//nxt375db775pnVH6bXXXtPGjRsVHR2tlStXKikpSUuWLDnf0yxi9uzZevTRR/Xw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Z6Fr16566aWXrLYqVaqoWrVqqlatmnJycjRhwoQyjX02gYGBCgkJUWBgYKn6169fX8uXL9eXX36pjz76yGr39fXVhx9+qKioKM2fP18+Pj6aPHmyFi5cqF69epX7vAsRhgAAQKX28ccfa+bMmZKkp5566rzGysrKsv59xRVXSJLuvPPOIh8Iz83NLXb/K664QidPnlSHDh106tQph22ZmZnWv+vWrasWLVro5MmTat68uaKjo52eX+Hx/vvf/+rdd98t0nffvn3Wv/Pz84tsP7Pt9A0GWX+UjxkzRiEhIRo1apS2bt2qrKwsTZs2TR4eHqWa57n8cz7GGOvY999/v9566y09//zzio2NVUZGhsaMGaPOnTuXeoyKNnfuXK1atUp16tRRr169lJOTo+XLl1vbv/76a+3du1ePPfaYDh48KFdXV23btq3E57egoEAuLi4Obf9cQOOKK65QaGhosQsOnDhxolTzTkpKkqenp2rUqKHjx49b7b6+vkpKSip2n27duqlu3boOP29ubm56++23NWrUKDVu3Nhqr1evnlasWKE1a9bo8ccfdxjnqaee0vHjxzV27Fir7aGHHtKBAwfUuXNnrV27tlTn4CzCEAAAKKJORU/ACcuXL5eHh4eMMcWGivj4eOXm5qpr167WH2xubm7q1KmTpk2bVuK427dv14kTJ9SwYUP9/PPPpZrL77//Ljc3N9WtW1e//vprif0+/vhjbd26VbNnz9aHH36omJgY6y5OXl5eqVey27hxo1q3bq34+PhS9S+trl27aunSpZo7d66k03ebWrRooe3bt5d6DGfO45/HXrNmjcOy6U2bNnV6nH/asWOHOnfurE8//dRq69KlS5nG+ud+Xbp00Y4dO6zHsbGx2r9/v+6//37dfvvt+vLLL3Xy5ElJUq1atdSqVSs99thj1s9I165dz3q8w4cPy8fHR15eXtbduXbt2jn02bhxo1q2bHlePwsbNmxQXl6egoODrVDVokUL+fv7F7kbVujTTz9VTEyMQ1t0dLQ+/fRTh+Xt69evrxUrVmjDhg16+OGHrQBeyMvLy+FOnyTrfyhcyJBLGAIAAEWkVvQEnFBQUGC93e2ff0xJp9+GNWvWLE2dOlVpaWnat2+fXnzxRXl5eWn27NkljpuZmam33npL77zzjlxdXfXrr7+qRo0a6tq1q9LT0/XJJ58U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2rRpk3r37q2UlBRJUsOGDVVQUGD1r1+/vjZt2mQ9HjNmjMaMGaOVK1eqZ8+epRoTAAAAAMqbi06vsV2p+fj4KD09XdWrV+ctcwBsqfD3YGmV5fflhT7GRR3/8GGpbl3HDikp0hlf9n2pjQ8AKB1nskGlXE0OAAAAAM4XYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALZUpDI0cOVIJCQnKyclRXFycOnXqdNb+AwYM0I4dO5STk6MtW7bo9ttvd9ju7e2tGTNmaP/+/crOzta2bdv0xBNPlGVqAAAAAFAqToehgQMHKjw8XJMmTVJgYKA2b96s6Oho1alTp9j+QUFBmj9/vmbPnq327dtryZIlWrJkidq0aWP1CQ8PV+/evfXQQw/pmmuu0bRp0zRz5kz16dOn7GcGAAAAAOdgnKm4uDgzY8YM67GLi4s5cOCAGTt2bLH9P//8c/P11187tMXGxppZs2ZZj7du3Wpefvllhz7r1683r776aqnm5OPjY4wxxsfHx6lzoSiKulyq8PdgaZXl9+WFPsZFHT8lxRjJsVJSLunxKYqiqNKVM9nATU5wd3dXhw4dFBYWZrUZYxQTE6OgoKBi9wkKClJ4eLhDW3R0tPr162c9XrNmje6++259/PHHOnjwoHr06KEWLVroueeeK3ZMDw8PeXp6Wo99fHycOQ0AuOg8PDw0fvz4UvcPCwtTXl7eBZwRKqMzf468srL04ltvOWx/84UXlO3tbT3m5wgAzq3UKatevXrGGGO6dOni0P7GG2+YuLi4YvfJzc01gwYNcmh78sknTVJSkvXYw8PDzJkzxxhjTF5enjlx4oT597//XeI8QkNDy+X/ElIURV2squx3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np6emjhxYqn7h4eH80cgLjsOr4PDh6V/hKEXX3xRqlPHeszrAEBlx9vkAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANhSmcLQyJEjlZCQoJycHMXFxalTp05n7T9gwADt2LFDOTk52rJli26//fYS+86aNUvGGIWEhJRlagAAAABQKk6HoYEDByo8PFyTJk1SYGCgNm/erOjoaNWpU6fY/kFBQZo/f75mz56t9u3ba8mSJVqyZInatGlTpG+/fv3UpUsXJSYmOn8mAAAAAOAEp8PQ6NGj9eGHH2rOnDnasWOHRowYoezsbA0fPrzY/iEhIVq+fLneeust/fnnn3rllVe0ceNGPf300w796tevrxkzZujBBx9Ufn5+2c4GAAAAAErJqTDk7u6uDh06KCYmxmozxigmJkZBQUHF7hMUFOTQX5Kio6Md+ru4uOjTTz/V1KlTtX37dmemBAAAAABl4uZM59q1a8vNzU3JyckO7cnJyWrVqlWx+/j5+RXb38/Pz3o8duxYnTx5Uu+++26p5uHh4SFPT0/rsY+PT2lPAQAAAAAkXQKryQUGBiokJETDhg0r9T7jx49Xenq6VXzGCAAAAICznApDqampOnnypHx9fR3afX19lZSUVOw+SUlJZ+3frVs31a1bV/v27VN+fr7y8/PVqFEjvf3220pISCh2zLCwMFWvXt2qBg0aOHMaAAAAAOBcGMrPz9eGDRsUHBxstbm4uCg4OFixsbHF7hMbG+vQX5J69epl9f/000913XXXqV27dlYlJiZq6tSpuu2224odMy8vTxkZGQ4FAAAAAM5w6jNDkhQeHq6oqCitX79e69at06hRo+Tt7a3IyEhJUlRUlBITEzVhwgRJ0vTp07Vq1SqNHj1ay5Yt06BBg9SxY0c9/vjjkqS0tDSlpaU5HCM/P19JSUnatWvX+Z4fAAAAABTL6TD0xRdfqE6dOpo8ebL8/Py0adMm9e7dWykpKZKkhg0bqqCgwOofGxurwYMH67XXXtOUKVP0119/qV+/ftq2bVv5nQUAAAAAOMnpMCRJERERioiIKHZbz549i7QtXLhQCxcuLPX4jRs3Lsu0AAAAAKDUKnw1OQAAAACoCIQhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS4QhAAAAALZEGAIAAABgS24VPQEAOBcPDw+NHz++1P3DwsKUl5d3AWcEoCy8q3nqswn/liR5ZOXojtfnOmz/dtyDyvOuZj1+aMqnysrJvahzBGAvhCEAlzxPT09NnDix1P3Dw8MJQ8AlyMermtq7H5IkuboVDTnXuiWrwN3ToT9hCMCFxNvkAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANhSmcLQyJEjlZCQoJycHMXFxalTp05n7T9gwADt2LFDOTk52rJli26//XZrm5ubm15//XVt2bJFmZmZSkxMVFRUlOrVq1eWqQEAAABAqTgdhgYOHKjw8HBNmjRJgYGB2rx5s6Kjo1WnTp1i+wcFBWn+/PmaPXu22rdvryVLlmjJkiVq06aNJMnLy0uBgYF69dVXFRgYqHvvvVctW7bU//73v/M7MwAAAAA4C6fD0OjRo/Xhhx9qzpw52rFjh0aMGKHs7GwNHz682P4hISFavny53nrrLf3555965ZVXtHHjRj399NOSpPT0dN1666368ssvtWvXLq1du1ZPP/20OnbsqKuvvvr8zg4AAAAASuBUGHJ3d1eHDh0UExNjtRljFBMTo6CgoGL3CQoKcugvSdHR0SX2l6QaNWqooKBAx44dK3a7h4eHfHx8HAoAAAAAnOFUGKpdu7bc3NyUnJzs0J6cnCw/P79i9/Hz83Oqv6enp9544w3Nnz9fGRkZxfYZP3680tPTrUpMTHTmNAAAAADg0lpNzs3NTV988YVcXFz05JNPltgvLCxM1atXt6pBgwYXcZYAAAAALgduznROTU3VyZMn5evr69Du6+urpKSkYvdJSkoqVf/CIOTv76+bb765xLtCkpSXl6e8vDxnpg4AAAAADpy6M5Sfn68NGzYoODjYanNxcVFwcLBiY2OL3Sc2NtahvyT16tXLoX9hEGrevLluueUWpaWlOTMtAAAAAHCaU3eGJCk8PFxRUVFav3691q1bp1GjRsnb21uRkZGSpKioKCUmJmrChAmSpOnTp2vVqlUaPXq0li1bpkGDBqljx456/PHHT0/AzU0LFy5UYGCg7rrrLlWpUsW6k5SWlqb8/PzyOlcAAAAAsDgdhr744gvVqVNHkydPlp+fnzZt2qTevXsrJSVFktSwYUMVFBRY/WNjYzV48GC99tprmjJliv766y/169dP27ZtkyQ1aNBAffv2lSRt3rzZ4Vg9evTQqlWrynxyAAAAAFASp8OQJEVERCgiIqLYbT179izStnDhQi1cuLDY/nv37pWLi0tZpgEAAAAAZXZJrSYHAAAAABcLYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANgSYQgAAACALRGGAAAAANiSW0VPAEDl5+HhofHjx5e6f1hYmPLy8i7gjADYlXc1T3024d+SJI+sHN3x+lyH7d+Oe1B53tWsxw9N+VRZObkXdY4ALh2EIQDnzdPTUxMnTix1//DwcMIQgAvCx6ua2rsfkiS5uhUNOde6JavA3dOhP2EIsC/eJgcAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGzJraInAODC8/Dw0Pjx40vdPywsTHl5eRdwRgBQOXlX89RnE/4tSfLIytEdr8912P7tuAeV513NevzQlE+VlZN7UecIoPQIQ4ANeHp6auLEiaXuHx4eThgCgGL4eFVTe/dDkiRXt6Ih51q3ZBW4ezr0JwwBly7eJgcAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGyJMAQAAADAlghDAAAAAGypTEtrjxw5UmPGjJGfn582b96sZ555Rr/99luJ/QcMGKBXX31VjRo10l9//aWxY8fqu+++c+gzadIkPfbYY/rXv/6l1atX68knn9Tff/9d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EhMTFR8fr88++0xXX311RU8JF0jjxo1Vr149h9d1enq61q5dy+v6MtSjRw8lJyfrzz//1HvvvadatWpV9JRwHmrUqCFJSktLkyR16NBBHh4eDq/nnTt3au/evbyeK6l/XuNCDz74oA4fPqytW7dqypQpqlatWkVMD+XA1dVV999/v7y9vRUbG1spX8duFT2Bi6V27dpyc3NTcnKyQ3tycrJatWpVQbNCeVu7dq2GDRumnTt3ql69egoNDdUvv/yitm3bKjMzs6Knh3Lm5+cnScW+rgu34fKwfPlyLVq0SAkJCWratKmmTJmi7777TkFBQSooKKjo6cFJLi4umjZtmn799Vdt27ZN0unXc25uro4fP+7Ql9dz5VTcNZakefPmae/evTp48KCuu+46vfHGG2rZsqX69+9fgbOFs9q2bavY2FhVrVpVmZmZuueee7Rjxw61a9eu0r2ObROGYA/Lly+3/r1161atXbtWe/fu1cCBA/Xxxx9X4MwAnI8FCxZY//7jjz+0ZcsW7d69Wz169NBPP/1UgTNDWURERKht27Z8pvMyVtI1/vDDD61///HHHzp06JB++uknNWnSRLt3777Y00QZ7dy5U+3atVONGjU0YMAARUVFqXv37hU9rTKxzdvkUlNTdfLkSfn6+jq0+/r6KikpqYJmhQvt+PHj2rVrF6uLXaYKX7u8ru0nISFBhw8f5rVdCc2YMUN33XWXevbsqcTERKs9KSlJnp6e1lurCvF6rnxKusbFWbt2rSTxWq5k8vPzFR8fr40bN2rChAnavHmzQkJCKuXr2DZhKD8/Xxs2bFBwcLDV5uLiouDgYMXGxlbgzHAheXt7q2nTpjp06FBFTwUXQEJCgg4dOuTwuvbx8VHnzp15XV/mGjRooCuvvJLXdiUzY8YM3XPPPbr55pu1Z88eh20bNmxQXl6ew+u5RYsW8vf35/VciZztGhenXbt2ksRruZJzdXWVp6dnpX0dV/gqDherBg4caHJycsyQIUNMq1atzPvvv2/S0tJM3bp1K3xuVPnU1KlTzU033WT8/f1NUFCQ+f77701KSoqpXbt2hc+NKlt5e3ubgIAAExAQYIwxZtSoUSYgIMBcffXVRpJ58cUXTVpamunTp49p27atWbx4sYmPjzeenp4VPneqfK6zt7e3efPNN03nzp2Nv7+/ufnmm8369evNzp07jYeHR4XPnSpdRUREmKNHj5qbbrrJ+Pr6WlW1alWrz3vvvWf27NljevToYQIDA83q1avN6tWrK3zuVPlc4yZNmpiXX37ZBAYGGn9/f9OnTx/z999/m5UrV1b43KnS15QpU0y3bt2Mv7+/adu2rZkyZYo5deqUueWWW4xUKV/HFT6Bi1pPPfWU2bNnjzlx4oSJi4sz119/fYXPiSq/mj9/vklMTDQnTpww+/fvN/PnzzdNmjSp8HlRZa/u3bub4kRGRlp9Jk2aZA4dOmRycnLMDz/8YJo3b17h86bK7zpXrVrVLF++3CQnJ5vc3FyTkJBg/vvf//I/sipZlWTo0KFWH09PTzNz5kxz5MgRk5mZab766ivj6+tb4XOnyucaX3XVVWblypUmNTXV5OTkmF27dpk33njD+Pj4VPjcqdLXRx99ZBISEsyJEydMcnKy+eGHH6wgJFW+17HL//sHAAAAANiKbT4zBAAAAABnIgwBAAAAsCXCEAAAAABbIgwBAAAAsCXCEAAAAABbIgwBAAAAsCXCEAAAAABbIgwBAAAAsCXCEAAAAABbIgwBAAAAsCXCEAAAAABbIgwBAAAAsKX/Hx2Ta+wCneIKAAAAAElFTkSuQmCC"
770
    }
771
   },
772
   "cell_type": "markdown",
773
   "id": "c9b86bbc",
774
   "metadata": {},
775
   "source": [
776
    "![pvalue.png](attachment:pvalue.png)"
777
   ]
778
  },
779
  {
780
   "cell_type": "markdown",
781
   "id": "cc7e3819",
782
   "metadata": {},
783
   "source": [
784
    "Научимся считать p-value. Будем итеративно по строчкам расписывать формулу, добавляя кусочки определения.\n",
785
    "\n",
786
    "p-value &mdash; это **вероятность**\n",
787
    "\n",
788
    "$$ P( $$\n",
789
    "\n",
790
    "**при справедливости $\\mathsf{H}_0$** (в нашем примере, статистика имеет биномиальное распределение с вероятностью успеха 0.5)\n",
791
    "\n",
792
    "$$ P_{\\mathsf{H}_0}( $$\n",
793
    "\n",
794
    "получить **такое же** значение **статистики** или **более экстремальное** (в нашем случае значит большее либо равное)\n",
795
    "\n",
796
    "$$ P_{\\mathsf{H}_0}(Q \\geqslant q) $$\n",
797
    "\n",
798
    "Теперь выведем формулу через функции Python:\n",
799
    "\n",
800
    "$$ pvalue(q) = P_{\\mathsf{H}_0}(Q \\geqslant q) = 1 - P_{\\mathsf{H}_0}(Q < q) =  1 - P_{\\mathsf{H}_0}(Q \\leqslant q - 1) = 1 - \\text{binom_h0.cdf(q - 1)}$$"
801
   ]
802
  },
803
  {
804
   "cell_type": "markdown",
805
   "id": "c0ca6092",
806
   "metadata": {},
807
   "source": [
808
    "Изобразим на графике область более экстремальных значений и p-value для разных значений статистики."
809
   ]
810
  },
811
  {
812
   "cell_type": "code",
813
   "execution_count": 18,
814
   "id": "2cddff27",
815
   "metadata": {},
816
   "outputs": [],
817
   "source": [
818
    "C = 20  # критическое значение\n",
819
    "qs = [10, 19, 20, 23]  # разные реализации статистики"
820
   ]
821
  },
822
  {
823
   "cell_type": "code",
824
   "execution_count": 19,
825
   "id": "a7f57994",
826
   "metadata": {},
827
   "outputs": [
828
    {
829
     "data": {
830
      "image/png": "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Jzc3l7vvvjvWjpEjR3LvvfcC4VnluXPnUlBQwJw5c+jcuTMQPnft7rvv5rXXXuOdd95h2LBh5dpx3333cfjhh/P8889z/fXXc+CBBzJ9+nQKCgp444036N27NwC33347U6ZM4dVXXy337LRDDz2UDz74gCAIAFi/fj2bNm2q+guSJGUcY7OxOV15BVVSlY466qhKz64ec8wxHHXUUaxZs6ZU+ejRo7n55ps5++yzATj55JNjy371q1+xefNm+vTpA0C7du0A+MUvfsGnn35KkyZNmDt3Lr1792bx4sWVtm/jxo3069eP9u3b89RTT3H66afz3//+l1tuuYUbb7yRP/zhD9x///2cdNJJrFmzhkcffTThdu69914mT57MlClTuOyyy7jnnns477zzgDBADRw4kB49ejBjxgyefPLJUuv+5Cc/YfDgwZx66qls3LiRe+65h/z8fM477zxOPfVUpkyZQt++fQHo2bMnAwcOZPv27aW2MW3aNF599VVOPPFE5s6dy8MPP8yiRYsqPXZJUmYyNhub05VXUCXV2sKFC8sFwKqcfvrpjB8/PjZfcjbywgsvJC8vj/z8fHr16kXPnj2r3Nbjjz8OwHHHHUfPnj157bXXyM/PZ+TIkXTp0oUePXrw7rvvxtpY0q2prOOPPz4WIB966CEGDhwYW/b0008TBAHLly/nkEMOqbJNAwcOjJ2FnTdvHu3bt2f//fcHYMaMGeUCIIRnZb/+9a/zs5/9jD179jB37lxOO+20KvclSVJZxubyjM2Ng1dQJVVp6dKlnH/++RUur6t7Mbp27crNN99M//792bRpE5MmTaJly5ZVrley/6ysLGbPns3FF19cavnRRx9d67Z98cUXsfdZWVm12lZln9eOHTt44YUXeOGFF/joo48499xzeemll2q1P0lS+jE2G5vTlVdQJVXppZdeokWLFlx++eWxst69e5c6i5nIli1bYmcmy5o9ezZXXXVVbL5du3YccMABbNu2jc2bN3PwwQczZMiQarXzzTff5IQTTuCrX/0qAPvttx/du3dn5cqVHH744XTp0gUIBzxI5PXXX2f48OEAjBgxgvnz51dr//Hmz5/PiBEjgLD7VHFxcez+n4r07duXQw89FAgDbZ8+fVi7dm2N2yBJSl/G5uozNjcOXkGVGqGyz0YrNcR7/P0oUXldjM533nnnMW7cOG699Va2b9/OmjVruP766+nYsWOF6xQWFrJ7924WLVrEgw8+SH5+fmzZb37zG8aPH8/ixYvZvXs3Y8eOZfr06eTn57NixQree++92JD4ySouLmbUqFE89thjtGjRAoBf/vKXFBUVceWVV/LCCy+wbds2cnJyEq5/zTXXMGnSJH7605/y8ccfc9lll1Vr//HGjBnDxIkTKSgo4L///S8jR46scp2DDz6YBx54INb2hQsX8pe//KXGbZAk1Z9KY3MCxmZjsxLLKhmRqgqDgbuBbOAfwJ1llp8EjAP6AMOBJ6LybwD3AQcAu4HfAo9XtqPc3Nygf//+STVeSnWl/n3Fdz2JyhN1R0m0zuAePSiORrxLFNDqI0Ft7Fq3bh3rvjN+/HiKiooYN25cwzZKda5Hjx6sWLGiVFkQBHnAsQ3Ton3K2CzVQFX/960yNkcGDx5McXExkERsTsDYbGzOFNWNzcl08c0GxgNDgJ7ARdFrvP8Ao4Cyw2/9F7gU6EUYSMcB7ZLYpyTVqcsvv5z8/HyWLl1K27ZtSw3LLzVCxmZJjZ6xWYkk08V3ALAKeDeanwoMBZbF1VkTvZZ9Cu/bce/fBzYABwGbqtlOSaqVcePGeVZW6cTYLKnRMzYrkWSuoHYE3oubXxeVVdcAoDnwToJlVwC5QG6HDh1qsGlJkjKKsVmSlJbqa5CkQ4GHgJGUP5ML8Pdoori4OKmbYiVJUq0YmyVJKSeZK6jrgc5x852ismQdADwL/AJ4sxrrSZKkxIzNkqS0lEyCmgN0B7oRdgMaDsxIcvvNgenAFPaOHihJkmrH2CxJSkvJJKi7gKuBWcByYBqwFLgDOCeq05/w/pcLgPuj5QAXEg5zPwpYFE3fqIN2S1K9GTlyZOwh3fWpqoeH19a8efOqfAxCTZx55pmsWLGCoqIibr311oR1vvKVrzBnzhwKCgqYN29e7Jl9p5xyCvn5+bHp888/Z+jQoQCceuqp5OXlsXjxYh588EGys7PrvO2NiLFZUkYzNldPMrH5xBNPJC8vj507dzJs2LBSyy699FLefvtt3n77bS699NJY+THHHENhYSFFRUXcfffdddLWZBJUgOeArwFfJXxeGsBt7D1bm0PYvag10J5w6HqAh4FmhIGvZFpUqxZLatT2ZVKxr7Y9atQoDjvssITLmjRJ9mc0MzRp0oTx48czZMgQevbsyUUXXcSRRx5Zrt4f//hHpkyZwtFHH80dd9zB//7v/wLw73//m759+9K3b19OO+00/vvf//Liiy+SlZXF5MmTGT58OL1792bt2rVJPWA9zRmbJdUJY3N6SzY2/+c//2HUqFE8+mjpp5MdeOCB3H777Xzzm99kwIAB3H777bRr1w6A++67j8svv5zu3bvTvXt3Bg8eXPv21noLkurd7UAQN+Xm5e2dYO8UlQVl6pedbk9inz//+c9ZuXIl8+fP59FHH+Wmm24qV6dLly7MnTuXgoIC5syZQ+fO4S1ykyZN4r777uPNN9/kD3/4Q6l1Ro4cyfTp03nxxRdZvXo1V111FTfccANvvfUWb7zxBgceeCAARx99NG+88QYFBQU89dRTsR/GefPmcdddd5GTk8N1113HMcccw7///W9yc3N54YUX+PKXv1yunR06dOCJJ55g4cKFLFy4kG9961sAPP3001xyySUAXHHFFTz88MMMGzaMY489lkceeYT8/HxatmzJ6tWrufPOO8nLy+OCCy5g0KBBvP766+Tl5TFt2jRat24NwOrVq/nd735Hfn4+OTk59O3blxdeeIFVq1bxox/9CAgfUj5nzhzy8vIoLCzknHPOKdfesp/x8uXLefjhh1m2bBn//Oc/adWqFWeeeSbTpk2L1Tv55JOZOXMmAH/961/JyclhyZIljBkzJuF2488IDxs2jEmTJlX6WVVkwIABrFq1itWrV7Nz506mTp0auwIar2fPnrz00ktA+B0mqnP++efz/PPP8/nnn9O+fXt27NhBUVERALNnzy53dleSGlKlsTnBZGwuzdhcXn3H5rVr17J48WL27Ck9bt6ZZ57J7Nmz+fTTT9m0aROzZ89m8ODBfPnLX+aAAw5gwYIFAEyZMoVzzz230rYkJQiClJpycnKq+vfq5NRoplJg7xQrSm6dM3v0CPr16xf069cvAILb47dVB9PtVRzHMcccExQWFgatWrUK9t9//6CoqCi46aabytWbMWNGcOmllwZAcNlllwXTp08PgGDSpEnBzJkzgyZNmpRbZ+TIkUFRUVHQpk2boEOHDsGmTZuCH/3oRwEQ/PnPfw6uu+66AAgKCgqCk046KQCCsWPHBnfddVcABPPmzQvGjx8fAEHTpk2D1157LejQoUMABBdeeGEwYcKEcvt85JFHghNOOCEAgs6dOwfLli0LgODggw8OioqKgoEDBwYrV64MDjzwwNg+Sj57IFi9enXw05/+NACC9u3bBy+//HKw3377BUBwyy23BL/61a9i9X784x/HjqWgoCB2nB9++GEABNnZ2cH+++8f21ZRUVFsP1u2bCnX9i5dugRBEATf+ta3AiCYMGFCcNNNNwXZ2dnB2rVrY+3461//GowYMSIAYsfRpEmTYN68eUHv3r3LHVf8voYNGxZMmjSp0s+qX79+wQMPPFCufcOGDStV/r3vfS+49957E34H1157bQAE5513XhAEQfClL32pVJ25c+cGZ511Vmx+zZo1sfaOGzcuKCwsLLfdHj16JPo3ldvQsa2xT8Zmp3SaqpLsOmeeeaax2dgcQPrE5pJp0qRJwbBhw2LzN910U/CLX/wiNv/LX/4yuOmmm4J+/foFs2fPjpUPHDgwmDlzZrntVTc219djZiQ1YieeeCLTp0/n888/B2DGjMRjsRx//PF85zvfAeChhx4qdUb2n//8Z7kzciXmzZvH1q1b2bp1K5s3b46dXVy8eDF9+vThgAMOoF27drzyyisATJ48mX/+85+x9R9//HEAvv71r3PUUUcxe/ZsIOxW9MEHH5Tb3+mnn07Pnj1j8wcccACtW7dmw4YN3HbbbcybN4/zzjuPTz/9tMLPpGSfxx13HD179uS1114DoHnz5rzxxhuxeiWf1eLFi2nTpk3sOL/44gvatm3Ltm3b+N3vfsdJJ53Enj176NixI4cccggfffRRhfv+z3/+w+uvvw7Aww8/zLXXXsuf/vQnXnjhBc4++2yeeOIJzjrrLG655RYALrzwQq644gqaNm3KoYceSs+ePVm8eHGF20/ms8rLy+Pyyy9PahuJ3HzzzfzlL39h1KhRvPLKK6xbt47du3fHln/5y1+md+/ezJo1K1Y2fPhw7rrrLlq0aMGLL75Yqr4kZRpjc3nG5trF5lRhgio1QmOjqUSpm+nz8uIXREVxZQ1k27ZtFS774osvYu/37NkTm9+zZw9Nm1b9M1Wy7aysLJYuXVplV5cmTZpw3HHHldpvid69e7Nx48YK72tJtM/Zs2dz8cUXJ6wXfyxlj7Np06aMGDGCgw46iH79+rFr1y5Wr15Ny5YtK913eIK//PzUqVO5+uqr+eSTT8jNzWXr1q107dqVm2++mf79+7Np0yYmTZqUcPvx24xfXtlnlcj69etj3ccAOnXqxPr15Z9+8sEHH8S66LZu3Zphw4axefPm2PILL7yQ6dOns2vXrljZm2++yUknnQTAoEGD+NrXvpZUmySpPlQamxMwNpdmbG742FzZ+qecckqp9f/973+zfv16OnXqVOPtVsR7UCVV6ZVXXuHcc8+lZcuWtGnThrPPPjthvddff53hw4cDMGLECObPn18n+//ss8/49NNPGThwIACXXHIJL7/8crl6K1eu5KCDDuK4444DoGnTpqXOMJZ48cUXueaaa2LzRx99NAD9+/dnyJAh9O3bl5tvvpmuXbsC4T0g+++/f8K2vfnmm5xwwgl89atfBWC//faje/fuSR9b27Zt2bBhA7t27eKUU06J7bMyXbp0iR3jxRdfzKuvvgrAyy+/zDHHHMPll1/O1KlTgfCs6rZt29i8eTMHH3wwQ4YMSbjNjz76iB49epCVlcV5550XK6/os6pITk4O3bt3p2vXrjRr1ozhw4cnPKvfvn17srKyAPjZz37GxIkTSy2/6KKLeOyxx0qVHXTQQUB4JvzWW2/lb3/7W6VtkaR0Zmw2Npeoq9hckVmzZnHGGWfQrl072rVrxxlnnMGsWbP48MMP+eyzz/jmN78JhCP9/utf/0p6uxUxQZWqoVQf+dtv3ztFZY1Fv3799k6HHrp3isrKys/P5/HHH6egoIDnn3+enJychNu95ppruOyyyygoKOCSSy7huuuuq7M2jxw5kv/7v/+joKCAb3zjG9xxxx3l6uzcuZPzzz+f3//+9yxatIhFixYlPGN77bXXcuyxx1JQUMDSpUv58Y9/TPPmzXnggQf4/ve/zwcffMBNN90US5oefPBB/va3v8UGYohXXFzMqFGjeOyxxygoKOCNN96gR48eSR/XI488wrHHHkthYSGXXnopy5cvr3KdFStWcNVVV7Fs2TIOPPBA7rvvPiA88/vMM88wZMgQnnnmGQAKCwvJz89nxYoVPProo7HuTmWNHj2aZ555htdff71U16tEnxWEf0MPPPBAue3s3r2bq6++mlmzZrF8+XKmTZvGsmXLABg7dmzsP1CnnHIKK1euZOXKlRxyyCH89re/jW2jS5cudO7cudx/dH7605+ybNkyCgsLmTlzJvPmzavys5KU/qq6h7qxKBWbE0xlGZuNzXUdm4899ljee+89LrjgAu6//36WLFkCwKeffsqvf/1rcnJyyMnJ4Y477oh1tb7yyiv5xz/+wapVq3jnnXd4/vnnk/qMK5OVav9wc3Nzg/79+zd0M6SESv17ia7+RAuioqxa1a9oncE9elAcjT6XqEtQdbv41rZL8O23387WrVv505/+VGk91b0uXbrwzDPP0Lt374ZuSkrq0aMHK1asKFUWBEEecGzDtCg9GJuVyqr6v2ylsTmJ+hWtM3jwYIqLi4EkYnMClcbmJOqXZWxuOMbmylU3NnsFVZIkSZKUEhwkSVK1jR07tupK2ifWrl3rGVpJUjnG5oZjbK5bXkGVGgH/oUqSlFqaNDE6S/uC/7KkRuCI7dvJzs5u6GZIKa19+/Zs3769oZshKUMcccQRxmapCjWJzXbxlRqBMevWMebss1m1alXCUeg6dOiwdyZ+eVRedp3q1pcag+3bt7Nu3bqGboakDDFmzBjGjBmTXGxOoNLYnER9qTGoSWx2FF+pGhpqFN+6Xqcm+5AaK0fxrT1js1JZQ43iW9fr1GQfUmPlKL6SJEmSpJRngipJkiRJSgkmqJIkSZKklJBsgjoYWAmsAkYnWH4S8BawCzi/zLKRQFE0jaxZMyVJUhnGZklS2klmFN9sYDwwCFgH5AAzgGVxdf4DjAJuLrPul4DbCW+ADYC8aN1Pa9NoSZIynLFZkpSWkrmCOoDw7Oy7wA5gKjC0TJ01QCGwp0z5mcBs4BPCwDeb8IyvJEmqOWOzJCktJZOgdgTei5tfF5UlI9l1rwBygdyqngElSZKMzZKk9JRMF9/68Pdoori4OLUezCpJUmYyNkuS6l0yV1DXA53j5jtFZcmozbqSJCkxY7MkKS0lk6DmAN2BbkBzYDjhYArJmAWcARwYTWdEZZIkqeaMzZKktJRMgroLuJoweC0HpgFLgTuAc6I6/QnvYbkAuD9aDuEADL8mDKQ50Tqf1FHbJUnKVMZmSVJaygqC1LqtJDc3N+jfv39DN0NKqNS/l6ys+AVRUVat6tfXOjXZh9RYBUGQR/hIFdWQsVmprKr/y1YaA5OoX1/r1GQfUmNVWWxO5gqqJEmSJEn7nAmqJEmSJCklmKBKkiRJklKCCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSggmqJEmSJCklmKBKkiRJklKCCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSggmqJEmSJCklmKBKkiRJklKCCaokSZIkKSUkm6AOBlYCq4DRCZa3AB6Pli8AukblzYDJwGJgOfCzWrRVkiTtZWyWJKWdZBLUbGA8MAToCVwUvcb7AfApcARwF/D7qPwCwgDZG+gH/Ii9AVKSJNWMsVmSlJaaJlFnAOHZ13ej+anAUGBZXJ2hwJjo/RPAX4AsIABaR/tpBewAPqtto6W6EATB3pkxY8q9z8rKqtf2pDo/LymlGJuVlkrFmgSMNaX5eSkdJZOgdgTei5tfB3yzkjq7gM1Ae8KAOBT4ANgPuAH4JME+rogmOnTokGTTpTo0duze9/HJlxLz85IamrFZkpSWkklQa2MAsBs4DDgQmA/MYe8Z3xJ/jyaKi4srPxUkSZJqw9gsSUpZydyDuh7oHDffKSqrqE5ToC2wEbgYeAHYCWwAXgOOrUV7JUmSsVmSlKaSSVBzgO5AN6A5MByYUabODGBk9P584CXCe1z+A5wWlbcGjgNW1K7JkiRlPGOzJCktJZOg7gKuBmYRDkc/DVgK3AGcE9WZQHhfyyrgRvYOdz8eaBPVzwEmAYV11HZJkjKVsVmSlJaSvQf1uWiKd1vc++2Ew9aXtbWCckmSVDvGZklS2knmCqokSZIkSfucCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSggmqJEmSJCklmKBKkiRJklKCCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSggmqJEmSJCklmKBKkiRJklKCCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJSSboA4GVgKrgNEJlrcAHo+WLwC6xi3rA7wBLAUWAy1r2FZJkrSXsVmSlHaSSVCzgfHAEKAncFH0Gu8HwKfAEcBdwO+j8qbAw8CPgV7AKcDO2jZakqQMZ2yWJKWlZBLUAYRnX98FdgBTgaFl6gwFJkfvnwC+DWQBZwCFQEG0bCOwu3ZNliQp4xmbJUlpKZkEtSPwXtz8uqisojq7gM1Ae+BrQADMAt4CbqlgH1cAuUBuhw4dkmq4JEkZzNgsSUpLTeth+wOB/sB/gblAXvQa7+/RRHFxcbCP2yRJUiYzNkuSUlYyV1DXA53j5jtFZRXVaQq0JewytA54BSgmDILPAcfUor2SJMnYLElKU8kkqDlAd6Ab0BwYDswoU2cGMDJ6fz7wEnu7D/UG9iMMjicDy2rdakmSMpuxWZKUlpLp4rsLuJowoGUDEwmHpb+D8N6UGcAE4CHCARs+IQyUEI4e+GfCQBoQnqV9tu6aL0lSRjI2S5LSUlYQpNZtJbm5uUH//v0buhnKAKX+9rOy4hdERVmUVd116mMfqdwuKRUEQZAHHNvQ7WjMjM2qL1X9v7TK+JTEOvWxj1Rul5QKKovNyXTxlSRJkiRpnzNBlSRJkiSlBBNUSZIkSVJKMEGVJEmSJKUEE1RJkiRJUkpI5jEzUsorNYrdmDHl3juKXcPwe5GkzOUIs6nJ2KxU52NmlBYy/XEu6dIuaV/wMTO1Z2xWTWT641waRbuMzWogPmZGkiRJkpTyTFAlSZIkSSnBBFWSJEmSlBJMUCVJkiRJKcEEVZIkSZKUEkxQJUmSJEkpwQRVkiRJkpQSTFAlSZIkSSnBBFWSJEmSlBKSTVAHAyuBVcDoBMtbAI9HyxcAXcss/wqwFbi5Rq2UJEllGZslSWknmQQ1GxgPDAF6AhdFr/F+AHwKHAHcBfy+zPI/A8/XqqWSJKmEsVmSlJaSSVAHEJ59fRfYAUwFhpapMxSYHL1/Avg2kBXNnwusBpbWsq2SJClkbJYkpaVkEtSOwHtx8+uisorq7AI2A+2BNsCtwNgq9nEFkAvkdujQIYkmSZKU0YzNkqS01HQfb38MYbeirVXU+3s0UVxcHOzjNkmSlMnGYGyWJKWoZBLU9UDnuPlOUVmiOuuibbYFNgLfBM4H/gC0A/YA24G/1KbRkiRlOGOzJCktJZOg5gDdgW6EwW44cHGZOjOAkcAbhEHvJSAAToyrM4bwbK0BUJKk2jE2S5LSUjIJ6i7gamAW4aiBEwkHVbiD8N6UGcAE4CHCARs+IQyUkiRp3zA2S5LSUrL3oD4XTfFui3u/Hbigim2MSXJfkiSpasZmSVLaSWYUX0mSJEmS9jkTVEmSJElSSjBBlSRJkiSlBBNUSZIkSVJKMEGVJEmSJKUEE1RJkiRJUkowQZUkSZIkpQQTVEmSJElSSjBBlSRJkiSlhKYN3QCprCAI9s6MGVPufVZWVr22R/VrzZ1nxd63nf127P3mQV8DoOvoZ+u9TZKU6UrF5gSMzenN2Kz6ZIKq1DZ27N738cmqMkK7uUWx9yVBUJIkNRxjs/Y1u/hKkiRJklKCCaokSZIkKSWYoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSQrIJ6mBgJbAKGJ1geQvg8Wj5AqBrVD4IyAMWR6+n1aKtkiRpL2OzJCntJJOgZgPjgSFAT+Ci6DXeD4BPgSOAu4DfR+XFwNlAb2Ak8FDtmyxJUsYzNkuS0lIyCeoAwrOv7wI7gKnA0DJ1hgKTo/dPAN8GsoB84P2ofCnQivCMriRJqjljsyQpLSWToHYE3oubXxeVVVRnF7AZaF+mzjDgLeCLBPu4AsgFcjt06JBEkyRJymjGZklSWmpaT/vpRdi16IwKlv89miguLg7qqU2SJGUyY7MkKeUkcwV1PdA5br5TVFZRnaZAW2BjXP3pwKXAOzVuqSRJKmFsliSlpWQS1BygO9ANaA4MB2aUqTODcKAFgPOBl4AAaAc8Szi64Gu1b64kScLYLElKU8kkqLuAq4FZwHJgGuGgCncA50R1JhDe17IKuJG9w91fTTh64G3Aomg6uE5aLklS5jI2S5LSUrL3oD4XTfFui3u/HbggwXq/iSZJklS3jM2SpLSTzBVUSZIkSZL2ORNUSZIkSVJKqK/HzCiDBUHlTyfIysqqp5YoHa2586zY+7az34693zzoawB0Hf1svbdJklKdsVn7krFZtWGCKilttJtbFHtfEgQlSVLDMTaruuziK0mSJElKCSaokiRJkqSUYIIqSZIkSUoJJqiSJEmSpJRggipJkiRJSgkmqJIkSZKklGCCKkmSJElKCSaokiRJkqSU0LShG6DGJQiCSpdnZWXVU0ukmltz51mx921nvx17X/IA8a6jn633NklSTRmblQ6MzSphgiopo7WbWxR7XxIEJUlSwzE2Zza7+EqSJEmSUkKyCepgYCWwChidYHkL4PFo+QKga9yyn0XlK4Eza9pQSZJUirFZkpR2kunimw2MBwYB64AcYAawLK7OD4BPgSOA4cDvge8CPaP5XsBhwBzga8Duumm+asN7VqTkeW+MUoyxOU0Zm6XkGZvTUzJXUAcQnmV9F9gBTAWGlqkzFJgcvX8C+DaQFZVPBb4AVkfbGVDrVktSA2o3tyg2SQ3E2CxJcYzN6SOZK6gdgffi5tcB36ykzi5gM9A+Kn+zzLoda9TSDFOTM6iedZVSR03O6nomWNVgbG4A1Y2zxmUptRibG4esqn48gfMJ73P5YTR/CWEQvDquzpKozrpo/p2ozhjCIPhwVD4BeJ7wTG68K6KJNWvW9OvWrVs1D0Pp6va492Mb+Tq2a9+vk+ntUmJBEOQBxzZ0O+qYsVlSraVTDEzVdimxSmNzEARVTccHQTArbv5n0RRfZ1ZUjyAImgZBUBwEQVaCuvH1Ek45OTkB4OTk5OTkVCdTEAS5ScS6xjYZm52cnJycGu1UWWxO5h7UHKA70A1oTjiwwowydWYAI6P35wMvRTufEdVvEa3fHViYxD4lSVLFjM2SpLSUzD2ouwi7DM0iHDVwIrAUuAPIJQx0E4CHCAda+IQw8BHVm0Y4quAu4CocJVCSpNoyNkuS0lIy96DWq9zc3KB///4N3QxJUpqo9D4XJcXYLEmqS5XF5mS6+EqSJEmStM+ZoEqSJEmSUoIJqiRJkiQpJZigSpIkSZJSQsoNkgR8DKxNUN4BKK7ntqSSTD7+TD528Pgz+fgz+dih7o6/C3BQHWwnkxmbE8vk48/kYwePP5OPP5OPHeohNqdiglqRXDJ7FMZMPv5MPnbw+DP5+DP52MHjbwwy/TvK5OPP5GMHjz+Tjz+Tjx3q4fjt4itJkiRJSgkmqJIkSZKklNCYEtS/N3QDGlgmH38mHzt4/Jl8/Jl87ODxNwaZ/h1l8vFn8rGDx5/Jx5/Jxw71cPyN6R5USZIkSVIaa0xXUCVJkiRJaayxJKiDgZXAKmB0A7elvq0BFgOLCEfNSncTgQ3AkriyLwGzgaLo9cAGaFd9SXT8Y4D1hH8Di4D/qe9G1ZPOwDxgGbAUuC4qz5Tvv6LjH0P6f/8tgYVAAeGxj43KuwELCH/7HweaN0jrVBFjs7E5E36bwdhsbDY212tsbgxdfLOBt4FBwDogB7iI8A8lE6whHMo5U563dBKwFZgCHBWV/QH4BLiT8D9BBwK3Nkjr9r1Exz8mKvtjA7WpvhwaTW8B+wN5wLnAKDLj+6/o+C8k/b//LKA14XE2A14l/E/AjcBTwFTgb4RB8r4GaqNKMzYbm43N6f/bDMZmY3MDxObGcAV1AGGG/i6wg/DDGNqgLdK+9ArhD168ocDk6P1kwh+GdJXo+DPFB4QBAGALsBzoSOZ8/xUdfyYICAMghEGwWVR2GvBEVJ7O331jZGzOLMZmYzMYm43N9RSbG0OC2hF4L25+HZnzhwHhH8KLhGdsrmjgtjSUQwh/IAA+jOYzzdVAIWE3o3TtRhOvK9CXsAtJJn7/Xdl7/JAZ3382YTepDYTdxd4BNgG7ouWZ9tuf6ozNxuZM/G0uKxN+m+N1xdhsbK6H2NwYEtRMNxA4BhgCXEXYzSSTBdGUSe4Dvgp8gzAY/KlBW7PvtQGeBK4HPiuzLBO+/7LHnynf/27CY+xEeHWuR4O2Rqqcsbm0TPhtLitTfptLGJuNzfUWmxtDgrqe8AblEp2iskxRcqwbgOmEfxyZ5iPC/v9ErxsasC0N4SPCH4g9wAOk999AM8IA8Ajh/Q2QWd9/RcefKd8/hGdm5wHHA+2AplF5pv32pzpjc8jYHEr33+ZEMum32dhsbN5EPcbmxpCg5gDdCUeMag4MB2Y0aIvqT2vCG7JL3p9B6RHkMsUMYGT0fiTwrwZsS0M4NO79eaTv30AWMIHw/o4/x5Vnyvdf0fFnwvd/EGHAA2hFOPDOcsJgeH5Uns7ffWNkbN773ticmf8+M+G3GYzNxuZQvcbmxjCKL4RDN48j7Ac9Efhtg7am/hxOeGYWwjMVj5L+x/4YcArQgfDs1O3A08A04CvAWsKR09J1sIJEx38KYfeKgHDkyB+x976PdDIQmE/46IY9UdnPCe/1yITvv6Ljv4j0//77EA60kE144nQacAfhb+BUwscZ5APfA75ooDaqPGOzsTkTfpvB2GxsNjbXa2xuLAmqJEmSJCnNNYYuvpIkSZKkDGCCKkmSJElKCSaokiRJkqSUYIIqSZIkSUoJJqiSJEmSpJRggipJkiRJSgkmqJIkSZKklGCCKkmSJElKCSaokiRJkqSUYIIqpY8WwARgLbAFWAQMiVv+JWA6sC2qc3E9t0+SpExTVWx+GPgA+Ax4G/hhPbdPSjkmqFL6aAq8B5wMtAV+CUwDukbLxwM7gEOAEcB9QK96b6UkSZmjqtj8v9H7A4BzgN8A/eq7kVIqMUGVGkYT4GfABuBj4ErC5PGgWmxzGzAGWAPsAZ4BVhMGutbAMOBXwFbgVWAGcEkt9idJUjqp79gMsBT4InofRNNXa7E/qdEzQZUaxm3A/wP6AEcAlwKfEAbEEs8AmyqYnkliH4cAXyMMfl8DdhF2HypRgFdQJUkqUd+xucRfgf8CKwi7+z5Xs+ZL6aFpQzdAykAHATcSBsAPo7JngZPK1Pt/tdhHM+ARYDJhwDuR8P6WeJuB/WuxD0mS0kVDxOYSVwLXAMcDp7D3iqqUkbyCKtW/bwPLCbv7lGgPLK6j7TcBHiLslnR1VLaV8P6WeAcQDtggSVKma4jYHG834e03nYCf1NE+pUbJBFWqfx0o3V2oKeHACEvK1HueMLFMND1fwbazCEcLPITwntOdUfnb0X66x9U9mtJdjCRJylQNEZsTaYr3oCrD2cVXqn8rgDuAboT3rPwhel/2LO0Qqu8+4EjgdODzuPJtwFPRfn8IfAMYCnyrBvuQJCndNERsPhg4jfDe1c+j5RdFk5SxvIIq1b85wD8JBylaQBj89lD7q5ldgB8RJp8fsveM7oho+ZVAK8LRCR8j7ELkFVRJkhomNgeEsXgd8CnwR+B6wlH2pYyVFQRBQ7dBynRnED6jtHtVFSVJUr0wNksNxCuoUsM7krobhEGSJNWesVlqICaoUsM7kvKDMEiSpIZjbJYaiF18JUmSJEkpwSuokiRJkqSUkHKPmfn444+DtWvXNnQzJElp4thjjy0GDmrodjRmxmZJUl2qLDanXIK6du1a+vfv39DNkCSliSAIzKxqydgsSapLlcVmu/hKkiRJklKCCaokSZIkKSWYoEqSJEmSUkLK3YMqqbymTZvSqVMnWrZs2dBNkVLW9u3bWbduHbt27WropkjKAMZmqWo1ic0mqFIj0KlTJ7Zs2cKaNWsauilSymrfvj2dOnXy34mkemFslqpWk9hsF1+pEWjZsiUbN25s6GZIKW3jxo1eyZBUb4zNUtVqEptNUCVJkiRJKcEuvlKKCYKgXNngwYNp3bo1AHl5efXdJEmSMpqxWao/XkGVJEmSJKUEr6BKjVCiM7m1kZWVVafbkyQp0xibpbqR7BXUwcBKYBUwOsHyk4C3gF3A+QmWHwCsA/5SgzZKShG7du0iPz+fxYsXM23aNFq1agWEQfmhhx6K1cvOzmbDhg3MnDmz1HolU5cuXSrdzxVXXMH7779Pfn4+RUVFTJ8+nWbNmgFw/PHHM3bs2H10hKGWLVvy73//myZNwp/IM888kxUrVlBUVMStt95a4XqrV6+msLCQ/Px8cnJyKqzXokULFixYwKJFi1iyZAljxoyJLatoX82aNePll18mOzu79geodGFslmRsNjannyAIqpqygyB4JwiCw4MgaB4EQUEQBD3L1OkaBEGfIAimBEFwfoJt3B0EwaNBEPylqv3l5OQEgJNTxk6JnHnmmUG/fv2Cfv36VVinNpJt25YtW2LvH3744eCGG26Ilefn5wctW7YMgGDw4MFBfn5+MHPmzHLrJTPde++9wahRowIgyMrKCoqKimLHXh/TlVdeGVx77bUBEDRp0iRYtWpV0K1bt6BZs2bBokWLgiOPPDLheqtXrw7at2+f1D5at24dAEHTpk2DN998M/jmN79Z5b5uu+224OKLL27wv9FUnnr06FGuLAiC3KpiTyOcjM1OTvU4JWJsNjaDsTmZqbqxOZkrqAMIz86+C+wApgJDy9RZAxQCexKs3w84BHgxiX1JaiTmz5/PEUccEZt/7rnnOOusswC46KKLeOyxx2q87T59+pCfnw/AEUccQVZWFm+//TYA06ZNY+DAgQA8+eST/PrXv+bll19m7dq1fPvb3wbg61//OnPnziU/P5/Zs2fTvn372Lr33nsv8+fPZ82aNZxwwglMmTKFlStX8o9//CO2/xEjRvCvf/0LgAEDBrBq1SpWr17Nzp07mTp1KkOHlv0JrL5t27YB4dnXZs2aEQRBlft6+umnGTFiRK33rbRgbJZUjrG5dozNqSGZBLUj8F7c/LqoLNnt/wm4uYp6VwC5QG6HDh2S3LSkhpKdnc2QIUNYvHhxrGzq1KkMHz6cFi1a0KdPHxYsWBBb1qpVq1gXoqeeeqrK7ffq1YspU6awbNkycnNzueyyy9iyZQsARx11FIWFhQD07t2bTZs2cfLJJ3PdddcxYsQImjdvzpNPPsmNN95I3759mT17NjfccEOs/rvvvsuJJ57I/fffz4QJE7jlllvo2bMnZ511Fs2bN6dZs2YcfvjhrF27FoCOHTvy3nt7fwLXrVtHx46JfwKDIODFF18kNzeXyy+/vNJjbNKkCfn5+WzYsIHZs2ezcOHCKve1ZMkS+vfvX+Xnp4xgbJZUirHZ2Jwu9vUgSVcCzxEGzsr8PZooLi4O9nGbJNVQSTCD8CzthAkTYssWL15M165dueiii3juuedKrff555/Tt2/fpPbRqVMnNmzYwNFHHw3AJZdcwq9+9SvOOOMMWrRoQfPmzfnss89o1aoVbdu25a677gLCs52bNm3i3HPP5dVXX6WgoACAZcuWcc4559CiRQvatWvHuHHjgDBgTZgwgQ8//BCA3bt3s2PHDg499FA2bdpUo89n4MCBvP/++xx00EHMnj2bFStWMH/+/IR19+zZQ9++fWnbti3Tp0+nV69eVW5/z5497NixgzZt2rB169YatVHC2CylFWNz5YzNjU8yV1DXA53j5jtFZck4HriasJvRH4FLgTur0T5JKaQkmPXt25drr72WnTt3llo+Y8YM/vjHP9aqC1Hv3r1ZtmxZbL6goICDDz4YCM/elizr2bMneXl57NkT9l7s06cPS5YsoWfPnqXOHpdsr1evXrz11luxURaPPvro2Jnkjh078v7778eOsWXLlrH1169fT+fOe38CO3XqxPr1iX8CS7bx8ccfM336dAYMGFDl8W7evJl58+YxePDgpPbVokULtm/fXuV2lfaMzZIAYzMYm9NNMglqDtAd6AY0B4YDM5Lc/gjgK0BXwq5EU0g80qCkNDBx4kTGjh3LkiVLkqo/Z84cDjvssFJlffr0Yfny5bH5kSNHMmfOHCAMaPFdiBYtWlRqvcLCQtavX0/Pnj0B6NatG5dccglTpkyhd+/esTO38fUhDIgl7zdt2kR2djYtWrQAICcnh+7du9O1a1eaNWvG8OHDmTGj/E/gfvvtR5s2bWLvzzjjjNjnUPY4O3ToQNu2bYFwVMJBgwaxYsWKKvf1pS99ieLiYnbt2pXU56u0ZmyWlBRjs7G5sUmmi+8uwjOts4BsYCKwFLiD8N6UGUB/YDpwIHA2MBao+pq4pBpJ1WejrV+/nnvvvTepullZWRxxxBF88sknpcp79+7NySefzFlnncWePXtYsGABN998c2zZwoULY+/j76U56qijWLJkCUuWLOF//ud/KCws5PPPP+f73/8+n3zySal1W7RoQatWrWLdheIDIsCLL77IwIEDmTt3Lrt37+bqq69m1qxZZGdnM3HixNiZ4meffZYf/vCHfPDBBxxyyCFMnz4dgKZNm/Loo48ya9ashMd56KGHMnnyZLKzs2nSpAnTpk3j2WefBahwXwCnnnpqrJ4ynrFZSjHGZmOz6kZWySX1VJGbmxt4o7HSRVX/vhIFs0TrDB48mOLiYgDy8vLKLe/Xr1+l+0m0TkPr1asX3//+97npppsauinl9O3blxtuuIFLL7201tuqy+N88sknGT16NEVFRbXeVrrq0aMHK1asKFUWBEEecGzDtCg9GJuVTozNFTM2V5+xuWrVjc3JdPGVpDq3dOnSlAyAAPn5+cybNy/2MPDaqKvjbNasGU8//bQBUJK0zxibq8fYvG/s61F8JalRmjRpUkM3oZSdO3fy0EMPNXQzJElqMMbmzOAVVEmSJElSSjBBlSRJkiSlBBNUSZIkSVJKMEGVJEmSJKUEE1RJkiRJUkpwFF+pEVpz51nVW+GCyut3HV31A6YPOeQQxo0bR//+/dm0aRMfffQR119/fcKh1V977TVOOOEEunTpwre+9S0ee+wxIHwm3KWXXsp1111XvfYD8+bN4+abb67z58adffbZ9OzZk9///ve13tY111zDT37yE9566y2+973vVXv9rKwsxo0bx2mnnUYQBGzfvp0LL7yQNWvW1LptkqR9y9hcd4zNmc0EVVJSpk+fzuTJk7nooosA6NOnD4ccckipIJidnc3u3bs54YQTAOjatSsXX3xxLAjm5eXt0weTN2nShD179lRrnZkzZzJz5sw62f+VV17J6aefzvr165OqX/J5lfjud7/LYYcdRp8+fQiCgI4dO7Jt27Y6aZskKf0Ym6tmbG587OIrqUqnnnoqO3fu5P7774+VFRYW8uqrr3LyySfzyiuv8K9//Ytly5YBsGXLFgDuvPNOTjzxRPLz87n++us5+eSTYwGndevWTJw4kcLCQgoKCvjOd74DwF//+ldycnJYsmQJY8aMqbJtq1ev5s477yQvL48LLriAQYMG8frrr5OXl8e0adNo3bo1AEOGDGH58uXk5uZy9913x9oxcuRI7r33XgC6dOnC3LlzKSgoYM6cOXTu3BkIn7t2991389prr/HOO+8wbNiwcu247777OPzww3n++ee5/vrrOfDAA5k+fToFBQW88cYb9O7dG4Dbb7+dKVOm8Oqrr5Z7dtqhhx7KBx98QBAEAKxfv55NmzZV/QVJkjKOsdnYnK68giqpSkcddVSlZ1ePOeYYjjrqqHLdXUaPHs3NN9/M2WefDcDJJ58cW/arX/2KzZs306dPHwDatWsHwC9+8Qs+/fRTmjRpwty5c+nduzeLFy+utH0bN26kX79+tG/fnqeeeorTTz+d//73v9xyyy3ceOON/OEPf+D+++/npJNOYs2aNTz66KMJt3PvvfcyefJkpkyZwmWXXcY999zDeeedB4QBauDAgfTo0YMZM2bw5JNPllr3Jz/5CYMHD+bUU09l48aN3HPPPeTn53Peeedx6qmnMmXKFPr27QtAz549GThwINu3by+1jWnTpvHqq69y4oknMnfuXB5++GEWLVpU6bFLkjKTsdnYnK68giqp1hYuXFjtezFOP/10xo8fH5svORt54YUXkpeXR35+Pr169aJnz55Vbuvxxx8H4LjjjqNnz5689tpr5OfnM3LkSLp06UKPHj149913Y20s6dZU1vHHHx8LkA899BADBw6MLXv66acJgoDly5dzyCGHVNmmgQMHxs7Czps3j/bt27P//vsDMGPGjHIBEMKzsl//+tf52c9+xp49e5g7dy6nnXZalfuSJKksY3N5xubGwSuokqq0dOlSzj///AqX19W9GF27duXmm2+ODfYwadIkWrZsWeV6JfvPyspi9uzZXHzxxaWWH3300bVu2xdffBF7n5WVVattVfZ57dixgxdeeIEXXniBjz76iHPPPZeXXnqpVvuTJKUfY7OxOV15BVVSlV566SVatGjB5ZdfHivr3bt3qbOYiWzZsiV2ZrKs2bNnc9VVV8Xm27VrxwEHHMC2bdvYvHkzBx98MEOGDKlWO998801OOOEEvvrVrwKw33770b17d1auXMnhhx9Oly5dgHDAg0Ref/11hg8fDsCIESOYP39+tfYfb/78+YwYMQIIu08VFxfH7v+pSN++fTn00EOBMND26dOHtWvX1rgNkqT0ZWyuPmNz42CCKikp5513HqeffjqrVq1iyZIl/O///i8ffvhhpesUFhaye/duFi1axPXXX19q2W9+8xsOPPBAFi9ezKJFizj11FMpLCwkPz+fFStW8Oijj/Laa69Vq43FxcWMGjWKxx57LDYAQo8ePdi+fTtXXnklL7zwArm5uWzZsoXNmzeXW/+aa67hsssuo6CggEsuuaRGQ+6XGDNmDP369aOgoIA777yTkSNHVrnOwQcfzMyZM1m8eDGFhYXs2rWLv/zlLzVugyQpvRmbq8fY3DhklYxIVYXBwN1ANvAP4M4yy08CxgF9gOHAE1H5N4D7gAOA3cBvgccr21Fubm7Qv3//pBovpbqq/n0l6o6SaJ3BgwdTXFwMkHBAhH79+lW6n305fHxj0bp161j3nfHjx1NUVMS4ceMatlGqcz169GDFihWlyoIgyAOObZgW7VPGZqkGjM2pw9icGaobm5O5gpoNjAeGAD2Bi6LXeP8BRgFlh9/6L3Ap0IswkI4D2iWxT0mqU5dffjn5+fksXbqUtm3blhqWX2qEjM2SGj1jsxJJZpCkAcAq4N1ofiowFFgWV2dN9Fr2Kbxvx71/H9gAHARsqmY7JalWxo0b51lZpRNjs6RGz9isRJK5gtoReC9ufl1UVl0DgObAOzVYV5Ik7WVsliSlpfp6zMyhwEPASMqfyQW4Ipro0KFDPTVJkqSMZmyWJKWcZBLU9UDnuPlOUVmyDgCeBX4BvFlBnb9HE8XFxUmN2iRJUgYzNkuS0lIyXXxzgO5AN8JuQMOBGUluvzkwHZjC3tEDJUlS7RibJUlpKZkEdRdwNTALWA5MA5YCdwDnRHX6E97/cgFwf7Qc4ELCYe5HAYui6Rt10G5JqjcjR46MPaS7PlX18PDamjdvXpWPQaiJM888kxUrVlBUVMStt96asE7z5s2ZOnUqRUVFvPnmm7EHtZfo3LkzW7Zs4aabboqVXXvttSxevJglS5bU6jl4acLYLCmjGZurp7axefTo0RQVFbFixQrOOOMMAFq0aMGCBQtYtGgRS5YsYcyYMXXS1mTvQX0umuLdFvc+h7B7UVkPR5MkAZCdnc3u3bsb1bZHjRrFkiVL+OCDD8ota9KkCXv2JLp9LzM1adKE8ePHM2jQINatW0dOTg4zZsxg+fLlper94Ac/4NNPP6V79+5897vf5fe//z3Dhw+PLf/zn//M888/H5vv1asXl19+OQMGDGDHjh288MILPPPMM7zzTkaP7WNsllQnjM3prbax+cgjj2T48OH06tWLww47jDlz5vC1r32NL774gtNOO41t27bRtGlTXn31VZ5//nkWLFhQu/bWam1JGePnP/85K1euZP78+Tz66KOlrmyV6NKlC3PnzqWgoIA5c+bQuXN4i9ykSZO47777ePPNN/nDH/5Qap2RI0cyffp0XnzxRVavXs1VV13FDTfcwFtvvcUbb7zBgQceCMDRRx/NG2+8QUFBAU899RTt2rUDwjONd911Fzk5OVx33XUcc8wx/Pvf/yY3N5cXXniBL3/5y+Xa2aFDB5544gkWLlzIwoUL+da3vgXA008/zSWXXALAFVdcwcMPP8ywYcM49thjeeSRR8jPz6dly5asXr2aO++8k7y8PC644AIGDRrE66+/Tl5eHtOmTaN169YArF69mt/97nfk5+eTk5ND3759eeGFF1i1ahU/+tGPgPAh5XPmzCEvL4/CwkLOOeeccu0t+xkvX76chx9+mGXLlvHPf/6TVq1aceaZZzJt2rRYvZNPPpmZM2cC8Ne//pWcnJxKz27GnxEeNmwYkyZNqvSzqsiAAQNYtWoVq1evZufOnUydOpWhQ4eWqzd06FAmT54MwBNPPMG3v/3tUstWr17N0qVLY2VHHnkkCxYs4PPPP2f37t28/PLLfOc736m0LZKU7ozNxub6iM1Dhw5l6tSp7NixgzVr1rBq1SoGDBgAwLZt2wBo1qwZzZo1IwjqYMiCIAhSasrJyQkAJ6e0mKqS7Dpnnnlm0K9fv6Bfv34BENwOQVCH0+1VHMcxxxwTFBYWBq1atQr233//oKioKLjpppvK1ZsxY0Zw6aWXBkBw2WWXBdOnTw+AYNKkScHMmTODJk2alFtn5MiRQVFRUdCmTZugQ4cOwaZNm4If/ehHARD8+c9/Dq677roACAoKCoKTTjopAIKxY8cGd911VwAE8+bNC8aPHx8AQdOmTYPXXnst6NChQwAEF154YTBhwoRy+3zkkUeCE044IQCCzp07B8uWLQuA4OCDDw6KioqCgQMHBitXrgwOPPDA2D5KPnsgWL16dfDTn/40AIL27dsHL7/8crDffvsFQHDLLbcEv/rVr2L1fvzjH8eOpaCgIHacH374YQAE2dnZwf777x/bVlFRUWw/W7ZsKdf2Ll26BEEQBN/61rcCIJgwYUJw0003BdnZ2cHatWtj7fjrX/8ajBgxIgBix9GkSZNg3rx5Qe/evcsdV/y+hg0bFkyaNKnSz6pfv37BAw88UK59w4YNK1X+ve99L7j33nvL1Vu8eHHQsWPH2PyqVauC9u3bB61btw5ef/31oHXr1sHtt98e+zvr0aNHsHLlyuBLX/pS0KpVq+D1118P7rnnnnLb7dGjR6J/U7kNHdsa+2RsdkqnqSrJrmNsNjaXTOkem++9995Yu4HgH//4RzBs2LBY+/Pz84MtW7YEd955Z8K/1erG5vp6zIykRuzEE09k+vTpfP755wDMmJF4LJbjjz8+dlXroYceKnVG9p///GeF3W3mzZvH1q1b2bp1K5s3b46dXVy8eDF9+vThgAMOoF27drzyyisATJ48mX/+85+x9R9//HEAvv71r3PUUUcxe/ZsIOxWlKjrz+mnn07Pnj1j8wcccACtW7dmw4YN3HbbbcybN4/zzjuPTz/9tMLPpGSfxx13HD179uS1114Dwvs33njjjVi9ks9q8eLFtGnTJnacX3zxBW3btmXbtm387ne/46STTmLPnj107NiRQw45hI8++qjCff/nP//h9ddfB+Dhhx/m2muv5U9/+hMvvPACZ599Nk888QRnnXUWt9xyCwAXXnghV1xxBU2bNuXQQw+lZ8+eLF68uMLtJ/NZ5eXlcfnllye1jeoYM2YMd911V+yMbIkVK1bw+9//nhdffJFt27axaNGifdYdTZIaA2NzecbmfRObK7Nnzx769u1L27ZtmT59Or169SrVA6omTFAl1YuyCUe8L774IvZ+z549sfk9e/bQtGnVP1Ml287KymLp0qVVdnVp0qQJxx13XKn9lujduzcbN27ksMMOS3qfs2fP5uKLL05YL/5Yyh5n06ZNGTFiBAcddBD9+vVj165drF69mpYtW1a67/AEf/n5qVOncvXVV/PJJ5+Qm5vL1q1b6dq1KzfffDP9+/dn06ZNTJo0KeH247cZv7yyzyqR9evXx7qPAXTq1In168s//aSk3vr168nOzqZt27Zs3LiRb37zm5x//vn84Q9/oF27duzZs4ft27czfvx4Jk6cyMSJEwH47W9/y7p165JqkyQpMWOzsTlRvbKxOZn1N2/ezLx58xg8eHCtE1TvQZUaobFAVtx0bL9+lU5ZZeqXncZWsb9XXnmFc889l5YtW9KmTRvOPvvshPVef/312EA3I0aMYP78+XVwtPDZZ5/x6aefMnDgQAAuueQSXn755XL1Vq5cyUEHHcRxxx0HQNOmTUudYSzx4osvcs0118Tmjz76aAD69+/PkCFD6Nu3LzfffDNdu3YFwntA9t9//4Rte/PNNznhhBP46le/CsB+++1H9+7dkz62tm3bsmHDBnbt2sUpp5wS22dlunTpEjvGiy++mFdffRWAl19+mWOOOYbLL7+cqVOnAuFZ1W3btrF582YOPvhghgwZknCbH330ET169CArK4vzzjsvVl7RZ1WRnJwcunfvTteuXWnWrBnDhw9PeFZ/xowZjBw5EoDzzz+fl156CYCTTjqJbt260a1bN8aNG8fvfvc7xo8fD8BBBx0EhCP8fuc73+HRRx+t8rOSpPpibDY2p2tsnjFjBsOHD6d58+Z07dqV7t27s3DhQjp06EDbtm2BMIEeNGgQK1asqPKzqopXUKVqKHt2rKysrKx6akntVDV8eV5eXqn5/Px8Hn/8cQoKCtiwYQM5OTkJ17vmmmuYNGkSP/3pT/n444+5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\n",
831
      "text/plain": [
832
       "<Figure size 1152x576 with 4 Axes>"
833
      ]
834
     },
835
     "metadata": {
836
      "needs_background": "dark"
837
     },
838
     "output_type": "display_data"
839
    }
840
   ],
841
   "source": [
842
    "fig, axes = pyplot.subplots(2, 2, figsize=(16, 8))\n",
843
    "\n",
844
    "for q, ax in zip(qs, axes.flatten()):\n",
845
    "    ax.set_title(f'$q = {q}$' + (' [our experiment]' if q == 19 else ''))\n",
846
    "    # строим вертикальные столбцы от 0 до вероятности\n",
847
    "    ax.vlines(x_grid, 0, probs, linewidth=8.0, color='white', label='PMF, $Binom(0.5, 30)$')\n",
848
    "    # отдельно изобразим критическую области критерия\n",
849
    "    crit_reg = x_grid >= 20\n",
850
    "    ax.vlines(x_grid[crit_reg], 0, probs[crit_reg], linewidth=8.0, label='Critical region for S')\n",
851
    "\n",
852
    "    # посчитаем площадь более экстремальных значений\n",
853
    "    pvalue = 1 - binom_h0.cdf(q - 1)\n",
854
    "    # изобразим такие же и более экстремальные значения на графике\n",
855
    "    more_extremal = x_grid >= q\n",
856
    "    ax.vlines(\n",
857
    "        x_grid[more_extremal], 0, probs[more_extremal], linewidth=3.0, color='red',\n",
858
    "        label='q or more extremal pvalue: {:.3f}'.format(pvalue)\n",
859
    "    )\n",
860
    "    ax.legend()\n",
861
    "\n",
862
    "pyplot.suptitle('P-values for different q', fontsize=20)\n",
863
    "pyplot.show()"
864
   ]
865
  },
866
  {
867
   "cell_type": "markdown",
868
   "id": "2222100c",
869
   "metadata": {},
870
   "source": [
871
    "Можно увидеть, что в критической области $p-value \\leqslant \\alpha$, а вне её $p-value > \\alpha$. Именно такое правило и используется для принятия решения\n",
872
    "\n",
873
    "$$ \\mathsf{H}_0 \\text{ отвергается } \\Leftrightarrow p-value \\leqslant \\alpha $$\n",
874
    "\n",
875
    "Причём по p-value сразу видно, что если бы в нашу критическую области включили значение $19$, наш критерий допускал бы False Positive в $10\\%$ случаев, что уже недопустимо. Поэтому и гипотезу мы не отвергаем.\n",
876
    "\n",
877
    "Заметим, что для вычисления p-value не понадобилось знание $\\alpha$, а нужна была только статистика и форма критерия."
878
   ]
879
  },
880
  {
881
   "cell_type": "markdown",
882
   "id": "213b0c46",
883
   "metadata": {},
884
   "source": [
885
    "## Часть 5. Двусторонные критерии"
886
   ]
887
  },
888
  {
889
   "cell_type": "markdown",
890
   "id": "f4dbaf1d",
891
   "metadata": {},
892
   "source": [
893
    "До этого момента нас интересовали отклонения от вероятности в $50\\%$ только в одну сторону. И логично, ведь это продиктовано бизнес-смыслом. Только большая доля успешных доставок приведёт к успеху. И обычно при принятии решений так и бывает. **При тестировании нового решения или продукта рассматривают альтернативную гипотезу только в сторону улучшения**, потому что в противном случае нет смысла внедрять решение на всех пользователей.\n",
894
    "\n",
895
    "\n",
896
    "Однако **иногда** может потребоваться доказывать отклонения в обе стороны, если вы проверяете какое-то предположение. Пусть вам дали монетку и просят проверить, честная она или нет. Монетка честная, если при подбрасываниях вероятность выпадения орла равна $0.5$. Вы подбрасываете монетку $30$ раз, каждый бросок &mdash; бернуллиевская величина, аналогично задаче с доставками. И нулевая гипотеза та же самая: $\\mu = 0.5$. Но теперь мы хотим отвергать эту  гипотезу как в случае большой вероятности орла, так и в случае маленькой, соответственно проверяем *двустороннюю гипотезу*.\n",
897
    "\n",
898
    "$$ \\mathsf{H}_0: \\mu = 0.5 $$\n",
899
    "$$ \\mathsf{H}_1: \\mu \\neq 0.5 $$\n",
900
    "\n",
901
    "Выберем критическую область для критерия при такой альтернативе. Воспользуемся той же статистикой $Q(\\xi) = \\sum \\xi_i$. Только теперь отклонения в каждую сторону одинаково важны. Отвергать гипотезу будем не только на достаточно больших значениях, но и на достаточно маленьких. Например, если у нас было всего $2$ орла из $30$ &mdash; это свидетельство в пользу того, что $\\mu \\neq 0.5$, но не в пользу $\\mu > 0.5$.\n",
902
    "\n",
903
    "Поскольку отклонения в разные стороны одинаково важны, а распределение симметричное, искать критерий можно в таком виде:\n",
904
    "\n",
905
    "$$ S = \\{|Q(\\xi) - 15| \\geqslant C\\} $$"
906
   ]
907
  },
908
  {
909
   "cell_type": "markdown",
910
   "id": "30ae5513",
911
   "metadata": {},
912
   "source": [
913
    "### Как выбрать критическую область"
914
   ]
915
  },
916
  {
917
   "cell_type": "markdown",
918
   "id": "da983184",
919
   "metadata": {},
920
   "source": [
921
    "Посмотрим, как будет выглядеть критическая область в таком случае."
922
   ]
923
  },
924
  {
925
   "cell_type": "code",
926
   "execution_count": 20,
927
   "id": "9da5f643",
928
   "metadata": {},
929
   "outputs": [
930
    {
931
     "data": {
932
      "image/png": "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/5133nmH+fPns3jxYt59911GjhzJ9773vUrla7IOY8eO5c033+QPf/hDrepWG3W7BrAkSd8xdTlAHTFiRD3WRNK66v777+epp56iqKiIzTffnEGDBnH99dez0047ccYZZ5SVW7p0KSeddBLnnnsu33zzTbl5nHLKKRQVFfHtt99Wu5yKPvzww1rXvVevXjRp0oT77ruPp59+Goj3su3duzdnnHEGe+65J1tuuSWLFy8G4m1HNtxww3XqVkJ77LEHBx10EP3796807dprr+Wcc85h9OjRjBw5kh122IEhQ4bQs2dPDjzwQEIIeS3jxRdf5Pbbby83bk3v5Zp07tyZjh07MmbMGGbNmsWKFSvYeeedGTx4MCeccAK77rorX375Za3X4frrr+eee+5hxx135J133qlVHWuk0L9EVRwmTZoUAAcHBwcHh1QOdVHoujs4pHHo3r17ldOGDRtWp89cfRs2bFid1nXfffcNIYRw7rnnlhu//vrrh1mzZoWVK1eGTTfdtKzcfffdF0II4dhjj600rzfffDM8+uijYdGiRWH8+PF5Lac+hl/+8pchhBAOOOCAStMeffTREEIIvXr1Kvh2VZfhnnvuCXPmzAnNmjUrN37HHXcMK1euDA8//HC58WeffXYIIYQTTzwxr/mHEMKdd97Z4OsxYMCAEEII5513Xp3WoU2bNuHrr78ON9xwQ17LXdNnOus1KAlV5EG7+EqSJEkFtGjRIl555RWaNGnC1ltvXTZ+ypQpvP766/zsZz8rV764uJgePXpw5513ru2q0rt3b1atWsWkSZMqTfve977HkiVLyrXQXnXVVYQQ2GSTTcrGXX311YQQ2GKLLbjyyiv5+OOPWbJkCSUlJfzwhz+sNN9u3bpx5513MmvWLJYvX84HH3zAr371q0rlMsvadtttuf7665k1axaLFy/mX//6F507dwbg5JNPpqSkhMWLFzNt2rRKraRNmzblyCOP5LnnnqvU6nviiSfSpEkTrrvuunLj//KXv7B48WJOPvnk6l/ALM2bN6dNmzY1ek5NzJgxA4CNN964bFxt1mHx4sW89NJLDBgwoMHqms2AKkmSJBVY5iI0paWl5cbfcccdHHTQQWy++eZl40499VS++OILnnjiiTXOc7311qNdu3blhrZt29apnr169eLjjz+mefPmtGvXjs0224zddtuNe+65h169enHWWWexcOHCsvI9e/ZkxowZzJ07t9y4+fPn8/TTT7PNNttwzTXX8Ic//IHtt9+eRx55hGbNVp+F2K9fP6ZOncoPfvADbrrpJoYMGcK0adMYOXIkl19+ebm69ezZkyVLljB69GjatWvHpZdeyn333Ue/fv24+eabufHGG/n1r3/NAw88wMUXX0y7du247777aN++fdk8evfuzfrrr89///vfSuteXFzMypUrK01bvnw5U6dOpbi4OO/XccCAASxZsoSvv/6aL774ghtuuIENNtgg7+fn0rJlS9q1a0enTp3o168ft912G0C5bt61XYdXXnmFjh07sv3229epjnmpqmm1UINdfB0cHBwc0jzURaHr7uCQxuG72MX397//fWjXrl1o37592HnnncPtt98eQgjhP//5T7ly5557bthkk03CsmXLwu9+97sAhFatWoV58+aFq6++OgBr7OKbyz/+8Y9a179NmzZhxYoVOef7ySefhD333LPSc+bMmRPGjBlTblxpaWkIIYRTTjml3PhLL700hBBCt27dAhC6du0aFi1aFF588cXQunXrcmVfeeWVsHTp0nLj58yZE0Ko3E11ypQpIYQQHn/88XLddocMGRJCCGH//fcvGzdo0KAQQgiHH354pXV54403wuzZs3O+NqNGjQohhNC8efNqX8eJEyeGc889N/Tv3z+ccsop4R//+EcIIYTXX389tGnTptbvz1lnnVXuPfn444/DSSedVC/r8JOf/CSEEMLRRx9dp890Zghr6OLrRZIkSZKkteiSSy7hkksuKXu8cuVKHnvsMQYPHlyp7Ny5cxk7diyDBg3iyiuv5Oijj2ajjTbijjvuqHY5t912Gw899FC5cbNnz651vXfddVeaNm3KddddV9Z627JlS3bZZRd++9vfct9999G7d2/mzZsHQKdOnejQoQOvvfZa2Ty23HJL2rVrxxNPPMG9995bbv7Lly8H4sWhAC666CLWW289Tj/99LJxGRMmTGCPPfagS5cuTJs2rWxZjz32GP/4xz/KlZ03bx7ffPMNp556arluu5mW3uxxHTp0ACjX4pux3nrrldWxomXLlpWVWbBgQc4yGXvssUe5x/feey9vvPEGV1xxBeeccw5XXHHFGp9flUcffZRp06bRtm1bevbsyRFHHFGudbgu6/DVV18BsOmmm9aqbjVhQJUkSZLWokxwDCGwePFi3n///bJQl8udd97JU089xQ9/+ENOPfVUXn31Vd59991ql/PBBx/w/PPP11u9M7eQeeyxx5gwYULZ+Keeeorly5czcuRITj755LJb4/Ts2ROgXEDNjHvggQcqzb9Hjx4sXLiQzz77jKKiIo466ijGjx/P+++/X6lsUVERQNnVgjPzHTVqVM75TpgwodyVbAF22GEHAN57772ycSG5gm1m/tmWLFlSZUBr1apVWZnauPrqqxk2bBg/+tGPah1QP/vsMz777DMgvkePPPIIkyZNYr311uOqq64qq19t1iHzemRen4bkOaiSJEnSWpQJjuPGjePVV19dYzgFeOaZZ5g1axbDhg1jv/32y6v1tCH06tULgLfeeqvStExg7tKlS6Xy2QF11113BWDixImV5tG7d++ysp07d2aTTTap8rYmPXr0YO7cucycObPcsirOt3Pnzmy66aY5l9erVy8+++wzvvjii7JxmRCbfVGnjP/973+0b9+eFi1aVJrWqVMnvvzyy1rfKmbFihVl868vb775Jq+99hpnnnlm2bjarkPm9agY8htCvgH1EOA94EPg/BzT9wGmACuAXJd32gCYBdxUizpKkiRJ31mrVq3innvuoV+/fixbtqxSF9a1pXfv3nzxxReVLuQElF19ONOCB7FV88svv2TWrFnlxs2fP5+PPvqo3PM33HBDunXrxpQpU4DVLXUV7/8KMXT269ePMWPGlJvvvHnz+OSTT8qVzQTXzHyz9ezZs9L4TPjedtttK5WfNGkSTZs2Zbfddis3vmXLluy6666UlJRUek6+WrZsSefOncuF5frQunXrcmG7tuuQuYhXrh8n6ls+AbUpcDNwKLAjcGLyN9unwCDg/irmcSnwYu2qKEmSJH23/fnPf2b48OH8/Oc/Z9GiRWt9+a1bt6Z79+68/fbblaZtsMEG/PKXv2TZsmWMHj26bHzPnj3LtZ5mxuUKixWD5KxZs1iwYAH77LNPuXKtWrXi3nvvZeXKlVx55ZXVzjfTLXny5Mnlxnfp0oV27dpVes5rr73GggULKp0nCrH78KpVqxg6dGi58f/v//0/2rRpw3333Vc2rlmzZmy//fZsscUW5crmapkFuPTSS2nevDmPP/54zulrstlmm+Uc37dvX3r06FGu9bgm65Btjz32YPbs2Tm7W9e3fM5B3Y3Y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NbrnnnuYPXs2y5Yt48MPP+Tyyy+ndevW5cplnr/ddttx+eWXM3PmTJYtW8bUqVM59NBDq13vO++8k08//RSA4cOHl71X++67LwBNmzblN7/5DW+//TZLly6ltLSU0aNH06NHj0r1zbynxx13HCUlJSxZsoQbb7yxymVvu+22AIwbNy7n9Llz5xa8ld0WVEmSJKmBDRgwAIDbb7+9Rs/bcsstGTduHA899BCPPPIIbdu2zVnuxRdf5PLLL+fCCy/ktttu46WXXgLgiy++WOP8L7vsMi688ELefvttrr32Wj7//HO22WYbjjnmGC6++GIWLFhAixYtOO+883jkkUd47LHHWLx4McXFxZx22mnstdde9O7du1xX45oaOnQo7dq14y9/+QuzZ89m5syZAFx66aVcdNFFPP300/z+979n1apVHHXUUTz88MOcddZZ3HLLLWXzuOmmm/jFL37BuHHjuOaaa+jQoQO33HILn3zySV512HLLLfnvf//LhhtuyC233MIHH3xA3759ueCCC/jhD3/IAQccUKnV9e677+bbb7/lmmuuoUWLFgwdOpRHH32U7bbbjhkzZlS5rNtuu42pU6dy3XXXMXr0aEaPHg3Au+++C8B9993H8ccfz7/+9S9uvfVWvve973HWWWfxyiuvsPfeezN16tRy8zvyyCMZMmQIt956K3/+85/X2AKaOc/12GOP5b777mP+/Pl5vT5rkwFVkiRJamA9evRgwYIFeQemjK233prTTz+dv/3tb2ss98knn/Dss89y4YUX8sorr3DfffdVO+/i4mIuvPBCxo0bx2GHHVauC/D5559f9v/y5cvp2LEjy5YtKxt322238Z///Ie//e1vHHnkkTz00EM1Wq9sW265Jd27d+fLL78sG9ezZ08uuugirrjiCi688MKy8TfeeCNjxozhyiuv5J577uHrr79mxx135Be/+AX//Oc/Oeyww4gXMYeHHnqoUpiryhVXXMGmm27KYYcdxtNPPw3ArbfeyowZMzjvvPMYOHAgd9xxR7nnlJaWcvjhh5c9Hj9+PJMmTeKMM87gggsuqHJZEydO5PPPP+e6667jjTfeKPdeHXjggRx//PGMGjWKE044oWz8gw8+yOTJk7nhhhvYZ599ys1vp5124vvf/z7Tpk2rdj1LSkoYO3YsRxxxBLNmzeI///kPr776Kq+++irPP/88S5curXYeDc0uvpIkSVID22CDDVi0aFGNn/fVV19x5513NkCN4Cc/+QkAv/vd76o9PzUTTps0acKGG25Iu3btyrqJ7r777nWqxz333FMunGbqtmrVKu6++27atWtXbhg7diwbbLABe+65JwA//vGPAbj++uvLwinAW2+9xTPPPFPt8ouKijjiiCOYMmVKWTjNuPLKK1m5ciVHHXVUpeddf/315R6XlJSwaNGism60tZFZzuWXX15u/BtvvMHjjz/O3nvvTfv27ctNe/LJJ/MKpxnHHHMMZ599Nm+99RZ9+/bloosu4vHHH2f27Nn86le/qnXd64sBVZIkSWpgCxcuZP3116/x8z766CNWrVrVADWK5yOuWrUqr1vSHHvssUycOJGlS5cyf/58SktLy1qDN9544zrV4/333680bocddqBJkya89957lJaWlhsyLZmbbbYZAFtttRUA7733XqX55BpXUYcOHVh//fV5++23K02bN28en3/+OVtvvXWlaR9//HGlcV999RXt2rWrdplV2WqrrVi5cmVZd99smfpl1jcj1+u3JitWrODmm29mjz32YIMNNmCvvfbiiiuuoKioiJEjR5ZruS0Eu/hKkiRJDeytt95i3333ZauttqpRN98lS5Y0YK0ou0DPmhx11FE8+OCDvPrqq5xzzjllFwVq2rQpzzzzDE2a1K3NK9c6FhUVsWrVKg499NAqr7ibK1CuTVXVq6ioaK3Woy7byLJly3j55Zd5+eWXGT9+PM8++yynnXYaDzzwQD3WsGYMqJIkSVIDe+SRR9h33305/fTTy51TWZ+qC5oVvf/++xx22GHssssuTJo0qcpyp5xyCkuXLmW//fYrd47i9ttvX+u6VueDDz7g0EMP5dNPP622++r06dPL6lMx/OdTxy+//JKFCxey0047VZq20UYb0bFjx7zPZa2rjz/+mKZNm7LDDjvw5ptvlpu24447AtT4POZ8TZw4EYBOnTo1yPzzZRdfSZIkqYH99a9/Zdq0afz617/miCOOyFmmV69e/OIXv6j1MjL3vsz31i/3338/EC8QlLmlTC4rV64khFCppfSiiy6qZU2rd++995bVLVcL7aabblr2/+OPPw7AOeecU671skePHhx88MHVLiuEwOOPP06vXr0qlT///PNp2rRplbcGqm+PPvooEM8LzrbTTjtxxBFH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\n",
933
      "text/plain": [
934
       "<Figure size 1152x576 with 1 Axes>"
935
      ]
936
     },
937
     "metadata": {
938
      "needs_background": "dark"
939
     },
940
     "output_type": "display_data"
941
    }
942
   ],
943
   "source": [
944
    "C = 6\n",
945
    "\n",
946
    "pyplot.figure(figsize=(16, 8))\n",
947
    "\n",
948
    "# строим вертикальные столбцы от 0 до вероятности\n",
949
    "pyplot.vlines(x_grid, 0, probs, linewidth=15.0, color='white', label='PMF, $Binom(0.5, 30)$')\n",
950
    "# отдельно изобразим критическую области критерия\n",
951
    "crit_reg = numpy.abs(x_grid - 15) >= C\n",
952
    "pyplot.vlines(x_grid[crit_reg], 0, probs[crit_reg], linewidth=15.0, label='Critical region for S')\n",
953
    "\n",
954
    "rejection_prob = probs[crit_reg].sum()\n",
955
    "pyplot.title('Two-sided criteria, C = {}, critical region proba = {:.3f}'.format(C, rejection_prob), fontsize=20)\n",
956
    "pyplot.legend(fontsize=18)\n",
957
    "pyplot.show()"
958
   ]
959
  },
960
  {
961
   "cell_type": "markdown",
962
   "id": "b9f40b8a",
963
   "metadata": {},
964
   "source": [
965
    "По картинке видно, что если теперь отвергать отклонения при $Q \\geqslant 20$, то необходимо отвергать и $Q \\leqslant 10$, а значит общая площадь столбцов будет уже примерно $0.1$. Поэтому при уровне значимости $0.05$ и $20$ успехах гипотеза уже не отвергнется.\n",
966
    "\n",
967
    "Если же выставить $C = 6$, то такая область уже подходит, площадь столбцов $\\approx 0.043 < 0.05$\n",
968
    "\n",
969
    "Чтобы выбрать пороговую константу по формуле, можно заметить, что критическая область симметрична, а значит справа площадь не должна быть больше, чем $\\frac{\\alpha}{2}$. А такую задачу мы уже умеем решать. Реализуем функцию на Python."
970
   ]
971
  },
972
  {
973
   "cell_type": "code",
974
   "execution_count": 24,
975
   "id": "0c23c057",
976
   "metadata": {},
977
   "outputs": [],
978
   "source": [
979
    "def make_binom_criterion_two_sided(n, alpha=0.05):\n",
980
    "    '''Строит критерий для задачи с доставкой для mu = 0.5 и двусторонней альтернативы\n",
981
    "    \n",
982
    "    Параметры:\n",
983
    "        n: количество доставок в эксперименте\n",
984
    "        mu: вероятность успеха в нулевой гипотезе\n",
985
    "        alpha: уровень значимости критерия\n",
986
    "        \n",
987
    "    Возвращает:\n",
988
    "        C для критерия S = {|Q - 15| >= C}\n",
989
    "    '''\n",
990
    "    # определяем границу справа для alpha / 2\n",
991
    "    right_crit_val = make_binom_criterion(n, mu=0.5, alpha = alpha / 2)\n",
992
    "    # считаем отклонение, начиная с которого отвергать\n",
993
    "    diff = right_crit_val - 15\n",
994
    "    return diff"
995
   ]
996
  },
997
  {
998
   "cell_type": "code",
999
   "execution_count": 25,
1000
   "id": "19e0a4a2",
1001
   "metadata": {},
1002
   "outputs": [
1003
    {
1004
     "data": {
1005
      "text/plain": [
1006
       "6.0"
1007
      ]
1008
     },
1009
     "execution_count": 25,
1010
     "metadata": {},
1011
     "output_type": "execute_result"
1012
    }
1013
   ],
1014
   "source": [
1015
    "make_binom_criterion_two_sided(30)"
1016
   ]
1017
  },
1018
  {
1019
   "cell_type": "markdown",
1020
   "id": "7cc06fbe",
1021
   "metadata": {},
1022
   "source": [
1023
    "Получили то же, что и по картинке."
1024
   ]
1025
  },
1026
  {
1027
   "cell_type": "markdown",
1028
   "id": "c7f18323",
1029
   "metadata": {},
1030
   "source": [
1031
    "### Как считать p-value"
1032
   ]
1033
  },
1034
  {
1035
   "cell_type": "markdown",
1036
   "id": "16e7cf34",
1037
   "metadata": {},
1038
   "source": [
1039
    "Критерий имеет вид\n",
1040
    "\n",
1041
    "$$ S = \\{|Q(\\xi) - 15| \\geqslant C\\} $$\n",
1042
    "\n",
1043
    "Обозначим отклонение суммы от 15 как $ \\Delta(\\xi) =  |Q(\\xi) - 15| $, тогда мы имеем критерий\n",
1044
    "\n",
1045
    "$$ S = \\{\\Delta(\\xi) \\geqslant C\\} $$\n",
1046
    "\n",
1047
    "То есть более экстремальными будут считаться те значения суммы, которые находятся дальше от 15. Чтобы вычислить p-value, придётся посчитать сумму площадей с двух сторон по-отдельности."
1048
   ]
1049
  },
1050
  {
1051
   "cell_type": "code",
1052
   "execution_count": 26,
1053
   "id": "72d27d8f",
1054
   "metadata": {},
1055
   "outputs": [],
1056
   "source": [
1057
    "def pvalue_two_sided_sym(n, q):\n",
1058
    "    '''Считает pvalue для задачи с доставкой для mu = 0.5 и двусторонней альтернативы\n",
1059
    "    \n",
1060
    "    Параметры:\n",
1061
    "        n: количество доставок в эксперименте\n",
1062
    "        q: количество успешных доставок\n",
1063
    "        \n",
1064
    "    Возвращает:\n",
1065
    "        pvalue для критерия S = {|Q - 15| >= C}\n",
1066
    "    '''\n",
1067
    "    binom_h0 = binom(n=n, p=0.5)\n",
1068
    "    diff = numpy.abs(q - 15)\n",
1069
    "    # смотрим более экстремальные отклонения с правой стороны\n",
1070
    "    right_sq = 1 - binom_h0.cdf(15 + diff - 1)\n",
1071
    "    # смотрим более экстремальные отклонения с левой стороны\n",
1072
    "    left_sq = binom_h0.cdf(15 - diff)\n",
1073
    "    return left_sq + right_sq"
1074
   ]
1075
  },
1076
  {
1077
   "cell_type": "markdown",
1078
   "id": "ea134659",
1079
   "metadata": {},
1080
   "source": [
1081
    "На самом деле в силу симметричности распределения левая и правая площадь получаются одинаковыми, поэтому можно посчитать площадь с одной стороны и умножить на 2."
1082
   ]
1083
  },
1084
  {
1085
   "cell_type": "code",
1086
   "execution_count": 27,
1087
   "id": "33cf3e33",
1088
   "metadata": {},
1089
   "outputs": [],
1090
   "source": [
1091
    "def pvalue_two_sided_sym_simple(n, q):\n",
1092
    "    '''Считает pvalue для задачи с доставкой для mu = 0.5 и двусторонней альтернативы\n",
1093
    "    \n",
1094
    "    Параметры:\n",
1095
    "        n: количество доставок в эксперименте\n",
1096
    "        q: количество успешных доставок\n",
1097
    "        \n",
1098
    "    Возвращает:\n",
1099
    "        pvalue для критерия S = {|Q - 15| >= C}\n",
1100
    "    '''\n",
1101
    "    binom_h0 = binom(n=n, p=0.5)\n",
1102
    "    diff = numpy.abs(q - 15)\n",
1103
    "    # смотрим более экстремальные отклонения с правой стороны\n",
1104
    "    right_sq = 1 - binom_h0.cdf(15 + diff - 1)\n",
1105
    "    return 2 * right_sq"
1106
   ]
1107
  },
1108
  {
1109
   "cell_type": "code",
1110
   "execution_count": 28,
1111
   "id": "ab687f0c",
1112
   "metadata": {},
1113
   "outputs": [
1114
    {
1115
     "data": {
1116
      "text/plain": [
1117
       "0.04277394525706768"
1118
      ]
1119
     },
1120
     "execution_count": 28,
1121
     "metadata": {},
1122
     "output_type": "execute_result"
1123
    }
1124
   ],
1125
   "source": [
1126
    "pvalue_two_sided_sym(n=30, q=21)"
1127
   ]
1128
  },
1129
  {
1130
   "cell_type": "code",
1131
   "execution_count": 29,
1132
   "id": "035237ba",
1133
   "metadata": {},
1134
   "outputs": [
1135
    {
1136
     "data": {
1137
      "text/plain": [
1138
       "0.04277394525706768"
1139
      ]
1140
     },
1141
     "execution_count": 29,
1142
     "metadata": {},
1143
     "output_type": "execute_result"
1144
    }
1145
   ],
1146
   "source": [
1147
    "pvalue_two_sided_sym_simple(n=30, q=21)"
1148
   ]
1149
  },
1150
  {
1151
   "cell_type": "markdown",
1152
   "id": "91732314",
1153
   "metadata": {},
1154
   "source": [
1155
    "Теперь даже в случае $20$ орлов $pvalue > 0.05$, поэтому отвергать будем значения, начиная с $21$ и меньше либо равные $9$."
1156
   ]
1157
  },
1158
  {
1159
   "cell_type": "markdown",
1160
   "id": "064494b6",
1161
   "metadata": {},
1162
   "source": [
1163
    "### Случай с несимметричным распределением"
1164
   ]
1165
  },
1166
  {
1167
   "cell_type": "markdown",
1168
   "id": "609f31af",
1169
   "metadata": {},
1170
   "source": [
1171
    "Когда распределение при справедливости $\\mathsf{H}_0$ несимметрично, отклонения от ожидаемого значения в разные стороны могут быть по-разному критичны. В качестве примера рассмотрим также биномиальное распределение, но с вероятностью успеха $0.8$. \n",
1172
    "\n",
1173
    "Тогда можно левую и правую критические области построить отдельно, выделив на них по $\\frac{\\alpha}{2}$ площади. Правую область мы уже умеем искать, найдём левую."
1174
   ]
1175
  },
1176
  {
1177
   "cell_type": "code",
1178
   "execution_count": 16,
1179
   "id": "119b12d8",
1180
   "metadata": {},
1181
   "outputs": [],
1182
   "source": [
1183
    "binom_h0_nonsym = binom(\n",
1184
    "    n=30, # количество испытаний\n",
1185
    "    p=0.8 # вероятность успеха\n",
1186
    ")"
1187
   ]
1188
  },
1189
  {
1190
   "cell_type": "code",
1191
   "execution_count": 17,
1192
   "id": "b0b428de",
1193
   "metadata": {},
1194
   "outputs": [
1195
    {
1196
     "data": {
1197
      "image/png": "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0QRXAAAAiia4AgAAULQ16jmuAACsXTbddNOMGzcu6667bqebAgzDkiVLsmDBgjz55JN56aWXhn0cwRUAgCKtt9562WabbTJnzpy88MILnW4OMAxjxozJpptumu233z4PPPDAsMOrocIAABRpq622yty5c4VWWIMtWrQoTzzxRObPn5+xY8cO+ziCKwAARVp//fXz7LPPdroZwCrwzDPPZJNNNhn2/oIrAABFGj16dBYvXtzpZgCrwKJFizJq1Khh7y+4AgAAUDTBFQAAgKIJrgAAABRNcAUAAKBogisAANARPT09mT17dqebMSSvf/3rs2jRorzzne/sdFM6ZurUqVm4cGF22mmnV6xOwRUAgDXO9OnTU1VVMcv06dNX6nze+ta3DjjmggUL0tPTk6OOOirrrLPOgO2+9a1vtTzWVlttlYULF6aqqlx77bUrrKd5eeMb3zjsc9hkk02yZMmSPsdbvHhxHnnkkVxxxRWZPHlyn+1Hjx6d17/+9Zk1a9aw6+yEk08+Ob/4xS/y3//9333Ku7q6cvTRR+eOO+7ICy+8kAceeCAnnnhiNtxww7aPvdFGG+Xzn/98br755jzzzDOZO3dufvGLX+Tggw8ecjv/4A/+IP/2b/+W22+/PU899VSee+653HHHHTnppJOy7bbbttyn3XO47LLLcsstt+Sf//mfh9yu4Rr9itUEAAAj1CabbJLx48evcLtHHnlkuesvuOCCXHnllenq6sqrXvWqHHLIITn11FPz+te/Pocffviy7V544YV8+MMfzrHHHpuXXnqpzzE+9rGPpaurK4sWLVphPf3dc889KzyHwUyaNCnrrLNOzj///Fx11VVJ6mfxTp48OYcffnje9KY3Zfvtt89zzz2XJFm8eHE233zzNeqRR/vss0/e9a53ZerUqQPWfeMb38inP/3pXHLJJTnppJOy66675qijjspee+2Vd77znamqarnH7urqylVXXZU//MM/zLnnnptvfetb2XDDDXPQQQflu9/9bnbdddccd9xxbbd14sSJGT9+fC699NLMmTMnixcvzh577JFp06blwAMPzJ577pm5c+cO+xxOPfXUnHfeedltt91y++23t92uYev0X6eGssycObNKYrFYLBaLxWJZC5Zddtll0HXTp0+vSnLmmWdWkydPXuEy2Pm89a1vraqqqo499tg+5Ztsskk1Z86casmSJdXWW2+9bLvzzz+/qqqq+uAHPzjgWLfcckv1wx/+sFqwYEF17bXXtlXPqliOOeaYqqqq6h3veMeAdT/84Q+rqqqqSZMmdfy6WpnlvPPOq+bOnVuNHj26T/luu+1WLVmypPqP//iPPuVHHnlkVVVVddBBB63w2Pvss09VVVV18skn9ykfM2ZM9bvf/a6aP3/+KjmHv/iLv6iqqqr+/u//fqXOYaONNqqeffbZ6pvf/GbbdS/vv+nepaqqnqpFFjRUGAAACrVgwYJcf/31WWeddfKa17xmWfmNN96Y2bNn59BDD+2zfXd3d3bfffecc845r3RTM3ny5CxdujQzZ84csG7bbbfN888/36dH94QTTkhVVRk7duyyshNPPDFVVWW77bbLV7/61dx77715/vnn09PTkze/+c0DjrvTTjvlnHPOyZw5c7Jw4cLcfffd+bu/+7sB2/XWtfPOO+fUU0/NnDlz8uyzz+bHP/5xJk6cmCT56Ec/mp6enjz33HO58847B/Sqjho1Ku973/tyzTXXDOglPuigg7LOOuvklFNO6VP+ne98J88991w++tGPrvDz23TTTZMkDz/8cJ/yRYsWZd68ect6qlfW/fffnyTZYost+pQP9Ryee+65/O///m8++MEPrpJ2rYihwgAAULDeCXDmzZuXCRMmLCs/55xzcvLJJ2fChAl56KGHkiSHHXZYHnvssVxxxRXLPeaGG26YLbfcsk/ZwoUL8+yzzw67nZMmTcq9996bMWPGZMstt8zo0aOzww475Mgjj8ykSZMybdq0PPPMM8u232uvvXL//ffnySefXFa255575qmnnspVV12V22+/PSeeeGK22mqrfOYzn8nFF1+ciRMnLguN++23Xy699NI89NBD+fa3v5358+fnPe95T0466aRsueWW+Yd/+Ic+dT3//PO55JJL8pvf/CZf/vKXM2nSpHziE5/IaaedlgceeCBvectbcv7552fp0qU57rjjcv7552fHHXfMvHnzktTBfJNNNsmvf/3rAefe3d2dJUuWDFi3cOHCzJ49O93d3Sv8/H79619n/vz5+exnP5v77rsvN9xwQzbYYIMccsghmTx5co444oih/YM0rLfeetl4442z/vrrZ7fddlt2X2r/oeLDOYfrr78++++/f173utflrrvuGlb72taqG7bUxVBhi8VisVgslrVnWRuHCv/f//t/qy233LIaN25ctccee1RnnXVWVVVV9ctf/rLPdscee2w1duzY6sUXX6w+//nPV0mq9ddfv5o/f3719a9/vUqy3KHCrVx44YXD/rfaaKONqsWLF7c87u9///vqTW9604B9Hn/88erSSy/tUzZv3ryqqqrqYx/7WJ/yf/qnf6qqqqp22mmnKkm14447VgsWLKh+9rOfVRtssEGfba+//vrqhRde6FP++OOPV1U1cLjrjTfeWFVVVf3oRz/qM/z3qKOOqqqqqt7+9rcvKzvkkEOqqqqqP/uzPxtwLjfffHP16KOPtvxsLrrooqqqqmrMmDEr/Bz/6I/+qLrzzjv7fH5PP/10NXXq1GH/23zqU5/qc7x77723+vCHP7xKzuEjH/lIVVVV9YEPfGCl/5vuXapBhgrrcQUAgEJ86Utfype+9KVlPy9ZsiSXXXZZpk2bNmDbJ598MpdffnkOOeSQfPWrX80HPvCBbL755jn77LNXWM+ZZ56Zf//3f+9T9uijjw673XvuuWdGjRqVU045ZVlv73rrrZc3vOEN+dznPpfzzz8/kydPzvz585MkEyZMyFZbbZWbbrpp2TG23377bLnllrniiivyve99r8/xFy5cmKSelCpJ/vEf/zEbbrhh/vqv/3pZWa/rrrsu++yzT3bYYYfceeedy+q67LLLcuGFF/bZdv78+Vm0aFEOO+ywPsN/e3uGm8u22mqrJOnTQ9xrww03XNbG/l588cVl2zz99NMtt+n17LPP5tZbb83ll1+eX/7ylxk7dmw+9alP5YILLsjUqVMHzGTcjh/+8Ie58847s/HGG2evvfbKe9/73mXnsrLn8MQTTyRJtt566yG3a6jaDa77Jzk1yagk/5LkhH7rd0lyTpJJSf4hyYmN8tcluahpu9ck+WKSU5Icn+QTSXqnsvpCkoFTmwEAwFqiN1BWVZXnnnsuv/3tb5eFvVbOOeecXHnllXnzm9+cww47LDfccEPuuOOOFdZz99135yc/+ckqa3fvo24uu+yyXHfddcvKr7zyyixcuDAnnXRSPvrRjy57hM+kSZOSpE9w3WuvvZIk3//+9wccf/fdd88zzzyThx56KF1dXXn/+9+fa6+9Nr/97W8HbNvV1ZUky+4J7a3roosuGrDt7rvvnmuvvXbA7Lq77rprkvQZ/lo1ZtTtPX6z559/ftDwtv766y/bZnl23333/PKXv8wxxxyTM888c1n5hRdemFtvvTXf+c538trXvjZLly5d7nH6e+ihh5YNJb/sssty8cUXZ+bMmdlggw1ywgkvx7rhnEPvZ9H72axO7UzONCrJaUkOSLJbkoMar82eTHJUXg6sve5KsmdjmZzk+SSXNq3/RtN6oRUAgLVab6D86U9/mhtuuGG5oTVJrr766syZMyfTp0/P2972trZ6W1eH3nB46623DljXG6R32GGHZWW9IfXGG28cUParX/1qwDEmT568LOROnDgxY8eOHfQRLLvvvnuefPLJPPjgg8s97sSJE7P11lu3rG/SpEl56KGH8thjjy0r6w23zZNJ9Xr44Yczbty4rLvuugPWTZgwIXPnzl3u44mS5JhjjskGG2wwoCf8hRdeyH/+539mxx13zI477rjcY7TjlltuyU033ZRPfvKTK30OvZ9F/+C/OrQTXPdOck+Se5O8lOT7Sab22+bxJDOTLO9f4x1Jfpfk/qE3EwAA6G/p0qU577zzst9+++XFF19s2Vv5Spg8eXIee+yxZRMZNeudDbm31y+pw+TcuXP7lPVOzPS73/2uz/6bbbZZXvOa1ywLub29e/2fX5vUYbR30qbmuubPn5/f//73fbbtDdvN4bl5n/7lvaF85513HrD9zJkzM2rUqOy99959ytdbb73sueee6enpGbBPf70Tb40aNWrAutGjR/d5XVkbbLDBgAA+nHPonTis1R8sVrV2guuEJA82/TynUTZUBya5sF/ZkUluTnJ2ki0G7AEAACzXGWeckeOPPz5HHHFEn1l7Xynrr79+dtlll9x2220D1m266aY55phj8uKLL+aSSy5ZVr7XXnv1GSbcW9YqRE6aNCnrrLPOsnVz5szJU089lbe+9a0D2vG9730vS5YsyVe/+tUVHrd3ePOsWbP6lO+www7ZcsstB+xz00035emnn84+++wz4FgXXXRRli5dmqOPPrpP+Sc+8YlstNFGOf/885eVjR49Oq973euy3Xbb9dm2twf5kEMO6VO+2WabZerUqXnyyScHhPrl2WabbVqW77vvvtl9990H9DQP5Rx67bPPPnn00UdbDtle1dqJ7AMHcdczPg3Fuknem+TzTWWnJ/mnxrH+KclJSQ5rse+0xpJx48YNsVoAABjZHnzwwcyYMWOVH/f3v/99dtxxx5b3dDbbc889l/UEfuQjH0mSrLvuutlpp51y6KGHZty4cZk2bVqf54fusMMOfXqHx44dm+23377lfaiteka/8pWv5Otf/3p+9KMf5Yorrshmm22Www47LDvssEM+9KEPLQt4vXX94Ac/aHncuXPnZs6cOSusL6l7ty+55JJMnTo16667bp8e31tvvTWnnXZa/vZv/zYXX3xxrrzyyuy666456qijct111+WCCy5Ytu2ECRNy55135rrrrsvb3va2ZeWnnHJKPv7xj+eEE07IHnvskV/84hcZO3ZsPvGJT+RVr3pVPvnJT2bJkiXLtl/Rv8/pp5+e8ePH56c//Wnuv//+rL/++pk8eXIOPPDALFiwIMcee2yf7YdyDkmy0UYb5S1vecsrNjy9neA6J0nznwMmJnl4kG0Hc0CSG5M81lTW/P47SQZ72NRZjSXz5s1b/Xf9AgAA2XjjjfsM5R1Mb9B7+9vfnre//e1J6lmAH3300VxzzTX5xje+kdmzZy/bvvee01YTMw3WM/rcc8/lzjvvXFZ24on11DpHHHFE3vWud+WJJ57Itddemw984AN97n1d0XEHGyY82D6nn356Dj300LznPe/p04OcJEcffXTuu+++TJs2LX/6p3+aefPm5Vvf+la++MUvtjV50QMPPJC99947X/ziF/OOd7wjBx54YF544YXMnj07xx57bJ/hz8mK/30uvPDCHHzwwfnYxz6WrbbaKlVV5f7778+ZZ56Zr3/968vuAR7uOfz5n/95Ntpooz4TSa1WrZ6R028ZXVXVvVVVvbqqqnWrqvpNVVWvH2Tb46uq+kyL8u9XVXVov7LxTe+PaWzjOa4Wi8VisVgslipZu57jWtqyxx57VFVVVYccckjH21LactVVV1U/+9nP1vp/n56enuriiy8e0j6r+zmui1Pfi3p16hmGz05yW5IjGuvPSLJtkp4kmyZZmuTo1DMPP5NkwyT7JTm833G/lno24SrJfS3WAwAAHfAnf/InmT17ds4999xON6U4xx57bH7zm99kv/32yzXXXNORNnT632fq1KnZY489cuCBB75idXZVr8Azd1aVnp6eqru7u9PNAADgFbDLLrv0GR5ait5JfYaj/0RAsDZp57/pqqpmJZnSv7ydWYUBAACgY1bNg4AAAIDVYvz48cPe95FHHlmFLYHOEVwBAKBgr3rVq4a9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\n",
1198
      "text/plain": [
1199
       "<Figure size 1152x576 with 1 Axes>"
1200
      ]
1201
     },
1202
     "metadata": {
1203
      "needs_background": "dark"
1204
     },
1205
     "output_type": "display_data"
1206
    }
1207
   ],
1208
   "source": [
1209
    "pyplot.figure(figsize=(16, 8))\n",
1210
    "\n",
1211
    "# считаем вероятности значений суммы\n",
1212
    "probs = binom_h0_nonsym.pmf(x_grid)\n",
1213
    "# строим вертикальные столбцы от 0 до вероятности\n",
1214
    "pyplot.vlines(x_grid, 0, probs, linewidth=15.0, color='white', label='PMF, $Binom(0.8, 30)$')\n",
1215
    "\n",
1216
    "pyplot.title('Binomial distribution', fontsize=20)\n",
1217
    "pyplot.legend(fontsize=18)\n",
1218
    "pyplot.show()"
1219
   ]
1220
  },
1221
  {
1222
   "cell_type": "markdown",
1223
   "id": "561e5924",
1224
   "metadata": {},
1225
   "source": [
1226
    "Для того, чтобы построить двусторонний критерий, нужно найти слева и справа области, площадь которых составляет не больше, чем $\\frac{\\alpha}{2}$. Для правой стороны мы уже решали такую задачу, решим для левой.\n",
1227
    "\n",
1228
    "Ищем $C$, такое что\n",
1229
    "\n",
1230
    "$$ P(Q(\\xi) \\leqslant C) \\leqslant \\frac{\\alpha}{2} $$\n",
1231
    "\n",
1232
    "Сначала найдём первое число, где вероятность $\\geqslant \\frac{\\alpha}{2}$. А это по определению $\\frac{\\alpha}{2}$-квантиль. Достаточно взять предыдущее число, и оно будет удовлетворять нашему условию."
1233
   ]
1234
  },
1235
  {
1236
   "cell_type": "code",
1237
   "execution_count": 32,
1238
   "id": "ee4d5407",
1239
   "metadata": {},
1240
   "outputs": [],
1241
   "source": [
1242
    "def two_sided_criterion_nonsym(n, mu, alpha):\n",
1243
    "    '''Строит двусторонний критерий для несимметричной задачи с доставкой\n",
1244
    "    \n",
1245
    "    Параметры:\n",
1246
    "        n: количество доставок в эксперименте\n",
1247
    "        mu: вероятность успеха в нулевой гипотезе\n",
1248
    "        alpha: уровень значимости критерия\n",
1249
    "        \n",
1250
    "    Возвращает:\n",
1251
    "        C1, C2 для критерия S = {Q <= C1 или Q >= C2}\n",
1252
    "    '''\n",
1253
    "    binom_h0 = binom(n=n, p=mu)\n",
1254
    "    \n",
1255
    "    # аналогично одностороннему критерию\n",
1256
    "    c2 = binom_h0.ppf(1 - alpha/2) + 1\n",
1257
    "        \n",
1258
    "    # по выкладкам выше\n",
1259
    "    c1 = binom_h0.ppf(alpha/2) - 1\n",
1260
    "    \n",
1261
    "    return c1, c2"
1262
   ]
1263
  },
1264
  {
1265
   "cell_type": "code",
1266
   "execution_count": 33,
1267
   "id": "7c6ee411",
1268
   "metadata": {},
1269
   "outputs": [],
1270
   "source": [
1271
    "c1, c2 = two_sided_criterion_nonsym(30, 0.8, 0.05)"
1272
   ]
1273
  },
1274
  {
1275
   "cell_type": "code",
1276
   "execution_count": 34,
1277
   "id": "9a7d6b3a",
1278
   "metadata": {},
1279
   "outputs": [
1280
    {
1281
     "data": {
1282
      "text/plain": [
1283
       "(18.0, 29.0)"
1284
      ]
1285
     },
1286
     "execution_count": 34,
1287
     "metadata": {},
1288
     "output_type": "execute_result"
1289
    }
1290
   ],
1291
   "source": [
1292
    "c1, c2"
1293
   ]
1294
  },
1295
  {
1296
   "cell_type": "markdown",
1297
   "id": "9109aa9c",
1298
   "metadata": {},
1299
   "source": [
1300
    "Значит наш критерий для проверки гипотезы\n",
1301
    "\n",
1302
    "$$ \\mathsf{H}_0: \\mu = 0.8 $$\n",
1303
    "$$ \\mathsf{H}_1: \\mu \\neq 0.8 $$\n",
1304
    "\n",
1305
    "имеет вид\n",
1306
    "\n",
1307
    "$$ S = \\{Q(\\xi) \\leqslant 18\\} \\cup \\{Q(\\xi) \\geqslant 29\\}$$\n",
1308
    "\n",
1309
    "Здесь граница $29$ уже выглядит логично, потому что надо опровергнуть 80% орлов/успехов, а для этого требуется большое их количество."
1310
   ]
1311
  },
1312
  {
1313
   "cell_type": "markdown",
1314
   "id": "63e5d5a7",
1315
   "metadata": {},
1316
   "source": [
1317
    "Изобразим критическую область на графике."
1318
   ]
1319
  },
1320
  {
1321
   "cell_type": "code",
1322
   "execution_count": 35,
1323
   "id": "60dacea6",
1324
   "metadata": {},
1325
   "outputs": [
1326
    {
1327
     "data": {
1328
      "image/png": "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+xIEQTLIkAV3qKHCO4qVK1fy3nvvUaNGDQ444ICi8ilTpvDhhx/ym9/8Jm37vLw82rZty5AhQ7Z3U+nQoQObNm1i0qRJJdbttdderF69Oq1H95577iEIAho1alRUdu+99xIEAfvssw933303s2bNYvXq1SSTSX784x+XqLdVq1YMGTKEefPmsW7dOmbOnMnvf//7EtsVHuuggw7igQceYN68eaxatYp//vOftGjRAoALLriAZDLJqlWrmDFjRole1Zo1a9K1a1feeuutEr3E5513HjVq1GDQoEFp5X/9619ZtWoVF1xwQdlvYIratWvToEGDcu1THnPmzAFg9913LyqryDmsWrWKd999l27dum2ztkqSJKl6MbhWU4WT3xQUFKSVP/nkk/zsZz9j7733Liq7+OKL+e6773j11Ve3WOdOO+1E48aN05add965Uu1s3749s2bNonbt2jRu3Jg999yTTp06MXToUNq3b8+VV17JihUrirZv164dc+bMYcmSJWlly5Yt44033uDAAw/kvvvu449//COHHHIIL7/8MrVqbR4R37lzZ6ZOncr/+3//j4cffpjevXszY8YMBg4cyIABA9La1q5dO1avXs2IESNo3Lgxd9xxB8OGDaNz58488sgjPPTQQ1x33XU8//zz3H777TRu3Jhhw4bRpEmTojo6dOjALrvswv/+978S556Xl8fGjRtLrFu3bh1Tp04lLy8v6/exW7durF69mu+//57vvvuOBx98kIYNG2a9fyZ169alcePGNG/enM6dOzN48GCAtOHiFT2H9957j2bNmnHIIYdUqo2SJEnaQWTqho3r4lDh9KVwCO9tt90WNG7cOGjSpElw+OGHB48//ngQBEHw3//+N227a6+9NmjUqFGwdu3a4A9/+EMABPXq1QuWLl0a3HvvvQGwxaHCmTz33HMVbn+DBg2CDRs2ZKz3q6++Co455pgS+yxcuDAYOXJkWllBQUEQBEFw4YUXppXfcccdQRAEQatWrQIg2G+//YKVK1cG77zzTlC/fv20bd97771gzZo1aeULFy4MgqDkcNcpU6YEQRAEY8aMSRv+27t37yAIguCkk04qKuvZs2cQBEHwq1/9qsS5fPTRR8GCBQsyvjfDhw8PgiAIateuXeb7OHHixODaa68NunTpElx44YXBc889FwRBEHz44YdBgwYNKvzz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ePXVVznggAM488wzGTlyZNr6P/3pT3Ts2JG8vLwt1rPzzjvz/fffEwRBuYNXLoNaeTRo0IBVq1Zts/o3btxY4V7trWXPPfekRo0aLFmyZKvXXfgZyaR9+/ace+65jBgxgrPOOqvE+kaNGrFixYqt3iZJkiTtWLzGtYq69NJLad26NQMHDiwRWgslk0kee+yxotdfffUV48eP58gjj+Qf//gHy5Yt46OPPgJKXuPao0cPJkyYAIRDUIMgIAgCxo8fD2z5GtczzzyT8ePHs3TpUlatWsWMGTN44IEHqF27NgCJRIKbb76Zt99+m2+//ZZ169YxZ84cHn30URo1alTh9yT1HK644gqmT5/O2rVrue6664q2Oeecc3j33XdZsWIFq1atYuLEiRkDV40aNbj11luZPXs2a9as4cMPP+Scc87JeD1rade4tmzZkqFDh7JgwQLWrl3LF198wYABA6hfv37adoX7H3zwwQwYMIC5c+eydu1apk6dyqmnnlrmeQ8ZMoSvv/4agL59+xb9rI4//ngAatasyQ033MD06dNZs2YNBQUFjBgxgrZt25Zob+HP9JxzziGZTLJ69WoeeuihUo990EEHATBu3LiM65csWWKvvCRJkirNHtcqqlu3bgA8/vjj5dpv3333Zdy4cbz44ou8/PLL7Lzzzhm3e+eddxgwYAC33HILgwcP5t133wXgu+++22L9d955J7fccgvTp0/n/vvv59tvv+XAAw/krLPO4vbbb2f58uXUqVOH66+/npdffplXXnmFVatWkZeXxyWXXMJPfvITOnTokDZkubz69OlD48aN+etf/8qCBQuYO3cuAHfccQe33norb7zxBrfddhubNm3ijDPO4KWXXuLKK6/k0UcfLarj4Ycf5vLLL2fcuHHcd999NG3alEcffZSvvvoqqzbsu+++/O9//2PXXXfl0UcfZebMmZxwwgncfPPN/PjHP+anP/1piV7ap59+mvXr13PfffdRp04d+vTpw6hRozj44IOZM2dOqccaPHgwU6dOZdCgQYwYMYIRI0YA8OmnnwIwbNgwzj33XP75z3/y2GOPsddee3HllVfy3nvvceyxxzJ16tS0+rp27Urv3r157LHH+Mtf/rLFHtPC62jPPvtshg0bxrJly7J6fyRJkqTyMLhWUW3btmX58uVZB6lCBxxwAJdeeilPPPHEFrf76quvePPNN7nlllt47733GDZsWJl15+XlccsttzBu3DhOO+20tKHEN910U9HzdevW0axZM9auXVtUNnjwYP773//yxBNP0LVrV1588cVynVeqfffdl9atW7No0aKisnbt2nHrrbdy1113ccsttxSVP/TQQ4wcOZK7776boUOH8v3339OmTRsuv/xy/vGPf3DaaacRBAEAL774YomQV5q77rqLPfbYg9NOO4033ngDgMcee4w5c+Zw/fXX06NHD5588sm0fQoKCvjVr35V9Hr8+PFMmjSJyy67jJtvvrnUY02cOJFvv/2WQYMG8dFHH6X9rE4++WTOPfdchg8fTvfu3YvKX3jhBSZPnsyDDz7Icccdl1bfYYcdxo9+9CNmzJhR5nkmk0lGjx7N6aefzrx58/jvf//L+++/z/vvv8+//vUv1qxZU2YdkiRJUlkcKlxFNWzYkJUrV5Z7v8WLF2+z26Scf/75APzhD38o8/rXwtBao0YNdt11Vxo3blw03PSoo46qVDuGDh2aFloL27Zp0yaefvppGjdunLaMHj2ahg0bcswxxwDwy1/+EoAHHnigKLQCTJs2jbFjx5Z5/EQiwemnn86UKVOKQmuhu+++m40bN3LGGWeU2O+BBx5Ie51MJlm5cmXRcNyKKDzOgAED0so/+ugjxowZw7HHHkuTJk3S1r322mtZhdZCZ511FldddRXTpk3jhBNO4NZbb2XMmDEsWLCA3//+9xVuuyRJklTI4FpFrVixgl122aXc+3355Zds2rRpG7QovN5x06ZNWd065+yzz2bixImsWbOGZcuWUVBQUNR7vPvuu1eqHZ9//nmJskMPPZQaNWrw2WefUVBQkLYU9nzuueeeAOy///4AfPbZZyXqyVRWXNOmTdlll12YPn16iXVLly7l22+/5YADDiixbtasWSXKFi9eTOPGjcs8Zmn2339/Nm7cWDRsOFVh+wrPt1Cm929LNmzYwCOPPMLRRx9Nw4YN+clPfsJdd91FIpFg4MCBaT29kiRJUkU4VLiKmjZtGscffzz7779/uYYLr169ehu2iqKJgbbkjDPO4IUXXuD999/n6quvLpqMqGbNmowdO5YaNSr395RM55hIJNi0aROnnnpqqTMAZwqa21Np7UokEtu1HZX5jKxdu5b//Oc//Oc//2H8+PG8+eabXHLJJTz//PNbsYWSJEna0Rhcq6iXX36Z448/nksvvTTtms2tqawAWtznn3/OaaedxhFHHMGkSZNK3e7CCy9kzZo1nHjiiWnXQB5yyCEVbmtZZs6cyamnnsrXX39d5jDY2bNnF7Wn+B8FsmnjokWLWLFiBYcddliJdbvtthvNmjXL+lrZypo1axY1a9bk0EMP5eOPP05b16ZNG4ByXyedrYkTJwLQvHnzbVK/JEmSdhwOFa6i/va3vzFjxgyuu+46Tj/99IzbtG/fnssvv7zCxyi8d2e2t6h59tlngXBiosJb32SyceNGgiAo0bN66623VrClZXvmmWeK2papR3ePPfYoej5mzBgArr766rTezrZt2/Lzn/+8zGMFQcCYMWNo3759ie1vuukmatasWeotjLa2UaNGAeF1x6kOO+wwTj/9dN59910KCgoqXH+rVq048MADM67r2rUrAJ988kmF65ckSZLAHtcqa82aNfzyl7/ktdde45VXXmHs2LG8+eabLF68mKZNm3LiiSfy85//nD/96U8VPsYnn3zCihUruOKKK1i9ejXLli1j4cKFRfdyLW7SpEncc8893HTTTUyZMoXhw4ezYMEC9t9/f7p160anTp1Yvnw5L730Et26dWPcuHEMHTqU2rVr07VrV3baaacKt7UsyWSS/Px8+vXrx9SpU3nxxRf55ptvaNasGR06dOC0006jbt26Rec9ePBgLrvsMt566y1GjhxJ06ZNufLKK/nggw/o2LFjmb3RN998M507d2bUqFE8+uijfPHFFxx33HF0796dt99+m6effnqbnWuqt956i+HDh3Peeeex++678+qrrxbdDmft2rX07t27UvUfccQRDB8+nLfffpsJEyYwb948GjRowFFHHcU555zDihUr6N+//1Y6G0mSJO2oDK5V2Jdffkm7du247LLLOOuss7jlllvYeeedWbJkCclkkh49ehT1glbE2rVr6d69O3feeSeDBg2iXr16TJgwodTgCmHP3ocffshVV13FDTfcQI0aNZg7dy6vv/560bWTw4cPZ5ddduGaa67hvvvuY+nSpYwZM4abbrqJJUuWVLi9Zenfvz/JZJLevXvTp08fGjRowMKFC5k2bVqJAHfFFVfwzTffcMkll3Dffffx2Wefcfnll9OpUyc6duxY5m1evv76a4466ij69+/PBRdcwG677ca8efO46667uPPOO0u9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\n",
1329
      "text/plain": [
1330
       "<Figure size 1152x576 with 1 Axes>"
1331
      ]
1332
     },
1333
     "metadata": {
1334
      "needs_background": "dark"
1335
     },
1336
     "output_type": "display_data"
1337
    }
1338
   ],
1339
   "source": [
1340
    "pyplot.figure(figsize=(16, 8))\n",
1341
    "\n",
1342
    "# считаем вероятности значений суммы\n",
1343
    "probs = binom_h0_nonsym.pmf(x_grid)\n",
1344
    "# строим вертикальные столбцы от 0 до вероятности\n",
1345
    "pyplot.vlines(x_grid, 0, probs, linewidth=15.0, color='white', label='PMF, $Binom(0.5, 30)$')\n",
1346
    "# отдельно изобразим критическую области критерия\n",
1347
    "crit_reg = (x_grid >= 29) | (x_grid <= 18)\n",
1348
    "pyplot.vlines(x_grid[crit_reg], 0, probs[crit_reg], linewidth=15.0, label='Critical region for S')\n",
1349
    "\n",
1350
    "pyplot.title('Binomial distribution', fontsize=20)\n",
1351
    "pyplot.legend(fontsize=18, loc='upper left')\n",
1352
    "pyplot.show()"
1353
   ]
1354
  },
1355
  {
1356
   "cell_type": "markdown",
1357
   "id": "29511eef",
1358
   "metadata": {},
1359
   "source": [
1360
    "### p-value для несимметричного распределения\n",
1361
    "\n",
1362
    "Этот критерий &mdash; объединение двух критериев уровня значимости $\\frac{\\alpha}{2}$, для каждого из которых можно посчитать p-value. Обозначим их как $p_1, p_2$. Первый критерий отвергается при $p_1 \\leqslant \\frac{\\alpha}{2}$, второй при $p_2 \\leqslant \\frac{\\alpha}{2}$. А наш объединённый, когда выполнено одно из этих условий, то есть\n",
1363
    "\n",
1364
    "$$ 2p_1 \\leqslant \\alpha \\vee 2p_2 \\leqslant \\alpha \\Leftrightarrow 2 \\cdot \\min(p_1, p_2) \\leqslant \\alpha $$\n",
1365
    "\n",
1366
    "Значит можно считать pvalue как $2  \\min(p_1, p_2)$ и сравнивать с $\\alpha$.\n",
1367
    "\n",
1368
    "Проведём аналогию с симметричным случаем: если сумма оказалась в левой части, то нужно посчитать p-value левого критерия и умножить на 2. Если сумма оказалась в правой части, то нужно посчитать p-value правого критерия и умножить на 2."
1369
   ]
1370
  },
1371
  {
1372
   "cell_type": "code",
1373
   "execution_count": 36,
1374
   "id": "6830ba6b",
1375
   "metadata": {},
1376
   "outputs": [],
1377
   "source": [
1378
    "def pvalue_two_sided(n, q, mu=0.5):\n",
1379
    "    '''Считает pvalue для двусторонней альтернативы в задаче с доставкой\n",
1380
    "    \n",
1381
    "    Параметры:\n",
1382
    "        n: количество доставок в эксперименте\n",
1383
    "        q: количество успешных доставок\n",
1384
    "        mu: вероятность успеха при H0\n",
1385
    "        \n",
1386
    "    Возвращает:\n",
1387
    "        pvalue для двустороннего критерия\n",
1388
    "    '''\n",
1389
    "    binom_h0 = binom(n=n, p=mu)\n",
1390
    "    # считаем для левой части\n",
1391
    "    pvalue_left = binom_h0.cdf(q)\n",
1392
    "    # считаем для правой части\n",
1393
    "    pvalue_right = 1 - binom_h0.cdf(q - 1)\n",
1394
    "    # вычисляем формулу\n",
1395
    "    return 2 * min(pvalue_left, pvalue_right)"
1396
   ]
1397
  },
1398
  {
1399
   "cell_type": "markdown",
1400
   "id": "c268e84a",
1401
   "metadata": {},
1402
   "source": [
1403
    "Посчитаем p-value для $q = 28$"
1404
   ]
1405
  },
1406
  {
1407
   "cell_type": "code",
1408
   "execution_count": 37,
1409
   "id": "5a0f15bf",
1410
   "metadata": {},
1411
   "outputs": [
1412
    {
1413
     "data": {
1414
      "text/plain": [
1415
       "0.08835797030399428"
1416
      ]
1417
     },
1418
     "execution_count": 37,
1419
     "metadata": {},
1420
     "output_type": "execute_result"
1421
    }
1422
   ],
1423
   "source": [
1424
    "pvalue_two_sided(n=30, q=28, mu=0.8)"
1425
   ]
1426
  },
1427
  {
1428
   "cell_type": "markdown",
1429
   "id": "fb6fce41",
1430
   "metadata": {},
1431
   "source": [
1432
    "Видно, что $p-value > 0.05$, значит на уровне значимости $0.05$ даже $28$ успехов недостаточно, чтобы отвергнуть вероятность успеха в $80\\%$."
1433
   ]
1434
  },
1435
  {
1436
   "cell_type": "markdown",
1437
   "id": "09f85389",
1438
   "metadata": {},
1439
   "source": [
1440
    "Заметим, что эта же функция работает и для симметричного случая, возвращая тот же результат"
1441
   ]
1442
  },
1443
  {
1444
   "cell_type": "code",
1445
   "execution_count": 38,
1446
   "id": "65ab23ed",
1447
   "metadata": {},
1448
   "outputs": [
1449
    {
1450
     "data": {
1451
      "text/plain": [
1452
       "0.09873714670538902"
1453
      ]
1454
     },
1455
     "execution_count": 38,
1456
     "metadata": {},
1457
     "output_type": "execute_result"
1458
    }
1459
   ],
1460
   "source": [
1461
    "pvalue_two_sided(n=30, q=20, mu=0.5)"
1462
   ]
1463
  },
1464
  {
1465
   "cell_type": "code",
1466
   "execution_count": 39,
1467
   "id": "9e51f3b8",
1468
   "metadata": {},
1469
   "outputs": [
1470
    {
1471
     "data": {
1472
      "text/plain": [
1473
       "0.09873714670538905"
1474
      ]
1475
     },
1476
     "execution_count": 39,
1477
     "metadata": {},
1478
     "output_type": "execute_result"
1479
    }
1480
   ],
1481
   "source": [
1482
    "pvalue_two_sided_sym(n=30, q=20)"
1483
   ]
1484
  },
1485
  {
1486
   "cell_type": "markdown",
1487
   "id": "059abb3e",
1488
   "metadata": {},
1489
   "source": [
1490
    "### Итог\n",
1491
    "\n",
1492
    "Мы построили функции, которые для выборки из распределения Бернулли позволяют проверить гипотезу $\\mathsf{H}_0: \\mu = M$ для случая правосторонней и двухсторонней альтернатив на любом уровне значимости и размере выборки."
1493
   ]
1494
  }
1495
 ],
1496
 "metadata": {
1497
  "kernelspec": {
1498
   "display_name": "Python 3 (ipykernel)",
1499
   "language": "python",
1500
   "name": "python3"
1501
  },
1502
  "language_info": {
1503
   "codemirror_mode": {
1504
    "name": "ipython",
1505
    "version": 3
1506
   },
1507
   "file_extension": ".py",
1508
   "mimetype": "text/x-python",
1509
   "name": "python",
1510
   "nbconvert_exporter": "python",
1511
   "pygments_lexer": "ipython3",
1512
   "version": "3.7.4"
1513
  },
1514
  "vscode": {
1515
   "interpreter": {
1516
    "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
1517
   }
1518
  }
1519
 },
1520
 "nbformat": 4,
1521
 "nbformat_minor": 5
1522
}
1523

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.