如何使用多个样本制作ARIMA模型,以预测新样本的结果?

时间:2019-07-19 18:36:38

标签: python time-series arima

我的目标是使用python构建一个程序,该程序可以获取多个时间序列样本,这些样本具有从0到9天的数据,并将这些样本用作训练数据,以使用ARIMA拟合预测模型。应该使用预测模型来获取一个仅包含第0天到第3天数据的新样本,并预测第4天到第9天的数据。

现在,我的问题是我不知道如何构建具有多个样本的预测模型。似乎ARIMA函数只能获取一个样本来建立预测模型。我尝试使用外生变量,但是如果我输入多个变量,则会不断收到错误消息。

model = {}

model_fit = {}

errors = 0

for col in df.columns:

try:
    model[col] = ARIMA(df[col], order=(1,0,0))# dates = df["DateIndex"])
    model_fit[col] = model[col].fit(disp=0) #, batch_size = 11, nb_epoch = 11)
    #print(model_fit[col].summary())
    #plot residual errors
    plt.figure()
    residuals = pd.DataFrame(model_fit[col].resid)
    residuals.plot()
    residuals.plot(kind='kde')
    #print(residuals.describe())
except Exception as e:
    print(col, 'failed:',e)
    errors += 1
print(errors,'model fits failed')
plt.show()

h = plt.figure(figsize=(20,len(df.columns)))
ncols = 4
nrows = round(len(df.columns)/ncols)
x_vars = ["D0", "D3", "D4", "D5", "D6", "D7", "D8", "D9"]
for i, col in enumerate(df.columns):
    try:
        ax = h.add_subplot(nrows,ncols,i+1) 
        start = 0
        end = len(df[col])
        plt.plot(x_vars, df[col].values[start:end], label = col)
        plt.plot(x_vars, model_fit[col].predict(start=start+1,end=end), label = col + ' Model')
        plt.legend()
    except Exception as e:
        print(col,'failed:',e)
plt.show()

我的结果是显示预测数据和实际数据的多个图形。问题在于预测数据仅基于一个样本。是否可以使用ARIMA使用多个样本创建预测模型?

0 个答案:

没有答案