Python exponential/linear 曲线拟合
Python exponential/linear curve fitting
这个问题不是关于编程而是关于数学,但我想发表一些意见。
我正在尝试对 this curve 的指数衰减行为进行建模,但如您所见,fluctuations/noise 在较低的值处存在一定水平。我如何 eliminate/damp 这种噪音使我的健康不再依赖于它?
我使用这条曲线的对数,所以我使用线性回归来进行拟合。我使用了最小二乘法,但直线的斜率根据我选择的时间间隔变化很大(大约 20%)。
我听说还有 2 种可能有用的方法:
- 加权最小二乘法,但我不知道如何权衡我的观点。
- 最小绝对偏差,使用此方法显然较小的值往往不太相关。
我想避免试错阶段。你有什么想法吗?
编辑:代码是使用 python
完成的
如果在log-space中数据的衰减部分看起来不是线性的,那么就不是简单的衰减。实际上,数据看起来更像是指数衰减和恒定背景的总和。所以试试 a*exp(-b*x)+c
这样的模型。图片中的曲线是具有恒定偏移的高斯峰(尾部或多或少呈指数下降)的右侧。拟合(绿线)是上面给出的函数。
这个问题不是关于编程而是关于数学,但我想发表一些意见。
我正在尝试对 this curve 的指数衰减行为进行建模,但如您所见,fluctuations/noise 在较低的值处存在一定水平。我如何 eliminate/damp 这种噪音使我的健康不再依赖于它?
我使用这条曲线的对数,所以我使用线性回归来进行拟合。我使用了最小二乘法,但直线的斜率根据我选择的时间间隔变化很大(大约 20%)。
我听说还有 2 种可能有用的方法:
- 加权最小二乘法,但我不知道如何权衡我的观点。
- 最小绝对偏差,使用此方法显然较小的值往往不太相关。
我想避免试错阶段。你有什么想法吗?
编辑:代码是使用 python
完成的如果在log-space中数据的衰减部分看起来不是线性的,那么就不是简单的衰减。实际上,数据看起来更像是指数衰减和恒定背景的总和。所以试试 a*exp(-b*x)+c
这样的模型。图片中的曲线是具有恒定偏移的高斯峰(尾部或多或少呈指数下降)的右侧。拟合(绿线)是上面给出的函数。