如何从最好的 auto_arima 模型中提取变量来拟合它?
How to extract variables from the best auto_arima model to fit it?
我有一个包含多个城市的数据集,我正在尝试为每个城市构建一个 ARIMA 模型,因此在我的代码中,我使用 for 循环拆分数据并在将这些参数发送到之前找到最佳模型最后的装修。我的问题是如何使流程自动化?有什么方法可以从 ARIMACheck 函数返回的最佳模型中提取 p、d、q 值吗?
def ARIMACheck(data):
from pmdarima import auto_arima
fit = auto_arima(data[20], trace=True)
return fit
def ARIMA(data, p, d, q):
from statsmodels.tsa.arima.model import ARIMA
x_train = data.iloc[:-200]
x_test = data.iloc[-200:]
y_test = x_test.loc[:, 20]
model = ARIMA(x_train[20], order=(p,d,q))
model = model.fit()
def Split(data):
for i in range(7):
data[i].replace(0, np.nan, inplace=True)
for i in range(7):
datatemp = data.copy()
datatemp = datatemp.dropna(subset=[i])
datamap = datatemp.copy()
datamap = datamap.loc[:, 20]
datamap.plot(figsize=(50,10))
fit = ARIMACheck(datatemp)
print(fit)
ARIMA(datatemp, 1, 1, 2)
Split(data)
首先,auto_arima
函数 returns 是一个在 statsmodels 上运行的 ARIMA 对象,因此您可以使用方法 ARIMACheck(data)
中的 fit
。
如果您想使用 statsmodels class 创建一个新模型,那么您可以使用以下命令从 auto_arima
拟合中提取顺序,并使用它来训练您的新模型ARIMA
方法:
def ARIMA(data, fit):
model = ARIMA(endog=x_train[20], order=fit.get_params().get("order")).fit()
并通过以下方式调用方法:
ARIMA(datatemp, fit)
fit.get_params().get("order")
returns 像 (p, d, q) 这样的元组,因此您可以通过 fit.get_params().get("order")[<index>]
.
访问每个元素
我有一个包含多个城市的数据集,我正在尝试为每个城市构建一个 ARIMA 模型,因此在我的代码中,我使用 for 循环拆分数据并在将这些参数发送到之前找到最佳模型最后的装修。我的问题是如何使流程自动化?有什么方法可以从 ARIMACheck 函数返回的最佳模型中提取 p、d、q 值吗?
def ARIMACheck(data):
from pmdarima import auto_arima
fit = auto_arima(data[20], trace=True)
return fit
def ARIMA(data, p, d, q):
from statsmodels.tsa.arima.model import ARIMA
x_train = data.iloc[:-200]
x_test = data.iloc[-200:]
y_test = x_test.loc[:, 20]
model = ARIMA(x_train[20], order=(p,d,q))
model = model.fit()
def Split(data):
for i in range(7):
data[i].replace(0, np.nan, inplace=True)
for i in range(7):
datatemp = data.copy()
datatemp = datatemp.dropna(subset=[i])
datamap = datatemp.copy()
datamap = datamap.loc[:, 20]
datamap.plot(figsize=(50,10))
fit = ARIMACheck(datatemp)
print(fit)
ARIMA(datatemp, 1, 1, 2)
Split(data)
首先,auto_arima
函数 returns 是一个在 statsmodels 上运行的 ARIMA 对象,因此您可以使用方法 ARIMACheck(data)
中的 fit
。
如果您想使用 statsmodels class 创建一个新模型,那么您可以使用以下命令从 auto_arima
拟合中提取顺序,并使用它来训练您的新模型ARIMA
方法:
def ARIMA(data, fit):
model = ARIMA(endog=x_train[20], order=fit.get_params().get("order")).fit()
并通过以下方式调用方法:
ARIMA(datatemp, fit)
fit.get_params().get("order")
returns 像 (p, d, q) 这样的元组,因此您可以通过 fit.get_params().get("order")[<index>]
.