首页 > 解决方案 > 如何在python中计算趋势的陡度

问题描述

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

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

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

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

但是,您可以看到在sales中效率很高scenario 1,但在 中却没有scenario 2。但是,我得到的斜率scenario 2高于scenario 1.

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

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

标签: pythonmachine-learningtime-seriesdata-sciencetrend

解决方案


我相信问题是你的变量被切换了。如果您想跟踪一段时间内的销售业绩,您应该以相反的方式执行回归。您可以反转您计算的斜率以获得正确的值,这将在案例 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='--')

数据可视化


推荐阅读