exponenta event banner

Интерактивный фитинг

Основной пользовательский интерфейс фитинга

Интерфейс пользователя MATLAB ® Basic Fitting позволяет в интерактивном режиме:

  • Моделирование данных с использованием сплайнового интерполятора, сохраняющего форму интерполятора или многочлена до десятой степени

  • Печать одного или нескольких вариантов соответствия с данными

  • Постройте график остатков посадок

  • Вычислить коэффициенты модели

  • Вычислите норму остатков (статистика, которую можно использовать для анализа соответствия модели данным)

  • Используйте модель для интерполяции или экстраполяции вне данных

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

  • Создание кода MATLAB для повторного вычисления посадок и воспроизведения графиков с новыми данными

Примечание

Пользовательский интерфейс «Базовый фитинг» доступен только для 2-D графиков. Дополнительные сведения о расширенном анализе фитинга и регрессии см. в документации по Toolbox™ фитинга кривой и документации по Toolbox™ статистики и машинного обучения.

Подготовка к базовому фитингу

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

Чтобы ускорить пользовательский интерфейс базового фитинга, сначала выполните сортировку данных. Создание отсортированных векторов x_sorted и y_sorted из векторов данных x и y, используйте MATLAB sort функция:

[x_sorted, i] = sort(x);
y_sorted = y(i);

Открытие интерфейса пользователя «Базовый фитинг»

Для использования пользовательского интерфейса «Базовый фитинг» необходимо сначала распечатать данные в окне рисунка с помощью любой команды печати MATLAB, которая создает (только) данные x и y.

Чтобы открыть пользовательский интерфейс «Базовый фитинг», выберите «Сервис» > «Базовый фитинг» в меню в верхней части окна рисунка.

Пример: Использование интерфейса пользователя «Базовый фитинг»

В этом примере показано, как использовать пользовательский интерфейс «Базовый фитинг» для подгонки, визуализации, анализа, сохранения и создания кода для полиномиальных регрессий.

Данные переписи нагрузки и участка

Файл census.mat содержит данные о населении США за 1790-1990 годы с 10-летними интервалами.

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

load census
plot(cdate,pop,'ro')

load добавляет следующие переменные в рабочую область MATLAB:

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

  • pop - Вектор столбца с популяцией США для каждого года в cdate. Это переменная ответа.

Векторы данных сортируются в порядке возрастания по годам. Сюжет показывает население как функцию года.

Теперь вы готовы подогнать уравнение данных для моделирования роста населения с течением времени.

Прогнозирование данных переписи с кубическим полиномиальным вписыванием

  1. Откройте диалоговое окно «Базовый фитинг», выбрав «Сервис» > «Базовый фитинг» в окне «Рисунок».

  2. В области ТИПЫ ПОСАДКИ (TYPES OF FIT) диалогового окна Базовый фитинг (Basic Fitting) установите флажок Кубический (Cubic), чтобы вписать кубический многочлен в данные.

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

    При вычислении посадки MATLAB сталкивается с проблемами и выдает следующее предупреждение:

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

  3. Продолжайте использовать кубическую посадку. Поскольку добавление новых наблюдений к данным переписи невозможно, улучшите соответствие путем преобразования значений, необходимых для z-показателей, перед повторным вычислением соответствия. Установите флажок Центр и масштаб данных по оси X (Center and scale x-axis data) в правом верхнем углу диалогового окна, чтобы инструмент «Базовый фитинг» (Basic Fitting) выполнил преобразование.

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

  4. В разделе ОЦЕНКА ОШИБОК (RESIDUALS) установите флажок Норма остатков. В качестве стиля печати выберите «Полоса».

При выборе этих параметров создается вложенный график остатков в виде гистограммы.

Кубическая подгонка является плохим предиктором до 1790 года, где она указывает на уменьшение популяции. Модель, кажется, аппроксимирует данные достаточно хорошо после 1790 года. Однако массив в остатках показывает, что модель не отвечает предположению о нормальной ошибке, которая является основой для аппроксимации наименьших квадратов. Строка данных 1, определенная в легенде, представляет собой наблюдаемый x (cdate) и y (pop) значения данных. Линия кубической регрессии представляет аппроксимацию после центрирования и масштабирования значений данных. Обратите внимание, что на рисунке показаны исходные единицы измерения данных, даже если инструмент вычисляет посадку с помощью преобразованных z-показателей.

Для сравнения попробуйте подогнать другое уравнение полинома к данным переписи, выбрав его в области TYPES OF FIT.

Просмотр и сохранение параметров кубического вписывания

В диалоговом окне «Базовый фитинг» нажмите кнопку «Развернуть результаты» для отображения расчетных коэффициентов и нормы остаточных значений.

Сохраните данные посадки в рабочей области MATLAB, нажав кнопку Экспорт в рабочую область (Export to Workspace) на панели Числовые результаты (Numerical results). Откроется диалоговое окно Сохранить вписанный в рабочее пространство (Save Fit to Workspace).

Установив все флажки, нажмите кнопку ОК, чтобы сохранить параметры посадки в виде структуры MATLAB. fit:

fit
fit = 

  struct with fields:

     type: 'polynomial degree 3'
    coeff: [0.9210 25.1834 73.8598 61.7444]

Теперь результаты аппроксимации можно использовать в программировании MATLAB вне пользовательского интерфейса «Основные фитинги».

R2, коэффициент определения

Можно получить указание на то, насколько хорошо полиномиальная регрессия предсказывает наблюдаемые данные, вычисляя коэффициент определения, или R-квадрат (записанный как R2). Статистика R2, которая находится в диапазоне от 0 до 1, измеряет, насколько полезна независимая переменная при прогнозировании значений зависимой переменной:

  • Значение R2 около 0 указывает на то, что посадка не намного лучше модели y = constant.

  • Значение R2 около 1 указывает, что независимая переменная объясняет большую часть изменчивости зависимой переменной.

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

остатки = yobserved - yfitted(1)

Номер R2 для кубического фитинга в этом примере, 0,9988, находится в разделе РЕЗУЛЬТАТЫ ФИТИНГА (FIT RESULTS) в диалоговом окне Базовый фитинг (Basic Fitting).

Чтобы сравнить R2 число для кубического вписывания с линейным наименьшим квадратом, выберите Линейный (Linear) в разделе ТИПЫ ВПИСЫВАНИЯ (TYPES OF FIT) и получите R2 число 0,921. Этот результат указывает на то, что линейная подгонка по наименьшим квадратам данных населения объясняет 92,1% его дисперсии. Поскольку кубическая подгонка этих данных объясняет 99,9% этой дисперсии, последняя, по-видимому, является лучшим предиктором. Однако, поскольку кубическая подгонка предсказывает использование трех переменных (x, x2 и x3), базовое значение R2 не полностью отражает, насколько надежна подгонка. Более подходящей мерой для оценки благости многомерных посадок является корректировка R2. Сведения о вычислениях и использовании скорректированных R2 см. в разделе Остатки и благость посадки.

Интерполяция и экстраполяция значений совокупности

Предположим, что вы хотите использовать кубическую модель для интерполяции населения США в 1965 году (дата не указана в исходных данных).

В диалоговом окне Базовый фитинг (Basic Fitting) в разделе ДАННЫЕ ИНТЕРПОЛЯЦИИ/ЭКСТРАПОЛЯЦИИ (INTERPOLATE/EXTRAPOLATE DATA) введите значение X 1965 и установите флажок в поле Данные расчета графика (Plot evalued

Примечание

Использовать немасштабированные и незацентрированные X значения. Сначала не нужно центрировать и масштабировать, даже если выбрано масштабирование X значения для получения коэффициентов в прогнозировании данных переписи с кубическим полиномиальным вписыванием. Инструмент «Базовый фитинг» выполняет необходимые корректировки за кадром.

X значения и соответствующие значения для f(X) вычисляются по посадке и печатаются следующим образом:

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

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

  1. В окне «Рисунок» выберите «Файл» > «Создать код».

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

  2. Изменение имени функции в первой строке из createfigure к чему-то более конкретному, например censusplot. Сохранить файл кода в текущей папке с именем файла censusplot.m Функция начинается с:

    function censusplot(X1, Y1, valuesToEvaluate1)

  3. Генерировать некоторые новые, случайно возмущенные данные переписи:

    rng('default')
    randpop = pop + 10*randn(size(pop));
  4. Воспроизвести график с новыми данными и повторно вычислить аппроксимацию:

    censusplot(cdate,randpop,1965)

    Вам нужно три входных аргумента: значения x, y (data 1), выведенный на график, плюс значение x для маркера.

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

Узнайте, как инструмент «Базовый фитинг» вычисляет посадки

Инструмент «Базовый фитинг» вызывает polyfit для вычисления полиномиальных посадок. Он вызывает polyval для оценки посадок. polyfit анализирует свои входные данные, чтобы определить, являются ли данные хорошо обусловленными для требуемой степени соответствия.

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

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

polyfit нормализуется посредством вычисления z-баллов:

z = x

где x - данные предиктора, λ - среднее значение x, и λ - стандартное отклонение x. Z-оценки дают данным среднее значение 0 и стандартное отклонение 1. В пользовательском интерфейсе Основной фитинг (Basic Fitting) можно преобразовать данные предиктора в z-оценки, установив флажок Центр и масштабировать данные оси X (Center and scale x-axis data).

После центрирования и масштабирования коэффициенты модели вычисляются для данных y как функция z. Они отличаются (и более устойчивы), чем коэффициенты, вычисленные для y как функция x. Форма модели и норма остатков не изменяются. Пользовательский интерфейс «Базовый фитинг» (Basic Fitting) автоматически масштабирует Z-оценки так, чтобы посадка отображалась в том же масштабе, что и исходные данные X.

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

close
load census
x = cdate;
y = pop;
z = (x-mean(x))/std(x); % Compute z-scores of x data

plot(x,y,'ro') % Plot data as red markers
hold on        % Prepare axes to accept new graph on top

zfit = linspace(z(1),z(end),100);
pz = polyfit(z,y,3); % Compute conditioned fit
yfit = polyval(pz,zfit);

xfit = linspace(x(1),x(end),100);
plot(xfit,yfit,'b-') % Plot conditioned fit vs. x data

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

В коде вычисление z иллюстрирует нормализацию данных. polyfit функция выполняет само преобразование, если при его вызове предоставляются три возвращаемых аргумента:

[p,S,mu] = polyfit(x,y,n)
Возвращенные параметры регрессии, p, теперь основаны на нормализованных x. Возвращенный вектор, mu, содержит среднее и стандартное отклонение x. Дополнительные сведения см. в разделе polyfit справочная страница.