Почему мой прогноз Auto ARIMA не соответствует фактическим данным о спросе с четкими тенденциями и сезонностью?Python

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

Сообщение Anonymous »

Я использую модель Auto ARIMA для прогнозирования спроса на набор данных временных рядов. Изучив результаты, я заметил, что прогнозируемые значения не очень хорошо согласуются с фактическими данными о спросе, хотя я рисую остатки и они случайны.
Вот код подгонки модели:

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

import pandas as pd
import matplotlib.pyplot as plt
from pmdarima import auto_arima
from sklearn.metrics import mean_squared_error
import numpy as np

# Assuming your DataFrame is 'df', which contains a 'demand' column

df['demand'] = df['demand'].interpolate(method='linear')  # Use interpolation to fill NaN values

# Set the frequency (adjust as needed: 'D' for daily, 'M' for monthly, etc.)
df = df.asfreq('D')

# Split the dataset into train and test sets (80% training, 20% testing)
train_size = int(len(df) * 0.8)
train, test = df[:train_size], df[train_size:]

# Use Auto ARIMA to find the best model
model = auto_arima(train['demand'],
seasonal=True,   # If seasonality is present
m=12,             # Set to 7 for weekly seasonality (if daily data)
d=1,             # Set non-seasonal differencing
D=1,             # Set seasonal differencing
trace=True,      # Prints the progress
suppress_warnings=True,
stepwise=True)   # Use a stepwise search

# Print the best model summary
print(model.summary())
Код построения графиков:

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

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error

# Calculate RMSE
rmse = np.sqrt(mean_squared_error(test['demand'], forecast))

# Create the plot
plt.figure(figsize=(10, 6))

# Plot the test (actual) demand
plt.plot(test.index, test['demand'], label='Actual Demand', color='blue')

# Plot the forecasted demand
plt.plot(forecast_index, forecast, label='Forecasted Demand', color='red')

# Add labels and title
plt.title('Actual vs Forecasted Demand (Zoomed In)')
plt.xlabel('Date')
plt.ylabel('Demand')
plt.legend()

# Display RMSE on the plot
plt.text(forecast_index[-1], test['demand'].max(), f'RMSE: {rmse:.2f}', fontsize=12, ha='right', color='black')

plt.show()

# Print the forecasted values for inspection
print(forecast)

График результатов:
введите здесь описание изображения.
Я пытался изменить параметр m в auto ARIMA с разными значениями, но это было плодотворно!

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Прогноз временных рядов: ARIMA против Пророка
    Anonymous » » в форуме Python
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Почему прогноз моей модели ARIMA является прямой линией?
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Почему прогноз моей модели ARIMA является прямой линией?
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Почему прогноз моей модели ARIMA является прямой линией?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Генератор исходного кода не соответствует атрибуту, объявленному в классе с фактическим определением атрибута
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

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