stepwiseglm

Создайте обобщенную линейную модель регрессии ступенчатой регрессией

Описание

mdl = stepwiseglm(tbl) создает обобщенную линейную модель таблицы или массива набора данных tbl использование ступенчатой регрессии, чтобы добавить или удалить предикторы, запуск с постоянной модели. stepwiseglm использует последнюю переменную tbl как переменная отклика. stepwiseglm использование прямая и обратная ступенчатая регрессия, чтобы определить итоговую модель. На каждом шаге функция ищет условия, чтобы добавить модель в или удалить из модели, на основе значения 'Criterion' аргумент.

пример

mdl = stepwiseglm(X,y) создает обобщенную линейную модель ответов y к матрице данных X.

mdl = stepwiseglm(___,modelspec) задает стартовую модель modelspec использование любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

mdl = stepwiseglm(___,modelspec,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать категориальные переменные, самый маленький или самый большой набор условий, чтобы использовать в модели, максимальном количестве шагов, чтобы взять, или критерий что stepwiseglm использование, чтобы добавить или удалить условия.

Примеры

свернуть все

Создайте данные об ответе, использующие всего три из 20 предикторов, и создайте обобщенную линейную модель с помощью пошагового алгоритма, чтобы видеть, использует ли это только правильные предикторы.

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

rng('default') % for reproducibility
X = randn(100,20);
mu = exp(X(:,[5 10 15])*[.4;.2;.3] + 1);
y = poissrnd(mu);

Подбирайте обобщенную линейную модель с помощью распределения Пуассона.

mdl =  stepwiseglm(X,y,...
    'constant','upper','linear','Distribution','poisson')
1. Adding x5, Deviance = 134.439, Chi2Stat = 52.24814, PValue = 4.891229e-13
2. Adding x15, Deviance = 106.285, Chi2Stat = 28.15393, PValue = 1.1204e-07
3. Adding x10, Deviance = 95.0207, Chi2Stat = 11.2644, PValue = 0.000790094
mdl = 
Generalized linear regression model:
    log(y) ~ 1 + x5 + x10 + x15
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     1.0115     0.064275    15.737    8.4217e-56
    x5             0.39508     0.066665    5.9263    3.0977e-09
    x10            0.18863      0.05534    3.4085     0.0006532
    x15            0.29295     0.053269    5.4995    3.8089e-08


100 observations, 96 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 91.7, p-value = 9.61e-20

Стартовая модель является постоянной моделью. stepwiseglm отклонением использования по умолчанию модели как критерий. Это сначала добавляет x5 в модель, как p- значение для тестовой статистической величины, отклонение (различия в отклонениях этих двух моделей), меньше порогового значения по умолчанию 0.05. Затем это добавляет x15 потому что данный x5 находится в модели, когда x15 добавляется, p- значение для теста в квадрате хи меньше, чем 0,05. Это затем добавляет x10 потому что данный x5 и x15 находятся в модели, когда x10 добавляется, p- значение для тестовой статистической величины хи-квадрата снова меньше 0.05.

Входные параметры

свернуть все

Входные данные включая переменные прогноза и переменные отклика, заданные как таблица или массив набора данных. Переменные предикторы и переменная отклика могут быть числовыми, логическими, категориальными, символ или строка. Переменная отклика может иметь тип данных кроме числового только если 'Distribution' 'binomial'.

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

  • Чтобы установить различный столбец как переменную отклика, используйте ResponseVar аргумент пары "имя-значение".

  • Чтобы использовать подмножество столбцов как предикторы, используйте PredictorVars аргумент пары "имя-значение".

  • Чтобы задать спецификацию модели, установите modelspec аргумент с помощью формулы или матрицы условий. Матрица формулы или условий задает который столбцы использовать в качестве переменных предикторов или переменных отклика.

Имена переменных в таблице не должны быть допустимыми идентификаторами MATLAB®. Однако, если имена не допустимы, вы не можете использовать формулу, когда вы соответствуете или настраиваете модель; например:

  • Вы не можете задать modelspec использование формулы.

  • Вы не можете использовать формулу, чтобы задать условия, чтобы добавить или удалить, когда вы используете addTerms функционируйте или removeTerms функция, соответственно.

  • Вы не можете использовать формулу, чтобы задать нижние и верхние границы модели, когда вы используете step или stepwiseglm функция с аргументами пары "имя-значение" 'Lower' и 'Upper', соответственно.

Можно проверить имена переменных в tbl при помощи isvarname функция. Следующий код возвращает логический 1 TRUE) для каждой переменной, которая имеет допустимое имя переменной.

cellfun(@isvarname,tbl.Properties.VariableNames)
Если имена переменных в tbl не допустимы, затем преобразуют их при помощи matlab.lang.makeValidName функция.
tbl.Properties.VariableNames = matlab.lang.makeValidName(tbl.Properties.VariableNames);

Переменные предикторы, заданные как n-by-p матрица, где n является количеством наблюдений и p, являются количеством переменных предикторов. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.

По умолчанию существует постоянный член в модели, если вы явным образом не удаляете его, не включайте столбец 1 с в X.

Типы данных: single | double

Переменная отклика, заданная как вектор или матрица.

  • Если 'Distribution' не 'binomial', затем y должен быть n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y ответ для соответствующей строки X. Тип данных должен быть одним или двойным.

  • Если 'Distribution' 'binomial', затем y может быть n-by-1 вектор или n-by-2 матрица с количествами в столбце 1 и BinomialSize в столбце 2.

Типы данных: single | double | logical | categorical

Стартовая модель для stepwiseglm, заданный как одно из следующего:

  • Вектор символов или скаляр строки именование модели.

    ЗначениеТип модели
    'constant'Модель содержит только константу (прерывание) термин.
    'linear'Модель содержит прерывание и линейный член для каждого предиктора.
    'interactions'Модель содержит прерывание, линейный член для каждого предиктора и все продукты пар отличных предикторов (никакие условия в квадрате).
    'purequadratic'Модель содержит термин прерывания и линейный и придает условиям квадратную форму для каждого предиктора.
    'quadratic'Модель содержит термин прерывания, линейный, и придает квадратную форму условиям для каждого предиктора и всем продуктам пар отличных предикторов.
    'polyijk'Модель является полиномом со всеми условиями до степени i в первом предикторе, степень j во втором предикторе, и так далее. Задайте максимальную степень для каждого предиктора при помощи цифр 0 хотя 9. Модель содержит периоды взаимодействия, но степень каждого периода взаимодействия не превышает максимальное значение заданных степеней. Например, 'poly13' имеет прерывание и x 1, x 2, x 22, x 23, x 1*x2, и x 1*x22 условия, где x 1 и x 2 является первыми и вторыми предикторами, соответственно.
  • t (p + 1) матрица или Матрица Условий, задавая члены в модели, где t является количеством условий и p, является количеством переменных предикторов и +1 счетом на переменную отклика. Матрица условий удобна, когда количество предикторов является большим, и вы хотите сгенерировать условия программно.

  • Вектор символов или скаляр строки представление Формулы в форме

    'Y ~ terms',

    где terms находятся в Обозначении Уилкинсона. Имена переменных в формуле должны быть допустимыми идентификаторами MATLAB.

Если вы хотите задать самый маленький или самый большой набор членов в модели что stepwiselm подгонки, используйте Lower и Upper аргументы в виде пар имя-значение.

Типы данных: char | string | single | double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Criterion','aic','Distribution','poisson','Upper','interactions' задает информационный Критерий Akaike как критерий, чтобы добавить или удалить переменные к модели, распределение Пуассона как распределение переменной отклика и модель со всеми возможными взаимодействиями как самая большая модель, чтобы рассмотреть как подгонку.

Количество испытаний за биномиальное распределение, которое является объемом выборки, заданным как разделенная запятой пара, состоящая из 'BinomialSize' и имя переменной в tbl, числовой скаляр или числовой вектор той же длины как ответ. Это - параметр n для подходящего биномиального распределения. BinomialSize применяется только когда Distribution параметром является 'binomial'.

Если BinomialSize скалярное значение, которое означает, что все наблюдения имеют то же количество испытаний.

Как альтернатива BinomialSize, можно задать ответ как матрицу 2D столбца с количествами в столбце 1 и BinomialSize в столбце 2.

Типы данных: single | double | char | string

Категориальный список переменных, заданный как разделенная запятой пара, состоящая из 'CategoricalVars' и или массив строк или массив ячеек из символьных векторов, содержащий категориальные имена переменных в таблице или массиве набора данных tbl, или логический или числовой вектор индекса указание, какие столбцы являются категориальными.

  • Если данные находятся в таблице или массиве набора данных tbl, затем, по умолчанию, stepwiseglm обработки все категориальные значения, логические значения, символьные массивы, строковые массивы и массивы ячеек из символьных векторов как категориальные переменные.

  • Если данные находятся в матричном X, затем значение по умолчанию 'CategoricalVars' пустой матричный []. Таким образом, никакая переменная не является категориальной, если вы не задаете его как категориальный.

Например, можно задать наблюдения 2 и 3 из 6 как категориальное использование любого из следующих примеров.

Пример: 'CategoricalVars',[2,3]

Пример: 'CategoricalVars',logical([0 1 1 0 0 0])

Типы данных: single | double | logical | string | cell

Критерий, чтобы добавить или удалить условия, заданные как разделенная запятой пара, состоящая из 'Criterion' и одно из следующего:

  • 'Deviance'p - значение для F или теста в квадрате хи изменения в отклонении путем добавления или удаления термина. F - тест для тестирования одной модели. Тест в квадрате хи для сравнения двух различных моделей.

  • 'sse'p - значение для F - тест изменения в сумме квадратичной невязки путем добавления или удаления термина.

  • 'aic' — Изменитесь в значении Критерия информации о Akaike (AIC).

  • 'bic' — Изменитесь в значении Байесового информационного критерия (BIC).

  • 'rsquared' — Увеличение значения R 2.

  • 'adjrsquared' — Увеличение значения настроенного R 2.

Пример: 'Criterion','bic'

Индикатор, чтобы вычислить дисперсионный параметр для 'binomial' и 'poisson' распределения, заданные как разделенная запятой пара, состоящая из 'DispersionFlag' и одно из следующих.

trueОцените дисперсионный параметр при вычислении стандартных погрешностей
falseЗначение по умолчанию. Используйте теоретическое значение при вычислении стандартных погрешностей

Подходящая функция всегда оценивает дисперсию для других распределений.

Пример: 'DispersionFlag',true

Распределение переменной отклика, заданной как разделенная запятой пара, состоящая из 'Distribution' и одно из следующих.

'normal'Нормальное распределение
'binomial'Биномиальное распределение
'poisson'Распределение Пуассона
'gamma'Гамма распределение
'inverse gaussian'Обратное Распределение Гаусса

Пример: 'Distribution','gamma'

Наблюдения, чтобы исключить из подгонки, заданной как разделенная запятой пара, состоящая из 'Exclude' и логический или числовой вектор индекса указание, который наблюдения исключить из подгонки.

Например, можно исключить наблюдения 2 и 3 из 6 использований любого из следующих примеров.

Пример: 'Exclude',[2,3]

Пример: 'Exclude',logical([0 1 1 0 0 0])

Типы данных: single | double | logical

Индикатор для постоянного термина (прерывание) в подгонке, заданной как разделенная запятой пара, состоящая из 'Intercept' и любой true включать или false удалить постоянный термин из модели.

Используйте 'Intercept' только при определении модели с помощью вектора символов или скаляра строки, не формулы или матрицы.

Пример: 'Intercept',false

Условия описания спецификации модели, которые не могут быть удалены из модели, задали как разделенная запятой пара, состоящая из 'Lower' и одна из опций для modelspec именование модели.

Пример: 'Lower','linear'

Максимальное количество шагов, чтобы взять, заданный как разделенная запятой пара, состоящая из 'NSteps' и положительное целое число.

Пример: 'NSteps',5

Типы данных: single | double

Возместите переменную в подгонке, заданной как разделенная запятой пара, состоящая из 'Offset' и вектор или имя переменной с той же длиной как ответ.

stepwiseglm использование Offset как дополнительный предиктор, с содействующим значением, зафиксированным в 1,0. Другими словами, формула для подбора кривой

f (μ) ~ Offset + (terms involving real predictors)

с Offset предиктор, имеющий коэффициент 1.

Например, рассмотрите модель регрессии Пуассона. Предположим, что количество количеств известно по теоретическим причинам быть пропорциональным предиктору A. При помощи журнала соединяют функцию и путем определения log(A) как смещение, можно обеспечить модель, чтобы удовлетворить этому теоретическому ограничению.

Типы данных: single | double | char | string

Порог для критерия, чтобы добавить термин, заданный как разделенная запятой пара, состоящая из 'PEnter' и скалярное значение, как описано в этой таблице.

КритерийЗначение по умолчаниюРешение
'Deviance'0.05Если p - значение F - статистическая или статистическая величина в квадрате хи меньше PEnter (p - значение, чтобы войти), добавляет термин к модели.
'SSE'0.05Если SSE модели меньше PEnter, добавьте термин в модель.
'AIC'0Если изменение в AIC модели меньше PEnter, добавьте термин в модель.
'BIC'0Если изменение в BIC модели меньше PEnter, добавьте термин в модель.
'Rsquared'0.1Если увеличение значения R-squared модели больше PEnter, добавьте термин в модель.
'AdjRsquared'0Если увеличение настроенного значения R-squared модели больше PEnter, добавьте термин в модель.

Для получения дополнительной информации смотрите Criterion аргумент пары "имя-значение".

Пример: 'PEnter',0.075

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

Значения строки или векторы символов должны быть среди имен в tbl, или имена вы задаете использование 'VarNames' аргумент пары "имя-значение".

Значением по умолчанию являются все переменные в X, или все переменные в tbl за исключением ResponseVar.

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

Пример: 'PredictorVars',[2,3]

Пример: 'PredictorVars',logical([0 1 1 0 0 0])

Типы данных: single | double | logical | string | cell

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

КритерийЗначение по умолчаниюРешение
'Deviance'0.10Если p - значение F - статистическая или статистическая величина в квадрате хи больше PRemove (p - значение, чтобы удалить), удалите термин из модели.
'SSE'0.10Если p - значение статистической величины F больше PRemove, удалите термин из модели.
'AIC'0.01Если изменение в AIC модели больше PRemove, удалите термин из модели.
'BIC'0.01Если изменение в BIC модели больше PRemove, удалите термин из модели.
'Rsquared'0.05Если увеличение значения R-squared модели меньше PRemove, удалите термин из модели.
'AdjRsquared'-0.05Если увеличение настроенного значения R-squared модели меньше PRemove, удалите термин из модели.

На каждом шаге, stepwiseglm функционируйте также проверяет, является ли термин избыточным (линейно зависимый) с другими условиями в текущей модели. Когда любой термин линейно зависим с другими условиями в текущей модели, stepwiseglm функция удаляет избыточный термин, независимо от значения критерия.

Для получения дополнительной информации смотрите Criterion аргумент пары "имя-значение".

Пример: 'PRemove',0.05

Переменная отклика, чтобы использовать в подгонке, заданной как разделенная запятой пара, состоящая из 'ResponseVar' и или вектор символов или скаляр строки, содержащий имя переменной в таблице или массиве набора данных tbl, или логический или числовой вектор индекса указание, какой столбец является переменной отклика. Обычно необходимо использовать 'ResponseVar' при подборе кривой таблице или массиву набора данных tbl.

Например, можно задать четвертую переменную, сказать yield, как ответ из шести переменных, одним из следующих способов.

Пример: 'ResponseVar','yield'

Пример: 'ResponseVar',[4]

Пример: 'ResponseVar',logical([0 0 0 1 0 0])

Типы данных: single | double | logical | char | string

Спецификация модели, описывающая самый большой набор условий в подгонке, заданной как разделенная запятой пара, состоящая из 'Upper' и одна из опций для modelspec именование модели.

Пример: 'Upper','quadratic'

Имена переменных, заданных как разделенная запятой пара, состоящая из 'VarNames' и массив строк или массив ячеек из символьных векторов включая имена для столбцов X во-первых, и имя для переменной отклика y в последний раз.

'VarNames' не применимо к переменным в таблице или массиве набора данных, потому что те переменные уже имеют имена.

Имена переменных не должны быть допустимыми идентификаторами MATLAB. Однако, если имена не допустимы, вы не можете использовать формулу, когда вы соответствуете или настраиваете модель; например:

  • Вы не можете использовать формулу, чтобы задать условия, чтобы добавить или удалить, когда вы используете addTerms функционируйте или removeTerms функция, соответственно.

  • Вы не можете использовать формулу, чтобы задать нижние и верхние границы модели, когда вы используете step или stepwiseglm функция с аргументами пары "имя-значение" 'Lower' и 'Upper', соответственно.

Прежде, чем задать 'VarNames',varNames, можно проверить имена переменных в varNames при помощи isvarname функция. Следующий код возвращает логический 1 TRUE) для каждой переменной, которая имеет допустимое имя переменной.

cellfun(@isvarname,varNames)
Если имена переменных в varNames не допустимы, затем преобразуют их при помощи matlab.lang.makeValidName функция.
varNames = matlab.lang.makeValidName(varNames);

Пример: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}

Типы данных: string | cell

Управляйте для отображения информации, указанной как разделенная запятой пара, состоящая из 'Verbose' и одно из этих значений:

  • 0 — Подавите все отображение.

  • 1 — Отобразите меры, принятые на каждом шаге.

  • 2 — Отобразите процесс оценки и меры, принятые на каждом шаге.

Пример: 'Verbose',2

Веса наблюдения, заданные как разделенная запятой пара, состоящая из 'Weights' и n-by-1 вектор неотрицательных скалярных значений, где n является количеством наблюдений.

Типы данных: single | double

Выходные аргументы

свернуть все

Обобщенная линейная модель, представляющая припадок наименьших квадратов ссылки ответа на данные, возвращенные как GeneralizedLinearModel объект.

Для свойств и методов обобщенного линейного объекта модели, mdl, смотрите GeneralizedLinearModel страница класса.

Больше о

свернуть все

Матрица условий

Матрица условий T t (p + 1) матричные условия определения в модели, где t является количеством условий, p является количеством переменных предикторов и +1 счетом на переменную отклика. Значение T(i,j) экспонента переменной j в термине i.

Например, предположите, что вход включает три переменных предиктора AB, и C и переменная отклика Y в порядке ABC, и Y. Каждая строка T представляет один термин:

  • [0 0 0 0] — Постоянный термин или прерывание

  • [0 1 0 0] B; эквивалентно, A^0 * B^1 * C^0

  • [1 0 1 0]A*C

  • [2 0 0 0]A^2

  • [0 1 2 0]B*(C^2)

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

Формула

Формула для спецификации модели является вектором символов или скаляром строки формы 'Y ~ terms'.

  • Y имя ответа.

  • terms представляет условия предиктора в модели с помощью обозначения Уилкинсона.

Например:

  • 'Y ~ A + B + C' задает линейную модель с тремя переменными с прерыванием.

  • 'Y ~ A + B + C – 1' задает линейную модель с тремя переменными без прерывания. Обратите внимание на то, что формулы включают константу (прерывание) термин по умолчанию. Чтобы исключить постоянный термин из модели, необходимо включать –1 в формуле.

Обозначение Уилкинсона

Обозначение Уилкинсона описывает условия, существующие в модели. Обозначение относится к условиям, существующим в модели, не ко множителям (коэффициенты) тех условий.

Обозначение Уилкинсона использует эти символы:

  • + средние значения включают следующую переменную.

  • средние значения не включают следующую переменную.

  • : задает взаимодействие, которое является продуктом условий.

  • * задает взаимодействие и все условия более низкоуровневые.

  • ^ возводит предиктор в степень, точно как в * повторный, таким образом, ^ включает условия более низкоуровневые также.

  • () условия групп.

Эта таблица показывает типичные примеры обозначения Уилкинсона.

Обозначение УилкинсонаТермин в стандартном обозначении
1Постоянный (прерывание) термин
A^k, где k положительное целое числоA, A2..., Ak
A + BAB
A*BABA, B
A:BA*B только
–BНе включайте B
A*B + CABCA, B
A + B + C + A:BABCA, B
A*B*C – A:B:CABCA, B , A*C, B*C
A*(B + C)ABCA, B , A*C

Обозначение Statistics and Machine Learning Toolbox™ всегда включает постоянный термин, если вы явным образом не удаляете термин с помощью –1.

Для получения дополнительной информации смотрите Обозначение Уилкинсона.

Каноническая функция

Функцией ссылки по умолчанию для обобщенной линейной модели является canonical link function.

Канонические функции ссылки для обобщенных линейных моделей

РаспределениеСоедините имя функцииФункция ссылкиСредняя (обратная) функция
'normal''identity'f (μ) = μμ = Xb
'binomial''logit'f (μ) = журнал (μ / (1–μ))μ = exp (Xb) / (1 + exp (Xb))
'poisson''log'f (μ) = журнал (μ)μ = exp (Xb)
'gamma'-1f (μ) = 1/μμ = 1 / (Xb)
'inverse gaussian'-2f (μ) = 1/μ2μ = (Xb) –1/2

Советы

  • Обобщенная линейная модель mdl стандартная линейная модель, если вы не задаете в противном случае с Distribution пара "имя-значение".

  • Для других методов, таких как devianceTest, или свойства GeneralizedLinearModel возразите, смотрите GeneralizedLinearModel.

  • После обучения модель можно сгенерировать код C/C++, который предсказывает ответы для новых данных. Генерация кода C/C++ требует MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.

Алгоритмы

  • Stepwise regression является систематическим методом для добавления и удаления условий от линейного или обобщенного линейного, основанного на модели на их статистическом значении в объяснении переменной отклика. Метод начинается с первоначальной модели, заданное использование modelspec, и затем сравнивает объяснительную силу инкрементно больших и меньших моделей.

    stepwiseglm функционируйте использование прямая и обратная ступенчатая регрессия, чтобы определить итоговую модель. На каждом шаге функция ищет условия, чтобы добавить к модели или удалить из основанного на модели на значении 'Criterion' аргумент пары "имя-значение".

    Значение по умолчанию 'Criterion' для линейной регрессии моделью является 'sse'. В этом случае, stepwiselm и step из LinearModel используйте p - значение F - статистическая величина к тестовым моделям с и без потенциального термина в каждом шаге. Если бы термин не находится в настоящее время в модели, нулевая гипотеза - то, что термин имел бы нулевой коэффициент, если добавлено к модели. Если существуют достаточные доказательства, чтобы отклонить нулевую гипотезу, функция добавляет термин в модель. С другой стороны, если термин находится в настоящее время в модели, нулевая гипотеза - то, что термин имеет нулевой коэффициент. Если существуют недостаточные доказательства, чтобы отклонить нулевую гипотезу, функция удаляет термин из модели.

    Ступенчатая регрессия делает эти шаги когда 'Criterion' 'sse':

    1. Подбирайте первоначальную модель.

    2. Исследуйте набор доступных условий не в модели. Если какое-либо из условий имеет p - значения меньше, чем допуск входа (то есть, если бы маловероятно, что термин имел бы нулевой коэффициент, если добавлено к модели), добавьте термин с самым маленьким p - значение и повторите этот шаг; в противном случае перейдите к шагу 3.

    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 как критерий, чтобы добавить или удалить условия.

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

  • stepwiseglm обрабатывает категориальный предиктор можно следующим образом:

    • Модель с категориальным предиктором, который имеет уровни L (категории), включает   переменные индикатора L - 1. Модель использует первую категорию в качестве контрольного уровня, таким образом, это не включает переменную индикатора для контрольного уровня. Если типом данных категориального предиктора является categorical, затем можно проверять порядок категорий при помощи categories и переупорядочьте категории при помощи reordercats настроить контрольный уровень.

    • stepwiseglm обрабатывает группу   переменных индикатора L - 1 как одна переменная. Если вы хотите обработать переменные индикатора как отличные переменные предикторы, создайте переменные индикатора вручную при помощи dummyvar. Затем используйте переменные индикатора, кроме той, соответствующей контрольному уровню категориальной переменной, когда вы подберете модель. Для категориального предиктора X, если вы задаете все столбцы dummyvar(X) и термин прерывания в качестве предикторов, затем матрица проекта становится неполным рангом.

    • Периоды взаимодействия между непрерывным предиктором и категориальным предиктором с уровнями L состоят из поэлементного произведения   переменных индикатора L - 1 с непрерывным предиктором.

    • Периоды взаимодействия между двумя категориальными предикторами с L и уровнями M состоят из (L – 1) *   переменные индикатора (M - 1), чтобы включать все возможные комбинации двух категориальных уровней предиктора.

    • Вы не можете задать условия высшего порядка для категориального предиктора, потому что квадрат индикатора равен себе.

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

  • stepwiseglm рассматривает NaN, '' (пустой символьный вектор), "" (пустая строка), <missing>, и <undefined> значения в tblX, и Y быть отсутствующими значениями. stepwiseglm не использует наблюдения с отсутствующими значениями в подгонке. ObservationInfo свойство подобранной модели указывает действительно ли stepwiseglm использование каждое наблюдение в подгонке.

Альтернативы

  • Используйте fitglm создать модель с фиксированной спецификацией. Используйте step, addTerms, или removeTerms настраивать подобранную модель.

Ссылки

[1] Collett, D. Моделирование двоичных данных. Нью-Йорк: Chapman & Hall, 2002.

[2] Добсон, A. J. Введение в обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

[3] Маккуллаг, P. и Дж. А. Нелдер. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

Введенный в R2013b