我正在尝试使用Python拟合ARIMA模型。它有两列。第一次和第二次确认的订单。以下是数据文件的前几行(2020年3月14日至2020年4月14日的已确认订单的每日数据):
只要差异(d)等于或小于2,我的代码就可以正常工作。 d> 2时,出现错误“ raise ValueError(“ d> 2不支持”)。
这是我正在使用的代码:
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.arima_model import ARIMA
from pandas.plotting import register_matplotlib_converters
from pandas import read_csv
from pandas import DatetimeIndex
from datetime import datetime
register_matplotlib_converters()
df = pd.read_csv('order.csv',parse_dates = ['date'], index_col = ['date'])
df.info()
#Declare that data are collected on daily basis
df.index.freq = 'd'
#ARIMA
model = ARIMA(df,order=[1,4,1], freq='D')
model_fit = model.fit(disp=0)
print(model_fit.summary())
错误的屏幕快照也附有详细信息。任何解决此问题的帮助将不胜感激。预先感谢。
答案 0 :(得分:0)
也许 d>2 是不允许的,这意味着我们最好的办法是从简单开始,检查集成一次是否会带来平稳性。 如果是这样,我们可以拟合一个简单的 ARIMA 模型并检查残差值的 ACF,以更好地了解要使用的差分阶数。 还有一个缺点,如果我们积分超过两次 (d>2),我们会丢失 n 个观测值,每次积分一个。 ARIMA 建模中最常见的错误之一是对序列进行“过度差分”并最终添加额外的 AR 或 MA 项以消除预测损失,因此作者(我假设)决定提出此异常。