Подходящая модель линейной регрессии использование пошаговой регрессии
mdl = stepwiselm(tbl)
mdl = stepwiselm(X,y)
mdl = stepwiselm(___,modelspec)
mdl = stepwiselm(___,Name,Value)
создает линейную модель для переменных в таблице или массиве набора данных 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
.
LinearModel
| fitlm
| step