Existem várias possibilidades descritas por JW Gillard em Uma visão geral histórica da regressão linear com erros nas duas variáveis
Se você não estiver interessado em detalhes ou razões para a escolha de um método sobre outro, basta ir com o mais simples, que é o de traçar a linha através do centróide com inclinação β = s y / s x , ou seja, a razão entre os desvios padrão observados (fazendo o sinal do declive o mesmo que o sinal da covariância de x e y ); como você provavelmente pode trabalhar fora, isso dá uma interceptação na y -axis de α = ˉ y - beta ˉ x .(x¯,y¯)β^=sy/sxxyyα^=y¯−β^x¯.
Os méritos dessa abordagem específica são
- fornece a mesma linha comparando contra y como y contra x ,xyyx
- é invariável à escala, portanto você não precisa se preocupar com unidades,
- está entre as duas linhas de regressão linear comuns
- cruza-os onde eles se cruzam no centróide das observações e
- é muito fácil de calcular.
A inclinação é a média geométrica das inclinações das duas inclinações de regressão linear ordinárias. Também é o que você obteria se padronizasse as observações e y , desenhasse uma linha a 45 ° (ou 135 ° se houver correlação negativa) e depois padronizasse a linha. Também poderia ser visto como equivalente a fazer uma suposição implícita de que as variações dos dois conjuntos de erros são proporcionais às variações dos dois conjuntos de observações; Até onde eu sei, você alega não saber de que maneira isso está errado.xy
Aqui está um código R para ilustrar: a linha vermelha no gráfico é regressão OLS de em X , a linha azul é regressão OLS de X em Y e a linha verde é esse método simples. Observe que a inclinação deve ser de cerca de 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")