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Постоянный (прерывание) термин
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.

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

Алгоритмы

  • 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