exponenta event banner

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