【问题标题】:Fitting a known function to data in python 2.7将已知函数拟合到 python 2.7 中的数据
【发布时间】:2015-05-24 20:07:38
【问题描述】:

我正在尝试了解已知函数对一组数据的拟合程度。我对数据的最佳拟合线或任何东西不感兴趣,我只想知道它与我的模型有多接近。我试过使用curve_fit和linregress,但都没有真正给我我想要的东西。我的数据遵循对数曲线,我一直在对数刻度上绘制它以获得大约 -4 的梯度,这接近我的模型 (-3.9),但我想知道到底有多接近。到目前为止,Linregress 是我所追求的最接近的匹配,因为它给出了相关系数,数据遵循最佳拟合线的程度,但它仍然不是我想要的。

def line(x,a,b):
    return a*x+b

x = np.log(range(len(coll_ave)))
x = x[1:] # I've done this to avoid the whole ln(0)=infinity thing
y = np.log(coll_ave[1:])
popt, pcov = curve_fit(line, x, y, sigma=error[1:])
grad, inter, r_value, p_value, std_err = stats.linregress(x, y)

这些给了我很好的信息,但不是我想要的。据我所知,polyfit 不适用于线性模型,我宁愿使用我的数据日志而不是原始数据,因为我知道我所追求的梯度。如果有 numpy 或 scipy 版本,那就太好了。或者对 curve_fit 或 linregress 进行修改以使其工作。

感谢您的帮助:D

【问题讨论】:

  • 如果您要求一种将数据拟合到对数曲线的方法,这是一个统计问题。如果你得到了方法,你想知道如何使用 Python 来实现它,这是这里提出的问题。我不确定你是前者还是后者。

标签: python-2.7 data-fitting


【解决方案1】:

所以我基本上想要 numpy.corrcoef(),它接受一个 2D 数组并找到两个数据集的相关系数。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html

这可以衡量我的数据与模型的拟合程度。 1 表示完全相关,0 表示没有任何相关性,正值和负值告诉您这些值是同时增长/收缩,还是增长和收缩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2021-12-12
    • 2016-06-17
    • 2018-02-27
    • 2017-01-09
    相关资源
    最近更新 更多