如何计算 python 中趋势的陡度

How to calculate the steepness of a trend in python

我正在使用如下回归斜率来计算趋势的陡度(斜率)。

场景一: 例如,假设我使用了 6 天(y 轴)的销售数字(x 轴:1, 4, 6, 8, 10, 15)。

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
X = [[1], [4], [6], [8], [10], [15]]
y = [1, 2, 3, 4, 5, 6]
regressor.fit(X, y)
print(regressor.coef_)

这给了我 0.37709497

场景二: 当我 运行 相同的程序针对不同的销售数字(例如,1, 2, 3, 4, 5, 6)时,我得到的结果是 1

但是,您可以看到 salesscenario 1 中的生产力很高,但在 scenario 2 中则不然。但是,我得到的 scenario 2 的斜率高于 scenario 1.

因此,我不确定回归斜率是否符合我的要求。我可以使用任何其他方法来计算趋势斜率的休眠度吗?

如果需要,我很乐意提供更多详细信息。

我认为问题出在您的变量被切换了。如果您想跟踪一段时间内的销售业绩,则应该以相反的方式执行回归。您可以反转计算出的斜率以获得正确的值,这将在案例 1 中显示更高的销售业绩。

1 / 0.377 = 2.65

这是您数据的可视化:

import matplotlib.pyplot as plt

days = [1,2,3,4,5,6]
sales1 = [1,4,6,8,10,15]
sales2 = [1,2,3,4,5,6]

df = pd.DataFrame({'days': days, 'sales1': sales1, 'sales2': sales2})
df = df.set_index('days')
df.plot(marker='o', linestyle='--')