Содержание курса 04 / 22

04 / 22 · Основы

Условная вероятность и формула Байеса

Как информация меняет вероятности: условие как сужение пространства элементарных исходов, формула умножения вероятностей, формула полной вероятности, формула Байеса и её форма через шансы, в которой каждое свидетельство вносит своё отношение правдоподобий, и независимость — в том числе попарная, но не в совокупности, и условная, — с задачей Монти Холла и делом Салли Кларк в качестве предостережений.

Что нужно знать

Аксиомы Колмогорова

На этой странице 11

Аксиомы приписывают вероятности всем событиям до того, как что-либо стало известно. Затем поступает информация: тест оказался положительным, первая карта — туз, пользователь уже кликнул по двум ссылкам. Вводная заметка разобрала один такой случай: нарисовала дерево для 1000 человек и подсчитала. В этой заметке мы превратим это дерево в формулы, которые работают для любой вероятности: условную вероятность, формулу умножения вероятностей (chain rule), формулу полной вероятности и формулу Байеса. Заканчивается заметка независимостью — допущением, на котором держится почти каждое произведение вероятностей в курсе, — и тем, что происходит, когда её предполагают ошибочно.

Обозначения. P(A∣B)P(A \mid B) — вероятность AA при условии BB. События B1,…,BnB_1, \dots, B_n образуют разбиение Ω\Omega (partition; полную группу событий), если они попарно несовместны, вместе составляют Ω\Omega и каждое имеет P(Bi)>0P(B_i) > 0. Шансы (odds) события — это O(A)=P(A)/P(Ac)O(A) = P(A) / P(A^c), так что шансы 1:991 : 99 означают вероятность 0.010.01.

Условная вероятность сужает пространство исходов#

Узнав, что событие BB произошло, мы исключаем все исходы вне BB. Остаётся само BB, а вероятности внутри него перенормируются так, чтобы в сумме снова давать 1:

P(A∣B)=P(A∩B)P(B),P(B)>0.P(A \mid B) = \frac{P(A \cap B)}{P(B)}, \qquad P(B) > 0 .

Бросим две кости; пусть AA — событие «на первой кости 3», а BB — «сумма равна 8»:

Рисунок

Условная вероятность сужает пространство исходов

Две сетки 6 × 6 для двух условийСлева выделены 5 клеток с суммой 8, одна из них с первой костью 3. Справа выделена строка 3 из 6 клеток, одна из них с суммой 8.(а) известно: сумма равна 8123456123456P(первая 3 | сумма 8) = 1/5(б) известно: на первой кости 3123456123456P(сумма 8 | первая 3) = 1/6Две сетки 6 × 6 для двух условийСлева выделены 5 клеток с суммой 8, одна из них с первой костью 3. Справа выделена строка 3 из 6 клеток, одна из них с суммой 8.(а) известно: сумма равна 8123456123456P(первая 3 | сумма 8) = 1/5(б) известно: на первой кости 3123456123456P(сумма 8 | первая 3) = 1/6
Строки — первая кость, столбцы — вторая. (а) Если известно, что сумма равна 8, остаются 5 клеток (синие), и в одной из них на первой кости 3 (жёлтая): P = 1/5. (б) Если известно, что на первой кости 3, остаются 6 клеток строки 3, и сумма 8 только в одной: P = 1/6. Пересечение одно и то же, а знаменатели разные: P(A | B) и P(B | A) — разные числа.

Сумму 8 дают пять равновозможных исходов, и в одном из них на первой кости 3, поэтому P(A∣B)=1/5P(A \mid B) = 1/5. Тройка на первой кости выпадает в шести исходах, и в одном из них сумма равна 8, поэтому P(B∣A)=1/6P(B \mid A) = 1/6. У двух условных вероятностей общий числитель P(A∩B)=1/36P(A \cap B) = 1/36 и разные знаменатели. Путать P(A∣B)P(A \mid B) с P(B∣A)P(B \mid A) — самая частая ошибка в рассуждениях о свидетельствах; пример с базовой частотой был именно этой ошибкой: P(+∣болен)=0.9P(+ \mid \text{болен}) = 0.9 принимали за P(болен∣+)P(\text{болен} \mid +).

При фиксированном BB функция A↦P(A∣B)A \mapsto P(A \mid B) удовлетворяет трём аксиомам, поэтому она сама по себе является вероятностью, и каждое правило предыдущей заметки выполняется и для условных вероятностей: P(Ac∣B)=1−P(A∣B)P(A^c \mid B) = 1 - P(A \mid B), формула объединения, оценка объединения.

Формула умножения вероятностей#

Домножив определение на знаменатель, получаем вероятность того, что произойдут оба события, в виде последовательности шагов:

P(A∩B)=P(A) P(B∣A),P(A1∩⋯∩An)=P(A1) P(A2∣A1)⋯P(An∣A1∩⋯∩An−1).P(A \cap B) = P(A)\, P(B \mid A), \qquad P(A_1 \cap \dots \cap A_n) = P(A_1)\, P(A_2 \mid A_1) \cdots P(A_n \mid A_1 \cap \dots \cap A_{n-1}) .

Вероятность того, что обе первые карты из перетасованной колоды — тузы, равна 452⋅351=1221≈0.0045\frac{4}{52} \cdot \frac{3}{51} = \frac{1}{221} \approx 0.0045: второй множитель — вероятность туза при условии, что один туз уже вынут. Произведение из задачи о днях рождения в заметке о подсчёте — то же правило: каждый множитель — вероятность того, что следующий день рождения новый, при условии, что все предыдущие различны. А языковая модель — это формула умножения, применённая к тексту: P(w1,…,wn)=∏tP(wt∣w1,…,wt−1)P(w_1, \dots, w_n) = \prod_t P(w_t \mid w_1, \dots, w_{t-1}), где каждую условную вероятность задаёт модель, как в n-граммной модели.

Формула полной вероятности#

Вероятность, которую трудно вычислить напрямую, часто легко найти, если разбить случаи по тому, что хотелось бы знать. Для разбиения B1,…,BnB_1, \dots, B_n

P(A)=∑iP(A∣Bi) P(Bi).P(A) = \sum_{i} P(A \mid B_i)\, P(B_i) .

Долю положительных тестов разбиваем по состоянию пациента: P(+)=0.9⋅0.01+0.09⋅0.99=0.0981P(+) = 0.9 \cdot 0.01 + 0.09 \cdot 0.99 = 0.0981.

Задача Монти Холла. За одной из трёх дверей автомобиль, за двумя другими — козы. Игрок выбирает дверь 1. Ведущий, который знает, где автомобиль, открывает одну из двух других дверей, за которой коза, и предлагает сменить выбор. Разобьём случаи по тому, где автомобиль: с вероятностью 1/31/3 он за дверью 1, и смена выбора проигрывает; с вероятностью 2/32/3 он за одной из двух других дверей, ведущий вынужден открыть ту из них, за которой коза, и смена выбора выигрывает. Значит, смена выбора выигрывает с вероятностью 2/32/3. Большинство людей отвечает 1/21/2: в условие ставят только то, что за открытой дверью коза, и забывают, как эта информация была получена. Если бы ведущий открывал одну из двух других дверей наугад и за ней случайно оказалась коза, смена выбора действительно выигрывала бы лишь с вероятностью 1/21/2. Правило, по которому раскрывается информация, — часть модели.

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

Запишем P(A∩B)P(A \cap B) по формуле умножения в обоих порядках и разделим — получится правило обращения условной вероятности:

P(B∣A)=P(A∣B) P(B)P(A),P(A)=∑iP(A∣Bi) P(Bi).P(B \mid A) = \frac{P(A \mid B)\, P(B)}{P(A)} , \qquad P(A) = \sum_i P(A \mid B_i)\, P(B_i) .

P(B)P(B) — априорная вероятность (prior), P(A∣B)P(A \mid B) — правдоподобие (likelihood) свидетельства, P(B∣A)P(B \mid A) — апостериорная вероятность (posterior). Для теста P(болен∣+)=0.9⋅0.01/0.0981=0.0917P(\text{болен} \mid +) = 0.9 \cdot 0.01 / 0.0981 = 0.0917 — те самые 9 из 98 из вводной заметки (дерево там округлило 89.1 ложноположительных результатов до 89).

Когда гипотез всего две, деление формулы Байеса для BB на ту же формулу для BcB^c сокращает знаменатель и оставляет форму через шансы (odds form):

O(B∣A)=O(B)⋅P(A∣B)P(A∣Bc).O(B \mid A) = O(B) \cdot \frac{P(A \mid B)}{P(A \mid B^c)} .

Апостериорные шансы равны априорным шансам, умноженным на отношение правдоподобий (likelihood ratio) свидетельства. Для положительного теста это отношение равно 0.9/0.09=100.9 / 0.09 = 10, так что шансы 1:991 : 99 превращаются в 10:9910 : 99, т. е. в вероятность 10/109=0.091710/109 = 0.0917. Второй положительный тест, независимый от первого при известном состоянии пациента, ещё раз умножает шансы на 10:

Рисунок

Каждый положительный тест — одинаковый шаг в логарифме шансов

Шкала логарифма шансов с четырьмя состояниямиВероятности 0.010, 0.092, 0.503 и 0.910 на равных расстояниях на оси логарифма шансов.0.0010.010.10.50.90.99вероятность болезни (шкала логарифма шансов)0.0101 : 991×100.09210 : 992×100.503100 : 993×100.9101000 : 994Шкала логарифма шансов с четырьмя состояниямиВероятности 0.010, 0.092, 0.503 и 0.910 на равных расстояниях на вертикальной оси логарифма шансов.0.0010.010.10.50.90.99вероятность болезни (шкала логарифма шансов)0.010шансы 1 : 991×100.092шансы 10 : 992×100.503шансы 100 : 993×100.910шансы 1000 : 994
Болезнь у 1% людей, тест находит 90% больных и даёт 9% ложных срабатываний. В форме шансов формула Байеса — умножение: апостериорные шансы = априорные шансы × отношение правдоподобий, а отношение правдоподобий положительного теста 0.9 / 0.09 = 10. Шансы 1 : 99 превращаются в 10 : 99 (вероятность 0.092), второй тест, независимый при известном статусе, даёт 100 : 99 (0.503), третий — 1000 : 99 (0.910). На логарифмической шкале шансов каждое свидетельство — сдвиг на одну и ту же величину.

В логарифмической шкале каждое независимое свидетельство прибавляет свой логарифм отношения правдоподобий. Именно так наивный байесовский классификатор объединяет слова, и именно поэтому логистическая регрессия выдаёт логарифм шансов (log-odds). Отсюда и практическое правило, но при одном предположении. Пусть между обучением и применением базовая частота меняется — с 1% положительных примеров до 5%, — а больше не меняется ничего: входы каждого класса распределены как прежде, Pnew(x∣y)=Pold(x∣y)P_{\text{new}}(x \mid y) = P_{\text{old}}(x \mid y) (сдвиг меток, label shift), метки те же, и входов вне диапазона обучающих данных нет. Тогда отношение правдоподобий каждого входа не меняется, и логарифм шансов классификатора, откалиброванного на обучающих данных, сдвигается на одну и ту же константу, log⁡(5/95)−log⁡(1/99)≈1.65\log(5/95) - \log(1/99) \approx 1.65, для любого входа. Одно лишь изменение распространённости такого сдвига не оправдывает. Если болезнь в новой популяции протекает легче и тест выявляет лишь половину больных, чувствительность падает до 0.50.5, отношение правдоподобий для положительного результата — с 10 до 5.65.6, и положительный тест означает P(болен∣+)=0.23P(\text{болен} \mid +) = 0.23, а не 0.340.34, как предсказывает сдвиг на константу.

Независимость#

События AA и BB независимы, если

P(A∩B)=P(A) P(B),P(A \cap B) = P(A)\, P(B) ,

что при P(B)>0P(B) > 0 означает P(A∣B)=P(A)P(A \mid B) = P(A): знание о том, что произошло BB, не меняет вероятность AA. Два броска кости независимы по построению, поэтому P(3, затем 5)=16⋅16P(\text{3, затем 5}) = \frac16 \cdot \frac16. Независимость — не то же, что несовместность: два несовместных события с положительными вероятностями сильно зависимы, потому что, узнав, что произошло одно, мы знаем, что другое невозможно.

Несколько событий. События A1,…,AnA_1, \dots, A_n независимы (в совокупности, mutually independent), если правило произведения выполняется для любого их поднабора, а не только для пар. Подбросим две честные монеты; пусть AA — «первая монета — орёл», BB — «вторая монета — орёл», CC — «монеты совпали». События попарно независимы: P(A∩C)=P(HH)=1/4=P(A)P(C)P(A \cap C) = P(\mathrm{HH}) = 1/4 = P(A) P(C) (HH — два орла), и так же для остальных пар. Но P(A∩B∩C)=1/4P(A \cap B \cap C) = 1/4, а не 1/81/8: любые два из этих событий определяют третье.

Условная независимость. События AA и BB условно независимы при условии CC, где P(C)>0P(C) > 0, если P(A∩B∣C)=P(A∣C) P(B∣C)P(A \cap B \mid C) = P(A \mid C)\, P(B \mid C). Два повторных теста одного пациента независимы при каждом состоянии здоровья, болен он или здоров, — и всё же не независимы: P(второй+∣первый+)=0.164P(\text{второй} + \mid \text{первый} +) = 0.164 против P(+)=0.098P(+) = 0.098, потому что первый положительный результат делает болезнь более вероятной, а вместе с ней и второй положительный результат. Условная независимость при известной скрытой причине и зависимость без неё — обычная ситуация в данных; наивный байесовский классификатор предполагает, что слова документа условно независимы при условии его класса, — это неверно, но часто достаточно хорошо работает.

Когда независимость предполагают ошибочно. В 1999 году в Англии Салли Кларк была осуждена за убийство двух своих сыновей-младенцев. Эксперт, выступавший свидетелем, сообщил суду, что вероятность двух случаев внезапной детской смерти в такой семье, как её, равна 1 к 73 миллионам; это число он получил, возведя в квадрат свою оценку 1 к 8543 для одного случая. В этом числе две ошибки. Возведение в квадрат предполагает, что две смерти независимы, тогда как общие для семьи генетические факторы и факторы среды делают вторую смерть после первой более вероятной. Кроме того, это число — P(две смерти∣невиновна)P(\text{две смерти} \mid \text{невиновна}), а присяжные могли прочитать его как P(невиновна∣две смерти)P(\text{невиновна} \mid \text{две смерти}): сравнивать нужно два объяснения, а двойное убийство младенцев — тоже крайне редкое событие. Королевское статистическое общество в 2001 году опубликовало заявление о неправильном использовании статистики в этом деле, а в 2003 году приговор был отменён.

Что изменилось#

Без условных вероятностейС условными вероятностями
Вероятность после получения свидетельствазаново пересчитать дерево частотP(A∣B)=P(A∩B)/P(B)P(A \mid B) = P(A \cap B) / P(B)
Вероятность последовательностиподсчёт упорядоченных исходовформула умножения вероятностей
Вероятность, которую трудно вычислить—формула полной вероятности: разбиение по неизвестному
Обращение условной вероятности—формула Байеса; шансы × отношение правдоподобий
Перемножение вероятностейпринимается без обоснованияобосновано независимостью — или ошибочно

Ограничения#

  • Условие на событие нулевой вероятности здесь не определено. Событие «измеренное значение равно ровно 0.3» для непрерывной величины имеет вероятность 0; для такого условия нужны условные плотности, которые вводятся вместе с совместными распределениями и условным математическим ожиданием.
  • В условии должно стоять то, что действительно стало известно, — в том числе то, как это стало известно. Задача Монти Холла даёт 2/32/3 или 1/21/2 в зависимости от правила, которому следует ведущий.
  • Независимость обычно — допущение. Её редко удаётся проверить по нескольким наблюдённым событиям, а ошибочное допущение независимости даёт малые вероятности, которые ошибаются на порядки.

Что нужно запомнить#

  • P(A∣B)=P(A∩B)/P(B)P(A \mid B) = P(A \cap B) / P(B): ограничиться событием BB и перенормировать. P(A∣B)P(A \mid B) и P(B∣A)P(B \mid A) — разные числа.
  • Формула умножения вероятностей: P(A1∩⋯∩An)=∏kP(Ak∣A1∩⋯∩Ak−1)P(A_1 \cap \dots \cap A_n) = \prod_k P(A_k \mid A_1 \cap \dots \cap A_{k-1}).
  • Формула полной вероятности: P(A)=∑iP(A∣Bi)P(Bi)P(A) = \sum_i P(A \mid B_i) P(B_i) по разбиению.
  • Формула Байеса: апостериорная вероятность ∝ правдоподобие × априорная вероятность; в шансах: апостериорные шансы = априорные шансы × отношение правдоподобий, и независимые свидетельства складываются в логарифмах шансов.
  • Независимость означает P(A∩B)=P(A)P(B)P(A \cap B) = P(A) P(B); для нескольких событий равенство должно выполняться для любого поднабора (независимость в совокупности), а из условной независимости независимость не следует.

Код#

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

import numpy as np
from fractions import Fraction

# two dice: P(first is 3 | sum is 8) and P(sum is 8 | first is 3)
dice = [(a, b) for a in range(1, 7) for b in range(1, 7)]
sum8 = [d for d in dice if sum(d) == 8]
first3 = [d for d in dice if d[0] == 3]
print(Fraction(sum(d[0] == 3 for d in sum8), len(sum8)), Fraction(sum(sum(d) == 8 for d in first3), len(first3)))   # 1/5 1/6

# the test: total probability, Bayes, the odds form for 1, 2, 3 positive tests
prior, sens, fpr = 0.01, 0.9, 0.09
p_pos = prior * sens + (1 - prior) * fpr
print(round(p_pos, 4), round(prior * sens / p_pos, 4))            # 0.0981 0.0917
odds = prior / (1 - prior)
for k in range(1, 4):
    odds *= sens / fpr
    print(k, round(odds / (1 + odds), 3))                          # 1 0.092, 2 0.503, 3 0.91
p_both = prior * sens**2 + (1 - prior) * fpr**2
print(round(p_both / p_pos, 3))                                    # 0.164 = P(second + | first +)

# pairwise but not mutually independent: two coins, "first is H", "second is H", "they agree"
coins = [(x, y) for x in 'HT' for y in 'HT']
P = lambda event: Fraction(sum(map(event, coins)), len(coins))
first = lambda c: c[0] == 'H'; second = lambda c: c[1] == 'H'; agree = lambda c: c[0] == c[1]
print(P(lambda c: first(c) and agree(c)), P(first) * P(agree))                                 # 1/4 1/4
print(P(lambda c: first(c) and second(c) and agree(c)), P(first) * P(second) * P(agree))       # 1/4 1/8

# Monty Hall: the host knows where the car is and always opens a door with a goat
rng = np.random.default_rng(0)
car, pick = rng.integers(0, 3, (2, 100_000))
print(round(float((car == pick).mean()), 3), round(float((car != pick).mean()), 3))   # stay wins 0.332, switch wins 0.668

Дальше#

До сих пор события были утверждениями вида «да или нет». Но большинство случайных величин — числа: число орлов в 10 бросках, число кликов за час, время ожидания до отказа. Следующая заметка вводит случайные величины и дискретные распределения, которые встречаются повсюду: распределение Бернулли, биномиальное, геометрическое, пуассоновское и гипергеометрическое — подсчёт из примера с картами.

Литература#

  • J. K. Blitzstein, J. Hwang. Introduction to Probability, 2nd ed. CRC Press, 2019. Глава 2 (условная вероятность, формула Байеса, формула полной вероятности, независимость, задача Монти Холла, парадокс Симпсона).
  • W. Feller. An Introduction to Probability Theory and Its Applications, Vol. 1, 3rd ed. Wiley, 1968. Глава V (условная вероятность, стохастическая независимость).
  • S. Selvin. A Problem in Probability. Letter to the editor, The American Statistician, 29(1), 1975. Задача Монти Холла.
  • G. Gigerenzer, U. Hoffrage. How to Improve Bayesian Reasoning Without Instruction: Frequency Formats. Psychological Review, 102(4), 1995.
  • Royal Statistical Society. Statement on the use of statistics in the Sally Clark case, October 2001.
  • R. Hill. Multiple sudden infant deaths – coincidence or beyond coincidence? Paediatric and Perinatal Epidemiology, 18(5), 2004.