Почему прогноз моей модели ARIMA является прямой линией?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему прогноз моей модели ARIMA является прямой линией?

Сообщение Anonymous »

Я пытаюсь создать модель ARIMA для прогнозирования дорожного движения для одного узла, используя набор данных PEMS08, предварительно обработанный для ASTGCN. Я использовал библиотеку statsmodels вместе с функцией auto_arima библиотеки pmdarima, чтобы автоматически определить лучшие параметры модели ARIMA. Однако когда я делаю прогнозы на основе тестовых данных, результатом является постоянная прямая линия, которая вообще не отражает изменения, наблюдаемые в исходном временном ряду.
Блок-схема р>

Код: Выделить всё

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pmdarima import auto_arima
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_absolute_error, mean_squared_error

# Caricamento del dataset preprocessato per ASTGCN
data = np.load('data/PEMS08/PEMS08_r1_d0_w0_astcgn.npz')

# Estrazione della serie temporale per il nodo 0
data_node_0 = data['train_target'][:, 0, :]  # (num_samples, num_for_predict)

# Riorganizzazione dei dati in una singola serie temporale
time_series_node_0 = data_node_0.flatten()

# Divisione dei dati in train e test
train_size = int(len(time_series_node_0) * 0.8)
train, test = time_series_node_0[:train_size], time_series_node_0[train_size:]

# Utilizzo di auto_arima per determinare i migliori parametri ARIMA
stepwise_model = auto_arima(train, seasonal=False, trace=True, error_action='ignore', suppress_warnings=True)
print(stepwise_model.summary())

# Creazione del modello ARIMA con i migliori parametri trovati
tuned_order = stepwise_model.order
model = ARIMA(train, order=tuned_order)
model_fit = model.fit()

# Predizione sui dati di test
start = len(train)
end = len(train) + len(test) - 1
predictions = model_fit.predict(start=start, end=end, typ='levels')

# Valutazione delle prestazioni del modello
mae = mean_absolute_error(test, predictions)
mse = mean_squared_error(test, predictions)
rmse = np.sqrt(mse)
mape = np.mean(np.abs((test - predictions) / test)) * 100

print(f'MAE: {mae:.4f}')
print(f'RMSE: {rmse:.4f}')
print(f'MAPE: {mape:.4f}%')

# Grafico delle previsioni rispetto ai valori reali
plt.figure(figsize=(10, 5))
plt.plot(test, label='Valori Reali', color='blue')
plt.plot(predictions, label='Previsioni ARIMA', color='red')
plt.title('Confronto tra Previsioni ARIMA e Valori Reali per il Nodo 0')
plt.xlabel('Tempo')
plt.ylabel('Valore del Flusso')
plt.legend()
plt.grid()
plt.show()

Диаграмма сезонного остатка тренда

Подробнее здесь: https://stackoverflow.com/questions/792 ... aight-line
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему прогноз моей модели ARIMA является прямой линией?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему прогноз моей модели ARIMA является прямой линией?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Получение прямой линии при создании модели ARIMA
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Прогноз временных рядов: ARIMA против Пророка
    Anonymous » » в форуме Python
    0 Ответы
    66 Просмотры
    Последнее сообщение Anonymous
  • Почему мой прогноз Auto ARIMA не соответствует фактическим данным о спросе с четкими тенденциями и сезонностью?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»