我今天一直在使用scipy.optimize.curve_fit()函数,我可以得到一些非常好的结果,但我不太确定如何让一些数据点比其他数据点更重要。
让我简要总结一下情况: 我们需要将衰减曲线拟合到从我们的实验中收集的一些数据。一些数据点比其他数据点更频繁地发生,并且这些数据点由权重确定。这意味着如果我们有一个数据点A,权重x和一个数据点B,权重为2x,这将等于将曲线拟合到一个数据点A,权重为x,两个数据点B为权重x。
问题是只能使用不确定性(即sigma)对curve_fit函数进行加权。我认为我很聪明地将每个重量转换为所有重量之和的比例,然后将这个比例转换为Z分数(我认为这在不确定性方面是相同的),而且这比相应的更好。根本没有权衡任何东西,我仍然通过一些单元测试发现在将权重0.5与两个实际数据点进行比较时并不是这样。
如何将curve_fit与线性权重一起使用?
PS:通过单元测试,我发现拟合数据点:
(0,0) with weight 1
(1,0) with weight 1
(1,1) with weight 1
(1,1) with weight 1
产生与拟合相同的结果:
(0,0) with weight 1
(1,0) with weight 1
(1,1) with weight 0.70710678118
特别是,sin(0.5 * pi)= 1而sin(0.25 * pi)= 0.70710678118 !!所以这里似乎有一个正弦关系?不幸的是,我的数学技能限制了我理解确切的关系。
此外,不幸的是,sin(0.125 * pi)不等于3或4的重量......