【发布时间】:2016-06-29 18:27:22
【问题描述】:
我有一个时间序列数据集 pr11(形状为 (151,)),绘制时如下图所示。请注意非常小的数字。我想通过对直线进行最小二乘拟合来找到数据的平均斜率。
我从另一个 StackExchange 页面尝试了两种不同的方法来获得答案。我尝试使用 scipy.optimize.curve_fit 如下...
len = np.arange(pr11.shape[0])
def f(x, A, B):
return A*x + B
A,B = curve_fit(f,pr11,len)[0]
但是,这给了我一个 1.0 的斜率 (A),我知道这是不对的,所以这里肯定有什么问题。 “拟合”数据最终看起来与我的原始数据完全相同。我也试过 scipy.stats...
slope, intercept, r_value, p_value, std_err = stats.linregress(len,pr11)
我这次的斜率是一个 e-08 量级的数字。问题是当我使用直线斜率*x + 截距的方程时,该数字将我的时间序列数据乘以一个非常低的值(e-15 阶)。因此,当我绘制拟合线时,这条线是水平的,根本不适合我的数据。
我怎样才能得到这个数据的拟合线?
【问题讨论】:
标签: python scipy least-squares