¿Por qué algunas estimaciones de regresión difieren por un cambio de signo, pero otras no, cuando cambio el nivel de referencia?


8

Supongamos que tengo un resultado continuo yy dos predictores factoriales, cada uno con dos niveles. Uno de mis predictores categóricos drug, puede tener dos niveles ("A" o "B"), el otro es smokeYes. Cuando ejecuto un modelo de regresión, puedo elegir la línea base o el nivel de referencia drugpara que sea "A", como hice en model1:

set.seed(123)
y<-rnorm(100, 100, 10)
drug.ab<-factor(sample(c("A", "B"), 100, T), levels=c("A", "B"))
drug.ba<-factor(drug.ab, levels=c("B", "A"))
smoke<-factor(sample(c("Yes", "No"), 100, T), levels=c("No", "Yes"))

#model1:
coef(summary(lm(y~drug.ab*smoke)))
                     Estimate Std. Error    t value     Pr(>|t|)
(Intercept)       100.7484158   2.065091 48.7864379 1.465848e-69
drug.abB            0.9030541   2.796146  0.3229639 7.474250e-01
smokeYes           -0.8693598   2.632484 -0.3302431 7.419359e-01
drug.abB:smokeYes   0.8709116   3.746684  0.2324487 8.166844e-01

O puedo establecer la línea de base en "B", como hice en model2:

#model2:
coef(summary(lm(y~drug.ba*smoke)))
                       Estimate Std. Error       t value     Pr(>|t|)
(Intercept)       101.651469922   1.885161 53.9218978856 1.377147e-73
drug.baA           -0.903054145   2.796146 -0.3229638818 7.474250e-01
smokeYes            0.001551843   2.666021  0.0005820821 9.995368e-01
drug.baA:smokeYes  -0.870911601   3.746684 -0.2324486531 8.166844e-01

Mi pregunta es ¿por qué la estimación de smokeYesdifiere entre model1y model2? ¿Por qué no difiere por un cambio de signo como drug.baAy el término de interacción?


3
Busque una buena explicación del contraste del tratamiento. En resumen, si calcula la predicción para el fármaco B y el humo Sí: (mod1) 100.75 + 0.90 - 0.87 + 0.87 = 101.65 | (mod2) 101.65 + 0.00 = 101.65
Roland

Pensé que era sin duda en el tema para así que cuando vi la pregunta duplicado allí, ya que hay una muy simple línea R de código que calcula todas las medias de los grupos: tapply( y, interaction( drug.ab, smoke) ,mean). Una explicación más extensa podría implicar demostrar la diferencia entre los contrastes de tratamiento y los contrastes de suma.
DWin

@Dwin, incluso con las dos respuestas publicadas, creo que ciertamente hay espacio para otra respuesta que aborde con precisión los problemas de contraste. Espero que alguien publique una respuesta con ese enfoque.
Silverfish

Respuestas:


8

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 5X y en los datos "B" solo es y^=11+7 7X. Los datos pueden verse así:

Diagrama de dispersión para dos grupos

Ahora supongamos que tomamos "A" como nuestro nivel de referencia y usamos una variable ficticia si así que eso si=1 para observaciones en el Grupo B pero si=0 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 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 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 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+5 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+7 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 0, "A" con X=1, "B" con X=0 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")

Sí, una gran explicación, ¡así que votaré por esto!
JonB

@DavidZ ¡Gracias! Sugeriría no marcar la casilla "aceptar" demasiado pronto, ya que puede haber otras respuestas por venir. Mi explicación es bastante clara, pero me he centrado en un aspecto bastante general que también habría funcionado de forma continua.X. Es posible abordar su pregunta de una manera que preste más atención a la naturaleza categórica de sus predictores, por lo que le sugiero que desmarque para alentar una mayor participación de los demás. (@JobB ¡Gracias! También me gustó tu respuesta, +1)
Silverfish

3

Eso tiene que ver con cómo se define la intersección. En el primer ejemplo, la intersección se define como aquellos que no fuman y que tienen drogas A. Los fumadores, que también tienen drogas A, tendrán un valor de 100.75 - 0.87 = 99.9 mientras que los fumadores que tienen drogas B tendrán valor de 100.75 + 0.90 - 0.87 + 0.87 = 101.65.

En el segundo ejemplo, la intersección se define como aquellos que no fuman y tienen drogas B. Los fumadores con drogas B tendrán un valor de 101.65 + 0.001 = 101.65, y los fumadores con drogas A tendrán un valor de 100.65 - 0.90 + 0.001-0.87 = 99.9.

Por lo tanto, todo suma, solo se trata de cómo se define la intersección, es decir, el nivel cuando todos los factores se establecen en la categoría de referencia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.