Методы прогнозирования Python: скользящее среднее, ARIMA, экспоненциальное сглаживание, Prophet, LSTM

  1. Скользящее среднее (MA):
    Метод скользящего среднего вычисляет среднее значение скользящего окна точек данных для прогнозирования будущих значений.
    import pandas as pd
    # Assuming 'data' is a pandas DataFrame with a 'timestamp' column and a 'value' column
    window_size = 3
    data['moving_average'] = data['value'].rolling(window=window_size).mean()

<ол старт="2">

  • Авторегрессионное интегрированное скользящее среднее (ARIMA).
    ARIMA – это популярный метод прогнозирования временных рядов, который учитывает автокорреляцию и тенденцию в данных.
    import pandas as pd
    from statsmodels.tsa.arima.model import ARIMA
    # Assuming 'data' is a pandas DataFrame with a 'timestamp' column and a 'value' column
    model = ARIMA(data['value'], order=(1, 1, 0))
    model_fit = model.fit()
    forecast = model_fit.predict(start=len(data), end=len(data)+n-1)

    Заголовок: «Методы прогнозирования Python: ARIMA для анализа временных рядов»

    1. Экспоненциальное сглаживание (ES):
      Экспоненциальное сглаживание присваивает экспоненциально уменьшающиеся веса прошлым наблюдениям и может фиксировать тенденции и сезонность данных
      import pandas as pd
      from statsmodels.tsa.holtwinters import ExponentialSmoothing
      # Assuming 'data' is a pandas DataFrame with a 'timestamp' column and a 'value' column
      model = ExponentialSmoothing(data['value'], trend='add', seasonal='add', seasonal_periods=12)
      model_fit = model.fit()
      forecast = model_fit.predict(start=len(data), end=len(data)+n-1)

      Заголовок: «Методы прогнозирования Python: экспоненциальное сглаживание для анализа временных рядов»

    1. Prophet:
      Prophet – это библиотека прогнозов от Facebook, которая учитывает в данных сезонность, тенденции и праздничные эффекты.
      from prophet import Prophet
      # Assuming 'data' is a pandas DataFrame with a 'ds' column (timestamp) and a 'y' column (value)
      model = Prophet()
      model.fit(data)
      future = model.make_future_dataframe(periods=n)
      forecast = model.predict(future)

      Заголовок: «Методы прогнозирования Python: библиотека Prophet для анализа временных рядов»

    1. LSTM (длинная краткосрочная память):
      LSTM — это тип рекуррентной нейронной сети (RNN), которая может фиксировать долгосрочные зависимости и обычно используется для прогнозирования последовательностей и временных рядов.
      import numpy as np
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import LSTM, Dense
      # Assuming 'data' is a numpy array with shape (num_samples, num_features)
      n_steps = 3
      X, y = [], []
      for i in range(len(data) - n_steps):
      X.append(data[i:i+n_steps])
      y.append(data[i+n_steps])
      X = np.array(X)
      y = np.array(y)
      model = Sequential()
      model.add(LSTM(50, activation='relu', input_shape=(n_steps, num_features)))
      model.add(Dense(1))
      model.compile(optimizer='adam', loss='mse')
      model.fit(X, y, epochs=100, verbose=0)
      # Forecasting
      last_sequence = data[-n_steps:]
      forecast = model.predict(np.array([last_sequence]))

      Заголовок: «Методы прогнозирования Python: LSTM для анализа временных рядов»

    Обратите внимание, что предоставленные примеры кода упрощены и могут потребовать дополнительной предварительной обработки или настройки параметров в зависимости от вашего конкретного варианта использования.