1、今天尝试把预测结果的准确性的一些指标量化
2、我把销售额的实际值和几种预测方法的值保存在excel表格:预测结果2023.6.2.xlsx中,表头如下:
未来6个月 | 未来6个月实际销售额累计值 | SARIMA预测销售金额累计值 | Prophet预测销售金额累计值 | ARIMA预测销售金额累计值 | ExponentialSmoothing方法1预测销售金额累计值 | ExponentialSmoothing方法2预测销售金额累计值 | SVM预测销售金额累计值 | 移动平均预测销售金额累计值 |
---|
请用python对时间序列预测结果准确性的一些检查判定指标,判断这些预测结果,看看哪个预测结果好,并给出代码
3、
代码语言:javascript复制为了评估这些预测方法的准确性,我们可以使用一些常见的时间序列预测评估指标,如均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)。首先,我们需要从Excel表格中读取数据。这里我们使用`pandas`库来处理数据。请确保已经安装了`pandas`库,如果没有,请使用`pip install pandas`进行安装。
以下是读取Excel数据并计算各种预测方法的MSE、RMSE和MAE的代码:
```python
import pandas as pd
import numpy as np
# 读取Excel数据
file_path = "预测结果2023.6.2.xlsx"
df = pd.read_excel(file_path)
# 提取实际销售额和各种预测方法的销售额
actual_sales = df["未来6个月实际销售额累计值"]
methods = ["SARIMA预测销售金额累计值", "Prophet预测销售金额累计值", "ARIMA预测销售金额累计值", "ExponentialSmoothing方法1预测销售金额累计值", "ExponentialSmoothing方法2预测销售金额累计值", "SVM预测销售金额累计值", "移动平均预测销售金额累计值"]
# 计算各种预测方法的MSE、RMSE和MAE
evaluation_metrics = {}
for method in methods:
predictions = df[method]
mse = np.mean((actual_sales - predictions) ** 2)
rmse = np.sqrt(mse)
mae = np.mean(np.abs(actual_sales - predictions))
evaluation_metrics[method] = {"MSE": mse, "RMSE": rmse, "MAE": mae}
# 输出评估结果
for method, metrics in evaluation_metrics.items():
print(f"{method}:")
print(f" MSE: {metrics['MSE']}")
print(f" RMSE: {metrics['RMSE']}")
print(f" MAE: {metrics['MAE']}")
print()
# 找到最佳预测方法
best_method = min(evaluation_metrics, key=lambda x: evaluation_metrics[x]["RMSE"])
print(f"最佳预测方法:{best_method}")
```
这段代码首先读取Excel文件中的数据,然后计算每种预测方法的MSE、RMSE和MAE。最后,它会输出每种方法的评估结果,并根据RMSE值找到最佳预测方法。你可以将Excel文件路径替换为你的文件路径,并运行此代码以查看结果。
4、完成
代码语言:javascript复制import pandas as pd
import numpy as np
from openpyxl import Workbook
# 读取Excel数据
文件路径 = "预测结果2023.6.2.xlsx"
数据 = pd.read_excel(文件路径)
# 在这里设置新的Excel文件名
新文件 = '新预测结果2023.6.2.xlsx'
# 提取实际销售额和各种预测方法的销售额
实际销售额 = 数据["未来6个月实际销售额累计值"]
预测方法 = ["SARIMA预测销售金额累计值", "Prophet预测销售金额累计值", "ARIMA预测销售金额累计值", "ExponentialSmoothing方法1预测销售金额累计值", "ExponentialSmoothing方法2预测销售金额累计值", "SVM预测销售金额累计值", "移动平均预测销售金额累计值"]
# 计算各种预测方法的MSE、RMSE和MAE
评估指标 = {}
for 方法 in 预测方法:
预测值 = 数据[方法]
均方误差 = np.mean((实际销售额 - 预测值) ** 2)
均方根误差 = np.sqrt(均方误差)
平均绝对误差 = np.mean(np.abs(实际销售额 - 预测值))
评估指标[方法] = {"MSE": 均方误差, "RMSE": 均方根误差, "MAE": 平均绝对误差}
# 创建新的Excel文件
工作簿 = Workbook()
工作表 = 工作簿.active
# 将原始数据和计算结果写入新的Excel文件
行 = 1
表头 = ['Method', 'MSE', 'RMSE', 'MAE']
工作表.append(表头)
for 方法, 指标 in 评估指标.items():
工作表.append([方法, 指标['MSE'], 指标['RMSE'], 指标['MAE']])
print(f"{方法}:")
print(f" MSE: {指标['MSE']}")
print(f" RMSE: {指标['RMSE']}")
print(f" MAE: {指标['MAE']}")
print()
# 保存新的Excel文件
工作簿.save(filename=新文件)
# 找到最佳预测方法
最佳预测方法 = min(评估指标, key=lambda x: 评估指标[x]["RMSE"])
print(f"最佳预测方法:{最佳预测方法}")
5、预测未来1个月