Временные ряды

#перевод типа данных Datetime в datetime64 и настрока столбца с датой - индексом таблицы

import pandas as pd
df= pd.read_csv('/folder/name.csv', index_col=['colname'], parse_dates=[0])

#проверка, в хронологическом ли порядке расположены даты и время
print (df.info())

df = df.sort_index() 
print(df.index.is_monotonic)

#интервал с июня по декабрь 1995

data = data['1995-06': '1995-12' ]

 

 

# скользящее среднее с окном 5 

df.rolling(5).mean()

#новый столбец со скользящим средними и график

df['rolling_mean_new_col'] = df.rolling(3).mean() 
df.plot()

для генерации фичей на скользящих окнах: https://tsfresh.readthedocs.io/en/latest/

# ресемплирование 

df = df.resample('5Y').mean() 

 

Tips:

* валидация с помощью TimeseriesSplit Sklearn

* + часто желательно делать рядо более стационарным и делать тест на стационарность, использовать логарифмирование (в крайниз случаях метод Бокса Кокса), чтобы избаляться от разной дисперсии и других проблем, делать матрицу корреляций, чтобы не было мультиколлинеарности (если корреляция больше, чем 0,8-0,7, то убирать один из признаков), избавляться от тренда и сезонности. Можно использовать также не просто лаги, а статистики на лагах и т.д. 

* глубина дереьвев на бустинге через лограифм от количества фичей

*если нужно несколько прогнозов лучше для каждого прогноза заново модель, иначе ранее спрогнозированные данные могут исказить

* если R2 низкий, значит модель плохо попадает в пики, лучще от 0,7 до 1, но ровно 1 может говорить об утечке таргета

* для догросрочного прогнозирования не лаги, а дообогащение и экстрафичи, номер недели в году, наличие праздника, и т.д.

* выявление в зависимостей во временных рядах, кластеризация 

* нейросети GRU, LSTM

(чтобы предсказывать пики можно сделать фичи, классификацию: пик или не пик)

* если нужно, чтобы последние значения вносили больший вес, иногда оправдано использование экспоненциальных окон и др. способов, в т.ч. из test fresh

* для стационарных dif, если лаги, то shift

Подробнее:

Автоматически генерируем признаки https://otus.ru/nest/post/1024/

https://habr.com/ru/company/ods/blog/327242/

https://ibf.org/knowledge

Джон Э. Ханк, Артур Дж. Райте, Дин У. Уичерн  "Бизнес-прогнозирование"

Т. УОЛЛАС, Р. СТАЛЬ "планирование продаж и операций"