Прогноз временных рядов: ARIMA против ПророкаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Прогноз временных рядов: ARIMA против Пророка

Сообщение Anonymous »


У меня есть работающая модель прогнозирования временных рядов Prophet на основе данных об использовании за последние два года. Ради науки я также хочу воспроизвести на данных рабочую модель ARIMA, но что бы я ни пробовал, она не работает.

Вот код и сюжет модели Пророка

m = Пророк( интервал_ширина=0,95, рост="линейный", Seasonity_mode="мультипликативный", Annual_ Seasonality = Верно, daily_ Seasonality = Ложь, еженедельная_сезонность = Ложь, ) м.fit(поезд) будущее = m.make_future_dataframe(периоды=365)
Изображение


А это код ARIMA, который я пытался запустить, и его результат

импортировать панд как pd импортировать numpy как np импортировать pmdarima как pm импортировать matplotlib.pyplot как plt из даты и времени импорта даты и времени, timedelta # Загрузить данные из CSV-файла # Замените «your_data.csv» фактическим путем к вашему CSV-файлу. данные = pd.read_csv('util_since_2022.csv') # Конвертируем столбец «Дата» в формат даты и времени. data['date'] = pd.to_datetime(data['date']) # Установите «Дата» в качестве индекса DataFrame data.set_index('дата', место=True) # Разделить набор данных на данные обучения и тестирования train_data = data['2022-01-01':'2023-12-31'] # Данные за 2022 и 2023 годы для обучения test_data = pd.DataFrame(columns=['Utilization']) # Пустой DataFrame на 2024 год (тестирование) # Подгоним модель ARIMA к обучающим данным arima_model = pm.auto_arima(train_data, Season=True, m=1) # m=1 для годовой сезонности # Генерация прогнозов на 2024 год прогноз_периодов = 365 # Количество дней в 2024 году прогноз, conf_int = arima_model.predict(n_ periods=forecast_ periods, return_conf_int=True) # Создайте DataFrame для хранения прогнозов прогноз_даты = pd.date_range(start="2024-01-01", period=forecast_ periods, freq="D") прогноз_df = pd.DataFrame({"Дата": прогноз_даты, "Прогноз": прогноз}) # Постройте данные прошлых лет и прогноз на 2024 год. plt.figure(figsize=(12, 6)) plt.plot(train_data.index, train_data['util'], label='Прошлые данные (2022-2023 гг.)', color='blue') plt.plot(forecast_df['Дата'], прогноз_df['Прогноз'], label='Прогноз (2024 г.)', color='красный') # Добавляем метки и легенду plt.xlabel('Дата') plt.ylabel('Использование') plt.title('Прогноз использования (ARIMA)') plt.legend() # Построение остатков остатки = train_data['util'] - arima_model.predict_in_sample() plt.figure(figsize=(12, 6)) plt.plot(train_data.index, остатки, метка = 'Остатки', цвет = 'зеленый') plt.xlabel('Дата') plt.ylabel('Остатки') plt.title('Остатки модели ARIMA') plt.legend() #Показать сюжет plt.grid(Истина) plt.tight_layout() plt.show()
Изображение

Изображение


Интересно, может ли кто-нибудь сказать, почему модель ARIMA не работает? Спасибо!

(Пример данных)
Изображение

Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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