Si la interacción que ocurre entre un continuous
y discrete
variable es (si no me equivoco) de forma relativamente sencilla. La expresión matemática es:
$Y=β_0+β_1X_1+β_2X_2+β_3X_1∗X_2+\epsilon$
Así que si tomamos mi favorito dataset mtcars{datasets}
en R, y llevamos a cabo la siguiente regresión:
(fit <- lm(mpg ~ wt * am, mtcars))
Call:
lm(formula = mpg ~ wt * am, data = mtcars)
Coefficients:
(Intercept) wt am wt:am
31.416 -3.786 14.878 -5.298
am
, que ficticio-códigos para el tipo de transmisión en el coche, am Transmission (0 = automatic, 1 = manual)
nos dará una intercepción de 31.416
para manual
(0
), y 31.416 + 14.878 = 46.294
para automatic
(1
). La pendiente de peso es -3.786
. Y para la interacción, cuando am
es 1
(automático), la regresión de la expresión se ha añadido plazo, $-5.298*1*\text {weight}$, que se sumarán a $-3.786*\text {weight}$, lo que resulta en una pendiente de $-9.084*\text {weight}$. Así que estamos cambiando la pendiente con la interacción.
Pero cuando se trata de dos continuous
variables que interactúan, son realmente podemos crear un número infinito de pistas? ¿Cómo expresar la salida sin cursi frases como "la pendiente se obtendría con los coches que peso $0\,\text{lbs.}$ o $1\,\text{lb.}$? Por ejemplo, tomar las variables explicativas wt
(peso) y hp
(caballos de fuerza) y el regressand mpg
(millas por galón):
(fit <- lm(mpg ~ wt * hp, mtcars))
Call:
lm(formula = mpg ~ wt * hp, data = mtcars)
Coefficients:
(Intercept) wt hp wt:hp
49.80842 -8.21662 -0.12010 0.02785
¿Cómo podemos leer la salida? No parece haber una sola intercepción 49.80842
, mientras que tendría sentido tener dos diferentes interceptos para dar flexibilidad para el ajuste, como en el anterior escenario (¿qué me estoy perdiendo?). Tenemos una pendiente para wt
y una pendiente para hp (-8.21662 -0.12010 = -8.33672
, ¿es esto correcto?). Y, finalmente, la más intrigante 0.02785
. Así que, sí, estamos limitados a la expresión de este absurdo escenarios, como si tuviéramos coches con $1\text{hp}$ tendríamos una modificación de la pendiente para el peso igual a $(-8.21662 + 0.02785)*1*\text{weight}$? O hay forma más sensata de mirar este término?
SOLUCIÓN:
[Nota rápida, segura para saltar: le agradezco mucho las respuestas y la ayuda que prestan, y que se acepte - es bastante difícil con tales Respuestas pendientes, aunque. Así que por favor no tome esta edición como algo más que una manera de compartir lo que he estado haciendo por un rato esta mañana: básicamente a cortar lejos en el R coeficientes hasta que conseguí lo que quería, porque a pesar de la generosa ayuda prestada todavía no podía "ver" cómo uno de los coef trabajado. Además, todo esto preferente serán borrados a la brevedad.]
Podemos "demostrar" cómo estos coeficientes "trabajo" simplemente tomando el primero de los valores de mpg
, wt
y hp
, lo que viene a ser para el glamoroso Mazda RX4:
Estos son:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Y simplemente ejecute predict(fit)[1] Mazda RX4
, que devuelve un $\hat y$ valor de $23.09547$. No importa qué, tengo que reorganizar el coeficiente para obtener este número - todas las permutaciones posibles si es necesario! No es broma. Aquí está:
coef(fit)[1] + (coef(fit)[2] * mtcars$wt[1]) + (coef(fit)[3] * mtcars$hp[1])
+ (coef(fit)[4] * mtcars$wt[1] * mtcars$hp[1])
$= 23.09547$.
La expresión matemática es:
$\small \hat Y=\hat β_0 (=1^{st}\,\text{coef})\,+\,\hatβ_1 (=2^{nd}\,\text{coef})\,*wt \,+\, \hatβ_2 (=3^{rd}\,\text{coef})\,*hp \,+\, [\hatβ_3(=4^{th}\,\text{coef})\, *wt\,∗\,hp]$
Así que, como se señala en las respuestas, sólo hay una intersección (el primer coeficiente), pero hay dos "privado" pistas: una para cada variable explicativa, además de una "compartida" de la pendiente. Esta inclinación permite la obtención de uncountably infinito pendientes si nos "zip" a través de $\mathbb{R}$ para todos los teóricamente posibles realizaciones de una de las variables, y en cualquier momento los podemos combinar ($+$) "compartida" coeficiente de veces que el resto de variable aleatoria (por ejemplo, para hp = 100
, sería 0.02785 * 100 * wt
) con su "privado" pendiente (-8.21662 * wt
). Me pregunto si me puede llamar a un convolución...
También podemos ver que esta es la correcta interpretación ejecutando:
y <- coef(fit)[1] + (coef(fit)[2] * mtcars$wt[1]) + (coef(fit)[3] * mtcars$hp[1]) + (coef(fit)[4] * mtcars$wt[1] * mtcars$hp[1])
identical(as.numeric(predict(fit)[1]), as.numeric(y)) TRUE
Haber redescubierto la rueda vemos que el "compartir" coeficiente es positivo (0.02785), dejando un cabo suelto, ahora, cuál es la explicación de por qué el peso del vehículo, como un predictor de "gas-guzzliness" se almacenan en la memoria para mayores de caballos de los coches de motor... podemos ver este efecto (gracias @Glen_b por la punta) con el $3\,D$ trama de los valores previstos en este modelo de regresión, la cual cumple con las siguientes parabólico hyperboloid: