Примеры

Все курсы > Байесовская статистика > Занятие 3

Рассмотрим несколько примеров для закрепления пройденного на первом и втором занятиях материала, а также введем новые термины и понятия.

Колоды карты

Перед нами две колоды карт (deck of cards):

  • одна полная колода из 52-х карт $D_\text{full}$; и
  • одна сокращенная, состоящая только из «красных мастей» (черви и бубны) $D_\text{red}$ и, как следствие, 26-ти карт.

Наугад достанем карту из одной из колод (из какой именно мы не знаем). Пусть это будет тройка червей, $3d$ (three of diamonds).

выбор карты из одной из двух колод

Какова вероятность, что тройка червей лежала в полной колоде? Другими словами, нам нужно найти $P(D_\text{full} \mid 3d)$.

Начнем с априорной вероятности, то есть выбора колоды. Колода выбирается случайно, а значит

$$ P(D_\text{full}) = P(D_\text{red}) = \frac{1}{2} $$

Далее необходимо найти условные вероятности (правдоподобие) выбора тройки червей из каждой колоды. Вполне очевидно, что вероятность выбрать такую карту из полной колоды ниже, поскольку в ней больше карт.

$$ P( 3d \mid D_\text{full} ) = \frac{1}{52} $$

$$ P( 3d \mid D_\text{red} ) = \frac{1}{26} $$

Теперь по формуле полной вероятности найдем вероятность выпадения тройки червей $P(3d)$. Напомню, это сумма совместных вероятностей

  • выбора полной колоды и условной вероятности достать из нее тройку червей, $P(D_\text{full}) \cdot P( 3d \mid D_\text{full} ) $; и
  • выбора «красной» колоды и условной вероятности достать из нее ту же карту, $P(D_\text{red}) \cdot P( 3d \mid D_\text{red} ). $

Таким образом,

$$ P(3d) = P(D_\text{full}) \cdot P( 3d \mid D_\text{full} ) + P(D_\text{red}) \cdot P( 3d \mid D_\text{red} ) = $$

$$ \frac{1}{2} \cdot \frac{1}{52} + \frac{1}{2} \cdot \frac{1}{26} = \frac{3}{104} $$

Подставим значения в формулу Байеса.

$$ P(D_\text{full} \mid 3d) = \frac{ P(D_\text{full}) \cdot P( 3d \mid D_\text{full} ) }{ P(3d) } = \frac{ \frac{1}{2} \cdot \frac{1}{52} }{ \frac{3}{104} } = \frac{1}{3} $$

Такой результат вполне логичен. В полной колоде в два раза больше карт, чем в «красной», а значит и вероятность того, что это именно полная колода, должна быть в два раза меньше.

Если перевести вероятности в шансы, то получим

$$ O(D_\text{full} \mid 3d) : O(D_\text{red} \mid 3d) = \frac{1}{3} : \frac{2}{3} = 1 : 2 $$

И коэффициент Байеса равен

$$ BF_{ D_\text{full} \mid 3d } = \frac{ P( 3d \mid D_\text{full} ) }{ P( 3d \mid D_\text{red} ) } = \frac{1/52}{1/26} = \frac{1}{2} $$

Еще раз поясним словами. Коэффициент Байеса или отношение правдоподобия того, что тройка червей взята из полной колоды равен 0,5, а значит шансы такого действия равны $\frac{1}{2} : 1 $ или (умножив на 2) $ 1 : 2$ (что мы и получили выше).

При умножении коэффициента Байеса, выраженного в шансах, на априорные шансы, мы получим апостериорные шансы. Так как априорная вероятность для каждой колоды равна $\frac{1}{2}$, то шансы будут $1 : 1$, а значит не повлияют на апостериорные шансы.

$$ O(D_\text{full} \mid 3d) = (1 : 1) \times (1 : 2) = 1 : 2 $$

При переводе в вероятность получим $P(D_\text{full} \mid 3d) = \frac{1}{1+2} = \frac{1}{3} $.

Игральные кости

Вместо колоды карт рассмотрим три игральные кости (dice), имеющие четыре $(D1)$, шесть $(D2)$ и восемь $(D3)$ граней.

выпадение числа на одной из трех игральных костей

Предположим, что кто-то выбирает одну из костей и бросает три раза, каждый раз сообщая нам результат броска, но не показывая саму кость. Наша задача — после трех бросков догадаться, какая именно кость была брошена.

Расчет вручную

Изначально мы ничего не знаем о выбранной кости, поэтому наши априорные вероятности будут одинаковыми.

$$ P(D1) = P(D2) = P(D3) = \frac{1}{3} $$

Попросим нашего помощника бросить кость.

Первый бросок. Предположим, что в первый раз выпала четверка. Обозначим этот факт как $r4$ (от англ. to roll 4 on a dice). Найдем правдоподобие такого результата для каждой из костей.

  • на первой кости четыре грани, значит $P(r4 \mid D1) = \frac{1}{4} $;
  • на второй кости шесть, $P(r4 \mid D2) = \frac{1}{6} $;
  • на третьей — восемь, $P(r4 \mid D3) = \frac{1}{8} $.

Также найдем полную вероятность выпадения четверки или данные, $P(r4)$. Она будет состоять из суммы совместных вероятностей выпадения четверки на каждой из костей.

$$ P(r4) = P(D1) \cdot P(r4 \mid D1) + $$

$$ P(D2) \cdot P(r4 \mid D2) + P(D3) \cdot P(r4 \mid D3) = $$

$$ \frac{1}{3} \cdot \frac{1}{4} + \frac{1}{3} \cdot \frac{1}{6} + \frac{1}{3} \cdot \frac{1}{8} = \frac{13}{72} $$

Остается найти апостериорные вероятности.

$$ P(D1 \mid r4) = \frac{ P(D1) \cdot P(r4 \mid D1) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{4} }{ \frac{13}{72} } = \frac{6}{13} \approx 0{,}46 $$

$$ P(D2 \mid r4) = \frac{ P(D2) \cdot P(r4 \mid D2) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{6} }{ \frac{13}{72} } = \frac{4}{13} \approx 0{,}31 $$

$$ P(D3 \mid r4) = \frac{ P(D3) \cdot P(r4 \mid D3) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{8} }{ \frac{13}{72} } = \frac{3}{13} \approx 0{,}23$$

Опять же, такой результат вполне ожидаем. На первой кости только четыре грани и вероятность (правдоподобие) выпадения значений от одного до четырех здесь наиболее высокая.

Второй бросок. Пусть в этот раз выпадет двойка. Апостериорная вероятность станет новой априорной.

  • $ P(D1 \mid r4) = \frac{6}{13} $;
  • $ P(D2 \mid r4) = \frac{4}{13} $;
  • $ P(D3 \mid r4) = \frac{3}{13} $.

Правдоподобие будет тем же.

  • $P(r2 \mid D1) = \frac{1}{4} $;
  • $P(r2 \mid D2) = \frac{1}{6} $;
  • $P(r2 \mid D3) = \frac{1}{8} $.

Полная вероятность $P(r2)$ теперь должна учитывать новую априорную вероятность.

$$ P(r2) = P(D1 \mid r4) \cdot P(r2 \mid D1) + $$

$$ P(D2 \mid r4) \cdot P(r2 \mid D2) + P(D3 \mid r4) \cdot P(r2 \mid D3) = $$

$$ \frac{6}{13} \cdot \frac{1}{4} + \frac{4}{13} \cdot \frac{1}{6} + \frac{3}{13} \cdot \frac{1}{8} = \frac{61}{312} $$

Найдем апостериорные вероятности при втором броске.

$$ P(D1 \mid r2) = \frac{ P(D1 \mid r4) \cdot P(r2 \mid D1) }{ P(r2) } = \frac{ \frac{6}{13} \cdot \frac{1}{4} }{ \frac{61}{312} } = \frac{36}{61} \approx 0{,}59 $$

$$ P(D2 \mid r2) = \frac{ P(D2 \mid r4) \cdot P(r2 \mid D2) }{ P(r2) } = \frac{ \frac{4}{13} \cdot \frac{1}{6} }{ \frac{61}{312} } = \frac{16}{61} \approx 0{,}26 $$

$$ P(D3 \mid r2) = \frac{ P(D3 \mid r4) \cdot P(r2 \mid D3) }{ P(r2) } = \frac{ \frac{3}{13} \cdot \frac{1}{8} }{ \frac{61}{312} } = \frac{9}{61} \approx 0{,}15 $$

Так как правдоподобие двойки на первой кости снова самое высокое, мы только укрепились во мнении, что речь идет о первой кости.

Третий бросок. При третьем броске выпадает пятерка. Найдем апостериорные вероятности.

$$ P(D1 \mid r5) = \frac{ P(D1 \mid (r4,r2)) \cdot P(r5 \mid D1) }{ P(r5) } = \frac{ \frac{36}{61} \cdot 0 }{ \frac{91}{1464} } = 0 $$

$$ P(D2 \mid r5) = \frac{ P(D2 \mid (r4,r2)) \cdot P(r5 \mid D2) }{ P(r5) } = \frac{ \frac{16}{61} \cdot \frac{1}{6} }{ \frac{91}{1464} } = \frac{64}{91} \approx 0{,}70 $$

$$ P(D3 \mid r5) = \frac{ P(D3 \mid (r4,r2)) \cdot P(r5 \mid D3) }{ P(r5) } = \frac{ \frac{9}{61} \cdot \frac{1}{8} }{ \frac{91}{1464} } = \frac{27}{91} \approx 0{,}30 $$

Обратим внимание, что правдоподобие выпадения пяти на первой кости равно нулю (такой грани там нет), а значит все это время речь шла о второй или третьей костях.

Более того, так как новая априорная вероятность также равна нулю, вне зависимости от того, какая грань выпадет следующей (пусть даже от 1 до 4), вероятность первой кости всегда будет нулевой.

Из оставшихся двух вариантов на такую высокую вероятность второй кости повлияло два фактора:

  • во-первых, выпадение пятерки на ней более правдоподобно, $\frac{1}{6}$ против $\frac{1}{8};$
  • во-вторых, за первые два броска накопилась более высокая априорная вероятность, $\frac{16}{61}$ против $\frac{9}{61}.$

Методы оценки

Оценка в данном случае означает выбор одной из гипотез или, в нашем примере, одной из трех костей. Еще на первом занятии мы сказали, что знаменатель здесь роли не играет. Остается два компонента: априорная вероятность и правдоподобие.

$$ P(\theta \mid X) = \frac{ P(\theta) \cdot P(X \mid \theta) }{ P(X) } $$

$$ P(\theta \mid X) \propto P(\theta) \cdot P(X \mid \theta) $$

Апостериорный максимум

Если выбирать гипотезу исходя из обоих компонентов, то мы по сути основываемся на оценке с помощью апостериорного максимума (maximum a posteriori, MAP). После трех бросков максимальная апостериорная вероятность у второй кости, ее мы и выбираем.

$$ \theta_{MAP} = D_2 $$

оценка с помощью апостериорного максимума

В общем виде

$$ \theta_{MAP} = \underset{\theta}{\text{argmax }} P(\theta) \cdot P(X \mid \theta) $$

Метод максимального правдоподобия

Если же не учитывать априорную вероятность и оценивать $\theta$ только по правдоподобию, то наиболее вероятной в первых двух бросках является первая кость $\frac{1}{4}$, а при третьем броске — вторая $\frac{1}{6}$.

Посмотрим на оценку правдоподобия после первого броска.

оценка с помощью метода максимального правдоподобия

В этом случае говорят, что мы оцениваем параметр с помощью метода максимального правдоподобия (maximum likelihood estimation, MLE).

$$ \theta_{MLE} = \underset{\theta}{\text{argmax }} P(X \mid \theta) $$

Интересно, что если априорная вероятность для каждой из гипотез или для каждого $\theta$ одинакова (можно считать, что она представляет собой константу), то обе оценки дают одинаковый результат.

Формально,

$$ \theta_{MAP} = \underset{\theta}{\text{argmax }} const \cdot P(X \mid \theta) = \underset{\theta}{\text{argmax }} P(X \mid \theta) = \theta_{MLE} $$

Так было, в частности, после первого броска кости. Так как все априорные вероятности были одинаковыми и равнялись $\frac{1}{3}$, то единственным, что влияло на результат было правдоподобие. Приведем расчеты еще раз.

$$ P(D1 \mid r4) = \frac{ P(D1) \cdot P(r4 \mid D1) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{4} }{ \frac{13}{72} } = \frac{6}{13} \approx 0{,}46 $$

$$ P(D2 \mid r4) = \frac{ P(D2) \cdot P(r4 \mid D2) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{6} }{ \frac{13}{72} } = \frac{4}{13} \approx 0{,}31 $$

$$ P(D3 \mid r4) = \frac{ P(D3) \cdot P(r4 \mid D3) }{ P(r4) } = \frac{ \frac{1}{3} \cdot \frac{1}{8} }{ \frac{13}{72} } = \frac{3}{13} \approx 0{,}23$$

Максимальным правдоподобие было у первой кости $\frac{1}{4} = 0{,}25$ (оценка методом максимального правдоподобия) и именно эта кость показала наибольшую апостериорную вероятность $ \frac{6}{13} \approx 0{,}46 $ (оценка с помощью апостериорного максимума).

В случае если априорная вероятность и правдоподобие существенно расходятся, MAP и MLE-оценки могут не совпадать.

Таким образом, оценка методом максимального правдоподобия является частным случаем оценки с помощью апостериорного максимума при одинаковой априорной вероятности каждой из гипотез.

Расчет с помощью Питона

Расчет апостериорной вероятности вручную довольно кропотлив. Доверим эту работу компьютеру.

Откроем ноутбук к занятию

Вначале повторим те результаты, которые мы получили в примере выше.

Три броска

Начнем с одного броска и выпадения четверки.

Теперь выполним три броска с выпадением четверки, двойки и пятерки.

MAP и MLE

Найдем оценки MAP и MLE для случаев одинаковой и разной априорной вероятности при выпадении четверки. Случай одинаковой априорной оценки полностью повторяет первый бросок в примере выше.

Если предположить, что априорная вероятность первой кости меньше остальных (например, $\frac{1}{5}$ против $\frac{2}{5}$ у второй и третьей кости), то MAP и MLE будут не совпадать.

Отгадывание кости

Поместим код выше в функцию, которая будет оценивать уже четыре вида игральных костей с четырьмя, шестью, восьмью и двенадцатью гранями и после произвольного числа бросков отгадывать, о какой кости идет речь.

Такого рода программы, которые последовательно исследуют «мир» (world) и делают выводы называют интеллектуальными агентами (intelligent agent) или просто агентами.

В нашем примере мир — это результаты бросания одной из четырех костей, а вывод — MAP-оценка того, о какой кости идет речь.

Бросим первую кость с четырьмя гранями пять раз.

Усложним задачу. Будем бросать вторую кость только три раза и изменим априорную вероятность не в пользу этого варианта.

Как мы видим, агент в обоих случаях успешно справился с поставленной задачей.

Подведем итог

Сегодня мы рассмотрели две по сути очень похожие задачи, в которых нам требовалось оценить вероятность одной из гипотез (колоды карт или игральной кости) на основе тех данных (значения карты или числа на кости), которые мы получали.

Эти примеры позволили закрепить понятия априорной вероятности, правдоподобия и апостериорной вероятности. Одновременно мы научились оценивать гипотезу исходя из апостериорного максимума и ее максимального правдоподобия.

На следующем занятии мы перейдем от оценки конечного числа гипотез к оценке множества гипотез или, иначе говоря, их распределения.