Выбор функции регрессии

Регрессия - это процесс подбора моделей к данным. Модели должны иметь числовые отклики. Для моделей с категориальными откликами см. Parametric Classification или Supervised Learning Workflow и Алгоритмы. Процесс регрессии зависит от модели. Если модель параметрическая, регрессия оценивает параметры из данных. Если модель линейна в параметрах, оценка основана на методах из линейной алгебры, которые минимизируют норму невязки вектора. Если модель нелинейна в параметрах, оценка основана на методах поиска от оптимизации, которые минимизируют норму невязки вектора.

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

Моделируйте компонентыРезультат регрессииФункция для использования
Непрерывные или категориальные предикторы, непрерывная реакция, линейная модельПодобранные моделиfitlm. См. «Линейная регрессия».
Непрерывные или категориальные предикторы, непрерывная реакция, линейная модель неизвестной сложностиПодобранные модели и подобранные коэффициентыstepwiselm. См. «Ступенчатая регрессия».
Непрерывные или категориальные предикторы, реакция, возможно, с такими ограничениями, как неотрицательная или целочисленная, обобщенная линейная модельУстановленные обобщенные коэффициенты линейной моделиfitglm или stepwiseglm. См. Обобщенные линейные модели.
Непрерывные предикторы с непрерывной нелинейной характеристикой, параметризованная нелинейная модельУстановленные нелинейные коэффициенты моделиfitnlm. См. Нелинейная регрессия.
Непрерывные предикторы, непрерывная реакция, линейная модельНабор моделей из хребта, лассо или эластичной сетевой регрессииlasso или ridge. См. Лассо и упругая сеть или регрессия хребта.
Коррелированные непрерывные предикторы, непрерывная реакция, линейная модельПодобранные модели и подобранные коэффициентыplsregress. См. «Частичные наименьшие квадраты».
Непрерывные или категориальные предикторы, непрерывный ответ, неизвестная модельНепараметрическая модельfitrtree или fitrensemble.
Только категориальные предикторыДИСПЕРСИОННЫЙ АНАЛИЗanova, anova1, anova2, anovan.
Непрерывные предикторы, многомерная характеристика, линейная модельУстановленные многомерные коэффициенты регрессионной моделиmvregress
Непрерывные предикторы, непрерывная реакция, модель смешанных эффектовУстановленные коэффициенты модели смешанных эффектовnlmefit или nlmefitsa. См. «Модели смешанных эффектов».

Обновление унаследованного кода с помощью новых методов аппроксимации

Существует несколько функций Statistics and Machine Learning Toolbox™ для выполнения регрессии. В следующих разделах описывается, как заменить вызовы старых функций на новые версии:

regress в fitlm

Предыдущий синтаксис:

[b,bint,r,rint,stats] = regress(y,X)

где X содержит столбец таковых.

Текущий синтаксис:

mdl = fitlm(X,y)

где вы не добавляете столбец таковых к X.

Эквивалентные значения предыдущих выходов:

  • bmdl.Coefficients.Estimate

  • bintcoefCI(mdl)

  • rmdl.Residuals.Raw

  • rint - Точного эквивалента нет. Попробуйте изучить mdl.Residuals.Studentized найти выбросы.

  • statsmdl содержит различные свойства, которые заменяют компоненты stats.

regstats в fitlm

Предыдущий синтаксис:

stats = regstats(y,X,model,whichstats)

Текущий синтаксис:

mdl = fitlm(X,y,model)

Получите статистику из свойств и методов LinearModel объект (mdl). Для примера смотрите mdl.Diagnostics и mdl.Residuals свойства.

robustfit в fitlm

Предыдущий синтаксис:

[b,stats] = robustfit(X,y,wfun,tune,const)

Текущий синтаксис:

mdl = fitlm(X,y,'robust','on') % bisquare

Или использовать wfun вес и tune параметр настройки:

opt.RobustWgtFun = 'wfun';
opt.Tune = tune; % optional
mdl = fitlm(X,y,'robust',opt)

Получите статистику из свойств и методов LinearModel объект (mdl). Для примера смотрите mdl.Diagnostics и mdl.Residuals свойства.

stepwisefit в stepwiselm

Предыдущий синтаксис:

[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(X,y,Name,Value)

Текущий синтаксис:

mdl = stepwiselm(ds,modelspec,Name,Value)

или

mdl = stepwiselm(X,y,modelspec,Name,Value)

Получите статистику из свойств и методов LinearModel объект (mdl). Для примера смотрите mdl.Diagnostics и mdl.Residuals свойства.

glmfit в fitglm

Предыдущий синтаксис:

[b,dev,stats] = glmfit(X,y,distr,param1,val1,...)

Текущий синтаксис:

mdl = fitglm(X,y,distr,...)

Получите статистику из свойств и методов GeneralizedLinearModel объект (mdl). Для примера отклонение mdl.Deviance, и сравнить mdl против постоянной модели используйте devianceTest(mdl).

nlinfit в fitnlm

Предыдущий синтаксис:

[beta,r,J,COVB,mse] = nlinfit(X,y,fun,beta0,options)

Текущий синтаксис:

mdl = fitnlm(X,y,fun,beta0,'Options',options)

Эквивалентные значения предыдущих выходов:

  • betamdl.Coefficients.Estimate

  • rmdl.Residuals.Raw

  • covbmdl.CoefficientCovariance

  • msemdl.mse

mdl не обеспечивает якобиан (J) выход. Основная цель J должен был передать его в nlparci или nlpredci для получения доверительных интервалов для оцененных коэффициентов (параметров) или предсказаний. Получите эти доверительные интервалы как:

parci = coefCI(mdl)
[pred,predci] = predict(mdl)