Выполните ступенчатую регрессию
создает линейную модель для переменных в таблице или массиве наборов данных 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 -value F -statistic для экспериментальных моделей с потенциальным термином и без него на каждом шаге. Если термин не находится в модели в данный момент, нулевая гипотеза заключается в том, что термин будет иметь нулевой коэффициент, если добавлен к модели. Если существует достаточное количество доказательств, чтобы отклонить нулевую гипотезу, функция добавляет термин к модели. И наоборот, если член в данный момент находится в модели, нулевая гипотеза заключается в том, что термин имеет нулевой коэффициент. Если нет достаточных доказательств, чтобы отклонить нулевую гипотезу, функция удаляет термин из модели.
Ступенчатая регрессия делает эти шаги, когда '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'
аргумент пары "имя-значение". Например, можно задать изменение значения информационного критерия Акайке, информационного критерия Байеса, R-квадрата или скорректированного R-квадрата в качестве критерия для добавления или удаления членов.
В зависимости от членов, включенных в начальную модель, и порядка, в котором функция добавляет и удаляет условия, функция может создавать различные модели из одного и того же набора потенциальных членов. Функция прекращается, когда ни один шаг не улучшает модель. Однако другая начальная модель или другая последовательность шагов не гарантирует лучшую подгонку. В этом смысле ступенчатые модели являются локально оптимальными, но могут не быть глобально оптимальными.
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
не использует наблюдения с отсутствующими значениями в подгонке. The ObservationInfo
свойство подобранной модели указывает, указывает или нет stepwiselm
использует каждое наблюдение в подгонке.
Можно создать модель, используя fitlm
, а затем вручную настроить модель используя step
, addTerms
, или removeTerms
.
fitlm
| LinearModel
| step