如何在统计上将光曲线数据集与模拟的光曲线进行比较?

时间:2019-04-09 15:12:22

标签: python

我要使用python将模拟的光曲线与实际的光曲线进行比较。应该提到的是,测量数据包含间隙和离群值,并且时间步长不是恒定的。但是,该模型包含恒定的时间步长。 第一步,我想用一种统计方法比较两条光曲线的相似程度。哪种方法最适合?

第二步,我想使模型适合我的测量数据。但是,模型数据不是在Python中计算的,而是在独立软件中计算的。基本上,模型数据取决于四个参数,所有这些参数都限制在一定范围内,我目前正在手动将这些参数输入软件(计划是自动的)。 建立合适的拟合的最佳方法是什么? 我现在想到了“ Brute-Force-Fit”。

此链接“ https://imgur.com/a/zZ5xoqB”提供了三种不同的绘图。模拟的光曲线,实际的测量结果以及最后两者结合在一起。模拟效果不好,但是通过使用参数可以得到可接受的结果。这意味着相位和周期是相同的,幅度是相同的顺序,甚至镜面反射也应该在同一周期内发生。

1 个答案:

答案 0 :(得分:0)

如果我正确理解这一点,那么您是在问一个更基础的问题,可以用https://datascience.stackexchange.com/更好地回答,而不是Python特有的问题。

也就是说,作为数据科学外行,这可能是一个适用于均方误差成本函数的梯度下降的问题。初始化曲线的参数(可能是随机的),然后计算已知点的平方误差。

然后依次更改每个参数,并计算成本函数的影响方式。然后,沿减小成本函数的方向更改所有参数(微小更改)。重复此操作,直到参数停止更改。

(请注意,这可能会使您陷入当地的最低状况,而无法正常工作。)

更多信息:https://towardsdatascience.com/implement-gradient-descent-in-python-9b93ed7108d1

编辑:我忽略了这一部分

  

模拟效果不好,但是通过使用参数可以得到可接受的结果。这意味着相位和周期是相同的,幅度是相同的顺序,甚至镜面反射也应该在同一周期内发生。

模拟曲线是正弦波的总和吗,参数是否只是每个正弦波的相位/周期/振幅?在这种情况下,您要寻找的是信号的Fourier transform,使用numpy可以很容易地对其进行计算:https://docs.scipy.org/doc/scipy/reference/tutorial/fftpack.html