Как автоматически найти тип данных временных рядов (трендовый или сезонный) в Python для прогнозирования с использованием модели Холта-Винтера? - PullRequest
0 голосов
/ 27 июня 2019

Я использую statsmodels.tsa.holtwinters для прогнозирования временных рядов нескольких данных, которые могут иметь или не иметь тенденцию / сезонность.Итак, я хотел найти, к какой категории он относится, для дальнейшего использования SimpleExpSmoothing (без тренда / сезонного) / Holt (для тренда) / ExponentialSmoothing (для тренда + сезонного) для прогноза.

До сих пор я пытался выполнить декомпозицию, чтобы найти образец в данных.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.holtwinters import ExponentialSmoothing

df = pd.read_csv('/home/csv/cpu_usage.csv', parse_dates=['date'], index_col='date')

train = df['2019-05-25':'2019-05-29']
test = df['2019-05-30':]

model = ExponentialSmoothing(train, seasonal="add", seasonal_periods=288).fit()
model.summary()
pred = model.predict(start="2019-05-30 00:00:00", end="2019-05-31 10:00:00")

plt.plot(train.index, train, label='Train')
plt.plot(test.index, test, label='Test')
plt.plot(pred.index, pred, label='Holt-Winters Prediction')

Теперь, поскольку я знаю, что данные имеют сезонность, я использую ExponentialSmoothing вручную, но что, если я этого не сделаюзнать это и как автоматически находить перед моделированием и делать моделирование соответственно типу данных.

...