Estoy tratando de entender cómo regresión múltiple estadísticamente controles para los efectos de otras variables predictoras cuando el cálculo de regresión parcial de las laderas. En una regresión múltiple de Y~X1+X2, sería la regresión parcial pendiente de X1 ser dada por [Y]~[residuos de X1~X2], o [de los residuos de Y~X2] ~ [residuos de X1~X2]? Diferentes páginas de internet me dicen cosas diferentes.
He realizado algunas simulaciones para tratar y resolver esto (ver más abajo), y parece que ambos métodos dan el mismo estimaciones de las pendientes de regresión múltiple, pero sólo el último método tiene los mismos errores estándar alrededor de esas estimaciones. Esto me hace pensar que este último método es el que de regresión múltiple usos, pero sería bueno saber para seguro.
Del mismo modo, si quería parcela Y en contra de X1 para que yo pudiera visualizar cómo fuertemente los dos estaban relacionados, mientras que también el control por cualquier confusión con X2, me parcela [Y]~[residuos de X1~X2], o [de los residuos de Y~X2] ~ [residuos de X1~X2]? Estas dos parcelas en el código de abajo se ven muy diferentes en términos de la intensidad de la relación.
Gracias por tu ayuda,
Jay
#1. simulate data, where x1 and x2 are correlated due to lurking variable,
#...and y is explained by both.
lurker <- rnorm(n=100)
x1 <- rnorm(n=100, mean=lurker*2, sd=1)
x2 <- rnorm(n=100, mean=lurker*5, sd=1)
y <- rnorm(n=100, mean=x1*2 + x2*5, sd=1)
#2. multiple regn model to estimate partial slopes:
summary(lm(y~x1+x2)) #partial slopes pretty close to simulated values
#3. calculate partial slopes manually, using either
#....(1) Y~[resids of X1~X2] OR (2) [resids of Y~X2]~[resids of X1~X2]
#3.a. based on (1) Y~[resids of X1~X2]
m.x1x2 <- lm(x1~x2)
resids.x1x2 <- m.x1x2$residuals
summary(lm(y ~resids.x1x2)) #slope pretty close to true value, but conf intervals MUCH larger than those for MR estimate
#3.b. based on (2) [resids of Y ~ X2]~[resids of X1~X2]
m.y1x2 <- lm(y~x2)
resids.y1x2 <- m.y1x2$residuals
summary(lm(resids.y1x2 ~resids.x1x2)) #also very close to true value, but conf intervals now similar scale to those from MR.
# plot the relationship between y and x1 after controlling for x2, based on the different methods:
op <- par(mfrow=c(2,1))
plot(y ~resids.x1x2)
plot(resids.y1x2 ~resids.x1x2)
par(op)