removeTerms

Удалите условия из линейной регрессионой модели

Описание

пример

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

Примеры

свернуть все

Создайте линейную регрессионую модель с помощью hald набор данных. Удалите условия, которые имеют высокие p-значения.

Загрузите набор данных.

load hald
X = ingredients; % predictor variables
y = heat; % response variable

Подбор линейной регрессионной модели к данным.

mdl = fitlm(X,y)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)      62.405     70.071      0.8906     0.39913
    x1               1.5511    0.74477      2.0827    0.070822
    x2              0.51017    0.72379     0.70486      0.5009
    x3              0.10191    0.75471     0.13503     0.89592
    x4             -0.14406    0.70905    -0.20317     0.84407


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.45
R-squared: 0.982,  Adjusted R-Squared: 0.974
F-statistic vs. constant model: 111, p-value = 4.76e-07

Удалите x3 и x4 условия, потому что их p-значения высоки.

terms = 'x3 + x4'; % terms to remove
NewMdl = removeTerms(mdl,terms)
NewMdl = 
Linear regression model:
    y ~ 1 + x1 + x2

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     52.577       2.2862    22.998    5.4566e-10
    x1              1.4683       0.1213    12.105    2.6922e-07
    x2             0.66225     0.045855    14.442     5.029e-08


Number of observations: 13, Error degrees of freedom: 10
Root Mean Squared Error: 2.41
R-squared: 0.979,  Adjusted R-Squared: 0.974
F-statistic vs. constant model: 230, p-value = 4.41e-09

NewMdl имеет то же скорректированное значение R-квадрат (0,974), что и предыдущая модель, что означает, что подгонка так же хороша в новой модели. Все условия в новой модели имеют чрезвычайно низкие p-значения.

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

свернуть все

Линейная регрессионая модель, заданная как LinearModel объект, созданный с помощью fitlm или stepwiselm.

Условия для удаления из регрессионной модели mdl, указанный как одно из следующего:

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

  • Матрица терминов T размера t -by - p, где t - количество членов, а p - количество переменных предиктора в mdl. Значение T(i,j) - экспонента переменной j в терминах i.

    Например, предположим mdl имеет три переменные A, B, и C в таком порядке. Каждая строка T представляет собой один термин:

    • [0 0 0] - Постоянный срок или точка пересечения

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

    • [1 0 1]A*C

    • [2 0 0]A^2

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

removeTerms рассматривает группу переменных индикатора для категориального предиктора как одну переменную. Поэтому вы не можете задать переменную индикатора, которая будет удалена из модели. Если вы задаете категориальный предиктор, который нужно удалить из модели, removeTerms удаляет группу переменных индикатора для предиктора за один шаг. Смотрите Изменение Линейной Регрессионной Модели Используя шаг для примера, который описывает, как создать переменные индикатора вручную и рассматривать каждую как отдельную переменную.

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

свернуть все

Линейная регрессионая модель с меньшим количеством членов, возвращенная как LinearModel объект. NewMdl - эта новая подобранная модель, которое использует входные данные и настройки в mdl с терминами, указанными в terms удален из mdl.

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

mdl = removeTerms(mdl,terms);

Подробнее о

свернуть все

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

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

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

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

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

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

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

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

  • () группы терминов.

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

Уилкинсон ОбозначениеТермины в стандартном обозначении
1Константа ( точку пересечения) термин
x1^k, где k является положительным целым числомx1, x12..., x1k
x1 + x2x1, x2
x1*x2x1, x2, x1*x2
x1:x2x1*x2 только
–x2Не включать x2
x1*x2 + x3x1, x2, x3, x1*x2
x1 + x2 + x3 + x1:x2x1, x2, x3, x1*x2
x1*x2*x3 – x1:x2:x3x1, x2, x3, x1*x2, x1*x3, x2*x3
x1*(x2 + x3)x1, x2, x3, x1*x2, x1*x3

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

Алгоритмы

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

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

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

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

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

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

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

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

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

  • Использование step оптимально улучшить модель путем добавления или удаления терминов.

Расширенные возможности

Введенный в R2012a