Предсказание случайной величины

В реальном мире многие процессы описываются случайными величинами – величинами, значение которых меняется в результате
неопределённых факторов. Предсказание таких величин является одной из центральных задач
статистики, теории вероятностей и машинного обучения. В статье рассмотрим основные понятия,
которые нужны для построения предиктивных моделей, а также современные подходы к
предсказанию случайных величин.

Что такое случайная величина?

Случайная величина X – это функция, сопоставляющая каждому элементу элементарного
исхода Ω числовое значение. В зависимости от типа распределения различают:

  • Дискретные случайные величины – принимают конечное или счётное множество значений
    (например, количество очков при броске кубика).
  • Непрерывные случайные величины – принимают любые значения из отрезка
    (например, время обслуживания в очереди).

Для любой случайной величины определяются её характеристики положения и
характеристики рассеяния:

1.1 Математическое ожидание (среднее)

Математическое ожидание μ = E[X] – центр тяжести распределения. Для дискретной
величины:

μ = Σ x_i · p_i,

где x_i – возможные значения, p_i – их вероятности.

1.2 Дисперсия и стандартное отклонение

Дисперсия измеряет разброс значений относительно среднего:

Var(X) = σ² = E[(X‑μ)²] = Σ (x_i‑μ)²·p_i.

Стандартное отклонение σ = √Var(X) имеет ту же размерность, что и сама величина.

1.3 Моменты высших порядков

Центральный момент порядка k определяется как μ_k = E[(X‑μ)^k].
Четвёртый момент (кюрит) показывает «тяжесть хвостов» распределения.

Почему предсказывать случайную величину?

Знание будущего значения X позволяет принимать более эффективные решения в
различных областях:

  1. Финансы – прогноз цены акций, риск‑менеджмент.
  2. Техника – предсказание нагрузки на серверы, отказов оборудования.
  3. Экономика – оценка спроса, планирование производства.
  4. Медицина – предсказание уровня гормонов, вероятности осложнений.

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

Классические подходы к предсказанию

3.1 Аналитические методы

  • Метод моментов – подгонка параметров распределения под известные моменты
    (мат. ожидание, дисперсия и т.д.).
  • Метод максимального правдоподобия (ММП) – поиск параметров, которые делают
    наблюдаемые данные наиболее вероятными.
  • Метод обратного преобразования (см. Преобразование Н. В. Смирнова) –
    позволяет генерировать случайные величины с заданным распределением, что полезно
    при симуляции и оценке прогноза.

3.2 Статистические модели

Если у нас есть наблюдения (X₁, X₂, …, Xₙ) в зависимости от времени или от
других факторов, используют:

  • Линейную регрессию – предсказывает E[X|Z] как линейную комбинацию
    признаков Z.
  • ARMA/ARIMA‑модели – автокорреляционные модели для временных рядов.
  • Когортный анализ – оценка условных вероятностей при наличии коваріантных
    факторов.

3.3 Байесовские подходы

Байесовская статистика учитывает априорную информацию о распределении параметров.
Постериорное распределение P(θ|D) (θ – параметры, D – данные) позволяет строить
полные предсказательные распределения, а не только точечные оценки.

Современные методы машинного обучения

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

Метод Краткое описание Тип задачи
Регрессия деревьев решений (Random Forest, Gradient Boosting) Комбинация решающих деревьев, устойчивых к переобучению, умеющих работать с
нелинейными зависимостями.
Точечное предсказание числовой величины.
Нейронные сети (MLP, LSTM, Transformer) Гибкие модели, способные учитывать сложные паттерны и долгосрочные
зависимости (особенно LSTM для временных рядов).
Точечные и распределённые предсказания.
Гауссовские процессы Непараметрический байесовский метод, выдающий предсказательное распределение
(среднее и дисперсию) для любой точки.
Регрессия с оценкой неопределённости.

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

  1. Сбор и подготовка данных:
    • Сбор исторических значений случайной величины X.
    • Выделение факторов (признаков) Z₁, Z₂, …, Zₖ (время, температура,
      экономические индексы и т.д.).
    • Очистка от выбросов, заполнение пропусков.
  2. Анализ распределения:
    • Построить гистограмму, оценить плотность (ядерная оценка).
    • Вычислить математическое ожидание μ и дисперсию σ².
    • Проверить гипотезу о нормальности (тест Шапиро‑Уилка, Колмогорова).
  3. Выбор модели:
    • Если распределение близко к нормальному – линейная регрессия или
      гауссовский процесс.
    • Для нелинейных зависимостей – случайный лес, градиентный бустинг,
      нейронные сети.
  4. Обучение модели:
    • Разделить данные на обучающую и проверочную выборки (например, 80/20).
    • Подобрать гиперпараметры (grid‑search, random‑search, Bayesian optimization).
  5. Оценка качества:
    • Среднеквадратичная ошибка (MSE) – ⟨(X̂‑X)²⟩.
    • Средняя абсолютная ошибка (MAE) – ⟨|X̂‑X|⟩.
    • Для вероятностных моделей – лог‑правдоподобие, CRPS.
  6. Тестирование на новых данных:
    • Проверить, насколько модель устойчива к смене условий (concept drift).
    • При необходимости – переобучить модель.

Пример: предсказание количества очков при броске кубика

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


import numpy as np

data = np.array([4, 1, 6, 3, 5, 2, 6, 1, 4, 5])

p = np.bincount(data, minlength=7)[1:] / len(data) # индексы 1..6
mu = np.sum(np.arange(1,7) * p) # математическое ожидание
sigma2 = np.sum(((np.arange(1,7) ⎻ mu)*2)  p) # дисперсия

print("Оценённые вероятности:", p)
print("Математическое ожидание:", mu) # ≈ 3.5
print("Дисперсия:", sigma2) # ≈ 2.92

Для честного кубика теоретически p_i = 1/6, μ = 3.5, σ² = 35/12 ≈ 2.92.
Если в реальном эксперименте наблюдаются отклонения, их можно использовать
для построения корректирующей модели (например, логистическая регрессия, учитывающая
износ кубика).

Оценка неопределённости предсказания

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

  • Доверительные интервалы – основаны на асимптотическом распределении оценок.
  • Квантили прогностического распределения (для моделей типа
    Gaussian Process или Bayesian Neural Network).
  • Бутстреп – пере‑выборка с заменой для построения эмпирических интервалов.

Практические рекомендации

  • Всегда проверяйте гипотезу о стационарности временных рядов: наличие тенденций
    и сезонности может потребовать дифференцирования (ARIMA) или добавления временных
    признаков.
  • Не забывайте о корреляции между признаками. Высокая мультиколлинеарность
    ухудшает интерпретируемость линейных моделей.
  • Для небольших выборок предпочтительнее простые модели (линейная регрессия,
    метод моментов), так как сложные нейронные сети могут переобучиться.
  • Регулярно мониторьте качество модели в продакшене: метрики могут деградировать
    из‑за изменения внешних условий.
  • Используйте открытые библиотеки: scikit‑learn, statsmodels,
    pymc3, tensorflow / pytorch – они реализуют
    большинство описанных методов.

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

Если у вас остались вопросы или нужна помощь в реализации конкретного прогноза –
обращайтесь, будем рады помочь!