在使用model = ARIMA(train_data_arr, order=(0, 1, 1))进行训练后,想要对在测试集test_data_arr上进行预测,并打印真实值和预测值的对照表,计算相对误差和残差,同时绘制预测值和真实值的图,怎么做
时间: 2024-02-13 09:59:56 浏览: 68
在使用ARIMA模型进行训练后,可以使用`forecast`方法对测试集进行预测,并计算相对误差和残差,同时使用Pandas库打印真实值和预测值的对照表,并使用Matplotlib库绘制预测值和真实值的图。下面是一个示例代码:
```python
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as plt
# 训练 ARIMA 模型
model = ARIMA(train_data_arr, order=(0, 1, 1))
model_fit = model.fit(disp=0)
# 对测试集进行预测
predictions = model_fit.forecast(steps=len(test_data_arr))[0]
# 计算相对误差和残差
relative_errors = np.abs((test_data_arr - predictions) / test_data_arr)
residuals = test_data_arr - predictions
# 打印真实值和预测值的对照表
df = pd.DataFrame({'True': test_data_arr, 'Predicted': predictions})
print(df)
# 绘制预测值和真实值的图
plt.plot(test_data_arr, label='true')
plt.plot(predictions, label='predicted')
plt.legend()
plt.show()
```
在这个例子中,我们首先训练了ARIMA模型,并使用`forecast`方法对测试集进行预测,得到预测结果`predictions`。然后,我们计算相对误差和残差,并使用Pandas库打印真实值和预测值的对照表。最后,我们使用Matplotlib库绘制预测值和真实值的图,其中`plot`函数用于绘制折线图,`label`用于设置图例,`legend`用于显示图例,`show`用于显示图形。