Что такое метод максимального правдоподобия (MLE)?

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

Ответ

Метод максимального правдоподобия (MLE) — это принцип оценки параметров статистической модели. Мы находим такие значения параметров, при которых наблюдаемые данные были бы наиболее вероятными (имели бы максимальную «правдоподобность»).

Формально: Для модели с параметрами θ и наблюдаемых данных X, оценка максимального правдоподобия θ̂ находится как: θ̂ = argmax L(θ|X) = argmax P(X|θ), где L(θ|X) — функция правдоподобия.

Почему он важен:

  • Асимптотические свойства: При больших объемах данных MLE-оценки являются несмещенными, состоятельными и эффективными (имеют наименьшую возможную дисперсию).
  • Универсальность: Применим к огромному классу моделей (линейная регрессия, GLM, смеси распределений).

Пример: Оценка параметра λ экспоненциального распределения.

import numpy as np
from scipy.optimize import minimize_scalar

# Генерируем данные из экспоненциального распределения с λ = 0.5 (scale = 2)
true_lambda = 0.5
data = np.random.exponential(scale=1/true_lambda, size=1000)

# Функция правдоподобия для эксп. распределения: L(λ) = Π λ * exp(-λ * x_i)
# Логарифмируем для удобства (логарифм — монотонная функция, максимум тот же).
# Log-L(λ) = n*log(λ) - λ * Σ x_i
n = len(data)
sum_x = np.sum(data)

# Определяем отрицательное лог-правдоподобие (минимизируем его)
def neg_log_likelihood(lambda_param):
    if lambda_param <= 0:
        return np.inf
    return - (n * np.log(lambda_param) - lambda_param * sum_x)

# Находим минимум (максимум правдоподобия)
result = minimize_scalar(neg_log_likelihood, bounds=(0.001, 10), method='bounded')
estimated_lambda = result.x

print(f"Истинный λ: {true_lambda:.3f}")
print(f"Оценка MLE для λ: {estimated_lambda:.3f}")  # Будет близко к 0.5
print(f"Аналитическое решение (n / Σ x_i): {n / sum_x:.3f}")  # Проверка

Связь с машинным обучением: Минимизация функции потерь (например, MSE в линейной регрессии при нормальности ошибок) эквивалентна максимизации правдоподобия.