代码之家  ›  专栏  ›  技术社区  ›  neo4k

Python中的渐近回归?

  •  3
  • neo4k  · 技术社区  · 7 年前

    我有 this y 值最终必须达到渐近极限。以下是前300个条目的曲线图:

    Asymptotic tendency of data-set

    我看到了 asymptotic regression y = b0 + b1*(1-exp(-exp(lrc) * x) )我认为这将是适合这些数据的最佳模型。R似乎已经有了 function 在它的图书馆里,但我在 蟒蛇

    (1) 是否存在以下Cleb所回答的渐近回归或相关饱和动力学模型的库函数?如果没有,如何使用scipy.optimize.curve_fit对其建模?

    (2) 另外,如何预测曲线的最大整数值?示例,如果 y=2454.1234 是处的值 X=10**20 y=2545.5678 X=10**50 ,对于某个模型,我想获得 2454

    谢谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Cleb    7 年前

    scipy's curve_fit function .我使用了不同的模型,但你可以很容易地改变它。

    enter image description here

    这是一段非常不言自明的代码:

    import numpy as np
    from scipy.optimize import curve_fit
    import matplotlib.pyplot as plt
    import pandas as pd
    
    
    def f(x, a, b, n):
        return a * x ** n  / (x ** n + b)
    
    
    data = pd.read_csv('data.txt.txt', sep='\t')
    
    y = data['y'].astype(float)
    x = data['X'].astype(float)
    
    popt, pcov = curve_fit(f, x, y, p0=[1800., 20., 1.])
    
    plt.scatter(x, y)
    plt.plot(x, f(x, *popt), 'r-')
    
    plt.show()