Если ваши данные являются шумными, вы можете хотеть соответствовать им с помощью сплайна сглаживания. Также можно использовать один из методов сглаживания, описанных в Фильтрации и Сглаживании Данных.
Сплайн сглаживания s создается для заданного параметра сглаживания p и заданных весов wi. Сплайн сглаживания минимизирует
Если веса не заданы, они приняты, чтобы быть 1 для всех точек данных.
p задан между 0 и 1. p = 0 производит наименьшие квадраты прямолинейная подгонка к данным, в то время как p = 1 производит кубический сплайн interpolant. Если вы не задаете параметр сглаживания, он автоматически выбран в “интересной области значений”. Интересная область значений p часто является близким 1 / (1+h3/6), где h является средним интервалом точек данных, и это обычно намного меньше, чем позволенная область значений параметра. Поскольку сглаживающие сплайны имеют связанный параметр сглаживания, вы можете полагать, что эти подгонки являются параметрическими в этом смысле. Однако сглаживающие сплайны являются также кусочными полиномами как кубический сплайн или сохранение формы interpolants и рассматриваются непараметрическим подходящим типом в этом руководстве.
Алгоритм сплайна сглаживания основан на функции csaps
.
Ядерные данные о реакции из файла carbon12alpha.mat показывают здесь с тремя подгонками сплайна сглаживания. Параметр сглаживания значения по умолчанию (p = 0.99) производит самую сглаженную кривую. Кубическая сплайновая кривая (p = 1) проходит все точки данных, но не совсем как сглаженная. Третья кривая (p = 0.95) пропускает данные большим отрывом и иллюстрирует, насколько маленький “интересная область значений” p может быть.
В приложении Curve Fitting выберите Smoothing Spline
из списка типов модели.
Можно задать следующие опции:
Чтобы сделать более сглаженную подгонку далее из данных, нажимайте кнопку < Smoother неоднократно, пока график не показывает гладкость, которую вы хотите.
Чтобы сделать более грубую подгонку ближе к данным, нажмите кнопку Rougher >, пока вы не будете удовлетворены графиком.
Также задайте любое значение от 0 до 1 для параметра сглаживания. 0 производит линейную аппроксимацию полиномом (наименьшие квадраты прямолинейная подгонка к данным), в то время как 1 производит кусочную подгонку кубического полинома, которая проходит через все точки данных (кубический сплайн interpolant).
Нажмите Default, чтобы возвратиться к начальному значению. Тулбокс пытается выбрать значение по умолчанию, подходящее для ваших данных. Займитесь Сглаживанием Сплайнов.
Например:
Загрузите данные в о Сглаживании Сплайнов путем ввода:
load carbon12alpha
В приложении Curve Fitting выберите angle
for X data и counts
for Y data.
Выберите тип подгонки Smoothing Spline
.
Попытайтесь сглаживать значения параметров 1
, 0.95
и значение по умолчанию (0.99).
fit
Этот пример показывает, как использовать функцию fit
, чтобы соответствовать модели сплайна сглаживания к данным.
Соответствуйте модели сплайна сглаживания
Загрузите данные и соответствуйте модели сплайна сглаживания путем определения 'smoothingspline'
при вызывании подходящей функции.
load enso f = fit(month,pressure,'smoothingspline'); plot(f,month,pressure)
Представление расчетный параметр сглаживания
Создайте модель снова и используйте третий выходной аргумент, чтобы просмотреть расчетный параметр сглаживания. Параметр сглаживания является значением p
в структуре out
. Значение по умолчанию зависит от набора данных.
[f,gof,out] = fit(month,pressure,'smoothingspline');
out.p
ans = 0.9000
Задайте Параметр Сглаживания с помощью 'SmoothingParam'
Задайте параметр сглаживания для новой подгонки с опцией 'SmoothingParam'
. Его значение должно быть между 0 и 1.
f = fit(month,pressure,'smoothingspline','SmoothingParam',0.07); plot(f,month,pressure)
Задайте Параметр Сглаживания с помощью fitoptions
Также используйте fitoptions
, чтобы задать параметр сглаживания перед подбором кривой.
options = fitoptions('Method','Smooth','SmoothingParam',0.07); [f,gof,out] = fit(month,pressure,'smooth',options); out.p
ans = 0.0700
Для альтернативы 'smoothingspline'
можно использовать csaps кубическую функцию сплайна сглаживания или другие функции сплайна, которые позволяют большее управление тем, что можно создать. Займитесь Сплайнами в Curve Fitting Toolbox.
Этот пример соответствует некоторым данным с помощью кубического сплайна interpolant и нескольких сплайнов сглаживания.
Создайте переменные в своей рабочей области:
x = (4*pi)*[0 1 rand(1,25)]; y = sin(x) + .2*(rand(size(x))-.5);
Откройте приложение Curve Fitting путем ввода:
cftool
Выберите x
и y
из списков Y data и X data.
Приложение Curve Fitting соответствует и отображает данные на графике.
Соответствуйте данным кубическим сплайном interpolant путем выбора типа подгонки Interpolant и Cubic
Method.
Приложение Curve Fitting соответствует и строит кубический сплайн interpolant.
Введите cubicsp
Fit name.
Просмотрите панель Results. Статистические данные качества подгонки, такие как RMSE не заданы (показавший NaN
) для interpolants.
Интерполяция кубическим сплайном задана как кусочный полином, который приводит к структуре коэффициентов (p
). Количество “частей” в структуре является тем меньше, чем количество подходящих точек данных, и количество коэффициентов для каждой части равняется четырем, потому что полиномиальная степень равняется трем. Можно исследовать содействующую структуру p
, если вы экспортируете свою подгонку к рабочей области (например, введите
). Для получения информации о структуре коэффициентов смотрите Построение и Работу со Сплайнами ppform.fitname.p
Создайте другую подгонку, чтобы выдержать сравнение. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘cubicsp’.
Соответствуйте данным сплайном сглаживания путем выбора Smoothing Spline.
Уровень гладкости дан Параметром Сглаживания. Значение по умолчанию, сглаживающее значение параметров, зависит от набора данных и автоматически вычисляется тулбоксом.
Для этого набора данных параметр сглаживания значения по умолчанию близко к 1, указывая, что сплайн сглаживания является почти кубическим и очень близко подходит к прохождению через каждую точку данных.
Назовите значение по умолчанию, сглаживающее подгонку параметра Smooth1
. Если вам не нравится уровень сглаживания произведенного параметром сглаживания значения по умолчанию, можно задать любое значение от 0 до 1. 0 производит линейную аппроксимацию полиномом, в то время как 1 производит кусочную подгонку кубического полинома, которая проходит через все точки данных.
Числовые результаты для подгонки сплайна сглаживания показывают здесь.
В целях сравнения создайте другую подгонку сплайна сглаживания. Щелкните правой кнопкой по своей подгонке по Table of Fits и выберите Duplicate ‘smooth1’. Измените параметр сглаживания на 0.5
и назовите подходящий Smooth2
.
Сравните графики для своих трех подгонок. Исследуйте подходящее поведение вне пределов данных путем увеличения шкалы абсциссы по умолчанию. Вы изменяете пределы осей с пунктом меню Tools> Axes Limit Control.
Ваши результаты зависят от случайных стартовых точек и могут отличаться от описанных.
Обратите внимание на то, что параметр сглаживания значения по умолчанию производит кривую, которая более сглаженна, чем interpolant, но является подходящим вариантом для данных. В этом случае уменьшение параметра сглаживания от значения по умолчанию производит кривую, которая более сглаженна все еще, но не является подходящим вариантом к данным. Когда параметр сглаживания увеличивается вне значения по умолчанию, связанная кривая приближается к кубическому сплайну interpolant. Кубический сплайн и сплайн сглаживания значения по умолчанию подобны для внутренних точек, но отличаются в конечных точках.