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

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

Сообщение Anonymous »

Я работаю над проблемой прогнозирования временных рядов, используя модель ARIMA из statsmodels. Моя цель — спрогнозировать транспортный поток для конкретного места (PEMS08). Первоначально я использовал произвольные параметры (p, d, q) = (2, 1, 2), но в результате прогноза получилась плоская прямая линия, которая не отражает фактические изменения данных.
Я подозреваю, что проблема может быть связана с неправильным выбором параметров или ограниченностью данных. Затем я реализовал ручной поиск по сетке, чтобы найти оптимальные значения (p, d, q). При использовании лучших параметров (0, 1, 1) прогнозы модели улучшились, но ошибки по-прежнему значительны, и модель не полностью отражает сложность временного ряда.
Последовательность действий диаграмма

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

import numpy as np
from pmdarima import auto_arima
from sklearn.metrics import mean_absolute_error, mean_squared_error
from math import sqrt
import matplotlib.pyplot as plt
from lib.metrics import masked_mape_np

# Caricamento dei dati preparati
data = np.load('data/PEMS08/PEMS08_r1_d0_w0_astcgn.npz')
train_data = data['train_target']  # (B, N, T)
test_data = data['test_target']    # (B, N, T)

# Selezione dei dati per il Nodo 0
train_node_0 = train_data[:, 0, :]  # Serie univariata per il Nodo 0
test_node_0 = test_data[:, 0, :]    # Test per il Nodo 0

# Predizioni con Auto ARIMA per il Nodo 0
def predict_node_0(train_node_0, test_node_0):
predictions = []
for timestep in range(test_node_0.shape[1]):  # Itera sui passi temporali
try:
# Fitting Auto ARIMA
model = auto_arima(train_node_0[:, timestep], seasonal=False, error_action='ignore', suppress_warnings=True)
pred = model.predict(n_periods=1)[0]  # Prevede 1 passo avanti
predictions.append(pred)
except Exception as e:
print(f"Errore con Auto ARIMA al timestep {timestep}: {e}")
predictions.append(np.nan)  # Riempie con NaN in caso di errore

return np.array(predictions)

# Predizione
arima_predictions_node_0 = predict_node_0(train_node_0, test_node_0)

# Valutazione delle metriche
test_node_0_flatten = test_node_0.flatten()
predictions_node_0_flatten = arima_predictions_node_0.flatten()

mae = mean_absolute_error(test_node_0_flatten, predictions_node_0_flatten)
rmse = sqrt(mean_squared_error(test_node_0_flatten, predictions_node_0_flatten))
mape = masked_mape_np(test_node_0_flatten, predictions_node_0_flatten, null_val=0)

print(f"Metriche Auto ARIMA per il Nodo 0:")
print(f"MAE: {mae:.4f}")
print(f"RMSE: {rmse:.4f}")
print(f"MAPE: {mape * 100:.2f}%")

# Confronto visivo
plt.figure(figsize=(10, 6))
plt.plot(test_node_0[0], label="Ground Truth Nodo 0", color="blue")
plt.plot(arima_predictions_node_0, label="Auto ARIMA Predictions Nodo 0", color="orange")
plt.title("Previsioni Auto ARIMA vs Ground Truth per il Nodo 0")
plt.xlabel("Intervalli temporali")
plt.ylabel("Valore")
plt.legend()
plt.show()

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

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

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

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

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

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

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

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