Hay una gama de posibilidades descritas por JW Gillard en Una descripción histórica de la regresión lineal con errores en ambas variables
Si no está interesado en los detalles o razones para la elección de un método sobre otro, sólo tiene que ir con el más simple, que consiste en trazar la línea a través del centro de gravedad con pendiente β = s y / s x , es decir, la razón de las desviaciones estándar observadas (haciendo que el signo de la pendiente sea el mismo que el signo de la covarianza de x e ); como probablemente pueda resolver, esto da una intersección en el eje de(x¯,y¯)β^=sy/sxxyyα^=y¯−β^x¯.
Los méritos de este enfoque particular son
- da la misma línea que compara contra como contra ,y y xxyyx
- es invariante de escala, por lo que no necesita preocuparse por las unidades,
- se encuentra entre las dos líneas de regresión lineal ordinarias
- los cruza donde se cruzan en el centroide de las observaciones, y
- Es muy fácil de calcular.
La pendiente es la media geométrica de las pendientes de las dos pendientes de regresión lineal ordinarias. También es lo que obtendría si estandarizara las observaciones e y , dibujara una línea a 45 ° (o 135 ° si hay una correlación negativa) y luego desestandarice la línea. También podría verse como equivalente a hacer una suposición implícita de que las variaciones de los dos conjuntos de errores son proporcionales a las variaciones de los dos conjuntos de observaciones; Por lo que puedo decir, afirmas que no sabes de qué manera esto está mal.xy
Aquí hay un código R para ilustrar: la línea roja en el gráfico es la regresión OLS de en X , la línea azul es la regresión OLS de X en Y , y la línea verde es este método simple. Tenga en cuenta que la pendiente debe ser de aproximadamente 5.YXXY
X0 <- 1600:3600
Y0 <- 5*X0 + 700
X1 <- X0 + 400*rnorm(2001)
Y1 <- Y0 + 2000*rnorm(2001)
slopeOLSXY <- lm(Y1 ~ X1)$coefficients[2] #OLS slope of Y on X
slopeOLSYX <- 1/lm(X1 ~ Y1)$coefficients[2] #Inverse of OLS slope of X on Y
slopesimple <- sd(Y1)/sd(X1) *sign(cov(X1,Y1)) #Simple slope
c(slopeOLSXY, slopeOLSYX, slopesimple) #Show the three slopes
plot(Y1~X1)
abline(mean(Y1) - slopeOLSXY * mean(X1), slopeOLSXY, col="red")
abline(mean(Y1) - slopeOLSYX * mean(X1), slopeOLSYX, col="blue")
abline(mean(Y1) - slopesimple * mean(X1), slopesimple, col="green")