GPT4做数据分析时间序列预测之八相当棒2023.6.2

2023-08-16 21:25:23 浏览数 (1)

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个月

0 人点赞