Сравнение подгонок в приложение Аппроксимирование Кривыми

Рабочий процесс интерактивного Аппроксимирования кривыми

Следующие темы подбирают некоторые данные переписи населения, используя полиномиальные уравнения до шестой степени и однократное экспоненциальное уравнение. Шаги демонстрируют, как:

  • Загрузите данные и исследуйте различные подгонки с помощью различных библиотечных моделей.

  • Поиск наилучшей подгонки по:

    • Сравнение результатов графической подгонки

    • Сравнение числовых результатов подгонки, включая подобранные коэффициенты и статистику качества соответствия

  • Экспортируйте свои лучшие результаты подгонки в MATLAB® рабочая область для анализа модели в командной строке.

  • Сохраните сеанс и сгенерируйте код MATLAB для всех подгонок и графиков.

Загрузка данных и создание подгонки

Вы должны загрузить переменные данных в рабочее пространство MATLAB, прежде чем вы сможете подгонять данные с помощью приложения Аппроксимирование Кривыми. В данном примере данные хранятся в файле MATLAB census.mat.

  1. Загрузите данные:

    load census
    

    Рабочая область содержит две новые переменные:

    • cdate - вектор-столбец, содержащая период с 1790 по 1990 годы в 10-летних шагах.

    • pop - это вектор-столбец с населением рисунков США, которые соответствуют годам в cdate.

  2. Откройте приложение Аппроксимирование Кривыми:

    cftool

  3. Выберите имена переменных cdate и pop из X data и Y data списков.

    Приложение Аппроксимирования кривыми создает и строит график подгонки по умолчанию к X входу (или данным предиктора) и Y выхода (или данным отклика). По умолчанию подгонка является линейным типом аппроксимации полиномом. Наблюдайте, как отображаются настройки модели Polynomial, из Degree 1.

  4. Измените подгонку на полином второй степени путем выбора 2 из списка Degree.

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

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

  5. Измените Fit name на poly2.

  6. Отобразить невязки можно путем выбора View > Residuals Plot.

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

  7. Добавьте новые подгонки, чтобы попробовать другие библиотечные уравнения.

    1. Щелкните правой кнопкой мыши подгонку в Table of Fits и выберите Duplicate "poly2"(или используйте Fit меню).

      Совет

      Для подгонок заданного типа (для примера, полиномов) используйте Duplicate "fitname"вместо новой подгонки, поскольку копирование подгонки требует меньшего количества шагов. Дублированная подгонка содержит те же выбор данных и настройки подгонки.

    2. Измените полином Degree на 3 и переименуйте подгонку poly3.

    3. Когда вы подбираете полиномы более высокой степени, на панели результатов отображается следующее предупреждение:

      Equation is badly conditioned. Remove repeated data points
      or try centering and scaling.

      Нормализуйте данные путем установки флажка Центр и шкалу.

    4. Повторите шаги a и b, чтобы добавить аппроксимации полиномом до шестой степени, а затем добавьте экспоненциальную подгонку.

    5. Для каждой новой подгонки смотрите информацию о панели Results и графике невязок в приложении Аппроксимирование Кривыми.

      Невязки от хорошей подгонки должны выглядеть случайным образом без видимого шаблона. Шаблон, такой как склонность к тому, чтобы последовательные невязки имели один и тот же знак, может быть показателем того, что существует лучшая модель.

Сведения о масштабировании

Предупреждение о масштабировании возникает из-за того, что процедура аппроксимации использует cdate значения как базис для матрицы с очень большими значениями. Распространение cdate значения приводят к задаче масштабирования. Чтобы решить эту проблему, можно нормализовать cdate данные. Нормализация масштабирует данные предиктора, чтобы улучшить точность последующих числовых расчетов. Способ нормализации cdate это, чтобы центрировать его в нулевом среднем и масштабировать его до стандартного отклонения модуля измерения. Эквивалентный код:

(cdate - mean(cdate))./std(cdate)

Примечание

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

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

Чтобы определить оптимальную подгонку, необходимо изучить как графические, так и численные результаты подгонки.

Исследуйте результаты графической подгонки

  1. Определите лучшую подгонку, исследуя графики подгонки и невязки. Чтобы просмотреть графики для каждой модели в свою очередь, дважды кликните аппроксимацию в Таблице подгонки. Графические результаты подгонки указывают, что:

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

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

  2. Изучить поведение подгонок до 2050 года. Цель подбора кривой данных переписи состоит в том, чтобы экстраполировать наиболее подходящие для прогнозирования будущих демографических значений.

    1. Дважды кликните аппроксимацию полиномом шестой степени в Таблице подгонок, чтобы просмотреть графики для этой подгонки.

    2. Измените пределы осей графиков, выбрав Tools > Axes Limits.

    3. Измените X (cdate) Maximum, чтобы 2050, и увеличить Main Y (pop) Maximum до 400, и нажмите Enter.

    4. Исследуйте график подгонки. Поведение полинома шестой степени за пределами области данных делает его плохим выбором для экстраполяции, и можно отклонить эту подгонку.

Вычислите числовые Результаты подгонки

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

  • Качество подгонки

  • Доверительные ограничения установленных коэффициентов

Статистика качества подгонки помогает вам определить, насколько хорошо кривая подходит для данных. Доверительные ограничения коэффициентов определяют их точность.

Исследуйте числовые результаты подгонки:

  1. Для каждой подгонки просмотрите статистику качества подгонки на панели Results.

  2. Сравните все модели одновременно в Table of Fits. Щелкните заголовки столбца для сортировки по статистическим результатам.

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

    Самый большой SSE для exp1 указывает, что это плохая подгонка, которую вы уже определили, исследуя подгонку и невязки. Самое низкое значение SSE связано с poly6. Однако поведение этой подгонки за пределами области значений данных делает ее плохим выбором для экстраполяции, поэтому вы уже отвергли эту подгонку, исследуя графики с новыми пределами по осям.

    Следующее лучшее значение SSE связано с аппроксимацией полиномом пятой степени, poly5, предполагая, что это может быть наилучшим образом. Однако SSE и скорректированные значения R -square для остальных аппроксимаций полиномом очень близки друг к другу. Какой из них вы должны выбрать?

  4. Устраните проблему наилучшей подгонки путем изучения доверительных границ для остальных подгонок на панели Результаты. Дважды кликните подгонку в Table of Fits, чтобы открыть (или фокусироваться, если уже открыт) рисунок подгонки и просмотреть панель Результаты (Results). В fit figure отображаются настройки подгонки, панель результатов и графики для одной подгонки.

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

    1. Чтобы показать два рисунков подгонки одновременно, используйте элементы управления размещением в верхней части приложения Аппроксимирование Кривыми или выберите Window > Left/Right Tile или Top/Bottom Tile.

    2. Чтобы изменить отображаемую аппроксимацию, щелкните, чтобы выбрать аппроксимацию рисунка а затем дважды щелкните подгонку для отображения в Table of Fits.

    3. Сравните коэффициенты и границы (p1, p2и так далее) на панели Результаты для обоих подгонка, poly5 и poly2. Тулбокс вычисляет 95% доверительных границ коэффициентов. Доверительные ограничения коэффициентов определяют их точность. Проверьте уравнения на панели Результаты (f(x)=p1*x+p2*x...), чтобы увидеть модельные условия для каждого коэффициента. Обратите внимание, что p2 относится к p2*x термин в Poly2 и p2*x^4 термин в Poly5. Не сравнивайте нормированные коэффициенты непосредственно с ненормированными коэффициентами.

      Совет

      Используйте меню View, чтобы скрыть Fit Settings или Table of Fits, если вы хотите, чтобы больше пространства для просмотра и сравнения графиков и результатов, как показано далее. Можно также скрыть панель Results, чтобы показать только графики.

      Границы пересекают нуль на p1, p2, и p3 коэффициенты для полинома пятой степени. Это означает, что вы не можете быть уверены, что эти коэффициенты отличаются от нуля. Если условия модели более высокого порядка могут иметь коэффициенты нули, они не помогают с подгонкой, что предполагает, что эта модель перегружает данные переписи.

      Однако маленькие доверительные границы не пересекают нуль на p1, p2, и p3 для квадратичной подгонки, poly2 указать, что установленные коэффициенты известны довольно точно.

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

Примечание

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

Анализ вашей наилучшей подгонки в рабочей области

Можно использовать Save to Workspace для экспорта выбранной подгонки и связанных результатов подгонки в рабочее пространство MATLAB. Подгонка сохраняется как объект MATLAB, а связанные результаты подгонки сохраняются как структуры.

  1. Щелкните правой кнопкой мыши по poly2 подгонка в Table of Fits и выбор Save “poly2” to Workspace (или использование Fit меню).

  2. Нажмите кнопку OK, чтобы сохранить имена по умолчанию.

    The fittedmodel сохранен как Curve Fitting Toolbox™ cfit объект.

    >> whos fittedmodel
      Name             Size            Bytes  Class
    
      fittedmodel      1x1               822  cfit   
    

Исследуйте fittedmodel cfit объект для отображения модели, подобранных коэффициентов и доверительных границ для подобранных коэффициентов:

fittedmodel

fittedmodel =
     Linear model Poly2:
       fittedmodel(x) = p1*x^2 + p2*x + p3
     Coefficients (with 95% confidence bounds):
       p1 =    0.006541  (0.006124, 0.006958)
       p2 =      -23.51  (-25.09, -21.93)
       p3 =  2.113e+004  (1.964e+004, 2.262e+004)

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

goodness

goodness = 
           sse: 159.0293
       rsquare: 0.9987
           dfe: 18
    adjrsquare: 0.9986
          rmse: 2.9724

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

output

output = 
       numobs: 21
     numparam: 3
    residuals: [21x1 double]
     Jacobian: [21x3 double]
     exitflag: 1
    algorithm: 'QR factorization and solve'
  iterations: 1

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

Например, чтобы вычислить fittedmodel в вектор значений для экстраполяции на 2050 год введите:

y = fittedmodel(2000:10:2050)
y =

  274.6221
  301.8240
  330.3341
  360.1524
  391.2790
  423.7137
Постройте график подгонки к данным переписи и экстраполированным значениям подгонки:
plot(fittedmodel, cdate, pop)
hold on
plot(fittedmodel, 2000:10:2050, y)
hold off
Для получения дополнительных примеров и инструкций по интерактивному анализу подгонки и анализу подгонки в командной строке, а также списка всех функций постобработки, смотрите Fit Postprocessing.

Для примера, воспроизводящего этот интерактивный анализ данных переписи населения с помощью командной строки, смотрите Polynomial Curve Fitting.

Сохранение вашей работы

Тулбокс предлагает несколько опции сохранения вашей работы. Можно сохранить одну или несколько подгонок и связанные результаты подгонки как переменные в рабочем пространстве MATLAB. Затем можно использовать эту сохраненную информацию в целях документации или для расширения исследования и анализа данных. В дополнение к сохранению вашей работы в переменные рабочего пространства MATLAB, вы можете:

  • Сохраните текущий сеанс аппроксимирования кривыми путем выбора File > Save Session. Файл сессии содержит все подгонки и переменные в вашем сеансе и запоминает ваше размещение. См. раздел Сохранение и перезагрузка сеансов.

  • Сгенерируйте код MATLAB, чтобы воссоздать все модели и графики в вашем сеансе, выбрав File > Generate Code. Приложение Аппроксимирование Кривыми генерирует код из вашего сеанса и отображает файл в редакторе MATLAB.

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

Похожие темы