在使用model = ARIMA(train_data_arr, order=(0, 1, 1))进行训练后,想要对在测试集test_data_arr上使用函数model.fit().predict()来进行预测,并打印真实值和预测值的对照表,计算相对误差和残差,并将其导出到一张excel表中,该怎么做
时间: 2024-02-13 19:00:06 浏览: 21
可以按照以下步骤来实现:
1. 使用ARIMA模型对训练集进行训练,即执行model = ARIMA(train_data_arr, order=(0, 1, 1))。
2. 对测试集进行预测,即执行predictions = model.fit().predict(start=len(train_data_arr), end=len(train_data_arr)+len(test_data_arr)-1, typ='levels')。
3. 创建一个DataFrame对象来存储真实值和预测值,即执行results = pd.DataFrame({'Actual': test_data_arr, 'Predicted': predictions})。
4. 计算相对误差,即执行results['Error'] = (results['Actual'] - results['Predicted']) / results['Actual']。
5. 计算残差,即执行results['Residuals'] = results['Actual'] - results['Predicted']。
6. 将结果导出到Excel表中,即执行results.to_excel('results.xlsx')。
完整代码如下所示:
```
import pandas as pd
from statsmodels.tsa.arima_model import ARIMA
# 训练集和测试集数据
train_data_arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
test_data_arr = [11, 12, 13, 14, 15]
# 使用ARIMA模型进行训练
model = ARIMA(train_data_arr, order=(0, 1, 1))
# 对测试集进行预测
predictions = model.fit().predict(start=len(train_data_arr), end=len(train_data_arr)+len(test_data_arr)-1, typ='levels')
# 创建一个DataFrame对象来存储真实值和预测值
results = pd.DataFrame({'Actual': test_data_arr, 'Predicted': predictions})
# 计算相对误差
results['Error'] = (results['Actual'] - results['Predicted']) / results['Actual']
# 计算残差
results['Residuals'] = results['Actual'] - results['Predicted']
# 将结果导出到Excel表中
results.to_excel('results.xlsx')
```
注意:以上代码仅是示例,具体实现需要根据自己的数据和需求进行调整。