Полиномиальные модели

О полиномиальных моделях

Полиномиальными моделями для кривых дают

y=i=1n+1pixn+1i

где n + 1 является порядком полинома, n является степенью полинома и 1 ≤ n ≤ 9. Порядок дает количество коэффициентов, чтобы быть подходящим, и степень дает самую высокую степень переменной прогноза.

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

γ=p1x3+p2x2+p3x+p4

Полиномы часто используются, когда простая эмпирическая модель требуется. Можно использовать полиномиальную модель для интерполяции или экстраполяции, или охарактеризовать данные с помощью глобальной подгонки. Например, преобразование температуры к напряжению для термопары Типа J в 0 к 760o диапазон температур описано полиномом седьмой степени.

Примечание

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

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

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

Соответствуйте полиномиальным моделям в интерактивном режиме

  1. Откройте приложение Curve Fitting путем ввода cftool. Также нажмите Curve Fitting на вкладке Apps.

  2. В приложении Curve Fitting выберите кривую или поверхностные данные.

    • Если вы выбираете данные о кривой (X data и Y data, или только Y data против индекса), приложение Curve Fitting создает подгонку кривой по умолчанию, Polynomial.

    • Если вы выбираете поверхностные данные (X data, Y data и Z data), приложение Curve Fitting создает поверхностную подгонку по умолчанию, Interpolant. Измените тип модели от Interpolant до Polynomial.

Для кривых модель Polynomial приспосабливает полином в x.

Для поверхностей модель Polynomial приспосабливает полином в x и y.

Можно задать следующие опции:

  • Степень для x и входных параметров y:

  • Устойчивый линейный метод наименьших квадратов подходящий метод, чтобы использовать (Off, LAR или Bisquare). Для получения дополнительной информации смотрите Robust на странице с описанием fitoptions.

  • Установите границы или исключите условия путем нажатия на Fit Options. Можно исключить любой термин путем установки его границ на 0.

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

Совет

Если ваши входные переменные имеют совсем другие шкалы, выберите и снимите флажок Center and scale, чтобы видеть различие в подгонке. Сообщения в панели Results предлагают вам, когда масштабирование может улучшить вашу подгонку.

Для примера, сравнивающего различные аппроксимации полиномом, смотрите, Выдерживают сравнение, Помещается в Приложение Curve Fitting.

Подходящие полиномы Используя подходящую функцию

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

Полиномиальная модель библиотеки является входным параметром к функциям fittype и подгонке. Задайте тип модели poly, сопровождаемый степенью в области x (до 9) или X и Y (до 5). Например, вы задаете квадратичную кривую с 'poly2' или кубическую поверхность с 'poly33'.

Создайте и постройте квадратичную полиномиальную кривую

Загрузите некоторые данные и соответствуйте квадратичному полиному. Задайте квадратичный, или полином второй степени со строкой 'poly2'.

load census;
fitpoly2=fit(cdate,pop,'poly2')
% Plot the fit with the plot method.
plot(fitpoly2,cdate,pop)
% Move the legend to the top left corner.
legend('Location','NorthWest' );
fitpoly2 = 

     Linear model Poly2:
     fitpoly2(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+04  (1.964e+04, 2.262e+04)

Создайте кубическую кривую

Соответствуйте кубическому полиному 'poly3'.

fitpoly3=fit(cdate,pop,'poly3')
plot(fitpoly3,cdate,pop)
Warning: Equation is badly conditioned. Remove repeated data points or try
centering and scaling. 

fitpoly3 = 

     Linear model Poly3:
     fitpoly3(x) = p1*x^3 + p2*x^2 + p3*x + p4
     Coefficients (with 95% confidence bounds):
       p1 =   3.855e-06  (-4.078e-06, 1.179e-05)
       p2 =    -0.01532  (-0.06031, 0.02967)
       p3 =       17.78  (-67.2, 102.8)
       p4 =       -4852  (-5.834e+04, 4.863e+04)

Задайте подходящие опции

Кубическое соответствие предупреждает, что уравнение плохо обусловливается, таким образом, необходимо попытаться центрироваться и масштабироваться путем определения опции 'Normalize'. Соответствуйте кубическому полиному и центром и шкалой и устойчивыми подходящими опциями. Устойчивый 'on' является ярлыком, эквивалентным 'Bisquare', методу по умолчанию для устойчивого линейного метода наименьших квадратов подходящий метод.

fit3=fit(cdate, pop,'poly3','Normalize','on','Robust','on')
plot(fit3,cdate,pop)
fit3 = 

     Linear model Poly3:
     fit3(x) = p1*x^3 + p2*x^2 + p3*x + p4
       where x is normalized by mean 1890 and std 62.05
     Coefficients (with 95% confidence bounds):
       p1 =     -0.4619  (-1.895, 0.9707)
       p2 =       25.01  (23.79, 26.22)
       p3 =       77.03  (74.37, 79.7)
       p4 =       62.81  (61.26, 64.37)

Чтобы узнать, какие параметры можно установить для модели 'poly3' библиотеки, используйте функцию fitoptions.

fitoptions poly3
ans =

    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Off'
        Lower: [1x0 double]
        Upper: [1x0 double]

Получите статистику качества подгонки

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

[fit4, gof]=fit(cdate, pop,'poly3','Normalize','on');
gof
gof = 

  struct with fields:

           sse: 149.7687
       rsquare: 0.9988
           dfe: 17
    adjrsquare: 0.9986
          rmse: 2.9682

Постройте невязки, чтобы оценить подгонку

Чтобы построить невязки, задайте 'residuals' как тип графика в методе графика.

plot(fit4,cdate, pop,'residuals');

Исследуйте подгонку вне области значений данных

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

plot( cdate, pop, 'o' );
xlim( [1900, 2050] );
hold on
plot( fit4 );
hold off

Постройте границы прогноза

Чтобы построить границы прогноза, используйте 'predobs' или 'predfun' как тип графика.

plot(fit4,cdate,pop,'predobs')

Постройте границы прогноза для кубического полинома до года 2050.

plot( cdate, pop, 'o' );
xlim( [1900, 2050] )
hold on
plot( fit4, 'predobs' );
hold off

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

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

cdateFuture = (2000:10:2020).';
popFuture = fit4( cdateFuture )
popFuture =

  276.9632
  305.4420
  335.5066

Вычислите 95% доверительных границ на прогнозе для генеральной совокупности в будущем, с помощью метода перед вмятиной.

ci = predint( fit4, cdateFuture, 0.95, 'observation' )
ci =

  267.8589  286.0674
  294.3070  316.5770
  321.5924  349.4208

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

plot(cdate, pop, 'o');
xlim([1900, 2040])
hold on
plot(fit4)
h = errorbar(cdateFuture,popFuture,popFuture-ci(:,1),ci(:,2)-popFuture,'.');
hold off
legend('cdate v pop','poly3','prediction','Location','NorthWest')

Соответствуйте и постройте полиномиальную поверхность

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

load franke;
fitsurface=fit([x,y],z, 'poly44','Normalize','on')
plot(fitsurface, [x,y],z)
     Linear model Poly44:
     fitsurface(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p30*x^3 
                    + p21*x^2*y + p12*x*y^2 + p03*y^3 + p40*x^4 + p31*x^3*y 
                    + p22*x^2*y^2 + p13*x*y^3 + p04*y^4
       where x is normalized by mean 1982 and std 868.6
       and where y is normalized by mean 0.4972 and std 0.2897
     Coefficients (with 95% confidence bounds):
       p00 =      0.3471  (0.3033, 0.3909)
       p10 =     -0.1502  (-0.1935, -0.107)
       p01 =     -0.4203  (-0.4637, -0.377)
       p20 =      0.2165  (0.1514, 0.2815)
       p11 =      0.1717  (0.1175, 0.2259)
       p02 =     0.03189  (-0.03351, 0.09729)
       p30 =     0.02778  (0.00749, 0.04806)
       p21 =     0.01501  (-0.002807, 0.03283)
       p12 =    -0.03659  (-0.05439, -0.01879)
       p03 =      0.1184  (0.09812, 0.1387)
       p40 =    -0.07661  (-0.09984, -0.05338)
       p31 =    -0.02487  (-0.04512, -0.004624)
       p22 =   0.0007464  (-0.01948, 0.02098)
       p13 =    -0.02962  (-0.04987, -0.009366)
       p04 =    -0.02399  (-0.0474, -0.0005797)

Полиномиальная модель соответствует опциям

Все подходящие методы имеют значение по умолчанию properties Normalize, Exclude, Weights и Method. Для примера см. Опции Подгонки Определения в Командной строке.

Полиномиальные модели имеют значение свойства Method LinearLeastSquares и дополнительные подходящие свойства опций, показанные в следующей таблице. Для получения дополнительной информации на всех подходящих опциях, смотрите страницу с описанием fitoptions.

Свойство

Описание

Robust

Задает устойчивый линейный метод наименьших квадратов подходящий метод, чтобы использовать. Значениями является 'on', 'off', 'LAR' или 'Bisquare'. Значением по умолчанию является 'off'.
'LAR' задает наименее абсолютный остаточный метод, и 'Bisquare' задает bisquare метод весов. 'on' эквивалентен 'Bisquare', методу по умолчанию.

Lower

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

Upper

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

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

Можно управлять условиями, чтобы включать в полиномиальную поверхностную модель путем определения степеней для входных параметров X и Y. Если i является степенью в области x, и j является степенью в области y, общая степень полинома является максимумом i и j. Степень x в каждом термине меньше чем или равна i, и степень y в каждом термине меньше чем или равна j. Максимум и для i и для j равняется пяти.

Например:

poly21  Z = p00 + p10*x + p01*y + p20*x^2 + p11*x*y
poly13  Z = p00 + p10*x + p01*y + p11*x*y + p02*y^2 
                      + p12*x*y^2 + p03*y^3
poly55  Z = p00 + p10*x + p01*y +...+ p14*x*y^4 
                      + p05*y^5

Например, если вы задаете x степень 3 и y степень 2, именем модели является poly32. Образцовые условия следуют за формой в этой таблице.

Степень термина012
01yy2
1xx, y xy2
2x2 x2yНет данных
3x3Нет данныхНет данных

Общая степень полинома не может превысить максимум i и j. В этом примере исключены условия, такие как x3y и x2y2, потому что их степени суммируют к больше, чем 3. В обоих случаях общей степенью является 4.

Смотрите также

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте