拟合“简单”测量误差模型的方法

机器算法验证 回归 估计 变量错误
2022-03-22 22:55:13

我正在寻找可用于估计“OLS”测量误差模型的方法。

yi=Yi+ey,i
xi=Xi+ex,i
Yi=α+βXi

其中误差是独立正态的,方差未知“标准”OLS 在这种情况下不起作用。σy2σx2

维基百科有一些没有吸引力的解决方案 - 给定的两个迫使您假设“方差比”或“可靠性比"是已知的,其中是真实回归量的方差。我对此并不满意,因为不知道方差的人怎么能知道他们的比率?δ=σy2σx2λ=σX2σx2+σX2σX2Xi

无论如何,除了这两个之外,还有其他不需要我“了解”参数的解决方案吗?

仅针对截距和斜率的解决方案很好。

1个回答

JW Gillard 在An Historical Overview of Linear Regression with Errors in both variables中描述了一系列可能性

如果您对选择一种方法而不是另一种方法的细节或原因不感兴趣,只需使用最简单的方法,即使用斜率,即观察到的标准差的比值(使斜率的符号与的协方差的符号相同);正如你可能知道的那样,这会在轴上给出一个截距。(x¯,y¯)β^=sy/sxxyyα^=y¯β^x¯.

这种特殊方法的优点是

  1. 进行比较的同一行xyyx
  2. 它是尺度不变的,所以你不需要担心单位,
  3. 它位于两条普通的线性回归线之间
  4. 它与它们相交,它们在观测值的质心处彼此相交,并且
  5. 这很容易计算。

斜率是两个普通线性回归斜率的斜率的几何平均值。如果您将观测值标准化,在 45°(或 135°,如果存在负相关)处绘制一条线,然后对该线进行去标准化,这也是您将得到的结果。它也可以被视为等同于隐含假设两组误差的方差与两组观测值的方差成正比;据我所知,您声称不知道这是错误的方式。xy

下面是一些R代码来说明:图中红线是的OLS回归,蓝线是的OLS回归,绿线就是这个简单的方法。请注意,斜率应约为 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")