plotInteraction

Постройте эффекты взаимодействия двух предикторов в линейной регрессионой модели

Описание

пример

plotInteraction(mdl,var1,var2) создает график основных эффектов двух выбранных предикторов var1 и var2 и их условные эффекты в линейной регрессионой модели mdl. Горизонтальные линии через значения эффекта указывают на их 95% доверительные интервалы.

пример

plotInteraction(mdl,var1,var2,ptype) задает тип графика ptype. Для примера, если ptype является 'predictions', затем plotInteraction строит график скорректированной функции отклика как функции второго предиктора с первым предиктором, фиксированным на конкретных значениях. Для получения дополнительной информации смотрите Условный эффект.

h = plotInteraction(___) возвращает объекты линий, используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Использование h изменение свойств линий после создания графика. Список свойств см. в разделе «Свойства линии».

Примеры

свернуть все

Подгонка модели с термином взаимодействия и создание графика взаимодействия, который показывает основные эффекты и условные эффекты.

Использование данных в carsmall набор данных, создайте значения отклика, которые включают термин взаимодействия. Во-первых, загрузите набор данных и нормализуйте данные предиктора.

load carsmall
Acceleration = normalize(Acceleration); 
Horsepower = normalize(Horsepower);
Displacement = normalize(Displacement);

Задайте переменную отклика, которая включает в себя термин взаимодействия Acceleration*Horsepower.

y = Acceleration + 4*Horsepower + Acceleration.*Horsepower + Displacement;

Добавьте некоторое количество шума к значениям отклика.

rng('default') % For reproducibility
y = y + normrnd(10,0.25*std(y,'omitnan'),size(y));

Составьте таблицу, которая включает данные предиктора и значения отклика.

tbl = table(Acceleration,Horsepower,Displacement,y);

Подбор линейной регрессионой модели.

mdl = fitlm(tbl,'y ~ Acceleration + Horsepower + Acceleration*Horsepower + Displacement + Horsepower*Displacement')
mdl = 
Linear regression model:
    y ~ 1 + Acceleration*Horsepower + Horsepower*Displacement

Estimated Coefficients:
                                Estimate       SE         tStat        pValue  
                               __________    _______    _________    __________

    (Intercept)                    9.8652    0.16177       60.982     8.587e-77
    Acceleration                  0.63726     0.1626       3.9191    0.00016967
    Horsepower                     3.6168       0.34       10.638     9.273e-18
    Displacement                  0.95032    0.31828       2.9858     0.0036144
    Acceleration:Horsepower       0.60108     0.1851       3.2473     0.0016209
    Horsepower:Displacement    -0.0096069    0.20947    -0.045863       0.96352


Number of observations: 99, Error degrees of freedom: 93
Root Mean Squared Error: 1.07
R-squared: 0.93,  Adjusted R-Squared: 0.927
F-statistic vs. constant model: 249, p-value = 3.3e-52

pValue термина взаимодействия Acceleration*Horsepower очень маленькая, что означает, что термин взаимодействия статистически значим.

Создайте график взаимодействия, который показывает основные эффекты и условные эффекты Horsepower и Acceleration.

plotInteraction(mdl,'Horsepower','Acceleration')

Figure contains an axes. The axes with title Interaction of Horsepower and Acceleration contains 12 objects of type line.

Для каждого предиктора основная точка эффекта и ее условные точки эффекта не выровнены по вертикали. Поэтому вы не можете найти никаких вертикальных линий, которые проходят через доверительные интервалы основной и условной точек эффекта для каждого предиктора. Этот график указывает на существование эффектов взаимодействия на переменную отклика.

Для сравнения создайте график взаимодействия для Displacement и Horsepower. Это p-значение этого термина взаимодействия (Displacement*Horsepower) является большим, что означает, что термин взаимодействия не является статистически значимым.

plotInteraction(mdl,'Displacement','Horsepower')

Figure contains an axes. The axes with title Interaction of Displacement and Horsepower contains 12 objects of type line.

Для каждого предиктора основная точка эффекта и ее условные точки эффекта выровнены вертикально. Этот график указывает на отсутствие взаимодействия.

Подгонка модели с термином взаимодействия и создание графика взаимодействия скорректированных кривых отклика.

Использование данных в carsmall набор данных, создайте значения отклика, которые включают термин взаимодействия. Во-первых, загрузите набор данных и нормализуйте данные предиктора.

load carsmall
Acceleration = normalize(Acceleration); 
Horsepower = normalize(Horsepower);
Displacement = normalize(Displacement);

Задайте переменную отклика, которая включает в себя термин взаимодействия Acceleration*Horsepower.

y = Acceleration + 4*Horsepower + Acceleration.*Horsepower + Displacement;

Добавьте некоторое количество шума к значениям отклика.

rng('default') % For reproducibility
y = y + normrnd(10,0.25*std(y,'omitnan'),size(y));

Составьте таблицу, которая включает данные предиктора и значения отклика.

tbl = table(Acceleration,Horsepower,Displacement,y);

Подбор линейной регрессионой модели.

mdl = fitlm(tbl,'y ~ Acceleration + Horsepower + Acceleration*Horsepower + Displacement + Horsepower*Displacement')
mdl = 
Linear regression model:
    y ~ 1 + Acceleration*Horsepower + Horsepower*Displacement

Estimated Coefficients:
                                Estimate       SE         tStat        pValue  
                               __________    _______    _________    __________

    (Intercept)                    9.8652    0.16177       60.982     8.587e-77
    Acceleration                  0.63726     0.1626       3.9191    0.00016967
    Horsepower                     3.6168       0.34       10.638     9.273e-18
    Displacement                  0.95032    0.31828       2.9858     0.0036144
    Acceleration:Horsepower       0.60108     0.1851       3.2473     0.0016209
    Horsepower:Displacement    -0.0096069    0.20947    -0.045863       0.96352


Number of observations: 99, Error degrees of freedom: 93
Root Mean Squared Error: 1.07
R-squared: 0.93,  Adjusted R-Squared: 0.927
F-statistic vs. constant model: 249, p-value = 3.3e-52

pValue термина взаимодействия Acceleration*Horsepower очень маленькая, что означает, что термин взаимодействия статистически значим.

Создайте график взаимодействия, который показывает скорректированную функцию отклика как функцию от Acceleration, с Horsepower фиксированный при определенных значениях.

plotInteraction(mdl,'Horsepower','Acceleration','predictions')

Figure contains an axes. The axes with title Interaction of Horsepower and Acceleration contains 4 objects of type line. These objects represent Horsepower, -1.4506, 0.51529, 2.4812.

Кривые не параллельны. Этот график указывает на взаимодействия между предикторами.

Для сравнения создайте график взаимодействия для Displacement и Horsepower. P-значение этого члена взаимодействия (Displacement*Horsepower) является большим, что означает, что термин взаимодействия не является статистически значимым.

plotInteraction(mdl,'Displacement','Horsepower','predictions')

Figure contains an axes. The axes with title Interaction of Displacement and Horsepower contains 4 objects of type line. These objects represent Displacement, -1.0969, 0.55827, 2.2134.

Кривые параллельны, что указывает на отсутствие взаимодействия.

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

свернуть все

Объект модели линейной регрессии, заданный как LinearModel объект, созданный при помощи fitlm или stepwiselm, или CompactLinearModel объект, созданный при помощи compact.

Первая переменная для графика, заданная как вектор символов или строковые массивы имени переменной в mdl.VariableNames (VariableNames свойство mdl) или положительное целое число, представляющее индекс переменной в mdl.VariableNames.

Типы данных: char | string | single | double

Вторая переменная для графика, заданная как вектор символов или строковые массивы имени переменной в mdl.VariableNames (VariableNames свойство mdl) или положительное целое число, представляющее индекс переменной в mdl.VariableNames.

Типы данных: char | string | single | double

Тип графика, заданный как одно из следующих значений:

  • 'effects'plotInteraction создает график основных эффектов двух выбранных предикторов var1 и var2 и их условные эффекты. Горизонтальные линии через значения эффекта указывают на их 95% доверительные интервалы.

  • 'predictions'plotInteraction строит график скорректированной функции отклика как функции от var2, с var1 фиксированный при определенных значениях.

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

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

свернуть все

Объекты линии, возвращенные как вектор. Используйте запись через точку для того, чтобы запросить и задать свойства объектов линии. Для получения дополнительной информации см. раздел Свойств линии».

Если тип графика 'effects' (по умолчанию), h(1) соответствует кругам, которые представляют основные оценки эффекта, и h(2) и h(3) соответствуют 95% доверительным интервалам для двух основных эффектов. Оставшиеся записи в h соответствуют условным эффектам и их доверительным интервалам. Объекты линий, сопоставленные с основными эффектами, имеют тег 'main'. Объекты линии, связанные с условными эффектами var1 и var2 иметь теги 'conditional1' и 'conditional2', соответственно.

Если тип графика 'predictions', каждая запись в h соответствует каждой кривой на графике.

Подробнее о

свернуть все

Основной эффект

Эффект, или основной эффект, предиктора представляет эффект одного предиктора на ответ от изменения значения предиктора с усреднением эффектов других предикторов.

Для xs переменной предиктора эффект определяется

g (x <reservedrangesplaceholder5> <reservedrangesplaceholder4>) – g (x <reservedrangesplaceholder1> <reservedrangesplaceholder0>),

где g - функция Adjusted Response. plotEffects функция выбирает i и j наблюдения следующим образом. Для категорической переменной, которая не является порядковой, <reservedrangesplaceholder11> <reservedrangesplaceholder10> <reservedrangesplaceholder9> и <reservedrangesplaceholder8> <reservedrangesplaceholder7> <reservedrangesplaceholder6>, значения предсказателя, которые создают максимальные и минимальные приспособленные ответы, соответственно, так, чтобы значение эффекта было всегда положительным. Для числовой переменной или порядковой категорической переменной, функция выбирает два значения предсказателя, которые создают минимальные и максимальные приспособленные ответы где <reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <<reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

plotEffects строит графики значения эффекта и 95% доверительного интервала значения эффекта для каждой переменной предиктора.

Скорректированный ответ

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

Регрессионная модель для переменных предиктора (x 1, x 2,..., x p) и y переменной отклика имеет вид

y я = f (x 1i, <reservedrangesplaceholder3> 2i..., <reservedrangesplaceholder2> <reservedrangesplaceholder1>) + r я,

где f - установленная регрессионная функция, а r - остаточная. i индекса представляет номер наблюдения.

Скорректированная функция отклика для первой переменной предиктора x 1, для примера, определяется как

g(x1)=1ni=1nf(x1,x2i,x3i,...,xpi),

где n - количество наблюдений. Скорректированное значение данных отклика является суммой скорректированного подобранного значения и невязки для каждого наблюдения.

y˜i=g(x1i)+ri.

plotAdjustedResponse строит графики скорректированной функции отклика и скорректированных значений данных отклика для выбранной переменной предиктора.

Условный эффект

Когда модель содержит член взаимодействия, основной эффект одного предиктора зависит от значения другого предиктора, который взаимодействует с ним. В этом случае условный эффект одного предиктора, заданный конкретное значение другого, полезен для понимания фактического эффекта обоих предикторов. Можно изучить, зависит ли эффект одного предиктора от значения другого, используя условные значения эффекта.

Чтобы задать условный эффект, задайте скорректированную функцию отклика как функцию от двух переменных. Для примера скорректированная функция отклика x 1 и x 2

h(x1,x2)=1ni=1nf(x1,x2,x3i,...,xpi),

где f - установленная регрессионная функция, а n - количество наблюдений.

Условный эффект одного предиктора (x 2), заданный конкретное значение другого предиктора (x 1 k), определяется

h (x 1 k, <reservedrangesplaceholder6> 2 <reservedrangesplaceholder5>) - h (x 1 k, <reservedrangesplaceholder1> 2 <reservedrangesplaceholder0>).

Чтобы вычислить значения условного эффекта, plotInteraction выбирает i и j наблюдений x 2 так же, как и в случае, когда функция вычисляет Основной Эффект и выбирает x 1 k значений. Если x 1 является категориальной переменной, тоplotInteraction вычисляет условный эффект для всех уровней x 1. Если x 1 является числовой переменной, тоplotInteraction вычисляет условный эффект для трех значений x 1: минимальное значение x 1, максимальное значение x 1 и среднее значение минимума и максимума.

Если тип графика 'effects' (по умолчанию), plotInteraction строит графики основных эффектов двух выбранных предикторов, их условных эффектов и 95% доверительных границ для значений эффекта.

Если тип графика 'predictions', plotInteraction строит график скорректированной функции отклика как функции второго предиктора с первым предиктором, фиксированным на конкретных значениях. Для примера, plotInteraction(mdl,'x1','x2','predictions') готовит кривую h (x 1 k, <reservedrangesplaceholder2> 2) для каждого значения <reservedrangesplaceholder1> 1 <reservedrangesplaceholder0>.

Совет

  • В Data Cursor отображаются значения выбранного графика точки в всплывающую подсказку (небольшое текстовое поле, расположенное рядом с точкой данных). Оголовок данных включает x -ось и y -ось для выбранной точки вместе с именем или номером наблюдения.

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

  • A LinearModel объект обеспечивает несколько функции построения графика.

    • При создании модели используйте plotAdded чтобы понять эффект добавления или удаления переменной предиктора.

    • При проверке модели используйте plotDiagnostics найти сомнительные данные и понять эффект каждого наблюдения. Кроме того, используйте plotResiduals для анализа невязок модели.

    • После подбора кривой модели используйте plotAdjustedResponse, plotPartialDependence, и plotEffects чтобы понять эффект конкретного предиктора. Использовать plotInteraction чтобы понять эффект взаимодействия между двумя предикторами. Кроме того, используйте plotSlice чтобы построить срезы по поверхности предсказания.

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

Введенный в R2012a