ARIMA 可以在 Python 中获取输入序列吗?

问题描述 投票:0回答:1

在Python中,当你训练LSTM模型时,你可以在部分数据上训练模型。然后在推理时,您可以为其提供任何您喜欢的输入,例如不属于训练集的 10 个最近时间步长。它将产生输出。现在 ARIMA 可以以同样的方式运行吗?我们可以给它输入序列吗?或者它是否使用训练数据来预测下一步?

下面是我的代码:

import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
import torch
import sys
import math

# Read the dataset from CSV file
df = pd.read_csv('sm_data.csv', header=None)

# Take the first 102 rows as training data and the rest as test data
train_data = df.iloc[:102, :]
test_data = df.iloc[102:, :]


# Iterate over each trend
forecast_results = {}
for column in df.columns:
    # Fit ARIMA model on training data
    model = ARIMA(train_data[column], order=(10,1,0))
    model_fit = model.fit()

    # Forecast 36 months ahead
    forecast = model_fit.forecast(steps=36)

    # Store forecast results
    forecast_results[column] = forecast

# Convert forecast results to DataFrame
forecast_df = pd.DataFrame(forecast_results)

# Save forecast results to CSV
forecast_df.to_csv('forecast_results.csv', index=False)
python machine-learning time-series statsmodels arima
1个回答
0
投票

您可以使用

.apply()
将拟合参数应用于与原始数据无关的新数据。这将使用当前拟合参数创建一个新的
Results
对象,应用于假设与模型原始数据无关的新数据集。

新的

Results
对象可用于预测:

fitted_model = ARIMA(train_data).fit()

#Get a new Results object by applying model to new data
new_results = fitted_model.apply(test_data)

#Use new_results for forecasting
forecast = new_results.forecast(1)

docs中有更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.