Как рассчитать крутизну тренда в питоне

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

Сценарий 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.

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

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


person EmJ    schedule 21.03.2019    source источник


Ответы (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='--')

Визуализация данных

person Nathaniel    schedule 21.03.2019
comment
Большое спасибо за ответ. Вы имеете в виду, что мое значение x должно быть «дни», а y vale должно быть «продажи»? :) - person EmJ; 21.03.2019
comment
Да, точно. Я добавлю рисунок для иллюстрации. - person Nathaniel; 21.03.2019
comment
пожалуйста, дайте мне знать, если вы знаете ответ на этот вопрос: stackoverflow.com/questions/55275661/ - person EmJ; 21.03.2019