Чи можлива взаємодія між двома безперервними змінними?


Відповіді:


31

Так, чому ні? У цьому випадку буде застосовано те саме, що і для категоричних змінних: Ефект на результат Y неоднаковий залежно від значення X 2 . Щоб полегшити візуалізацію, ви можете придумати значення, прийняті X 1, коли X 2 приймає великі або низькі значення. На відміну від категоричних змінних, тут взаємодія якраз представлена ​​добутками X 1 і X 2 . Зверніть увагу, краще спершу сфокусувати свої дві змінні (щоб коефіцієнт для, скажімо, X 1 читав як ефект X 1, коли XX1YX2X1X2X1X2X1X1 - середнє значення для його вибірки).X2

Як ласкаво запропонував @whuber, простий спосіб зрозуміти, як змінюється на Y як функцію X 2 при включенні терміна взаємодії, - це записати модель E ( Y | X ) = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 1 X 2 .X1YX2E(Y|X)=β0+β1X1+β2X2+β3X1X2

Тоді видно, що ефект збільшення на 1 одиницю коли X 2 підтримується постійним, може бути виражений як:X1X2

E(Y|X1+1,X2)E(Y|X1,X2)=β0+β1(X1+1)+β2X2+β3(X1+1)X2(β0+β1X1+β2X2+β3X1X2)=β1+β3X2

Аналогічно, ефект, коли збільшується на одну одиницю, утримуючи константу X 1, є β 2 + β 3 X 1 . Це демонструє, чому важко інтерпретувати ефекти X 1 ( β 1 ) та X 2 ( β 2 ) ізольовано. Це буде ще складніше, якщо обидва прогнозисти сильно співвідносяться. Важливо також пам’ятати про припущення про лінійність, яке робиться в такій лінійній моделі.X2X1β2+β3X1X1β1X2β2

Ви можете ознайомитись з декількома регресіями: тестування та інтерпретація взаємодій Леона С. Ейкен, Стівен Г. Вест та Реймонд Р. Рено (Sage Publications, 1996) для огляду різного роду ефектів взаємодії при множинній регресії. . (Це, мабуть, не найкраща книга, але вона доступна через Google)

Ось приклад іграшки в R:

library(mvtnorm)
set.seed(101)
n <- 300                      # sample size
S <- matrix(c(1,.2,.8,0,.2,1,.6,0,.8,.6,1,-.2,0,0,-.2,1), 
            nr=4, byrow=TRUE) # cor matrix
X <- as.data.frame(rmvnorm(n, mean=rep(0, 4), sigma=S))
colnames(X) <- c("x1","x2","y","x1x2")
summary(lm(y~x1+x2+x1x2, data=X))
pairs(X)

де результат насправді читає:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.01050    0.01860  -0.565    0.573    
x1           0.71498    0.01999  35.758   <2e-16 ***
x2           0.43706    0.01969  22.201   <2e-16 ***
x1x2        -0.17626    0.01801  -9.789   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.3206 on 296 degrees of freedom
Multiple R-squared: 0.8828, Adjusted R-squared: 0.8816 
F-statistic: 743.2 on 3 and 296 DF,  p-value: < 2.2e-16 

А ось як виглядають змодельовані дані:

alt текст

Щоб проілюструвати другий коментар @ whuber, ви завжди можете розглядати варіації як функцію X 2 при різних значеннях X 1 (наприклад, терцили або децили); малюнки шпалер корисні в цьому випадку. Із наведеними вище даними ми будемо діяти так:YX2X1

library(Hmisc)
X$x1b <- cut2(X$x1, g=5) # consider 5 quantiles (60 obs. per group)
coplot(y~x2|x1b, data=X, panel = panel.smooth)

alt текст


5
(+1) Якщо у вас є час і схильність, ви можете посилити цю відповідь, розширивши свою заяву, що в тому числі X1 * X2 змушує ефект X1 на Y змінюватись на X2. Зокрема, модель Y = b0 + b1 * X1 + b2 * X2 + b3 * (X1 * X2) + помилка також може розглядатися як така, що має вигляд Y = b0 + (b1 + b3 * X2) * X1 + b2 * X2 + похибка, точно показуючи, як коефіцієнт X1 - який дорівнює b1 + b3 * X2 - змінюється в залежності від X2 (і, симетрично, коефіцієнт X2 змінюється від X1). Це проста, природна форма "взаємодії".
whuber

1
@chl - Дякую за відповідь. Проблема, яку я маю, полягає в тому, що у мене є великий n(11K) і я використовую MiniTab, щоб зробити сюжет взаємодій, і це потрібно вічно обчислювати, але нічого не показує. Я просто не впевнений, як я бачу, чи є взаємодія з цим набором даних.
TheCloudlessSky

3
@TheCloudlessSky: Один із підходів полягає в розрізанні даних у бункери відповідно до значень X1. Ділянка Y по відношенню до X2 відро для сміття, шукаючи зміни нахилу, оскільки бункери змінюються. Зробіть те саме, що ролі X1 і X2 перевернуті.
whuber

3
@chl Дисплей шпалери - приємна ілюстрація. Нарізання однієї змінної на квантили з рівними інтервалами привабливі. Є й інші підходи. Наприклад, Тукі рекомендував нарізати, розрізавши навпіл хвости: тобто, розрізати значення X2 навпіл на медіані, потім розрізати ці половинки за їх медіанами, потім нарізати нижню половину найнижчої групи за медіаною та верхню половину найвищої групи за її медіаною тощо, триваючи до тих пір, поки нові групи не матимуть достатньої кількості даних.
whuber

1
@whuber Це знову ж таки вдалий момент. Я ознайомлюсь з можливою реалізацією R або спробую сам.
chl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.