Как рассчитать крутизну тренда в питоне - PullRequest
1 голос
/ 21 марта 2019

Я использую наклон регрессии следующим образом для вычисления крутизны (наклона) тренда.

Сценарий 1: Например, рассмотрим использование показателей продаж (ось X).: 1, 4, 6, 8, 10, 15) в течение 6 дней (ось Y).

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.

Поэтому я не уверен, что наклон регрессии охватывает то, что мне нужно.Есть ли какой-либо другой подход, который я могу использовать вместо этого, чтобы вычислить сонливость наклона тренда.

Я с удовольствием предоставлю более подробную информацию, если это необходимо.

1 Ответ

3 голосов
/ 21 марта 2019

Я считаю, что проблема в том, что ваши переменные переключаются.Если вы хотите отслеживать эффективность продаж с течением времени, вы должны выполнить регрессию наоборот.Вы можете инвертировать рассчитанные уклоны, чтобы получить правильные значения, которые будут показывать более высокую эффективность продаж в случае 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='--')

Data visualization

...