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

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

Алгоритмы

  • 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