Skip to content

Совместная и условная вероятность. Формула Байеса. Пример.

Совместная и условная вероятность являются ключевыми понятиями в теории вероятностей, позволяющими анализировать взаимосвязи между различными событиями. Формула Байеса представляет собой важный инструмент для обновления вероятностей в свете новой информации. Рассмотрим эти понятия более подробно, а затем приведём пример применения формулы Байеса.

Совместная вероятность

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

Условная вероятность

Условная вероятность события \(A\) при условии, что произошло событие \(B\), обозначается как \(P(A|B)\) и определяется как: \(P(A|B) = \dfrac{P(A \cap B)}{P(B)}, \quad \text{где} \quad P(B) > 0\)

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

Формула Байеса позволяет пересчитывать условные вероятности событий на основе новой информации. С учетом равенства \(P(A \cap B) = P(A|B) P(B) = P(B|A) P(A)\) формула записывается так:

\(P(A|B) = \dfrac{P(B|A) \cdot P(A)}{P(B)}, \quad \text{где} \quad P(B) > 0\)

Пример применения формулы Байеса

Рассмотрим пример. Пусть имеется тест на болезнь, который может быть положительным или отрицательным. Пусть: - \(A\) — событие, что человек болен. - \(B\) — событие, что тест положительный.

Даны следующие вероятности: - Вероятность болезни в популяции: \(P(A) = 0.01\). - Вероятность положительного теста у больного человека (чувствительность теста): \(P(B|A) = 0.99\). - Вероятность положительного теста у здорового человека (ложноположительный результат): \(P(B|\neg A) = 0.05\).

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

Для этого сначала найдём \(P(B)\) — полную вероятность положительного теста: \(P(B) = P(B|A) \cdot P(A) + P(B|\neg A) \cdot P(\neg A)\) \(P(B) = 0.99 \cdot 0.01 + 0.05 \cdot 0.99\) \(P(B) = 0.0099 + 0.0495 = 0.0594\)

Теперь используем формулу Байеса:

\(P(A|B) = \dfrac{P(B|A) \cdot P(A)}{P(B)}\)

\(P(A|B) = \dfrac{0.99 \cdot 0.01}{0.0594}\)

\(P(A|B) = \dfrac{0.0099}{0.0594} \approx 0.1667\)

Таким образом, вероятность того, что человек болен при условии, что тест положительный, составляет приблизительно 0.167, или 16.67%.

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

Python

from abc import ABC, abstractmethod

# Создаем абстрактный класс для работы с формулой Байеса
class BayesFormula(ABC):
    def __init__(self, prob_a, prob_b_given_a, prob_b_given_not_a):
        self.prob_a = prob_a  # Вероятность события A
        self.prob_b_given_a = prob_b_given_a  # Вероятность события B при условии A
        self.prob_b_given_not_a = prob_b_given_not_a  # Вероятность события B при условии не A

    @abstractmethod
    def calculate_posterior(self):
        pass

# Конкретная реализация класса для формулы Байеса
class BayesCalculator(BayesFormula):
    def calculate_posterior(self):
        # Вычисляем полную вероятность события B
        total_prob_b = self.prob_b_given_a * self.prob_a + self.prob_b_given_not_a * (1 - self.prob_a)
        # Вычисляем вероятность события A при условии B по формуле Байеса
        posterior = (self.prob_b_given_a * self.prob_a) / total_prob_b
        return posterior

# Пример использования интерфейса для вычисления вероятности болезни при положительном тесте
if __name__ == "__main__":
    # Дано:
    prob_disease = 0.01  # Вероятность болезни в популяции
    prob_positive_given_disease = 0.99  # Вероятность положительного теста у больного человека
    prob_positive_given_no_disease = 0.05  # Вероятность положительного теста у здорового человека

    # Создаем объект класса BayesCalculator с заданными вероятностями
    bayes = BayesCalculator(prob_disease, prob_positive_given_disease, prob_positive_given_no_disease)

    # Вычисляем вероятность болезни при положительном тесте
    posterior_probability = bayes.calculate_posterior()

    # Выводим результат
    print("Вероятность того, что человек болен при положительном тесте:", posterior_probability)

В этой версии примера использован интерфейс для работы с формулой Байеса. Создан абстрактный класс BayesFormula, содержащий абстрактный метод calculate_posterior(), который должен быть реализован в конкретных классах. Затем создан конкретный класс BayesCalculator, который наследует абстрактный класс BayesFormula и реализует метод calculate_posterior() для вычисления вероятности события A при условии B по формуле Байеса.