Uno
La regresión $y = a + bx + \epsilon$ es no simétrica para la sustitución de y y x, como ya se ha sugerido a través del enlace (simetría de regresión lineal).
Sin embargo, no es trivial si la expectativa de valores, $\hat{a}$$\hat{b}$, van a ser diferentes a partir de una simétrica $E(\hat{a}_{xy})=E(\hat{a}_{yx})=0$$E(\hat{b}_{xy})=1/E(\hat{b}_{yx})=1$. Posiblemente la diferencia en la regresión $y \sim x$ vs $x \sim y$ cancelar más de todas las posibilidades (vamos a ver que esto es cierto para $a$). Para ello tenemos que "ver" todas las posibilidades y cómo se media/cancelar.
2
Vamos a demostrar que la intersección es simétrica
$$E(\hat{a})=0$$
however the slope is not, and will be smaller than 1
$$E(\hat{b})<1$$
We show this by comparing the non-symmetric regression with a symmetric regression.
3
As symmetric regression we use the line in between the two regression lines lines defined by the y~x and x~y.
In algebraic terms:
$$\hat{b}_{sym} = \frac{\hat{b}_{xy} + \hat{b}_{yx}^{-1}}{2}$$
and
$$\hat{a}_{sym} = \frac{\hat{a}_{xy} - \hat{a}_{yx}\hat{b}_{yx}}{2}$$
4
Nota lo siguiente acerca de la simetría de la pendiente.
La pendiente será simétrica alrededor del ángulo de 45 grados
es decir, una probabilidad de un ángulo a con $45+\alpha$ es igual a un
probabilty de un ángulo a con $45-\alpha$, también la expectativa de valor de
para el ángulo de su coeficiente será 1, ya que:
$\hat{b}_{sym}(x,y)=\hat{b}_{sym}(y,x)$, lo que
$E(\hat{b}_{sym}(x,y))=E(\hat{b}_{sym}(y,x))$
(tenga en cuenta que no tenemos la misma por la pendiente del caso asimétrica $\hat{b}_{xy}(z_1,z_2)=\hat{b}_{yx}(z_2,z_1)$ )
- sin embargo, también debemos tener la simetría $E(\hat{b}_{sym}(x,y))=1/E(\hat{b}_{sym}(y,x))$, la línea que se describe por la expectativa de que el coeficiente, si queremos cambiar las etiquetas xy de lo que esperamos una imagen en el espejo que tiene un diferente coeficiente b (a la inversa).
- La pendiente $\hat{b}_{xy}$ será menor debido a la regresión a la media.
Por lo tanto... la simetría de la pendiente se $E(\hat{b}_{sym})=1$, sin embargo, a continuación, desde siempre, $\hat{b}_{xy} \leq \hat{b}_{sym}$ tendremos $E(\hat{b}_{xy}) \leq E(\hat{b}_{sym})=1$. Y la igualdad sólo es cierto cuando no hay términos de error.
Ver la siguiente imagen para recordar las líneas de regresión $xy$, $yx$ (rojo curvas) y la simétrica entre (curva verde), esta imagen es de el código de ejemplo siguiente:
Si dibujamos el ángulo de la línea simétrica (verde) y la línea de regresión para la y~x modelo (el rojo que tiene más pequeño ángel con el eje de las x), entonces podemos ver que el ángulo de la línea simétrica distribuye uniformemente alrededor de 45 grados, sin embargo el ángulo de la no-simétrica de la línea de $y~x$, es siempre inferior a:
5
Lo que queda es demostrar que el $E(\hat{a})=0$. No tengo una prueba directa de este. Sin embargo, debe ser suficiente para notar que la regresión a la media (que es cero) no favorece más grande o más pequeño $a$. Tenga en cuenta que hay un punto de simetría, $(x,y) \rightarrow (-x,-y)$, por lo que el ángulo de $b$ es invariante, pero no la intercepción $\hat{a}$, lo que significa que, $a$, debe ser igual a cero.
Usted obtener valores de $\hat{a}$ forma diferente de cero, pero debe tomar en cuenta es la muestra de la varianza. (El error de muestreo para $\hat{a}$ es diferente de cero)
6
A continuación se ajuste a su código para examinar los efectos descritos anteriormente
n_pop <- 100
n_sample <- 20
draws <- 1000
M <- matrix(c(1:(2*draws)), nrow=draws)
K <- matrix(c(1:(2*draws)), nrow=draws)
ma <- matrix(c(1:(2*draws)), nrow=draws)
meanx <- matrix(c(1:(1*draws)), nrow=draws)
for (j in 1:draws) {
x <- sort(sample(-n_pop:n_pop,n_sample,replace=FALSE))
y <- sort(sample(-n_pop:n_pop,n_sample,replace=FALSE))
xy_model <- lm(y~x)
yx_model <- lm(x~y)
M[j,] <- coef(xy_model)
K[j,] <- coef(yx_model)
# xy and yx model coefficients last loop
b1 <- coef(xy_model)[2]
b2 <- 1/coef(yx_model)[2]
a1 <- coef(xy_model)[1]
a2 <- -coef(yx_model)[1]*coef(yx_model)[2]
ma[j,1] <- 0.5*sum(a1,a2)
ma[j,2] <- 0.5*sum(b1,b2)
meanx[j,1] <- mean(x)
}
# means
mean(M[,1])
mean(M[,2])
mean(ma[,1])
mean(ma[,2])
# plotting last for-loop x-y as example of regresion fits
plot(x,y)
xp <- -n_pop:n_pop
lines(xp,a1+b1*xp,col=2)
lines(xp,a2+b2*xp,col=2)
lines(xp,0.5*a2+0.5*a1+0.5*b2*xp+0.5*b1*xp,col=3)
# plotting coefficients symmetric versus xy
plot(180/pi*atan(ma[,2]),180/pi*atan(M[,2]), xlab="symmetric fit angle", ylab="xy-fit angle")
lines(c(0,90),c(0,90),col=2)
# plotting mean of x vs beta
plot(meanx,ma[,2]-M[,2], xlab="mu_x",ylab="beta_sym - beta_xy",pch=21,
col=adjustcolor("black",alpha.f=0.1),
bg=adjustcolor("black",alpha.f=0.1),log="y")