Permítanme armar un ejemplo simple para que expliquen el concepto, luego podemos verificarlo con sus coeficientes.
Tenga en cuenta que al incluir tanto la variable ficticia "A / B" como el término de interacción, efectivamente le está dando a su modelo la flexibilidad para ajustar una intercepción diferente (usando el ficticio) y la pendiente (usando la interacción) en los datos "A" y los datos "B". En lo que sigue, realmente no importa si el otro predictor es una variable continua o, como en su caso, otra variable ficticia. Si hablo en términos de su "intercepción" y "pendiente", esto puede interpretarse como "nivel cuando el maniquí es cero" y "cambio de nivel cuando el maniquí se cambia de aX0 01" si tu prefieres.
Supongamos que el modelo ajustado de OLS solo en los datos "A" es y^= 12 + 5 x y en los datos "B" solo es y^= 11 + 7 x. Los datos pueden verse así:
Ahora supongamos que tomamos "A" como nuestro nivel de referencia y usamos una variable ficticia si así que eso b = 1 para observaciones en el Grupo B pero b = 0 en el Grupo A. El modelo ajustado en todo el conjunto de datos es
y^yo=β^0 0+β^1Xyo+β^2siyo+β^3Xyosiyo
Para observaciones en el Grupo A tenemos y^yo=β^0 0+β^1Xyo y podemos minimizar su suma de residuos al cuadrado configurando β^0 0= 12 y β^1= 5. Para los datos del Grupo B,y^yo= (β^0 0+β^2) + (β^1+β^3)Xyo y podemos minimizar su suma de residuos al cuadrado tomando β^0 0+β^2= 11 y β^1+β^3= 7. Está claro que podemos minimizar la suma de los residuos al cuadrado en la regresión general minimizando las sumas para ambos grupos, y que esto se puede lograr estableciendoβ^0 0= 12 y β^1= 5 (del Grupo A) y β^2= - 1 y β^3= 2(dado que los datos "B" deben tener una intersección una más baja y una pendiente dos más alta). Observe cómo era necesaria la presencia de un término de interacción para que tengamos suficiente flexibilidad para minimizar la suma de los residuos al cuadrado para ambos grupos a la vez . Mi modelo ajustado será:
y^yo= 12 + 5Xyo- 1siyo+ 2Xyosiyo
Cambie todo esto para que "B" sea el nivel de referencia y una es una codificación variable ficticia para el Grupo A. ¿Puede ver que ahora debo ajustar el modelo?
y^yo= 11 + 7Xyo+ 1unayo- 2Xyounayo
Es decir, tomo la intercepción (11) y pendiente (7 7) de mi grupo de referencia "B", y utilizo el término ficticio y de interacción para ajustarlos para mi grupo "A". Estos ajustes esta vez están en la dirección inversa (necesito una intercepción más alta y una pendiente dos más baja ), por lo tanto, los signos se invierten en comparación con cuando tomé "A" como grupo de referencia, pero debería quedar claro por qué los otros coeficientes tienen no simplemente cambió de signo.
Comparemos eso con su salida. En una notación similar a la anterior, su primer modelo ajustado con la línea de base "A" es:
y^yo= 100.7484158 + 0.9030541siyo- 0.8693598Xyo+ 0.8709116Xyosiyo
Su segundo modelo ajustado con la línea de base "B" es:
y^yo= 101.651469922 - 0.903054145unayo+ 0.001551843Xyo- 0.870911601Xyounayo
En primer lugar, verifiquemos que estos dos modelos den los mismos resultados. Pongamossiyo= 1 -unayo en la primera ecuación, y obtenemos:
y^yo= 100.7484158 + 0.9030541 ( 1 -unayo) - 0.8693598Xyo+ 0.8709116Xyo( 1 -unayo)
Esto se simplifica a:
y^yo= ( 100.7484158 + 0.9030541 ) - 0.9030541unayo+ ( - 0.8693598 + 0.8709116 )Xyo- 0.8709116Xyounayo
Un poco de aritmética rápida confirma que esto es lo mismo que el segundo modelo ajustado; Además, ahora debería quedar claro qué coeficientes se han intercambiado en signos y qué coeficientes simplemente se han ajustado a la otra línea de base.
En segundo lugar, veamos cuáles son los diferentes modelos ajustados en los grupos "A" y "B". Tu primer modelo da inmediatamentey^yo= 100.7484158 - 0.8693598Xyo para el grupo "A", y su segundo modelo da inmediatamente y^yo= 101.651469922 + 0.001551843Xyopara el grupo "B". Puede verificar que el primer modelo proporcione el resultado correcto para el grupo "B" sustituyendosiyo= 1en su ecuación; el álgebra, por supuesto, funciona de la misma manera que el ejemplo más general anterior. Del mismo modo, puede verificar que el segundo modelo dé el resultado correcto para el grupo "A" configurandounayo= 1.
En tercer lugar, dado que en su caso el otro regresor también era una variable ficticia, le sugiero que calcule las medias condicionales ajustadas para las cuatro categorías ("A" con x = 0, "A" con x = 1, "B" con x = 0, "B" con x = 1) en ambos modelos y compruebe que comprende por qué están de acuerdo. Estrictamente hablando, esto es innecesario, ya que ya hemos realizado el álgebra más general anterior para mostrar que los resultados serán consistentes incluso siXes continuo , pero creo que sigue siendo un ejercicio valioso. No completaré los detalles ya que la aritmética es sencilla y está más en línea con el espíritu de la muy buena respuesta de JonB. Un punto clave a entender es que, cualquiera que sea el grupo de referencia que utilice, su modelo tiene suficiente flexibilidad para ajustarse a cada media condicional por separado. (Aquí es donde hace la diferencia que tuX es un maniquí para un factor binario en lugar de una variable continua; con predictores continuos generalmente no esperamos la media condicional estimada y^ para igualar la media muestral para cada combinación observada de predictores.) Calcule la media muestral para cada una de esas cuatro combinaciones de categorías, y debería encontrar que coinciden con sus medias condicionales ajustadas.
Código R para dibujar la trama y explorar modelos ajustados, predichos y^ y grupo significa
#Make data set with desired conditional means
data.df <- data.frame(
x = c(0,0,0, 1,1,1, 0,0,0, 1,1,1),
b = c(0,0,0, 0,0,0, 1,1,1, 1,1,1),
y = c(11.8,12,12.2, 16.8,17,17.2, 10.8,11,11.2, 17.8,18,18.2)
)
data.df$a <- 1 - data.df$b
baselineA.lm <- lm(y ~ x * b, data.df)
summary(baselineA.lm) #check this matches y = 12 + 5x - 1b + 2xb
baselineB.lm <- lm(y ~ x * a, data.df)
summary(baselineB.lm) #check this matches y = 11 + 7x + 1a - 2xa
fitted(baselineA.lm)
fitted(baselineB.lm) #check the two models give the same fitted values for y...
with(data.df, tapply(y, interaction(x, b), mean)) #...which are the group sample means
colorSet <- c("red", "blue")
symbolSet <- c(19,17)
with(data.df, plot(x, y, yaxt="n", col=colorSet[b+1], pch=symbolSet[b+1],
main="Response y against other predictor x",
panel.first = {
axis(2, at=10:20)
abline(h = 10:20, col="gray70")
abline(v = 0:1, col="gray70")
}))
abline(lm(y ~ x, data.df[data.df$b==0,]), col=colorSet[1])
abline(lm(y ~ x, data.df[data.df$b==1,]), col=colorSet[2])
legend(0.1, 17, c("Group A", "Group B"), col = colorSet,
pch = symbolSet, bg = "gray95")