Es gibt eine Reihe von Möglichkeiten, die von JW Gillard in Ein historischer Überblick über die lineare Regression mit Fehlern in beiden Variablen beschrieben wurden
Wenn Sie sich nicht in Details oder Gründe für die Wahl eines Verfahrens über die andere interessiert sind, gehen Sie einfach mit dem einfachsten, die die Linie durch den Schwerpunkt zu ziehen ist mit der Steigung β = s y / s x , dh das Verhältnis der beobachteten Standardabweichungen (wobei das Vorzeichen der Steigung dem Vorzeichen der Kovarianz von x und y entspricht ); wie Sie wahrscheinlich arbeiten können, das gibt auf der einen Intercept - y - Achse von α = ˉ y - & bgr; ˉ x .(x¯,y¯)β^=sy/sxxyyα^=y¯−β^x¯.
Die Vorzüge dieses speziellen Ansatzes sind
- es gibt die gleiche Linie, die gegen y mit y gegen x vergleicht ,xyyx
- Es ist skalierungsunabhängig, sodass Sie sich keine Gedanken über Einheiten machen müssen.
- es liegt zwischen den beiden gewöhnlichen linearen Regressionsgeraden
- es kreuzt sie dort, wo sie sich im Mittelpunkt der Beobachtungen kreuzen, und
- es ist sehr einfach zu berechnen.
Die Steigung ist das geometrische Mittel der Steigungen der beiden normalen linearen Regressionssteigungen. Es ist auch das, was Sie erhalten würden, wenn Sie die und y- Beobachtungen standardisieren , eine Linie bei 45 ° zeichnen (oder 135 °, wenn es eine negative Korrelation gibt) und dann die Linie de-standardisieren. Es könnte auch als äquivalent angesehen werden, eine implizite Annahme zu treffen, dass die Varianzen der beiden Fehlersätze proportional zu den Varianzen der beiden Beobachtungssätze sind; Soweit ich das beurteilen kann, behaupten Sie nicht zu wissen, in welcher Richtung dies falsch ist.xy
Hier ist ein R-Code zur Veranschaulichung: Die rote Linie im Diagramm ist die OLS-Regression von auf X , die blaue Linie ist die OLS-Regression von X auf Y und die grüne Linie ist diese einfache Methode. Beachten Sie, dass die Steigung ca. 5 betragen sollte.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")