Сглаживающий сплайн

Материал из testwiki
Перейти к навигации Перейти к поиску

Сглаживающий сплайн (Шаблон:Lang-en) — оценка функции f̂(x), полученная из набора зашумлённых наблюдений yi за исходными данными f(xi) и используемая в дальнейших вычислениях для балансировки адекватности модели функции f̂(xi) к yi с основанной на производной мере кривизной функции f̂(x). Иными словами, сглаживающий сплайн является важным средством при работе с зашумленными данными типа xi, yi. Наиболее известным видом сглаживающего сплайна является кубический сплайн.

Определение кубического сплайна

Пусть (xi,Yi);x1<x2<…<xn,i∈ℤ — последовательность наблюдений, порождённых выражением Yi=μ(xi). Приближение сглаживающими сплайнами μ̂ функции μ определяется как функция (в классе дважды дифференцируемых функций), минимизирующая[1]

∑i=1n(Yi−μ̂(xi))2+λ∫x1xnμ̂″(x)2dx.

Замечания:

  1. λ≥0 параметр сглаживания, контролирующий соотношение между точностью воспроизведения данных и «неровностью» аппроксимирующей функции.
  2. интеграл вычисляется по всему диапазону xi.
  3. при λ→0 (нет сглаживания), сглаживающий сплайн превращается в интерполяционный сплайн.
  4. при λ→∞ (бесконечное сглаживание), штраф за неровность становится преобладающим и аппроксимация превращается в линейную МНК аппроксимацию.
  5. наиболее часто в современной статистической литературе используется штраф за неровность на основе второй производной, однако метод может быть легко адаптирован к использованию штрафов на основе других производных.
  6. в ранней литературе, с равноудалёнными xi, для вычисления штрафа вместо производной использовались конечные разности второго и третьего порядка.
  7. если сумму квадратов отклонений сплайна от исходных данных (первый член функционала) заменить на логарифм функции правдоподобия, получим оценку максимального правдоподобия со штрафной функцией. В такой постановке обычный сглаживающий сплайн представляет собой специальный случай, когда правдоподобие рассчитывается исходя из нормального распределения погрешности.

Вывод кубического сглаживающего сплайна

Шаблон:Стиль раздела Разделим нахождение выражений, описывающих сглаживающий сплайн, на два этапа:

  1. Сначала найдём значения μ̂(xi);i=1,…,n.
  2. Из этих значений найдём μ̂(x) для всех x.

Начнём со второго этапа:

Дан вектор m̂=(μ̂(x1),…,μ̂(xn))T «подогнанных» значений; сумма квадратов в критерии сплайна — константа. Требуется только минимизировать ∫μ̂″(x)2dx, и минимизация — натуральный кубический сплайн, интерполирующий точки (xi,μ̂(xi)). Данный интерполяционный сплайн — линейный оператор — может быть представлен в виде:

μ̂(x)=∑i=1nμ̂(xi)fi(x),

где fi(x) — набор базисных сплайн-функций. В результате штраф за отсутствие у функции признака гладкости имеет форму

∫μ̂″(x)2dx=m̂TAm̂,

где элементы A — ∫fi″(x)fj″(x)dx. Базисные функции и матрица A зависят от конфигурации независимых переменных xi, но не от Yi или m̂.

Возвращаясь к первому этапу, взвешенная сумма квадратов может быть записана так:

‖Y−m̂‖2+λm̂TAm̂,

где Y=(Y1,…,Yn)T. минимизация по m̂ даёт

m̂=(I+λA)−1Y.

Создание многомерных сплайнов

Из приведённого ограничения на формулу из определения x1<x2<…<xn следует, что алгоритм не работает для произвольного набора данных. Если планируется использование алгоритма для произвольного набора точек в многомерном пространстве необходим алгоритм, в котором нет таких ограничений. Возможное решение заключается во введении параметра таким образом, что входные данные могут быть представлены как одномерные функции, зависящие от данного параметра; после можно применить сглаживание для каждой функции. В двумерном пространстве решение состоит в параметризации x и y как x(t) and y(t) где t1<t2<…<tn. Подходящее решение для t это накопленное расстояние ti+1=ti+(xi+1−xi)2+(yi+1−yi)2 где t1=0.[2][3]

Более детальный анализ параметризации выполнен E.T.Y Lee.[4]

Связанные методы

Сглаживающие сплайны имеют отношение, но отличаются от:

Исходный код

Исходный код для сглаживающих сплайнов может быть взят из примеров к книге Carl de Boor’s A Practical Guide to Splines. Примеры написаны на Фортране. Обновлённые исходные коды также доступны на официальном сайте Carl de Boor’s [1].

Примечания

Шаблон:Примечания

Литература

Шаблон:Кривые Шаблон:Rq