addTerms

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

Описание

пример

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

Примеры

свернуть все

Создайте модель линейной регрессии carsmall набор данных без любых взаимодействий, и затем добавляет период взаимодействия.

Загрузите carsmall набор данных и создает модель MPG как функция веса и модельный год.

load carsmall
tbl = table(MPG,Weight);
tbl.Year = categorical(Model_Year);
mdl = fitlm(tbl,'MPG ~ Year + Weight^2')
mdl = 
Linear regression model:
    MPG ~ 1 + Weight + Year + Weight^2

Estimated Coefficients:
                    Estimate         SE         tStat       pValue  
                   __________    __________    _______    __________

    (Intercept)        54.206        4.7117     11.505    2.6648e-19
    Weight          -0.016404     0.0031249    -5.2493    1.0283e-06
    Year_76            2.0887       0.71491     2.9215     0.0044137
    Year_82            8.1864       0.81531     10.041    2.6364e-16
    Weight^2       1.5573e-06    4.9454e-07      3.149     0.0022303


Number of observations: 94, Error degrees of freedom: 89
Root Mean Squared Error: 2.78
R-squared: 0.885,  Adjusted R-Squared: 0.88
F-statistic vs. constant model: 172, p-value = 5.52e-41

Модель включает пять условий, Intercept, Weight, Year_76, Year_82, и Weight^2, где Year_76 и Year_82 переменные индикатора для категориальной переменной Year это имеет три отличных значения.

Добавьте период взаимодействия между Year и Weight переменные к mdl.

terms = 'Year*Weight';
NewMdl = addTerms(mdl,terms)
NewMdl = 
Linear regression model:
    MPG ~ 1 + Weight*Year + Weight^2

Estimated Coefficients:
                       Estimate          SE         tStat        pValue  
                      ___________    __________    ________    __________

    (Intercept)            48.045         6.779      7.0874    3.3967e-10
    Weight              -0.012624     0.0041455     -3.0454     0.0030751
    Year_76                2.7768        3.0538     0.90931        0.3657
    Year_82                16.416        4.9802      3.2962     0.0014196
    Weight:Year_76    -0.00020693    0.00092403    -0.22394       0.82333
    Weight:Year_82     -0.0032574     0.0018919     -1.7217      0.088673
    Weight^2           1.0121e-06      6.12e-07      1.6538       0.10177


Number of observations: 94, Error degrees of freedom: 87
Root Mean Squared Error: 2.76
R-squared: 0.89,  Adjusted R-Squared: 0.882
F-statistic vs. constant model: 117, p-value = 1.88e-39

NewMdl включает два дополнительных условия, Weight*Year_76 и Weight*Year_82.

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

свернуть все

Модель линейной регрессии, заданная как 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)

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

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

свернуть все

Модель линейной регрессии с дополнительными условиями, возвращенными как LinearModel объект. 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), чтобы включать все возможные комбинации двух категориальных уровней предиктора.

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

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

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

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

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

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