step

Улучшите обобщенную линейную модель регрессии путем добавления или удаления условий

Описание

NewMdl = step(mdl) возвращает обобщенную линейную регрессию, основанную на модели на mdl использование ступенчатой регрессии, чтобы добавить или удалить один предиктор.

пример

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

Примеры

свернуть все

Подбирайте модель регрессии Пуассона использование случайных данных и одного предиктора, и затем используйте step улучшить модель путем добавления или удаления условий предиктора.

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

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

Создайте обобщенную линейную модель регрессии данных Пуассона с помощью X(:,2) как единственный предиктор.

mdl = fitglm(X,y,'y ~ x2','Distribution','poisson')
mdl = 
Generalized linear regression model:
    log(y) ~ 1 + x2
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat       pValue  
                   ________    ________    _______    __________

    (Intercept)      1.1386    0.056722     20.073    1.2817e-89
    x2             0.010768    0.056564    0.19037       0.84902


100 observations, 98 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 0.0362, p-value = 0.849

Улучшите mdl при помощи step. Задайте 'NSteps' как 5, чтобы позволить самое большее 5 шагов ступенчатой регрессии.

mdl1 = step(mdl,'NSteps',5)
1. Adding x5, Deviance = 134.4375, Chi2Stat = 52.21338, PValue = 4.978574e-13
2. Adding x15, Deviance = 106.1925, Chi2Stat = 28.24496, PValue = 1.068927e-07
3. Adding x10, Deviance = 94.708, Chi2Stat = 11.4845, PValue = 0.000701792
4. Removing x2, Deviance = 95.021, Chi2Stat = 0.31263, PValue = 0.57607
mdl1 = 
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

step добавляют эти три переменных предиктора, используемые, чтобы сгенерировать переменную отклика к модели, и удаляют X(:,2) из модели.

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

свернуть все

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

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

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

Пример: 'Criterion','aic','Upper','quadratic','Verbose',2 сообщает step чтобы использовать критерий информации о Akaike, включайте (самое большее) квадратичные члены в модели и отобразите процесс оценки и решение, принятое на каждом шаге.

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

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

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

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

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

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

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

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

Спецификация модели, описывающая условия, которые не могут быть удалены из модели в виде разделенной запятой пары, состоящей из 'Lower' и одно из этих значений:

  • Вектор символов или строковый скаляр, называющий модель.

    ЗначениеТип модели
    '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®.

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

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

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

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

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

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

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

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

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

Порог для критерия, чтобы удалить термин в виде разделенной запятой пары, состоящей из '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, удалите термин из модели.

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

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

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

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

  • Вектор символов или строковый скаляр, называющий модель.

    ЗначениеТип модели
    '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.

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

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

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

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

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

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

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

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

свернуть все

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

Перезаписывать входной параметр mdl, присвойте новую модель mdl.

mdl = step(mdl);

Больше о

свернуть все

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

Матрица условий 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.

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

Алгоритмы

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

    step функционируйте использование прямая и обратная ступенчатая регрессия, чтобы определить итоговую модель. На каждом шаге функция ищет условия, чтобы добавить к модели или удалить из основанного на модели на значении '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 как критерий, чтобы добавить или удалить условия.

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

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

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

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

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

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

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

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

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

Альтернативная функциональность

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

  • Используйте addTerms или removeTerms добавить или удалить определенные условия.

Представленный в R2012a