Выполните ступенчатую регрессию
создает линейную модель для переменных в таблице или массиве набора данных mdl
= stepwiselm(tbl
)tbl
использование ступенчатой регрессии, чтобы добавить или удалить предикторы, запуск с постоянной модели. stepwiselm
использует последнюю переменную tbl
как переменная отклика. stepwiselm
использование прямая и обратная ступенчатая регрессия, чтобы определить итоговую модель. На каждом шаге функция ищет условия, чтобы добавить модель в или удалить из модели, на основе значения 'Criterion'
аргумент.
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать категориальные переменные, самый маленький или самый большой набор условий, чтобы использовать в модели, максимальном количестве шагов, чтобы взять, или критерий это mdl
= stepwiselm(___,Name,Value
)stepwiselm
использование, чтобы добавить или удалить условия.
Вы не можете использовать устойчивую регрессию со ступенчатой регрессией. Проверяйте свои данные на выбросы перед использованием stepwiselm
.
Для других методов, таких как anova
, или свойства LinearModel
возразите, смотрите LinearModel
.
После обучения модель можно сгенерировать код C/C++, который предсказывает ответы для новых данных. Генерация кода C/C++ требует MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.
Stepwise regression является систематическим методом для добавления и удаления условий от линейного или обобщенного линейного, основанного на модели на их статистическом значении в объяснении переменной отклика. Метод начинается с первоначальной модели, заданное использование modelspec
, и затем сравнивает объяснительную силу инкрементно больших и меньших моделей.
stepwiselm
функционируйте использование прямая и обратная ступенчатая регрессия, чтобы определить итоговую модель. На каждом шаге функция ищет условия, чтобы добавить к модели или удалить из основанного на модели на значении 'Criterion'
аргумент пары "имя-значение".
Значение по умолчанию 'Criterion'
для линейной регрессии моделью является 'sse'
. В этом случае, stepwiselm
и step
из LinearModel
используйте p - значение F - статистическая величина к тестовым моделям с и без потенциального термина в каждом шаге. Если бы термин не находится в настоящее время в модели, нулевая гипотеза - то, что термин имел бы нулевой коэффициент, если добавлено к модели. Если существуют достаточные доказательства, чтобы отклонить нулевую гипотезу, функция добавляет термин в модель. С другой стороны, если термин находится в настоящее время в модели, нулевая гипотеза - то, что термин имеет нулевой коэффициент. Если существуют недостаточные доказательства, чтобы отклонить нулевую гипотезу, функция удаляет термин из модели.
Ступенчатая регрессия делает эти шаги когда 'Criterion'
'sse'
:
Подбирайте первоначальную модель.
Исследуйте набор доступных условий не в модели. Если какое-либо из условий имеет p - значения меньше, чем допуск входа (то есть, если бы маловероятно, что термин имел бы нулевой коэффициент, если добавлено к модели), добавьте термин с самым маленьким p - значение и повторите этот шаг; в противном случае перейдите к шагу 3.
Если какой-либо из доступных членов в модели имеет p - значения, больше, чем выходной допуск (то есть, гипотеза нулевого коэффициента не может быть отклонена), удалите термин с самым большим p - значение и возвратитесь к шагу 2; в противном случае закончите процесс.
На любом этапе функция не добавит термин высшего порядка, если модель не будет также включать все условия более низкоуровневые, которые являются подмножествами термина высшего порядка. Например, функция не попытается добавить термин X1:X2^2
если оба X1
и X2^2
уже находятся в модели. Точно так же функция не удалит условия более низкоуровневые, которые являются подмножествами условий высшего порядка, которые остаются в модели. Например, функция не попытается удалить X1
или X2^2
если X1:X2^2
остается в модели.
Значение по умолчанию 'Criterion'
поскольку обобщенной линейной моделью является 'Deviance'
. stepwiseglm
и step
из GeneralizedLinearModel
выполните подобную процедуру для добавления или удаления условий.
Можно задать другие критерии при помощи 'Criterion'
аргумент пары "имя-значение". Например, можно задать изменение в значении критерия информации о Akaike, Байесового информационного критерия, R-squared или настроенного R-squared как критерий, чтобы добавить или удалить условия.
В зависимости от условий, включенных в первоначальную модель и порядок, в котором функция добавляет и удаляет условия, функциональная сила создает различные модели от того же набора потенциальных условий. Функция завершает работу, когда никакой один шаг не улучшает модель. Однако различная первоначальная модель или различная последовательность шагов не гарантируют лучшую подгонку. В этом смысле пошаговые модели локально оптимальны, но не могут быть глобально оптимальными.
stepwiselm
обрабатывает категориальный предиктор можно следующим образом:
Модель с категориальным предиктором, который имеет уровни L (категории), включает переменные индикатора L - 1. Модель использует первую категорию в качестве контрольного уровня, таким образом, это не включает переменную индикатора для контрольного уровня. Если типом данных категориального предиктора является categorical
, затем можно проверять порядок категорий при помощи categories
и переупорядочьте категории при помощи reordercats
настроить контрольный уровень. Для получения дополнительной информации о создании переменных индикатора, смотрите Автоматическое Создание Фиктивных Переменных.
stepwiselm
обрабатывает группу переменных индикатора L - 1 как одна переменная. Если вы хотите обработать переменные индикатора как отличные переменные предикторы, создайте переменные индикатора вручную при помощи dummyvar
. Затем используйте переменные индикатора, кроме той, соответствующей контрольному уровню категориальной переменной, когда вы подберете модель. Для категориального предиктора X
, если вы задаете все столбцы dummyvar(X)
и термин прерывания в качестве предикторов, затем матрица проекта становится неполным рангом.
Периоды взаимодействия между непрерывным предиктором и категориальным предиктором с уровнями L состоят из поэлементного произведения переменных индикатора L - 1 с непрерывным предиктором.
Периоды взаимодействия между двумя категориальными предикторами с L и уровнями M состоят из (L – 1) * переменные индикатора (M - 1), чтобы включать все возможные комбинации двух категориальных уровней предиктора.
Вы не можете задать условия высшего порядка для категориального предиктора, потому что квадрат индикатора равен себе.
Поэтому, если stepwiselm
добавляет или удаляет категориальный предиктор, функция на самом деле добавляет или удаляет группу переменных индикатора за один шаг. Точно так же, если stepwiselm
добавляет или удаляет период взаимодействия с категориальным предиктором, функция на самом деле добавляет или удаляет группу периодов взаимодействия включая категориальный предиктор.
stepwiselm
рассматривает NaN
, ''
(пустой символьный вектор), ""
(пустая строка), <missing>
, и <undefined>
значения в tbl
X
, и Y
быть отсутствующими значениями. stepwiselm
не использует наблюдения с отсутствующими значениями в подгонке. ObservationInfo
свойство подобранной модели указывает действительно ли stepwiselm
использование каждое наблюдение в подгонке.
Можно создать использование модели fitlm
, и затем вручную настройте модель с помощью step
, addTerms
, или removeTerms
.
fitlm
| LinearModel
| step