如何计算python的interpolate.splrep中使用的平滑条件?

时间:2015-08-28 22:47:59

标签: python scipy interpolation cubic-spline

我正在尝试使用scipy的interpolate.splrep将三次样条拟合到时间序列。但是,我无法确定如何确定有效的平滑条件,而无需通过眼睛手动调整。似乎应该有办法计算这个条件。

根据docs,平滑条件应以这种方式确定:

  

s的推荐值取决于权重w。如果权重代表y的标准偏差的倒数,那么应该在范围内找到一个好的s值(m-sqrt(2 * m),m + sqrt(2 * m))其中m是数量x,y和w中的数据点。默认值:如果提供了权重,则s = m-sqrt(2 * m)。如果没有提供权重,则s = 0.0(插值)。

然而,经过大量测试后,我无法使其工作(平滑非零)。 “拟合”通常最终看起来像任意的3次多项式。我正在处理一个数据集,当正确拟合时,该数据集应该是高次多项式。只是摆弄平滑条件,我发现s = 1E-9平衡接近度和平滑(我使用权重与数据)。

有没有人有任何想法发生了什么?

有理由我使用立方样条而不是其他插值方法,但我想知道我是否应该在别处寻找...

0 个答案:

没有答案