使用 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 图
。这是我的结果:
自变量的 Q-Q 图
因变量的 Q-Q 图
我可以假设我的独立
变量是正态分布
,但我不能为我的相关
错误假设这一点。
问题 1:知道我的相关错误
不是正态分布的,下一步应该做什么?
问题 2:使用 ODR 来解决我的问题是否可行?
最佳答案
是什么让您如此确定您的残差不是正态分布的?检查此假设的一种方法是使用 Q-Q plot 。从实用的角度来看,大多数人只会查看数据的散点图来查看残差是否呈正态分布。通常,违反此假设并不重要,但这取决于您想要做什么。
与普通最小二乘法(可能是您正在使用的)相反,使用正交距离回归并不能解决问题。您可能会在 stats.stackexchange.com 上获得更好的答案,特别是 this question可能对你有帮助。
关于python - x 和 y 上有误差的线性拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004307/