x 和 y 上有误差的线性拟合
Linear fit with errors on x and y
使用 python,我试图找到最适合我的数据的直线方程。但是,我在 x 和 y 数据点上有错误。请注意,我的错误不是对称的。这是我的数据点的样子:
x x_upper_err x_lower_err y y_upper_err y_lower_err
-0.120 0.280 0.280 0.074484 0.000140 -0.000077
0.210 0.170 0.270 0.091828 0.000414 -0.001600
-0.280 0.300 0.300 0.041035 0.002209 -0.000771
我曾尝试使用 kmpfit
包,但此包假设我的错误服从高斯分布。 http://www.astro.rug.nl/software/kapteyn/kmpfittutorial.html#fitting-data-when-both-variables-have-uncertainties
还有其他方法吗?我遇到了 ODR(正交距离回归)方法,但是这种方法也考虑到了误差是正态分布的。
感谢任何帮助。谢谢
更新
为了测试数据上的误差是否服从正态分布,我做了一个Q-Q plot
。这是我的结果:
Q-Q plot of independent variable
Q-Q plot of dependent variable
我可以假设我的 independent
变量是 normally distributed
,但我不能假设我的 dependent
错误。
问题一:知道我的dependent errors
不是正态分布,下一步应该怎么办?
问题2:使用ODR解决我的问题是否可行?
是什么让您如此确定您的残差不是正态分布的?检查此假设的一种方法是使用 Q-Q plot。从务实的角度来看,大多数人只会查看数据的散点图,看看残差是否服从正态分布。通常违反此假设并不重要,但这取决于您要做什么。
使用正交距离回归,而不是普通的最小二乘法(这可能是您正在使用的)对解决问题没有任何作用。您可能会在 stats.stackexchange.com 上获得更好的答案,尤其是 this question 可能会对您有所帮助。
使用 python,我试图找到最适合我的数据的直线方程。但是,我在 x 和 y 数据点上有错误。请注意,我的错误不是对称的。这是我的数据点的样子:
x x_upper_err x_lower_err y y_upper_err y_lower_err
-0.120 0.280 0.280 0.074484 0.000140 -0.000077
0.210 0.170 0.270 0.091828 0.000414 -0.001600
-0.280 0.300 0.300 0.041035 0.002209 -0.000771
我曾尝试使用 kmpfit
包,但此包假设我的错误服从高斯分布。 http://www.astro.rug.nl/software/kapteyn/kmpfittutorial.html#fitting-data-when-both-variables-have-uncertainties
还有其他方法吗?我遇到了 ODR(正交距离回归)方法,但是这种方法也考虑到了误差是正态分布的。
感谢任何帮助。谢谢
更新
为了测试数据上的误差是否服从正态分布,我做了一个Q-Q plot
。这是我的结果:
Q-Q plot of independent variable
Q-Q plot of dependent variable
我可以假设我的 independent
变量是 normally distributed
,但我不能假设我的 dependent
错误。
问题一:知道我的dependent errors
不是正态分布,下一步应该怎么办?
问题2:使用ODR解决我的问题是否可行?
是什么让您如此确定您的残差不是正态分布的?检查此假设的一种方法是使用 Q-Q plot。从务实的角度来看,大多数人只会查看数据的散点图,看看残差是否服从正态分布。通常违反此假设并不重要,但这取决于您要做什么。
使用正交距离回归,而不是普通的最小二乘法(这可能是您正在使用的)对解决问题没有任何作用。您可能会在 stats.stackexchange.com 上获得更好的答案,尤其是 this question 可能会对您有所帮助。