Tutte le mie variabili sono continue. Non ci sono livelli È possibile anche avere un'interazione tra le variabili?
Tutte le mie variabili sono continue. Non ci sono livelli È possibile anche avere un'interazione tra le variabili?
Risposte:
Si perché no? La stessa considerazione delle variabili categoriali si applicherebbe in questo caso: l'effetto di sull'esito non è lo stesso a seconda del valore di . Per aiutarti a visualizzarlo, puoi pensare ai valori presi da quando assume valori alti o bassi. Contrariamente alle variabili categoriali, qui l'interazione è rappresentata dal prodotto di e . Da notare, è meglio centrare prima le due variabili (in modo tale che il coefficiente per dire legga come l'effetto di quando è alla sua media campionaria).
Come gentilmente suggerito da @whuber, un modo semplice per vedere come varia con in funzione di quando è incluso un termine di interazione, è scrivere il modello .
Quindi, si può vedere che l'effetto di un aumento di un'unità di quando viene mantenuto costante può essere espresso come:
Allo stesso modo, l'effetto quando viene aumentato di un'unità mentre si tiene costante è . Ciò dimostra perché è difficile interpretare gli effetti di ( ) e ( ) isolatamente. Ciò sarà persino più complicato se entrambi i predittori sono altamente correlati. È anche importante tenere presente l'assunto di linearità che viene fatto in un modello così lineare.
Puoi dare un'occhiata alla regressione multipla: test e interpretazione delle interazioni , di Leona S. Aiken, Stephen G. West e Raymond R. Reno (Sage Publications, 1996), per una panoramica dei diversi tipi di effetti di interazione nella regressione multipla . (Questo probabilmente non è il miglior libro, ma è disponibile tramite Google)
Ecco un esempio di giocattolo in 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)
dove l'output effettivamente legge:
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
Ed ecco come appaiono i dati simulati:
Per illustrare il secondo commento di @ whuber, puoi sempre guardare le variazioni di in funzione di a diversi valori di (ad esempio, tercili o decili); i display a traliccio sono utili in questo caso. Con i dati sopra, procederemo come segue:
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)
n
(11K) e sto usando MiniTab per fare un diagramma di interazioni e ci vuole un'eternità per calcolare ma non mostra nulla. Non sono sicuro di come vedo se c'è interazione con questo set di dati.