Параметрический подбор кривой

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

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

данные = детерминированный компонент + случайный компонент

Детерминированный компонент задается параметрической моделью, и случайный компонент часто описывается как ошибка, связанная с данными:

данные = параметрическая модель + ошибка

Модель является функцией независимой (предикторной) переменной и одного или нескольких коэффициентов. Ошибка представляет случайные изменения в данных, которые следуют за определенным распределением вероятностей (обычно Гауссовым). Изменения могут быть получены из многих различных источников, но всегда присутствуют на некотором уровне, когда вы имеете дело с измеренными данными. Систематические изменения также могут существовать, но они могут привести к подобранной модели, которая плохо представляет данные.

Коэффициенты модели часто имеют физическую значимость. Для примера предположим, что вы собрали данные, которые соответствуют одному режиму распада радиоактивного нуклида, и вы хотите оценить период полураспада (T 1/2) распада. Закон радиоактивного распада утверждает, что активность радиоактивного вещества распадается экспоненциально по времени. Поэтому модель для использования в подгонке задается как

y=y0eλt

где y 0 - количество ядер в момент времени t = 0, и Данные могут быть описаны как

data=y0eλt+ошибка

И y 0, и Поскольку <reservedrangesplaceholder0> 1/2 = ln (2)/λ, подогнанное значение распада постоянные выражения подогнанный период полураспада. Однако, поскольку данные содержат некоторую ошибку, детерминированный компонент уравнения не может быть определен точно из данных. Поэтому коэффициенты и вычисление периода полураспада будут иметь некоторую неопределенность, связанную с ними. Если неопределенность приемлема, вы делаете подгонку данных. Если неопределенность не приемлема, тогда вам, возможно, придется предпринять шаги, чтобы уменьшить ее либо путем сбора большего количества данных, либо путем уменьшения ошибки измерения и сбора новых данных и повторения модели подгонки.

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

Параметрические модели библиотеки Curve Fitting Toolbox™ описаны в следующих разделах.

Интерактивный выбор типа модели

Выберите тип модели для подгонки из выпадающего списка в приложении Аппроксимирование Кривыми.

Какие типы подгонки можно использовать для кривых или поверхностей? На основе выбранных данных в списке категорий подгонки отображаются категории кривых или поверхностей. В следующей таблице описаны опции для кривых и поверхностей.

Категория подгонкиКривыеПоверхности
Regression Models
ПолиномДа (до 9 степени)Да (до степени 5)
ЭкспоненциалДа 
ФурьеДа 
ГауссовскийДа 
СтепеньДа 
РациональныйДа 
Сумма синусаДа 
WeibullДа 
Interpolation
InterpolantДа
Методы:
Ближайшая соседка
Линейный
Кубический
Сохранение формы (PCHIP)
Да
Методы:
Ближайшая соседка
Линейный
Кубический
Biharmonic
Тонкопластинчатый сплайн
Smoothing
Сглаживание сплайнаДа 
Lowess Да
Custom
Пользовательское уравнениеДаДа
Настраиваемый линейный подбор кривой Да

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

Совет

Если у вашей подгонки есть проблемы, сообщения на панели Results помогают вам идентифицировать лучшие параметры.

Выбор параметров подгонки

Приложение Аппроксимирование Кривыми предоставляет выбор типов подгонки и настроек, которые можно изменить, чтобы попытаться улучшить подгонку. Сначала попробуйте значения по умолчанию, а затем экспериментируйте с другими настройками.

Обзор использования доступных опций подгонки см. в разделе Определение опций подгонки и Оптимизированные начальные точки.

Можно попробовать различные настройки в пределах одного рисунка, а также можно создать несколько подгонок для сравнения. Когда вы создаете несколько подгонок, можно сравнить различные типы подгонки и настройки один за другим в приложении Аппроксимирование Кривыми. См. «Создать несколько подгонок в приложении Аппроксимирование Кривыми».

Программный выбор типа модели

Имя модели библиотеки можно задать как строку, когда вы вызываете fit функция. Например, чтобы задать квадратичное poly2:

f = fit( x, y, 'poly2' )

Смотрите Список библиотечных моделей для Curve и Surface Fitting, чтобы просмотреть все доступные имена библиотечных моделей.

Вы также можете использовать fittype функция для создания fittype объект для модели библиотеки и используйте fittype как вход в fit функция.

Используйте fitoptions функция, чтобы узнать, какие параметры можно задать, например:

fitoptions(poly2)

Для примеров смотрите разделы для каждого типа модели, перечисленные в таблице в Интерактивный выбор типа модели. Для получения дополнительной информации обо всех функциях для создания и анализа моделей смотрите Curve и Surface Fitting.

Использование нормализации или центра и масштаба

Большинство типов моделей в приложении Аппроксимирование Кривыми разделяют опцию Center and scale. Когда вы выбираете эту опцию, инструмент привязывается с данными, центрированными и масштабированными, путем применения Normalize установка переменных. В командной строке можно использовать Normalize как входной параметр к fitoptions функция. См. fitoptions страница с описанием.

Как правило, рекомендуется нормализовать входы (также известные как данные предиктора), что может облегчить числовые задачи с переменными разной шкалы. Например, предположим, что входами подгонки поверхности являются скорость вращения двигателя с областью значений 500-4500 р/мин и процент нагрузки двигателя с областью значений 0-1. Затем Center and scale обычно улучшает подгонку из-за большого различия в шкале между двумя входами. Однако, если ваши входы в тех же модулях измерения или аналогичной шкале (например, восток и север для географических данных), то Center and scale менее полезно. Когда вы нормализуете входы с помощью этой опции, значения подобранных коэффициентов изменяются по сравнению с исходными данными.

Если вы подбираете кривую или поверхность для оценки коэффициентов, или коэффициенты имеют физическую значимость, снимите флажок Center and scale. Графики приложения Аппроксимирование Кривыми используют исходную шкалу с опцией Center and scale или без.

В командной строке, чтобы задать центр опции и масштабировать данные перед подбором кривой, создайте структуру опций аппроксимации по умолчанию, установите Normalize на on, затем подгонка с опциями:

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

load census
f1 = fit(cdate,pop,'poly3',options)

Определение опций подгонки и оптимизированных начальных точек

Сведения об опциях подгонки

Интерактивные опции подгонки описаны в следующих разделах. Чтобы программно задать те же опции подгонки, смотрите «Задание опций подгонки в командной строке».

Чтобы задать опции подгонки в интерактивном режиме в приложении Аппроксимирование Кривыми, нажмите кнопку Fit Options, чтобы открыть диалоговое окно Опции подгонки. Все категории подгонки, кроме интерполяции и сглаживания сплайнов, имеют конфигурируемые опции подгонки.

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

  • Все опции, описанные далее, доступны для нелинейных моделей.

  • Ограничения Нижнего и Верхнего коэффициентов являются единственными опциями аппроксимации, доступными в диалоговом окне для полиномиальных линейных моделей. Для полиномов можно задать Robust в приложении Аппроксимирование Кривыми, не открывая диалоговое окно Опции.

  • Непараметрические типы подгонки не имеют дополнительного диалогового окна опций подгонки (интерполяция, сглаживание сплайна и lowess).

Опции аппроксимации для однократной экспоненциальной показаны далее. Начальные значения коэффициентов и ограничения предназначены для данных переписи.

Метод и алгоритм аппроксимации

  • Method - Метод аппроксимации.

    Метод автоматически выбирается на основе библиотеки или пользовательской модели, которую вы используете. Для линейных моделей метод является LinearLeastSquares. Для нелинейных моделей метод является NonlinearLeastSquares.

  • Robust - Укажите, использовать ли устойчивый метод аппроксимации методом наименьших квадратов.

    • Off - не использовать устойчивую аппроксимацию (по умолчанию).

    • On - Подгонка с робастным методом по умолчанию (веса bisquare).

    • LAR - подгонка путем минимизации наименее абсолютнейшие невязки (LAR).

    • Bisquare - Подгонка путем минимизации суммированного квадрата невязок, и уменьшения веса выбросов с помощью весов bisquare. В большинстве случаев это лучший выбор для робастного подбора кривой.

  • Algorithm - Алгоритм, используемый для процедуры аппроксимации:

    • Доверительная область - это алгоритм по умолчанию, и он должен использоваться, если вы задаете ограничения Нижнего или Верхнего коэффициентов.

    • Левенберг-Марквардт - Если алгоритм доверительной области не дает разумной подгонки, и у вас нет ограничений коэффициентов, попробуйте алгоритм Левенберга-Марквардта.

Параметры конечного дифференцирования

  • DiffMinChange - Минимальное изменение коэффициентов для конечного различия якобианов. Значение по умолчанию является 10-8.

  • DiffMaxChange - Максимальное изменение коэффициентов для конечного различия якобианов. Значение по умолчанию является 0,1.

Обратите внимание, что DiffMinChange и DiffMaxChange применяются к:

  • Любое нелинейное пользовательское уравнение, то есть нелинейное уравнение, которое вы записываете

  • Некоторые нелинейные уравнения, предоставленные программным обеспечением Curve Fitting Toolbox

Однако DiffMinChange и DiffMaxChange не применяются к каким-либо линейным уравнениям.

Подбор критериев сходимости

  • MaxFunEvals - Максимально допустимое количество вычислений функции (модели). Значение по умолчанию является 600.

  • MaxIter - максимально допустимое количество итераций аппроксимации. Значение по умолчанию является 400.

  • TolFun - допуск на прекращение, используемый для условий остановки с использованием значения функции (модели). Значение по умолчанию является 10-6.

  • TolX - допуск на прекращение, используемый для условий остановки с участием коэффициентов. Значение по умолчанию является 10-6.

Параметры коэффициента

  • Coefficients - Устанавливаются символы для неизвестных коэффициентов.

  • StartPoint - Начальные значения коэффициента. Значения по умолчанию зависят от модели. Для рациональных, Weibull и пользовательских моделей значения по умолчанию выбираются случайным образом в области значений [0,1]. Для всех других нелинейных библиотечных моделей начальные значения зависят от набора данных и вычисляются эвристически. См. оптимизированные начальные точки ниже.

  • Lower - нижние границы установленных коэффициентов. Инструмент использует только границы с алгоритмом аппроксимации доверительной области. Нижние границы по умолчанию для большинства библиотечных моделей -Inf, что указывает, что коэффициенты являются без ограничений. Однако несколько моделей имеют конечные нижние границы по умолчанию. Для примера у Гауссов параметр ширины ограничен так, что он не может быть меньше 0. См. ограничения по умолчанию ниже.

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

Для получения дополнительной информации об этих опциях подгонки смотрите lsqcurvefit функция в документации Optimization Toolbox™.

Оптимизированные начальные точки и ограничения по умолчанию

Начальные точки коэффициентов по умолчанию и ограничения для библиотечных и пользовательских моделей показаны в следующей таблице. Если начальные точки оптимизированы, они вычисляются эвристически на основе текущего набора данных. Случайные начальные точки заданы на интервале [0,1], и линейные модели не требуют начальных точек.

Если модель не имеет ограничений, коэффициенты не имеют ни нижней границы, ни верхней границы. Можно переопределить начальные точки и ограничения по умолчанию, задав свои собственные значения в диалоговом окне Опции подгонки (Fit Options).

Начальные точки и ограничения по умолчанию

Модель

Начальные точки

Ограничения

Настраиваемая линейная

Н/Д

Ничего

Настраиваемая нелинейная

Случайный

Ничего

Экспоненциал

Оптимизированный

Ничего

Фурье

Оптимизированный

Ничего

Гауссовский

Оптимизированный

c i > 0

Полином

Н/Д

Ничего

Степень

Оптимизированный

Ничего

Рациональный

Случайный

Ничего

Сумма синуса

Оптимизированный

b i > 0

Weibull

Случайный

a, b> 0

Обратите внимание, что сумма синусов и моделей ряда Фурье особенно чувствительны к начальным точкам, и оптимизированные значения могут быть точными только для нескольких членов в связанных уравнениях.

Задание опций подгонки в командной строке

Создайте структуру опций подгонки по умолчанию и установите для опции центр и масштабирование данных перед подбором кривой:

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

Изменение структуры опций подгонки по умолчанию полезно, когда вы хотите задать Normalize, Exclude, или Weights поля, а затем подгонка данных с помощью тех же опций с различными методами подгонки. Для примера:

load census
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicsp',options);

Зависящие от данных опции подгонки возвращаются в третьем выходном аргументе fit функция. Для примера параметр сглаживания для сглаживания сплайна зависит от данных:

[f,gof,out] = fit(cdate,pop,'smooth');
smoothparam = out.p
smoothparam =
    0.0089

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

options = fitoptions('Method','Smooth','SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'smooth',options);

Для получения дополнительной информации об использовании параметров подгонки см. fitoptions страница с описанием.