Формула Байеса

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

На первом занятии мы научились находить условную вероятность зависимых событий, например, вероятности заболевания при условии положительного теста $P(\text{болен} \mid +)$. По сути получившаяся формула и есть формула Байеса.

Тем не менее для того чтобы двигаться дальше будет полезно:

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

Именно этому и посвящено второе занятие.

Доказательство

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

$$ P(A \cap B) = P(A) \cdot P(B \mid A)$$

$$ P(B \cap A) = P(B) \cdot P(A \mid B)$$

При этом совместная вероятность события $A$ и события $B$ равна совместной вероятности события $B$ и события $A$. Другими словами,

$$ P(A \cap B) = P(B \cap A) $$

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

$$ A \cap B = B \cap A $$

Для того чтобы наглядно в этом убедиться, вернемся к подбрасыванию двух разных монет. Если мы подбрасываем М1, а затем М2, то сначала находим 0,6 площади квадрата, а затем его половину.

совместная вероятность событий A и B

Если сначала М2, а потом М1, то в первую очередь делим квадрат пополам, а затем находим 0,6 от первой половины.

совместная вероятность событий B и A

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

$$ P(A) \cdot P(B \mid A) = P(B) \cdot P(A \mid B) $$

$$ P(A \mid B) = \frac{P(A) \cdot P(B \mid A) }{P(B)} $$

Это и есть формула Байеса (Bayes’ rule, читается [beɪz]) или теорема Байеса (Bayes’ theorem).

Терминология и нотация

Основные термины

В терминологии байесовской статистики распространенность заболевания, $P(A)$, называют изначальной или априорной верояностью (prior probability). Это нечто, что нам дано до того, как мы проводим какие-либо тесты или эксперименты.

Качество теста (его чувствительность и специфичность) — это то, как работает тест. В байесовской статистике это называется правдоподобием (likelihood).

Можно сказать, что так мы узнаем, насколько правдоподобно, что человек болен при условии положительного и отрицательного результатов, $P(B \mid A_1)$, и насколько правдоподобно, что он здоров $P(B \mid A_2)$.

Знаменатель называют данными (data), которые мы получили, применяя тест к больным и здоровым людям.

Результат, который мы получаем после проведения теста, называется апостериорной вероятностью (posterior probability).

основные термины формулы Байеса

В общем виде получится

$$ P(A_1 \mid B) = \frac{P(A_1) \cdot P(B \mid A_1)}{P(B)} $$

$$ P(A_1 \mid B) = \frac{P(A_1) \cdot P(B \mid A_1)}{P(A_1) \cdot P(B \mid A_1) + P(A_2) \cdot P(B \mid A_2)} $$

Hypothesis и evidence

Часто событие $A$ также называют гипотезой, hypothesis, $H$, которая может подтвердиться (тогда так и пишут, $H$), а может не подтвердиться (в этом случае пишут $\lnot H$). Данные обозначают буквой $E$, от англ. evidence, «полученные данные», «свидетельства».

формула Байеса: hypothesis и evidence

Тогда гипотезу о том, что человек болен при условии, что данные (то есть тест) об этом свидетельствуют, можно записать так

$$ P(H \mid E) = \frac{ P(H) \cdot P(E \mid H) }{P(E)} $$

$$ P(H \mid E) = \frac{ P(H) \cdot P(E \mid H) }{ P(H) \cdot P(E \mid H) + P(\lnot H) \cdot P(E \mid \lnot H)} $$

Параметр и данные

Также, в частности машинном обучении, событие A принято называть оцениваемым параметром $\theta$, а событие B — данными или признаками ($X$). Тогда,

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

По ходу курса мы будем использовать все три нотации: события $A$ и $B$, гипотезу $H$ и данные $E$, а также параметр $\theta$ и признаки $X$.

Смысл формулы

Изменение априорной вероятности и правдоподобия

Вернемся к числителям из примера с медицинскими тестами

$$ P(\text{болен} \mid +) \propto 0{,}05 \cdot 0{,}90 = 0{,}045 $$

$$ P(\text{не болен} \mid +) \propto 0{,}95 \cdot 0{,}20 = 0{,}19 $$

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

При этом в числителе на эту вероятность влияют две величины:

  • во-первых, распространенность заболевания или вероятность быть больным (0,05 против 0,95);
  • во-вторых, чувствительность и неспецифичность (то есть $1-$специфичность) теста (0,9 против 0,2).
изменение априорной вероятности и правдоподобия

Как мы видим, в данном случае «побеждает» пара вероятность быть здоровым и чувствительность против вероятности быть больным и неспецифичности.

$$ 0{,}05 \cdot 0{,}90 = 0{,}045 < 0{,}95 \cdot 0{,}20 = 0{,}19 $$

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

$$ 0{,}5 \cdot 0{,}90 = 0{,}45 > 0{,}5 \cdot 0{,}20 = 0{,}1 $$

Рассчитаем вероятность быть больным при положительном тесте с помощью Питона.

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

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

Геометрически, изменение априорной вероятности (распространенности) и правдоподобия (качества теста) можно представить следующим образом.

геометрический смысл изменения априорной вероятности и правдоподобия

Опять же, если предположить, что распространенность заболевания составляет, например, лишь 0,01, то вероятность быть больным при положительном тесте должна быть ниже

Если же повысить чувствительность теста, скажем, до 0,95, а его специфичность до 0,90, то вероятность быть больным при положительном результате должна увеличиться

Обновление априорной вероятности

Вероятность заболевания при положительном тесте в 19 процентов на самом деле не может удовлетворять ни пациента, ни его врача.

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

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

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

Вновь найдем апостериорную вероятность быть больным после первого положительного теста.

Сделаем эту апостериорную вероятность новой априорной.

Примечание. Заметим, что ($1-$апостериорная вероятность) — это то же самое, что $P(\text{не болен} \mid +)$.

На диаграмме это выглядит так

обновление априорной вероятности

Найдем новую апостериорную вероятность.

Как мы видим, после двух положительных тестов вероятность быть больным составляет уже около 52 процентов.

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

Для того чтобы оценить вероятность после трех положительных тестов можно воспользоваться циклом.

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

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

Обратим внимание, что для вычисления вероятности быть больным после двух положительных результатов достаточно возвести вероятности соотетствующих «ветвей» в степень, равную количеству тестов.

$$ P(H \mid E) = \frac{ P(H) \cdot P(E \mid H)^n }{P(E)} $$

$$ P(H \mid E) = \frac{ P(H) \cdot P(E \mid H)^n }{ P(H) \cdot P(E \mid H)^n + P(\lnot H) \cdot P(E \mid \lnot H)^n } $$

Таким образом, проведение $n$ тестов можно выразить так.

$$ \text{posterior}_n = \frac{ \text{prior} \times \text{likelihood}^n }{\text{data} } $$

$$ \text{posterior}_n \propto \text{prior} \times \text{likelihood}^n $$

Обратимся к Питону.

Посмотрим на вероятность заболеть после пяти положительных тестов.

Биномиальное распределение

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

биномиальное распределение правдоподобия

Убедимся в этом с помощью Питона.

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

Влияние правдоподобия и априорной вероятности

Предположим, что мы ошиблись с оценкой распространенности заболевания и считаем, что оно чрезвычайно редкое. Посмотрим, что будет с условной вероятностью быть больным при получении $1, 2, \ldots, 10$ положительных результатов.

Как мы видим, при первых трех тестах вероятность быть больным близка к нулю, однако уже к 10-ому тесту она существенно возрастает.

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

Если априорные оценки изначально были «на нашей стороне», то есть подкрепляются получаемыми данными, то мы быстрее придем к высокой условной вероятности события.

Если же нет, то мы все равно сделаем правильный вывод, однако для этого может потребоваться собрать больше данных.

Посмотрим на формулу под другим углом.

Коэффициент Байеса

Вероятность и шансы

Оценить наступление случайного события можно двумя способами: с помощью вероятности (probability, $P$) и с помощью шансов (odds, $O$).

Как мы уже знаем согласно, например, классическому определению вероятность — это отношение благоприятствующих событию $A$ исходов $k$ к количеству всех возможных исходов $n$ испытания.

Например, выпадению двойки или тройки на игральной кости благоприятствуют два исхода, $k=2$, а всего возможных исходов шесть, $n=6$. Тогда,

$$ P(A) = \frac{k}{n} = \frac{2}{6} = \frac{1}{3}$$

Эту же неопределенность можно выразить с помощью шансов на то, что выпадет двойка или тройка.

Шансы определяются как отношение благоприятствующих событию исходов к неблагоприятствующим.

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

$$ O(A) = 2 : 4 = 1 : 2 $$

вероятность и шансы на примере игральных костей

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

Отношение правдоподобия

Эту же идею выражения неопределенности через шансы можно применить и к формуле Байеса. В примере с медицинскими тестами

  • условно «благоприятствующими» исходами для вероятности быть больным при положительном тесте будут те случаи, когда пациент получил положительный тест при условии, что он болен;
  • «неблагоприятствующими» исходами будут наоборот ситуации, когда тест положителен, а человек не болен.
отношение правдоподобия

Получается, что речь идет об отношении правдоподобия (likelihood ratio, $\Lambda$).

$$ \Lambda_{\text{+ \mid болен}} = \frac{ P (B \mid A_1) }{ P (B \mid A_2) } = \frac{0{,}9}{0{,}2} = 4{,}5 $$

Отношение правдоподобия можно также выразить как шансы быть больным при положительном тесте

$$ O_{\text{+ \mid болен}} = B \mid A_1 : B \mid A_2 = 9/10 : 2/10 = 9 : 2 = 4{,}5 : 1 $$

Другими словами, при положительном тесте шансы быть больным в 4,5 раза больше,чем быть здоровым. Число 4,5 называется коэффициентом Байеса (Bayes factor, $BF$).

Шансы быть больным при положительном тесте

Отношение правдоподобия или коэффициент Байеса также позволяют обновить априорную вероятность. Единственный нюанс — ее также необходимо выразить в виде опять же априорных шансов (prior odds).

$$ O_{\text{болен \mid +}} = O_{\text{болен}} \cdot O_{\text{+ \mid болен}} = (5 : 95) \times ( 4{,}5 : 1) = 22{,}5 : 95$$

Преобразуем шансы обратно в вероятность.

$$ P(\text{болен} \mid +) = \frac{ 22{,}5 }{ 22{,}5 + 95 } \approx 0,19 $$

На уже знакомой схеме априорные шансы и отношение правдоподобия можно выразить и так.

шансы быть больным при положительном тесте

Найдем также шансы быть здоровым при положительном тесте.

$$ O_{\text{не болен \mid +}} = O_{\text{не болен}} \cdot O_{\text{+ \mid не болен}} = (95 : 5) \times ( 1 : 4{,}5) = 95 : 22{,}5 $$

Тогда вероятность

$$ P(\text{не болен} \mid +) = \frac{ 95 }{ 95 + 22{,}5 } \approx 0,81 $$

Почему это работает

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

вероятность и шансы на примере медицинского теста

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

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

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