我正在寻找可用于估计“OLS”测量误差模型的方法。
其中误差是独立正态的,方差未知和。“标准”OLS 在这种情况下不起作用。
维基百科有一些没有吸引力的解决方案 - 给定的两个迫使您假设“方差比”或“可靠性比"是已知的,其中是真实回归量的方差。我对此并不满意,因为不知道方差的人怎么能知道他们的比率?
无论如何,除了这两个之外,还有其他不需要我“了解”参数的解决方案吗?
仅针对截距和斜率的解决方案很好。
我正在寻找可用于估计“OLS”测量误差模型的方法。
其中误差是独立正态的,方差未知和。“标准”OLS 在这种情况下不起作用。
维基百科有一些没有吸引力的解决方案 - 给定的两个迫使您假设“方差比”或“可靠性比"是已知的,其中是真实回归量的方差。我对此并不满意,因为不知道方差的人怎么能知道他们的比率?
无论如何,除了这两个之外,还有其他不需要我“了解”参数的解决方案吗?
仅针对截距和斜率的解决方案很好。
JW Gillard 在An Historical Overview of Linear Regression with Errors in both variables中描述了一系列可能性
如果您对选择一种方法而不是另一种方法的细节或原因不感兴趣,只需使用最简单的方法,即使用斜率,即观察到的标准差的比值(使斜率的符号与和的协方差的符号相同);正如你可能知道的那样,这会在轴上给出一个截距。
这种特殊方法的优点是
斜率是两个普通线性回归斜率的斜率的几何平均值。如果您将和观测值标准化,在 45°(或 135°,如果存在负相关)处绘制一条线,然后对该线进行去标准化,这也是您将得到的结果。它也可以被视为等同于隐含假设两组误差的方差与两组观测值的方差成正比;据我所知,您声称不知道这是错误的方式。
下面是一些R代码来说明:图中红线是对的OLS回归,蓝线是对的OLS回归,绿线就是这个简单的方法。请注意,斜率应约为 5。
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")