В чем разница между вероятностью и правдоподобием в статистике?

«В чем разница между вероятностью и правдоподобием в статистике?» — вопрос из категории Статистика и теория вероятностей, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Правдоподобие (Likelihood) — это функция от параметров модели при фиксированных наблюдаемых данных. Она показывает, насколько правдоподобны те или иные значения параметров, учитывая то, что мы уже увидели.

Ключевое отличие:

  • Вероятность: P(Данные | Параметры) — «Какова вероятность увидеть эти данные, если параметры такие-то?»
  • Правдоподобие: L(Параметры | Данные) — «Насколько правдоподобны эти параметры, если мы увидели такие данные?»

Практический пример на Python: Допустим, мы подбрасываем монету 10 раз и получаем 7 орлов. Мы хотим оценить параметр p — вероятность выпадения орла.

import numpy as np
from scipy.stats import binom
import matplotlib.pyplot as plt

# Наши фиксированные данные: 7 успехов из 10 попыток
k, n = 7, 10

# Рассчитаем вероятность получить наши данные для разных гипотез о p
p_values = np.linspace(0, 1, 100)
likelihoods = binom.pmf(k, n, p_values)  # Это именно правдоподобие!

# Построим график функции правдоподобия
plt.plot(p_values, likelihoods)
plt.xlabel('Вероятность орла (p)')
plt.ylabel('Правдоподобие L(p | k=7, n=10)')
plt.title('Функция правдоподобия для биномиального эксперимента')
plt.grid(True)
plt.show()

# Максимум правдоподобия (MLE) будет при p = 0.7
mle = p_values[np.argmax(likelihoods)]
print(f"Оценка максимального правдоподобия (MLE) для p: {mle:.2f}")

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