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-squared (0.974) как предыдущая модель, означая, что подгонка так же хороша в новой модели. Все условия в новой модели имеют чрезвычайно низкие p-значения.

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

свернуть все

Модель линейной регрессии в виде LinearModel объект создал использование fitlm или stepwiselm.

Условия, чтобы удалить из модели mdl регрессииВ виде одного из следующего:

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

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

    Например, предположите mdl имеет три переменные AB, и 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 + x2x1x2
x1*x2x1x2 x1, x2
x1:x2x1*x2 только
–x2Не включайте x2
x1*x2 + x3x1x2 , x3x1, x2
x1 + x2 + x3 + x1:x2x1x2 , x3x1, x2
x1*x2*x3 – x1:x2:x3x1x2 , x3x1, x2 , x1*x3, x2*x3
x1*(x2 + x3)x1x2 , x3x1, 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
Для просмотра документации необходимо авторизоваться на сайте