【问题标题】:how to interpolate a cumulative function in python如何在python中插入累积函数
【发布时间】:2021-01-21 09:27:00
【问题描述】:

我有一个由 6 个点组成的累积函数 (CDF)。我必须对其进行插值,所以我使用了 interp1d (from scipy.interpolate import interp1d),结果如下:

蓝点是初始数据,红色曲线是线性插值后的数据。 但是,我对此并不满意,尤其是在第 4 点和第 5 点之间,线性关系的假设低估了真实曲线(如果我认为这条曲线是 sigmoid 或双曲正切)。因此,我尝试始终使用 interp1d,但使用二次和三次,结果是 catastrofic

输出没有意义,而且完全错误,所以我的问题是

如何让我原来的线性拟合更平滑一点,类似于真正的累积函数? 谢谢,路易吉

【问题讨论】:

  • 您好,感谢您的回答,是的,我采用了这种方法,结果还不错。但是,由于我的曲线是 CDF,我想拟合对数正态 CDF 而不是单调三次......你能帮忙吗?谢谢!

标签: python-3.x scipy interpolation spline cumulative-sum


【解决方案1】:

尝试单调插值,akima/pchip

【讨论】:

  • 是的,正如沃伦在上面建议的那样,我做到了,这还不错,但我更感兴趣的是在最小二乘意义上拟合对数正态累积分布,因为实际上我的数据点是累积分布(百分位数y 轴,x 轴价格)。
  • 那么你最好的办法是尝试拟合数据并提出一个单独的问题,如果你还有其他问题
猜你喜欢
  • 1970-01-01
  • 2018-05-13
  • 2014-09-07
  • 1970-01-01
  • 2013-03-28
  • 2011-10-24
  • 1970-01-01
  • 2014-01-04
相关资源
最近更新 更多