Расчет фигуры хубера

Забудьте про скучные формулы! Расчет фигуры хубера теперь понятен каждому. Разбираем магию формы на пальцах и с удовольствием.

05 мая 2026 — В мире анализа данных, робастной статистики и машинного обучения термин «фигура Хубера» (Huber shape) употребляется в двух близких, но разных контекстах:

  1. геометрическое тело, возникающее при построении функции потерь Хубера;
  2. область доверительной оценки параметров в задаче робастной линейной регрессии.

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


Что такое «фигура Хубера»?

1.1 Историческая справка

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

Lδ(r) =

    r²/2, если |r| ≤ δ;

    δ|r| – δ²/2, если |r| > δ.

1.2 Геометрическая интерпретация

Если рассматривать параметрическое пространство линейной регрессии (β₀, β₁), то линии уровня функции потерь Хубера образуют гладкую выпуклую фигуру, которая:

  • во внутренней области (|r| ≤ δ) имеет форму эллипсоида (квадратичная часть);
  • во внешней области превращается в «полилинейный конус» (линейная часть).

Именно эта сложная замкнутая поверхность в ℝⁿ и называется фигурой Хубера.


Математическая постановка задачи

2.1 Линейная модель

Дано: обучающая выборка {(xᵢ, yᵢ)}, i = 1..m, xᵢ ∈ ℝⁿ, yᵢ ∈ ℝ.

Линейная регрессия: ŷ = Xβ, где β = (β₀, β₁, …, βₙ)ᵀ.

Остатки: r = y – Xβ.

2.2 Функция потерь

J(β) = Σ Lδ(rᵢ) → min

2.3 Критерий останова

Обычно используют итеративный взвешенный least squares (IRLS):

  1. Инициализировать β(0) (например, OLS-оценкой).
  2. Повторять до сходимости ||β(k+1) – β(k)||<ε:
    • вычислить веса wᵢ = ψ(rᵢ/δ)/(rᵢ/δ);
    • β(k+1) = (XᵀWX)⁻¹XᵀWy, где W = diag(wᵢ).

Геометрический смысл

На каждой итерации IRLS аппроксимирует фигуру Хубера локальным эллипсоидом, заданным матрицей весов W.


Как рассчитать объем и «площадь» фигуры Хубера

3.1 Случай n = 2 (β₀, β₁)

Для двумерного параметрического пространства фигура выглядит как «плоский» эллипс, переходящий в ромбоидальные «лучи». Её площадь можно оценить численно:

  • Задать сетку точек β в диапазоне ±3σ от OLS-оценки.
  • Для каждой точки вычислить J(β).
  • Изолиния J(β) = c задаёт контур фигуры.
  • Использовать формулу площади по полигону (метод трапеций или Монте-Карло).

3.2 Случай n > 2

Для n-мерного случая фигура, это тело вращения (в обобщённом смысле) с размерностью n. Его объём можно вычислить методом Монте-Карло:

  1. Определить гиперкуб Ω, охватывающий область β, где J(β) < c.
  2. Сгенерировать N равномерно распределённых точек в Ω.
  3. Посчитать долю точек, попавших внутрь фигуры (J(β) ≤ c).
  4. Объём = (доля) × (объём Ω).

На практике N ≈ 10⁵ даёт относительную погрешность ≤ 1 %.


Онлайн-калькуляторы и инструменты

4.1 Геометрические калькуляторы из открытых источников

Ниже сервисы, которые можно адаптировать для расчётов фигуры Хубера:

  • GELEOT;RU — универсальный геометрический калькулятор, позволяющий задавать произвольные формулы объёмов и площадей.
  • Sport-iv — «Калькулятор типа фигуры по замерам»: легко заменить входные данные на координаты β и веса wᵢ.
  • ЭЛ Клиника — онлайн-оценка телосложения; использует тот же принцип взвешенных эллипсов.

4.2 Скрипт на Python (библиотека scipy)

import numpy as np
from scipy.optimize import minimize

def huber(r, delta=1.0):
 return np.where(np.abs(r) <= delta,
 0.5 * r2,
 delta * np.abs(r), 0.5 * delta2)
def J(beta, X, y, delta):
 return huber(y ⎼ X @ beta, delta).sum

m, n = 100, 2
X = np.column_stack([np.ones(m), np.random.randn(m, n-1)])
y = 3*X[:,1] + np.random.randn(m)

res = minimize(J, x0=np.zeros(n), args=(X, y, 1.0))
print("Robust β:", res.x)

Практический пример: робастная линия тренда

Допустим, у нас есть временной ряд цен на нефть с аномальными скачками:

Дата Цена, $
2026-01-01 75.2
2026-01-02 77.8
2026-01-03 120.5
2026-01-04 76.1

OLS бы «потянул» линию вверх из-за выброса, а робастная оценка Хубера, нет.

Алгоритм:

  1. Загрузить данные.
  2. Запустить IRLS с δ = 1.345 (значение, рекомендованное Хубером).
  3. Визуализировать контур фигуры Хубера в плоскости β₀, β₁.

Частые вопросы

❓ Как выбрать параметр δ?

Можно использовать кросс-валидацию или правило «1.345 × σrobust» (MAD).

❓ Можно ли применять для мультиколлинеарных данных?

Да, но лучше предварительно сделать SVD-понижение размерности.

❓ Есть ли аналоги?

Функции Тьюки, Коши, Hampel — более «тяжёлые» в хвостах, но требуют второго параметра.


Фигура Хубера — это не только абстрактное геометрическое тело, но и практический инструмент робастного анализа. Умение её вычислять и визуализировать позволяет:

  • контролировать влияние выбросов;
  • оценивать устойчивость регрессионных коэффициентов;
  • строить доверительные интервалы, не раздувая их из-за аномалий.

Код и калькуляторы, приведённые выше, дадут старт как начинающим специалистам, так и опытным исследователям.

Дополнительные ресурсы

  • R-пакет «huber»
  • Книга P. J. Huber «Robust Statistics», 2-е изд., 2024.

© 2026, Геометрический отдел Руниверсалис