如何计算 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
。
但是,您可以看到 sales
在 scenario 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='--')
我正在使用如下回归斜率来计算趋势的陡度(斜率)。
场景一:
例如,假设我使用了 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
。
但是,您可以看到 sales
在 scenario 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='--')