In [1]: import numpy as np
...: from scipy import stats
In [2]: y = data = np.array([1,2,3,-1,-2,-7,-8,6,11])
In [3]: x = np.array(range(0,len(data)))
In [4]: n = len(data)
In [5]: slope = stats.linregress(x,y).slope
In [6]: slope
Out[6]: 0.4
In [11]: def append_computer(x,y):
...: n = len(x)
...: m = n+1
...: if ((m**2) - sum(x) - m) > 0:
...: num = (-1*m*(sum(x*y))+(sum(x)*sum(y))+m*sum(y))/((m**2) - sum(x) - m)
...: return num
...: else:
...: raise ValueError(f"Solution not possible")
In [12]: stats.linregress(np.append(x,n+1), np.append(y,append_computer(x,y))).slope
Out[12]: 0.0
我从这里得到了斜坡的数学-https://www.statisticshowto.datasciencecentral.com/probability-and-statistics/regression-analysis/find-a-linear-regression-equation/#FindaLinear
假设您打算:
在上面的设置中,您需要向
y
附加一个值,并将x
修改为新的np.array(range(0,len(y)))
,这样回归的新斜率将等于0
。那么,计算附加在y
上的额外数字实际上非常简单。你知道吗使用上面链接中提供的斜率公式(
b
),并执行以下操作:(n+1)
替换n
(n+1)
添加到sum(x)
i
添加到sum(y)
(n+1)i
添加到sum(x*y)
一旦你这样做了,解
i
的方程,你就会得到你需要的方程来计算这个值。这就是它的作用:相关问题 更多 >
编程相关推荐