addTerms

Добавьте термины в обобщенную линейную модель регрессии

Описание

пример

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

Примеры

свернуть все

Создайте обобщенную линейную модель регрессии использование одного предиктора, и затем добавьте другой предиктор.

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

rng('default') % For reproducibility
rndvars = randn(100,2);
X = [2 + rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

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

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

Estimated Coefficients:
                   Estimate       SE        tStat     pValue
                   ________    _________    ______    ______

    (Intercept)     2.7784      0.014043    197.85      0   
    x1              1.1732     0.0033653     348.6      0   


100 observations, 98 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 1.25e+05, p-value = 0

Добавьте второй предиктор в модель.

mdl1 = addTerms(mdl,'x2')
mdl1 = 
Generalized linear regression model:
    log(y) ~ 1 + x1 + x2
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat     pValue
                   ________    _________    ______    ______

    (Intercept)     1.0405      0.022122    47.034      0   
    x1              0.9968      0.003362    296.49      0   
    x2               1.987     0.0063433    313.24      0   


100 observations, 97 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 2.95e+05, p-value = 0

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

свернуть все

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

Условия, чтобы добавить к модели 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)

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

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

свернуть все

Обобщенная линейная модель регрессии с дополнительными условиями, возвращенными как GeneralizedLinearModel объект. NewMdl недавно подобранная модель, которая использует входные данные и настройки в mdl с дополнительными условиями, заданными в terms.

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

mdl = addTerms(mdl,terms);

Больше о

свернуть все

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

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

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

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

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

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

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

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

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

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

Обозначение УилкинсонаУсловия в стандартном обозначении
1Постоянный (точка пересечения) термин
x1^k, где k положительное целое числоx1x1 2x1 k
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

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

Алгоритмы

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

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

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

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

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

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

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

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

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

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

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

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